GIT เจธเจฐเจตเจฐ เจคเฉฑเจ• เจฌเจนเฉ-เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเจนเฉเฉฐเจš เจฆเจพ เจธเฉฐเจ—เจ เจจ

เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจ—เจฟเจŸ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจชเฉเจฐเจธเจผเจจ เจ•เจˆ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจ•เจˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ‰เฉฑเจ เจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ‡เจธ เจฎเฉเฉฑเจฆเฉ‡ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจนเฉฑเจฒ เจฒเฉฑเจญเจฟเจ† เจœเฉ‹ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจฆเจพ เจนเฉˆ: เจธเจงเจพเจฐเจจ, เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค, เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆเฅค

เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจ‡เฉฑเจ›เจพเจตเจพเจ‚ เจนเจจ:

  • เจนเจฐเฉ‡เจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ†เจชเจฃเฉ‡ เจ–เจพเจคเฉ‡ เจจเจพเจฒ เจœเฉเฉœเจฆเจพ เจนเฉˆ
  • เจ•เจˆ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจ
  • เจ‡เฉฑเจ•เฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ•เจˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ
  • เจนเจฐเฉ‡เจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ•เฉ‹เจฒ เจธเจฟเจฐเจซ เจ‰เจนเจจเจพเจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจธ 'เจคเฉ‡ เจ‰เจน เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ
  • เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฐเจพเจนเฉ€เจ‚ เจœเฉเฉœเจจเจพ เจธเฉฐเจญเจต เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจจเจพ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจตเฉˆเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฐเจพเจนเฉ€เจ‚

เจ‡เจน เจตเฉ€ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจนเฉ‹เจตเฉ‡เจ—เจพ:

  • เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจชเฉœเฉเจนเจจ-เจชเฉœเฉเจนเจจ เจฆเฉ€เจ†เจ‚ เจ‡เจœเจพเจœเจผเจคเจพเจ‚ เจฆเจฟเจ“
  • Git เจตเจฟเฉฑเจš เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเจนเฉเฉฐเจš เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเจพ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเฉ‹

GIT เจธเจฐเจตเจฐ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฒเจˆ เจธเฉฐเจญเจต เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจ•เจฟเจธ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจšเฉเจฃเจจเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ‡เฉฑเจฅเฉ‡ เจ—เจฟเฉฑเจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉˆเฅค

  • ssh - เจธเจฐเจตเจฐ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจฃเจพเจ‡เจ† เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ–เจพเจคเจพ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
    • เจ‡เจน เจ…เจœเฉ€เจฌ เจนเฉˆ เจ•เจฟ เจ—เจฟเจŸ เจธเจพเจฐเฉ€เจ†เจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ–เจพเจคเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€เจ†เจ‚ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจชเฉ‚เจฐเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค
    • เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจ–เจพเจคเจฟเจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ•เฉเจ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจคเฉฑเจ• เจ•เจฟเจตเฉ‡เจ‚ เจธเฉ€เจฎเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹?
      • เจนเฉ‹เจฎ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฌเฉฐเจฆ เจ•เจฐเจจเจพ เจ‰เจšเจฟเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฆเฉ‚เจœเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจ‰เฉฑเจฅเฉ‡ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจจเจพ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ
      • เจคเฉเจนเจพเจกเฉ€ เจนเฉ‹เจฎ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจธเจฟเจฎเจฒเจฟเฉฐเจ•เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจตเฉ€ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ—เจฟเฉฑเจŸ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจฟเฉฐเจ•เจพเจ‚ เจตเจœเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเจพ
      • เจฆเฉเจญเจพเจธเจผเฉ€เจ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเฉ€เจฎเจค เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ, เจชเจฐ เจ‡เจธ เจ—เฉฑเจฒ เจฆเฉ€ เจ•เฉ‹เจˆ เจชเฉ‚เจฐเฉ€ เจ—เจพเจฐเฉฐเจŸเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ‡เจน เจนเจฎเฉ‡เจธเจผเจพ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ
        • เจคเฉเจธเฉ€เจ‚ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เจœเจฟเจนเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจ–เฉเจฆ เจฆเฉ‡ เจ•เจฎเจพเจ‚เจก เจฆเฉเจญเจพเจธเจผเฉ€เจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ
          • เจชเจนเจฟเจฒเจพเจ‚, เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเจพ เจฎเฉเจธเจผเจ•เจฒ เจซเฉˆเจธเจฒเจพ เจนเฉˆ,
          • เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ, เจ‡เจธ เจจเฉ‚เฉฐ เจฐเฉ‹เจ•เจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

    เจชเจฐ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจตเฉ‡เจ—เจพ?... เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจตเจฟเจงเฉ€ เจคเฉ‹เจ‚ เจ‡เจจเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจธเจฎเจเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ. เจ…เจธเฉ€เจ‚ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจธ เจตเจฟเจงเฉ€ 'เจคเฉ‡ เจตเจพเจชเจธ เจ†เจตเจพเจ‚เจ—เฉ‡, เจชเจฐ เจนเฉเจฃ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจนเฉ‹เจฐ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจตเจฟเจšเจพเจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉเจ เจธเฉŒเจ–เจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

  • git เจฒเฉ‹เจ•เจฒ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเฉ‚เฉฐ sshfs เจฆเฉ‡ เจจเจพเจฒ เจœเฉ‹เฉœ เจ•เฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจฎเจฒเจŸเฉ€เจชเจฒ เจฏเฉ‚เจœเจผเจฐ เจตเจฐเจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ, เจชเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจชเจฟเจ›เจฒเฉ‡ เจ•เฉ‡เจธ เจตเจพเจ‚เจ— เจนเฉ€
  • http - เจธเจฟเจฐเจซเจผ เจชเฉœเฉเจนเจจ เจฒเจˆ
  • git เจธเจฟเจฐเจซเจผ เจชเฉœเฉเจนเจจ เจฒเจˆ เจนเฉˆ
  • https - เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจเจพ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจพเจงเฉ‚ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเจพ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจชเฉˆเจจเจฒ... เจ‡เจน เจธเฉฐเจญเจต เจœเจพเจชเจฆเจพ เจนเฉˆ, เจชเจฐ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจนเจฐ เจšเฉ€เจœเจผ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉˆเฅค

