เดœเดฟเดเดŸเดฟ เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเตพเดŸเตเดŸเดฟ-เดฏเต‚เดธเตผ เด†เด•เตโ€Œเดธเดธเต เด“เตผเด—เดจเตˆเดธเต‡เดทเตป

เด’เดฐเต Git เดธเต†เตผเดตเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เด†เด•เตเดธเดธเต เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเต‹เดฆเตเดฏเด‚ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต. เดžเดพเตป เดชเตเดฐเดถเตเดจเด‚ เด…เดจเตเดตเต‡เดทเดฟเดšเตเดšเต เดŽเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด†เดตเดถเตเดฏเด™เตเด™เดณเตเด‚ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ: เดฒเดณเดฟเดคเดตเตเด‚ เดธเตเดฐเด•เตเดทเดฟเดคเดตเตเด‚ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดตเตเดฎเดพเดฃเต.

เดŽเดจเตเดฑเต† เด†เด—เตเดฐเดนเด™เตเด™เตพ เด‡เดตเดฏเดพเดฃเต:

  • เด“เดฐเต‹ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเตเด‚ เด…เดตเดฐเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด…เด•เตเด•เต—เดฃเตเดŸเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
  • เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚
  • เด’เดฐเต‡ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดชเตเดฐเต‹เดœเด•เตเดŸเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚
  • เด“เดฐเต‹ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเด‚ เด…เดตเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดชเตเดฐเดตเต‡เดถเดจเดฎเตเดณเตเดณเต‚
  • เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‚เดŸเต† เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดตเดดเดฟ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚

เด…เดคเตเด‚ เดฎเดฟเด•เดšเตเดšเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

  • เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดตเตเดฏเด•เตเดคเดฟเด•เตพเด•เตเด•เต เดตเดพเดฏเดจ-เดฎเดพเดคเตเดฐเด‚ เด…เดจเตเดฎเดคเดฟ เดจเตฝเด•เตเด•
  • Git-เตฝ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด†เด•เตโ€Œเดธเดธเต เด…เดตเด•เดพเดถเด™เตเด™เตพ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเด•

GIT เดธเต†เตผเดตเตผ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดฎเดพเดฏ เด“เดชเตเดทเดจเตเด•เดณเตเดŸเต† เด…เดตเดฒเต‹เด•เดจเด‚

เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดŽเดจเตเดคเดพเดฃเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด…เดฑเดฟเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ Git เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเตเด•เดณเตเดŸเต† เด’เดฐเต เดฆเตเดฐเตเดค เด…เดตเดฒเต‹เด•เดจเด‚ เด‡เดคเดพ.

  • ssh - เดธเต†เตผเดตเตผ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด…เด•เตเด•เต—เดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.
    • เดŽเดฒเตเดฒเดพ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเตเด‚ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด…เด•เตเด•เต—เดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต Git เด…เดคเดฟเดจเตเดฑเต† เดถเตเดชเดพเตผเดถเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดดเดฟเดตเดพเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเต เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฃเต. เด‡เดคเต เดŽเดจเตเดฑเต† เด†เดตเดถเตเดฏเด™เตเด™เตพ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเดฟเดฒเตเดฒ.
    • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด…เด•เตเด•เต—เดฃเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดšเดฟเดฒ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด†เด•เตโ€Œเดธเดธเต เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต†?
      • เดนเต‹เด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด…เดŸเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดฎเดฑเตเดฑเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เด…เดตเดฟเดŸเต† เดŽเดดเตเดคเตเดคเต เด†เด•เตเดธเดธเต เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต
      • เดจเดฟเด™เตเด™เดณเตเดŸเต† เดนเต‹เด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดฟเด‚เดฒเดฟเด™เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต, เด•เดพเดฐเดฃเด‚ Git เด…เดตเดฏเต† เดฒเดฟเด™เตเด•เตเด•เดณเดพเดฏเดฟ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ
      • เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเดคเดฟเดจเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เด‰เดฑเดชเตเดชเดฟเดฒเตเดฒ
        • เด…เดคเตเดคเดฐเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด•เดฎเดพเตปเดกเต เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดชเด•เตเดทเต‡
          • เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เด’เดฐเตเดคเดฐเด‚ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เดคเต€เดฐเตเดฎเดพเดจเดฎเดพเดฃเต,
          • เดฐเดฃเตเดŸเดพเดฎเดคเดพเดฏเดฟ, เด‡เดคเต เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

    เดŽเดจเตเดจเดพเตฝ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเต เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚?.. เดชเตŠเดคเตเดตเต‡, เดˆ เดฐเต€เดคเดฟ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดพเตฝ เดˆ เดฐเต€เดคเดฟ เดคเดณเตเดณเดฟเด•เตเด•เดณเดฏเดพเดจเดพเดตเดฟเดฒเตเดฒ. เดžเด™เตเด™เตพ เดชเดฟเดจเตเดจเต€เดŸเต เดˆ เดฐเต€เดคเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด‚, เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดฎเดฑเตเดฑเต เด‡เดคเดฐเดฎเดพเตผเด—เด™เตเด™เตพ เดšเตเดฐเตเด•เตเด•เดฎเดพเดฏเดฟ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเด‚, เด’เดฐเตเดชเด•เตเดทเต‡ เดฒเดณเดฟเดคเดฎเดพเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚.

  • git เดฒเต‹เด•เตเด•เตฝ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ sshfs-เดฎเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เดฎเตเดฎเตเดชเดคเตเดคเต† เด•เต‡เดธเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต
  • http - เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเด‚
  • git เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเด‚
  • https - เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดชเตเดฐเดฏเดพเดธเดฎเดพเดฃเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดงเดฟเด• เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด†เด•เตโ€Œเดธเดธเต เด“เตผเด—เดจเตˆเดธเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดšเดฟเดฒ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเดพเดจเตฝ... เด‡เดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดŽเดฒเตเดฒเดพเด‚ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต.