Git เจธเจฐเจตเจฐ เจฒเจˆ เจฌเจนเฉ-เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ ssh เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ†เจ‰ ssh เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจคเฉ‡ เจตเจพเจชเจธ เจšเจฒเฉ€เจเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจคเฉเจธเฉ€เจ‚ git เจฒเจˆ ssh เจชเจนเฉเฉฐเจš เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฐเจตเจฐ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจœเฉ‹ ssh เจฆเฉเจ†เจฐเจพ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ เจ‰เจน เจฒเฉ€เจจเจ•เจธ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ†เจชเจฃเจพ เจฒเฉŒเจ—เจ‡เจจ เจตเจฐเจคเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน ssh เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉเจ†เจฐเจพ เจœเฉเฉœ เจธเจ•เจฃ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจฆเฉ€ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐ เจธเจ•เจฃเฅค
เจ…เจœเจฟเจนเฉ€ เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจตเจฟเจฐเฉเฉฑเจง เจ•เฉ‹เจˆ เจชเฉ‚เจฐเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจชเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจฒเฉ€เจจเจ•เจธ เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€. เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจฟเจฐเจซ git เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฐเจพเจนเฉ€เจ‚ เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเฉ€เจฎเจค เจจเจพ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ, เจชเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจคเฉ‹เจ‚ เจฎเจจเจพเจนเฉ€ เจ•เจฐเจจ เจฒเจˆ เจฒเฉ€เจจเจ•เจธ เจŸเฉ‚เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจน เจนเจฟเฉฑเจธเจพ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค
เจธเจชเฉฑเจธเจผเจŸ เจตเจฟเจ•เจฒเจช เจฒเฉ€เจจเจ•เจธ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฆเฉฑเจธเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, ssh เจชเจนเฉเฉฐเจš เจฒเจˆ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจ–เจพเจคเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ. เจ‡เจน เจธเฉฐเจฐเจšเจจเจพ เจ•เจˆ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจ…เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจนเฉˆ, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ‡ เจ—เจฟเฉฑเจŸ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค

เจฒเฉ‡เจ– เจฆเฉ‡ เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจฆเจฟเฉฑเจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ, เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจ…เจคเฉ‡ เจฎเจพเจฒเจ•เจพเจ‚ เจฆเฉ€ เจจเจฟเจฏเฉเจ•เจคเฉ€ เจจเจพเจฒ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฌเจฃเจคเจฐ เจฌเจฃเจพเจˆ เจ—เจˆ เจนเฉˆ:

1) เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚

dir1(proj1:proj1,0770)
dir2(proj2:proj2,0770)
dir3(proj3:proj3,0770)
...
เจœเจฟเฉฑเจฅเฉ‡
dir1, dir2, dir3 - เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚: เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 1, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 2, เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 3เฅค

proj1:proj1, proj2:proj2, proj3:proj3 เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจฃเจพเจ เจ—เจ เจฒเฉ€เจจเจ•เจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ‡ เจฎเจพเจฒเจ•เจพเจ‚ เจตเจœเฉ‹เจ‚ เจจเจฟเจฏเฉเจ•เจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค

เจธเจพเจฐเฉ€เจ†เจ‚ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฒเจˆ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ 0770 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจนเจจ - เจฎเจพเจฒเจ• เจ…เจคเฉ‡ เจ‰เจธเจฆเฉ‡ เจธเจฎเฉ‚เจน เจฒเจˆ เจชเฉ‚เจฐเฉ€ เจชเจนเฉเฉฐเจš เจ…เจคเฉ‡ เจฌเจพเจ•เฉ€ เจธเจพเจฐเจฟเจ†เจ‚ เจฒเจˆ เจชเฉ‚เจฐเฉ€ เจชเจพเจฌเฉฐเจฆเฉ€เฅค

2) เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ–เจพเจคเฉ‡

ะ ะฐะทั€ะฐะฑะพั‚ั‡ะธะบ 1: dev1:dev1,proj1,proj2
ะ ะฐะทั€ะฐะฑะพั‚ั‡ะธะบ 2: dev2:dev2,proj2,proj3

เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจธเจฟเจธเจŸเจฎ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเจพเจฒเจ• เจฆเจพ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจธเจฎเฉ‚เจน เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจฒเฉ€เจจเจ•เจธ เจธเจฐเจตเจฐ เจชเฉเจฐเจฌเฉฐเจงเจ• เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, "เจกเจฟเจตเฉˆเจฒเจชเจฐ 1" เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ proj1 เจ…เจคเฉ‡ proj2 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ, เจ…เจคเฉ‡ "Developer 2" proj2 เจ…เจคเฉ‡ proj3 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจตเฉ€ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฐเจพเจนเฉ€เจ‚ ssh เจฐเจพเจนเฉ€เจ‚ เจœเฉเฉœเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ…เจงเจฟเจ•เจพเจฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจตเฉ€ เจ•เจพเจซเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจ—เฉ‡ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ‰เจน เจนเจฟเฉฑเจธเจพ เจจเจนเฉ€เจ‚ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจจเฅค เจ‰เจน เจ–เฉเจฆ เจ‡เจธ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒ เจธเจ•เจฆเจพเฅค

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจธเจฟเจงเจพเจ‚เจค เจฆเจพ เจ†เจงเจพเจฐ เจฒเฉ€เจจเจ•เจธ เจ…เจงเจฟเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจฎเฉเจขเจฒเฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ‡เจน เจธเจ•เฉ€เจฎ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเจ•เฉ€เจฎ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจ†เจธเจพเจจ เจนเฉˆ.

เจ†เจ“ เจ…เจญเจฟเจ†เจธ เจตเฉฑเจฒ เจตเจงเฉ€เจเฅค

เจฒเฉ€เจจเจ•เจธ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ—เจฟเฉฑเจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจ‰เจฃเจพ

เจ†เจ“ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจเฅค

[root@server ~]# cd /var/
[root@server var]# useradd gitowner
[root@server var]# mkdir gitservertest
[root@server var]# chown gitowner:gitowner gitservertest
[root@server var]# adduser proj1
[root@server var]# adduser proj2
[root@server var]# adduser proj3
[root@server var]# adduser dev1
[root@server var]# adduser dev2
[root@server var]# passwd dev1
[root@server var]# passwd dev2