Git เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเตพเดŸเตเดŸเดฟ-เดฏเต‚เดธเตผ เด†เด•เตโ€Œเดธเดธเต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต ssh เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฎเตเด•เตเด•เต ssh เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เดพเด‚.

เดจเดฟเด™เตเด™เตพ เดœเดฟเดฑเตเดฑเดฟเดจเดพเดฏเดฟ ssh เด†เด•เตโ€Œเดธเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดธเต†เตผเดตเตผ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดธเตเดฐเด•เตเดท เดจเดฟเด™เตเด™เตพ เด‰เดฑเดชเตเดชเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. ssh เดตเดดเดฟ เด•เดฃเด•เตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต Linux เดธเต†เตผเดตเดฑเดฟเตฝ เดธเตเดตเดจเตเดคเด‚ เดฒเต‹เด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เด…เดตเตผเด•เตเด•เต ssh เด•เตเดฒเดฏเดจเตเดฑเต เดตเดดเดฟ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.
เด…เดคเตเดคเดฐเด‚ เดชเตเดฐเดตเต‡เดถเดจเดคเตเดคเดฟเดจเต†เดคเดฟเดฐเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเดฐเดฟเดฐเด•เตเดทเดฏเดฟเดฒเตเดฒ.

เดŽเดจเตเดจเดพเตฝ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต Linux เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเดพเด•เดฐเตเดคเต. เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เดตเดฟเดตเดฐเด™เตเด™เตพ 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" เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต 1, เดชเตเดฐเต‹เดœเต 2 เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเด‚ "เดกเต†เดตเดฒเดชเตเดชเตผ 2" เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต 2, เดชเตเดฐเต‹เดœเต 3 เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดตเดดเดฟ ssh เดตเดดเดฟ เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดตเตผ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเดคเตเดค เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เดณเตเดŸเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด•เดพเดฃเดพเตป เดชเต‹เดฒเตเด‚ เด…เดตเดฐเตเดŸเต† เด…เดตเด•เดพเดถเด™เตเด™เตพ เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดฒเตเดฒ. เด‡เดคเต เดธเตเดตเดฏเด‚ เดฎเดพเดฑเตเดฑเดพเตป เด…เดฆเตเดฆเต‡เดนเดคเตเดคเดฟเดจเต เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.

เดˆ เดคเดคเตเดตเดคเตเดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเด‚ เดฒเดฟเดจเด•เตเดธเต เด…เดตเด•เดพเดถเด™เตเด™เดณเตเดŸเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเตเดฐเด•เตเดทเดฏเดพเดฏเดคเดฟเดจเดพเตฝ, เดˆ เดธเตเด•เต€เด‚ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฃเต. เด•เต‚เดŸเดพเดคเต†, เดธเตเด•เต€เด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต.

เดจเดฎเตเด•เตเด•เต เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เดพเด‚.

เด’เดฐเต เดฒเดฟเดจเด•เตเดธเต เดธเต†เตผเดตเดฑเดฟเตฝ Git เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฎเตเด•เตเด•เต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚.