เจฎเฉˆเจ‚ เจนเฉฑเจฅเจพเจ‚ เจจเจพเจฒ เจŸเจพเจˆเจช เจ•เจฐเจ•เฉ‡ เจฅเฉฑเจ• เจ—เจฟเจ† เจนเจพเจ‚...

[root@server gitservertest]# sed "s/ /n/g" <<< "proj1 proj2 proj3" | while read u; do mkdir $u; chown $u:$u $u; chmod 0770 $u; done

[root@server gitservertest]# usermod -aG proj1 dev1
[root@server gitservertest]# usermod -aG proj2 dev1
[root@server gitservertest]# usermod -aG proj2 dev2
[root@server gitservertest]# usermod -aG proj3 dev2

เจธเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉˆ เจ•เจฟ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจฆเฉ‚เจœเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉ‡ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจฎเฉฑเจ—เจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃเจพ เจตเฉ€ เจ…เจธเฉฐเจญเจต เจนเฉˆเฅค

[dev1@server ~]$ cd /var/gitservertest/proj3
-bash: cd: /var/gitservertest/proj3: Permission denied
[dev1@server ~]$ ls /var/gitservertest/proj3
ls: cannot open directory /var/gitservertest/proj3: Permission denied

Git เจตเจฟเฉฑเจš เจ‡เฉฑเจ•เฉ‹ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ 'เจคเฉ‡ เจ•เจˆ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเจพเจฒ เจธเจนเจฟเจฏเฉ‹เจ— เจ•เจฐเฉ‹

เจ‡เฉฑเจ• เจธเจตเจพเจฒ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจซเจพเจˆเจฒ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฆเฉ‚เจœเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‰เจน เจ–เฉเจฆ เจ‡เจธเจฆเจพ เจฎเจพเจฒเจ• เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, dev1), เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฎเจพเจฒเจ• เจจเจนเฉ€เจ‚ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, proj1)เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจฐเจตเจฐ-เจธเจพเจˆเจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจนเฉˆ, เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจœเจพเจฃเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ ".git" เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจคเจฐ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉ€ เจจเจตเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจเฅค

เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• Git เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ Git เจธเจฐเจตเจฐ เจตเฉฑเจฒ เจงเฉฑเจ•เจฃเจพ

เจ†เจ‰ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฎเจธเจผเฉ€เจจ เจตเฉฑเจฒ เจตเจงเฉ€เจเฅค

Microsoft Windows [Version 6.1.7601]
(c) ะšะพั€ะฟะพั€ะฐั†ะธั ะœะฐะนะบั€ะพัะพั„ั‚ (Microsoft Corp.), 2009. ะ’ัะต ะฟั€ะฐะฒะฐ ะทะฐั‰ะธั‰ะตะฝั‹.

C:gittest>git init .
Initialized empty Git repository in C:/gittest/.git/

C:gittest>echo "test dev1 to proj2" > test1.txt

C:gittest>git add .

C:gittest>git status
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test1.txt

C:gittest>git commit -am "new test file added"
[master (root-commit) a7ac614] new test file added
 1 file changed, 1 insertion(+)
 create mode 100644 test1.txt
 
C:gittest>git remote add origin "ssh://[email protected]/var/gitservertest/proj2"

C:gittest>git push origin master
dev1:[email protected]'s password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 243 bytes | 243.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://10.1.1.11/var/gitservertest/proj2
 * [new branch]      master -> master

C:gittest>

เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจธเจฐเจตเจฐ 'เจคเฉ‡ เจจเจตเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจน เจ‰เจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจจ เจœเจฟเจธ เจจเฉ‡ เจชเฉเจธเจผ เจ•เฉ€เจคเจพ เจธเฉ€

[dev1@server proj2]$ tree
.
โ”œโ”€โ”€ 1.txt
โ”œโ”€โ”€ branches
โ”œโ”€โ”€ config
โ”œโ”€โ”€ description
โ”œโ”€โ”€ HEAD
โ”œโ”€โ”€ hooks
โ”‚   โ”œโ”€โ”€ applypatch-msg.sample
โ”‚   โ”œโ”€โ”€ commit-msg.sample
โ”‚   โ”œโ”€โ”€ post-update.sample
โ”‚   โ”œโ”€โ”€ pre-applypatch.sample
โ”‚   โ”œโ”€โ”€ pre-commit.sample
โ”‚   โ”œโ”€โ”€ prepare-commit-msg.sample
โ”‚   โ”œโ”€โ”€ pre-push.sample
โ”‚   โ”œโ”€โ”€ pre-rebase.sample
โ”‚   โ””โ”€โ”€ update.sample
โ”œโ”€โ”€ info
โ”‚   โ””โ”€โ”€ exclude
โ”œโ”€โ”€ objects
โ”‚   โ”œโ”€โ”€ 75
โ”‚   โ”‚   โ””โ”€โ”€ dcd269e04852ce2f683b9eb41ecd6030c8c841
โ”‚   โ”œโ”€โ”€ a7
โ”‚   โ”‚   โ””โ”€โ”€ ac6148611e69b9a074f59a80f356e1e0c8be67
โ”‚   โ”œโ”€โ”€ f0
โ”‚   โ”‚   โ””โ”€โ”€ 82ea1186a491cd063925d0c2c4f1c056e32ac3
โ”‚   โ”œโ”€โ”€ info
โ”‚   โ””โ”€โ”€ pack
โ””โ”€โ”€ refs
    โ”œโ”€โ”€ heads
    โ”‚   โ””โ”€โ”€ master
    โ””โ”€โ”€ tags

12 directories, 18 files
[dev1@server proj2]$ ls -l objects/75/dcd269e04852ce2f683b9eb41ecd6030c8c841
-r--r--r--. 1 dev1 dev1 54 Jun 20 14:34 objects/75/dcd269e04852ce2f683b9eb41ecd6030c8c841
[dev1@server proj2]$

เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ Git เจธเจฐเจตเจฐ 'เจคเฉ‡ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจตเจพเจงเฉ‚ เจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจฎเจพเจฒเจ• เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‰เจน เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจชเจฐ เจซเจฟเจฐ เจ‡เจนเจจเจพเจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฆเจพ เจธเจฎเฉ‚เจน เจตเฉ€ เจ‡เจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจธเจฎเฉ‚เจน เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจฐเจฅเจพเจค, dev1 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ dev1 เจธเจฎเฉ‚เจน เจ…เจคเฉ‡ dev2 เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ dev2 เจธเจฎเฉ‚เจน (เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจจเจพเจฒ เจฎเจฆเจฆ เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ‡เจ—เฉ€, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจซเจฟเจฐ เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ 'เจคเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹?) เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ‰เจชเจญเฉ‹เจ—เจคเจพ dev2 เจ‰เจชเจญเฉ‹เจ—เจคเจพ dev1 เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจˆเจ†เจ‚ เจ—เจˆเจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจœเจฟเจธ เจจเจพเจฒ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจตเจฟเฉฑเจš เจตเจฟเจ—เจพเฉœ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค

Linux chown - เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฆเฉ‡ เจฎเจพเจฒเจ• เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ

เจ•เจฟเจธเฉ‡ เจซเจผเจพเจˆเจฒ เจฆเจพ เจฎเจพเจฒเจ• เจ‡เจธเจฆเฉ€ เจฎเจฒเจ•เฉ€เจ…เจค เจจเจนเฉ€เจ‚ เจฌเจฆเจฒ เจธเจ•เจฆเจพเฅค เจชเจฐ เจ‰เจน เจ‰เจธ เจซเจพเจˆเจฒ เจฆเฉ‡ เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ‰เจธเจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจธ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฆเฉ‚เจœเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจธเฉฐเจธเจผเฉ‹เจงเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจ‰เจธเฉ‡ เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจนเจจ. เจ‡เจนเฉ€ เจธเจพเจจเฉ‚เฉฐ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจ—เจฟเฉฑเจŸ เจนเฉเฉฑเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจนเฉเฉฑเจ• เจฒเจˆ เจตเจฐเจ•เจฟเฉฐเจ— เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ€ เจฐเฉ‚เจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจนเฉˆเฅค เจนเฉเฉฑเจ• เจ‡เฉฑเจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจนเฉˆ เจœเฉ‹ เจชเฉเจธเจผ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ. เจ‡เจน เจœเจพเจฃ เจ•เฉ‡, เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ€เจ†เจ‚ เจฏเฉ‹เจœเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