[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 - เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดซเดฏเดฒเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดฏเต† เดฎเดพเดฑเตเดฑเตเดจเตเดจเต

เด’เดฐเต เดซเดฏเดฒเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดธเตเดฅเดจเต เด…เดคเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดธเตเดฅเดพเดตเด•เดพเดถเด‚ เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เด…เดฏเดพเตพเด•เตเด•เต เด…เดตเดจเตเดฑเต† เด‰เดŸเดฎเดธเตเดฅเดคเดฏเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดซเดฏเดฒเดฟเดจเตเดฑเต† เด—เตเดฐเต‚เดชเตเดชเต เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚, เดคเตเดŸเตผเดจเตเดจเต เด…เดคเต‡ เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเตเดณเตเดณ เดฎเดฑเตเดฑเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดˆ เดซเดฏเตฝ เดชเดฐเดฟเดทเตเด•เดฐเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚. เด…เดคเดพเดฃเต เดจเดฎเตเด•เตเด•เต เดตเต‡เดฃเตเดŸเดคเต.

Git เดนเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดนเตเด•เตเด•เดฟเดจเตเดณเตเดณ เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฑเต‚เดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดพเดฃเต. เดชเตเดทเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด•เต€เดดเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เด†เดฃเต เดนเตเด•เตเด•เต. เด‡เดคเดฑเดฟเดžเตเดžเต เดจเดฎเตเด•เตเด•เต เดจเดฎเตเดฎเตเดŸเต† เดชเดฆเตเดงเดคเดฟเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเด‚.

[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

Git เดธเต†เตผเดตเดฑเดฟเตฝ, เด•เดฎเตเดฎเดฟเดฑเตเดฑเดฟเดจเต เดถเต‡เดทเด‚ เดžเด™เตเด™เตพ เดนเตเด•เตเด•เต เดชเต‹เดธเตเดฑเตเดฑเต-เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต

[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 .
ะŸั€ะพั†ะตัั ะฝะต ะผะพะถะตั‚ ะฟะพะปัƒั‡ะธั‚ัŒ ะดะพัั‚ัƒะฟ ะบ ั„ะฐะนะปัƒ, ั‚ะฐะบ ะบะฐะบ ัั‚ะพั‚ ั„ะฐะนะป ะทะฐะฝัั‚ ะดั€ัƒะณะธะผ ะฟั€ะพั†ะตััะพะผ.

โ€” เด’เดฐเต Git เดชเตเดฐเตŠเดœเด•เตโ€Œเดฑเตเดฑเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเตป, เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดฎเดพเดฏเตโ€Œเด•เตเด•เตเด•. เดˆ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเต เด…เดธเดพเดงเตเดฏเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดชเดฟเดถเด•เต เดจเดฎเตเด•เตเด•เต เดธเดนเดฟเด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เด‡เดคเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเตเดตเดญเดพเดตเดฎเดพเดฃเต.

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-เตฝ เดชเด•เดฐเด‚ เดตเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต†
  • Linux เดซเตˆเตปเดกเดฟเตฝ เด’เดฐเต เดคเดฟเดฐเดฏเตฝ เด…เดตเดธเตเดฅ เดŽเด™เตเด™เดจเต† เดตเดฟเดชเดฐเต€เดคเดฎเดพเด•เตเด•เดพเด‚
  • Linux เดทเต†เดฒเตเดฒเดฟเดฒเต† เด’เดฐเต เดตเตบ-เดฒเตˆเดจเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดฒเต‚เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฒเตˆเดจเตเด•เตพ เดŽเด™เตเด™เดจเต† เด•เดŸเดคเตเดคเดฟเดตเดฟเดŸเดพเด‚
  • เดฌเดพเดทเดฟเดฒเต† เด’เดฑเตเดฑ เด‰เดฆเตเดงเดฐเดฃเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเด™เตเด™เดจเต† เดฐเด•เตเดทเดชเตเดชเต†เดŸเดพเด‚
  • เดตเดฟเตปเดกเต‹เดธเต เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เดณเตเดฎเตเดณเตเดณ เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดŽเด™เตเด™เดจเต† เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเด‚
  • เด’เดฐเต เดซเดฏเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เดŽเดดเตเดคเดพเดคเต† เดคเดจเตเดจเต† เดชเต‡เดฐเตเดฎเดพเดฑเตเดฑเดพเตป เดฌเดพเดทเต เดŽเด‚เดตเดฟ เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดถเตเดฐเดฆเตเดงเดฏเตเด•เตเด•เต เดจเดจเตเดฆเดฟ.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•