[dev1@server proj2]$ mv hooks/post-update{.sample,}
[dev1@server proj2]$ sed -i '2,$ s/^/#/' hooks/post-update
[dev1@server proj2]$ cat <<< 'find . -group $(whoami) -exec chgrp proj2 '"'"'{}'"'"' ;' >> hooks/post-update

เจœเจพเจ‚ เจธเจฟเจฐเจซเจผ

vi hooks/post-update

เจ†เจ‰ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฎเจธเจผเฉ€เจจ เจคเฉ‡ เจตเจพเจชเจธ เจšเจฒเฉ€เจเฅค

C:gittest>echo "dev1 3rd line" >> test1.txt

C:gittest>git commit -am "3rd from dev1, testing server hook"
[master b045e22] 3rd from dev1, testing server hook
 1 file changed, 1 insertion(+)

C:gittest>git push origin master
dev1:[email protected]'s password:
   d22c66e..b045e22  master -> master

เจ—เจฟเฉฑเจŸ เจธเจฐเจตเจฐ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจ•เจฎเจฟเจŸ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเฉเฉฑเจ• เจชเฉ‹เจธเจŸ-เจ…เฉฑเจชเจกเฉ‡เจŸ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚

[dev1@server proj2]$ find . ! -group proj2

- เจ–เจพเจฒเฉ€, เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจนเฉˆเฅค

Git เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเฉ‚เฉฐ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจเจพ

เจ†เจ‰ เจฆเฉ‚เจœเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ€เจ.

เจ—เจพเจนเจ• 'เจคเฉ‡

C:gittest>git remote remove origin

C:gittest>git remote add origin "ssh://[email protected]/var/gitservertest/proj2"

C:gittest>echo "!!! dev2 added this" >> test1.txt

C:gittest>echo "!!! dev2 wrote" > test2.txt

C:gittest>git add test2.txt

C:gittest>git commit -am "dev2 added to test1 and created test2"
[master 55d49a6] dev2 added to test1 and created test2
 2 files changed, 2 insertions(+)
 create mode 100644 test2.txt

C:gittest>git push origin master
[email protected]'s password:
   b045e22..55d49a6  master -> master

เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจธเจฐเจตเจฐ เจคเฉ‡ ...

[dev1@server proj2]$ find . ! -group proj2

- เจฆเฉเจฌเจพเจฐเจพ เจ–เจพเจฒเฉ€, เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจ‡เฉฑเจ• Git เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ Git เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจจเจพ

เจ–เฉˆเจฐ, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจพเจฐ เจซเจฟเจฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค

C:gittest>rd /S /Q .
ะŸั€ะพั†ะตัั ะฝะต ะผะพะถะตั‚ ะฟะพะปัƒั‡ะธั‚ัŒ ะดะพัั‚ัƒะฟ ะบ ั„ะฐะนะปัƒ, ั‚ะฐะบ ะบะฐะบ ัั‚ะพั‚ ั„ะฐะนะป ะทะฐะฝัั‚ ะดั€ัƒะณะธะผ ะฟั€ะพั†ะตััะพะผ.

- เจ‡เฉฑเจ• เจ—เจฟเฉฑเจŸ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃ เจฒเจˆ, เจธเจฟเจฐเจซเจผ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจพเจซเจผ เจ•เจฐเฉ‹เฅค เจ†เจ‰ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจ—เจฒเจคเฉ€ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจ•เจฐเฉ€เจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจ…เจธเฉฐเจญเจต เจนเฉˆ, เจชเจฐ เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจนเฉ€ เจตเจฟเจตเจนเจพเจฐ เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆเฅค

C:gittest>dir
 ะกะพะดะตั€ะถะธะผะพะต ะฟะฐะฟะบะธ C:gittest

21.06.2019  08:43    <DIR>          .
21.06.2019  08:43    <DIR>          ..

C:gittest>git clone ssh://[email protected]/var/gitservertest/proj2
Cloning into 'proj2'...
[email protected]'s password:

C:gittest>cd proj2

C:gittestproj2>dir
 ะกะพะดะตั€ะถะธะผะพะต ะฟะฐะฟะบะธ C:gittestproj2

21.06.2019  08:46    <DIR>          .
21.06.2019  08:46    <DIR>          ..
21.06.2019  08:46               114 test1.txt
21.06.2019  08:46                19 test2.txt
C:gittestproj2>type test1.txt
"test dev1 to proj2"
"dev1 added some omre"
"dev1 3rd line"
"!!! dev2 added this"

C:gittestproj2>type test2.txt
"!!! dev2 wrote"

Git เจตเจฟเฉฑเจš เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจธเจพเจ‚เจเจพ เจ•เจฐเจจเจพ

เจนเฉเจฃ เจ‡เจน เจธเฉเจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเฉ€เจ เจ•เจฟ Git เจฆเฉเจ†เจฐเจพ เจตเฉ€ เจฆเฉ‚เจœเจพ เจกเจฟเจตเฉˆเจฒเจชเจฐ Proj1 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ, เจœเจฟเจธ 'เจคเฉ‡ เจ‰เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค

C:gittestproj2>git remote remove origin

C:gittestproj2>git remote add origin "ssh://[email protected]/var/gitservertest/proj1"

C:gittestproj2>git push origin master
[email protected]'s password:
fatal: '/var/gitservertest/proj1' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจชเจนเฉเฉฐเจš เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚

[root@server ~]# usermod -aG proj1 dev2

เจ…เจคเฉ‡ เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.

C:gittestproj2>git push origin master
[email protected]'s password:
To ssh://10.1.1.11/var/gitservertest/proj1
 * [new branch]      master -> master

เจตเจงเฉ‡เจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจˆ,

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจœเฉ‡ เจซเจพเจˆเจฒเจพเจ‚ เจ…เจคเฉ‡ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจกเจฟเจซเฉŒเจฒเจŸ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ, เจคเจพเจ‚ CentOS เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹

setfacl -Rd -m o::5 -m g::7 /var/gitservertest

เจฒเฉ‡เจ– เจตเจฟเจš เจตเฉ€ เจคเฉเจธเฉ€เจ‚ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจฒเจพเจญเจฆเจพเจ‡เจ• เจšเฉ€เจœเจผเจพเจ‚ 'เจคเฉ‡ เจ เฉ‹เจ•เจฐ เจ–เจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

  • เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจŸเฉเจฐเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡
  • เจ‡เฉฑเจ• เจ–เจพเจธ เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจซเจพเจˆเจฒ เจฆเฉ‡ เจ…เฉฐเจค เจคเฉฑเจ• sed เจตเจฟเฉฑเจš เจเจกเจฐเฉˆเฉฑเจธ เจฆเฉ€ เจ‡เฉฑเจ• เจฐเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเจพเจธ เจ•เจฐเจจเจพ เจนเฉˆ, เจฏเจพเจจเฉ€ เจชเจนเจฟเจฒเฉ€ เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจตเจฟเฉฑเจš sed เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฌเจฆเจฒเจฃเจพ เจนเฉˆ
  • เจฒเฉ€เจจเจ•เจธ เจ–เฉ‹เจœ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ–เฉ‹เจœ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ‰เจฒเจŸเจพเจ‰เจฃเจพ เจนเฉˆ
  • เจฒเฉ€เจจเจ•เจธ เจธเจผเฉˆเฉฑเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ•-เจฒเจพเจˆเจจเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจฒเฉ‚เจช เจตเจฟเฉฑเจš เจฎเจฒเจŸเฉ€เจชเจฒ เจฒเจพเจˆเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเจพเจธ เจ•เจฐเจจเจพ เจนเฉˆ
  • เจฌเฉˆเจธเจผ เจตเจฟเฉฑเจš เจธเจฟเฉฐเจ—เจฒ เจ•เฉ‹เจŸเจธ เจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจšเจฃเจพ เจนเฉˆ
  • เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจธเจพเจฐเฉ‡ เจญเจพเจ—เจพเจ‚ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจนเฉˆ
  • เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเจฟเจ–เฉ‡ เจฌเจฟเจจเจพเจ‚ เจจเจพเจฎ เจฌเจฆเจฒเจฃ เจฒเจˆ bash mv เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ

เจคเฉเจนเจพเจกเฉ‡ เจงเจฟเจ†เจจ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