เชเชฟเช เชธเชฐเซเชตเชฐเชจเซ เชเชจเซเชธเซเชเซเชฒ เช เชจเซ เชเซเช เชตเชคเซ เชตเชเชคเซ, เชเชฃเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชเชฃเชพ เชชเซเชฐเซเชเซเชเซเชเซเชธเชจเซ เชเชเซเชธเซเชธ เชเซเช เชตเชตเชพเชจเซ เชชเซเชฐเชถเซเชจ เชเชญเซ เชฅเชพเชฏ เชเซ. เชฎเซเช เช เชฎเซเชฆเซเชฆเชพ เชชเชฐ เชฅเซเชกเซเช เชธเชเชถเซเชงเชจ เชเชฐเซเชฏเซเช เช เชจเซ เชเช เชเชเซเชฒ เชฎเชณเซเชฏเซ เชเซ เชฎเชพเชฐเซ เชฌเชงเซ เชเชตเชถเซเชฏเชเชคเชพเชเชจเซ เชชเซเชฐเซเชฃ เชเชฐเซ เชเซ: เชธเชฐเชณ, เชธเชฒเชพเชฎเชค, เชตเชฟเชถเซเชตเชธเชจเซเชฏ.
เชฎเชพเชฐเซ เชเชเซเชเชพเช เชเซ:
- เชฆเชฐเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชคเซเชฎเชจเชพ เชชเซเชคเชพเชจเชพ เชเชเชพเชเชจเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฏ เชเซ
- เชเช เช เชชเซเชฐเซเชเซเชเซเช เชชเชฐ เชฌเชนเซเชตเชฟเชง เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชเชพเชฎ เชเชฐเซ เชถเชเซ เชเซ
- เชเช เช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฌเชนเซเชตเชฟเชง เชชเซเชฐเซเชเซเชเซเชเซเชธ เชชเชฐ เชเชพเชฎ เชเชฐเซ เชถเชเซ เชเซ
- เชฆเชฐเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชซเชเซเชค เชคเซ เชชเซเชฐเซเชเซเชเซเชเซเชธเชจเซ เชเชเซเชธเซเชธ เชนเซเชฏ เชเซ เชเซเชจเชพ เชชเชฐ เชคเซ เชเชพเชฎ เชเชฐเซ เชเซ
- เชเชฆเซเชถ เชตเชพเชเซเชฏ เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเช เชเชฐเชตเซเช เชถเชเซเชฏ เชนเซเชตเซเช เชเซเชเช, เช เชจเซ เชฎเชพเชคเซเชฐ เช เชฎเซเช เชชเซเชฐเชเชพเชฐเชจเชพ เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธ เชฆเซเชตเชพเชฐเชพ เชจเชนเซเช
เชคเซ เชชเชฃ เชฎเชนเชพเชจ เชนเชถเซ:
- เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชตเซเชฏเชเซเชคเชฟเชเชจเซ เชซเชเซเชค เชตเชพเชเชเชตเชพเชจเชพ เช เชงเชฟเชเชพเชฐเซ เชเชชเซ
- Git เชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชชเชฐเชตเชพเชจเชเซเชเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเซ
GIT เชธเชฐเซเชตเชฐเชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชธเชเชญเชตเชฟเชค เชตเชฟเชเชฒเซเชชเซเชจเซ เชเชพเชเชเซ
เชธเซ เชชเซเชฐเชฅเชฎ, เชคเชฎเชพเชฐเซ เชถเซเช เชชเชธเชเชฆ เชเชฐเชตเซเช เชคเซ เชเชพเชฃเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซเชฅเซ เชเชฟเช เชชเซเชฐเซเชเซเชเซเชฒเซเชธเชจเซ เชธเชเชเซเชทเชฟเชชเซเชค เชเชพเชเชเซ.
- ssh - เชธเชฐเซเชตเชฐเชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชพเชธ เชฌเชจเชพเชตเซเชฒ เชฏเซเชเชฐ เชเชเชพเชเชจเซเชเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ.
- เชคเซ เชตเชฟเชเชฟเชคเซเชฐ เชเซ เชเซ เชเชฟเช เชคเชฎเชพเชฎ เชฐเชฟเชชเซเชเซเชเชฐเซเชเชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชเชเชพเชเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเชคเซเช เชจเชฅเซ. เช เชฎเชพเชฐเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เชฌเชฟเชฒเชเซเชฒ เชชเซเชฐเซเชฃ เชเชฐเชคเซเช เชจเชฅเซ.
- เชคเชฎเซ เชฌเชนเซเชตเชฟเชง เชเชเชพเชเชจเซเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชคเชฎเซ เชซเชเซเชค เช
เชฎเซเช เชกเชฟเชฐเซเชเซเชเชฐเซเช เชธเซเชงเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชเชเซเชธเซเชธเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเซ เชถเชเซ เชเซ?
- เชนเซเชฎ เชกเชฟเชฐเซเชเซเชเชฐเซเชจเซ เชฌเชเชง เชเชฐเชตเซเช เชฏเซเชเซเชฏ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซเชฏเชพเช เช เชจเซเชฏ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชฒเซเชเชจ เชเชเซเชธเซเชธ เชเซเช เชตเชตเชพเชจเซเช เชฎเซเชถเซเชเซเชฒ เชเซ
- เชนเซเชฎ เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชธเชพเชเชเซเชคเชฟเช เชฒเชฟเชเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชฃ เชฎเซเชถเซเชเซเชฒ เชเซ เชเชพเชฐเชฃ เชเซ เชเชฟเช เชคเซเชฎเชจเซ เชฒเชฟเชเชเซเชธ เชคเชฐเซเชเซ เช เชฐเซเชฅเชเชเชจ เชเชฐเชคเซเช เชจเชฅเซ.
- เชฆเซเชญเชพเชทเชฟเชฏเชพเชจเซ เชเชเซเชธเซเชธเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเซ, เชธเชพเชฐเซเช, เชคเชฎเซ เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชคเซเชฏเชพเช เชเซเช เชธเชเชชเซเชฐเซเชฃ เชเซเชฐเซเชเชเซ เชจเชฅเซ เชเซ เช เชนเชเชฎเซเชถเชพ เชเชพเชฎ เชเชฐเชถเซ
- เชคเชฎเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชตเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชคเชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เชเชฆเซเชถ เชฆเซเชญเชพเชทเชฟเชฏเชพเชจเซ เชเชจเซเชเซเช เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ,
- เชชเซเชฐเชฅเชฎ, เช เชชเชนเซเชฒเซเชฅเซ เช เชเช เชชเซเชฐเชเชพเชฐเชจเซ เชฎเซเชถเซเชเซเชฒ เชจเชฟเชฐเซเชฃเชฏ เชเซ,
- เช เชจเซ 2, เชคเซเชจเซ เชฌเชพเชฏเชชเชพเชธ เชเชฐเซ เชถเชเชพเชฏ เชเซ.
- เชคเชฎเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชตเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เชคเชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพ เชเชฆเซเชถ เชฆเซเชญเชพเชทเชฟเชฏเชพเชจเซ เชเชจเซเชเซเช เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ,
เชชเชฐเชเชคเซ เชเชฆเชพเช เชคเซ เชเซเช เชธเชฎเชธเซเชฏเชพ เชจเชฅเซ เชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชเชชเชฃ เชเชฆเซเชถเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชนเชถเซ? .. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชเซ เชคเชฎเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เชคเซ เชฌเชฐเชพเชฌเชฐ เชธเชฎเชเชคเชพ เชนเซเชต เชคเซ เช เชชเชฆเซเชงเชคเชฟเชจเซ เชจเชเชพเชฐเซ เชถเชเชพเชฏ เชจเชนเซเช. เช เชฎเซ เชชเชเซเชฅเซ เช เชชเชฆเซเชงเชคเชฟ เชชเชฐ เชชเชพเชเชพ เชเชตเซเชถเซเช, เชชเชฐเชเชคเซ เชนเชฎเชฃเชพเช เชฎเชพเชเซ เช เชฎเซ เชฌเชพเชเซเชจเชพ เชตเชฟเชเชฒเซเชชเซเชจเซ เชเซเชเชเชฎเชพเช เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช, เชเชฆเชพเช เชเชเชเช เชธเชฐเชณ เชนเชถเซ.
- git เชฒเซเชเชฒ เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เชเชชเชฏเซเช sshfs เชธเชพเชฅเซ เชธเชเชฏเซเชเชจเชฎเชพเช เชฅเช เชถเชเซ เชเซ, เชฌเชนเซเชตเชฟเชง เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชชเชฐเชเชคเซ เชคเซ เชเชตเชถเซเชฏเชเชชเชฃเซ เช เชเชพเชเชจเชพ เชเซเชธเชจเซ เชเซเชฎ เช เชเซ
- http - เชซเชเซเชค เชตเชพเชเชเซ
- git เชซเชเซเชค เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชเซ
- https เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเซเช เชฎเซเชถเซเชเซเชฒ เชเซ, เชคเชฎเชพเชฐเซ เชตเชงเชพเชฐเชพเชจเชพ เชธเซเชซเซเชเชตเซเชฐเชจเซ เชเชฐเซเชฐ เชเซ, เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชเซเชธเซเชธเชจเซ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เช เชฎเซเช เชชเซเชฐเชเชพเชฐเชจเชพ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชชเซเชจเชฒเชจเซ เชเชฐเซเชฐ เชเซ ... เชคเซ เชถเชเซเชฏ เชฒเชพเชเซ เชเซ, เชชเชฐเชเชคเซ เชเซเชเช เชฐเซเชคเซ เชฌเชงเซเช เชเชเชฟเชฒ เชเซ.
เชเชฟเช เชธเชฐเซเชตเชฐ เชชเชฐ เชฎเชฒเซเชเชฟ-เชฏเซเชเชฐ เชเชเซเชธเซเชธ เชเซเช เชตเชตเชพ เชฎเชพเชเซ ssh เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ
เชเชพเชฒเซ ssh เชชเซเชฐเซเชเซเชเซเชฒ เชชเชฐ เชชเชพเชเชพ เชเชเช.
ssh เชเชเซเชธเซเชธเชจเซ เชเชชเชฏเซเช git เชฎเชพเชเซ เชฅเชคเซ เชนเซเชตเชพเชฅเซ, เชธเชฐเซเชตเชฐ เชกเซเชเชพ เชธเซเชฐเชเซเชทเชฟเชค เชนเซเชตเซ เชเชฐเซเชฐเซ เชเซ. เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซ ssh เชฆเซเชตเชพเชฐเชพ เชเซเชกเชพเชฏ เชเซ เชคเซ Linux เชธเชฐเซเชตเชฐ เชชเชฐ เชคเซเชฎเชจเชพ เชชเซเชคเชพเชจเชพ เชฒเซเชเชฟเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชเซเชฅเซ เชคเซเช ssh เชเซเชฒเชพเชฏเชเช เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเช เชฅเช เชถเชเซ เช
เชจเซ เชธเชฐเซเชตเชฐเชจเซ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจเชจเซ เชเชเซเชธเซเชธ เชเชฐเซ เชถเชเซ.
เชเชตเซ เชชเชนเซเชเช เชฎเซเชณเชตเชตเชพ เชธเชพเชฎเซ เชเซเช เชธเชเชชเซเชฐเซเชฃ เชฐเชเซเชทเชฃ เชจเชฅเซ.
เชชเชฐเชเชคเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ Linux เชซเชพเชเชฒเซเชฎเชพเช เชฐเชธ เชจ เชนเซเชตเซ เชเซเชเช. เช
เชฐเซเชฅเชชเซเชฐเซเชฃ เชฎเชพเชนเชฟเชคเซ เชซเชเซเชค เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช เช เชธเชเชเซเชฐเชนเชฟเชค เชฅเชพเชฏ เชเซ. เชคเซเชฅเซ, เชคเชฎเซ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชฆเซเชตเชพเชฐเชพ เชเชเซเชธเซเชธเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชฒเชฟเชจเชเซเชธ เชฆเซเชตเชพเชฐเชพ, เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชชเซเชฐเซเชเซเชเซเชเซเชธ เชเซเชตเชพเชฅเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเซ, เชเซเชฎเชพเช เชคเซ เชญเชพเช เชฒเซ เชเซ เชคเซ เชธเชฟเชตเชพเชฏ.
Linux เชชเชฐเชตเชพเชจเชเซ เชธเชฟเชธเซเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชธเซเชชเชทเซเช เชเซ.
เชชเชนเซเชฒเซเชฅเซ เช เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ เชคเซเชฎ, ssh เชเชเซเชธเซเชธ เชฎเชพเชเซ เชฎเชพเชคเซเชฐ เชเช เชเชเชพเชเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชถเชเซเชฏ เชเซ. เช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเชฃเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฎเชพเชเซ เช เชธเซเชฐเชเซเชทเชฟเชค เชเซ, เชเซ เชเซ เชคเซ เชญเชฒเชพเชฎเชฃ เชเชฐเซเชฒ เชตเชฟเชเชฒเซเชชเซเชจเซ git เชจเซ เชฏเชพเชฆเซเชฎเชพเช เชธเชฎเชพเชฏเซเชฒ เชเซ.
เชฒเซเชเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชเชชเซเชฒเซ เชเชตเชถเซเชฏเชเชคเชพเชเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ, เชจเซเชเซเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซ เชฎเชพเชณเชเซเช เช เชงเชฟเชเชพเชฐเซ เช เชจเซ เชฎเชพเชฒเชฟเชเซเชจเซ เชธเซเชเชชเชฃเซ เชธเชพเชฅเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ:
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 เชเชพเชธ เชฌเชจเชพเชตเซเชฒ Linux เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชเซ เชเซเชเชจเซ เชธเชเชฌเชเชงเชฟเชค เชชเซเชฐเซเชเซเชเซเช เชกเชฟเชฐเซเชเซเชเชฐเซเชเชจเชพ เชฎเชพเชฒเชฟเชเซ เชคเชฐเซเชเซ เชธเซเชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชคเชฎเชพเชฎ เชกเชฟเชฐเซเชเซเชเชฐเซเชเชจเชพ เช เชงเชฟเชเชพเชฐเซ 0770 เชชเชฐ เชธเซเช เชเซ - เชฎเชพเชฒเชฟเช เช เชจเซ เชคเซเชจเชพ เชเซเชฅ เชฎเชพเชเซ เชธเชเชชเซเชฐเซเชฃ เชเชเซเชธเซเชธ, เช เชจเซ เช เชจเซเชฏ เชฆเชฐเซเช เชฎเชพเชเซ เชธเชเชชเซเชฐเซเชฃ เชชเซเชฐเชคเชฟเชฌเชเชง.
2) เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชเชเชพเชเชจเซเชเซเชธ
ะ ะฐะทัะฐะฑะพััะธะบ 1: dev1:dev1,proj1,proj2
ะ ะฐะทัะฐะฑะพััะธะบ 2: dev2:dev2,proj2,proj3
เชฎเซเชเซเชฏ เชฎเซเชฆเซเชฆเซ เช เชเซ เชเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชเชจเซ เชธเชฟเชธเซเชเชฎ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เชตเชงเชพเชฐเชพเชจเชพ เชเซเชฅเชจเซ เชธเซเชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เช เชจเซเชฐเซเชช เชชเซเชฐเซเชเซเชเซเชเชจเซ เชฎเชพเชฒเชฟเชเซ เชงเชฐเชพเชตเซ เชเซ. เช เชเช เชเชฆเซเชถ เชธเชพเชฅเซ Linux เชธเชฐเซเชตเชฐ เชเชกเชฎเชฟเชจเชฟเชธเซเชเซเชฐเซเชเชฐ เชฆเซเชตเชพเชฐเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เช เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ 1 เชชเซเชฐเซเชเซเชเซเชเซเชธ proj1 เช เชจเซ proj2 เชชเชฐ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ, เช เชจเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ 2 เชชเซเชฐเซเชเซเชเซเชเซเชธ proj2 เช เชจเซ proj3 เชชเชฐ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ.
เชเซ เชเซเช เชชเชฃ เชกเซเชตเชฒเชชเชฐเซเชธ เชเชฆเซเชถ เชตเชพเชเซเชฏ เชฆเซเชตเชพเชฐเชพ ssh เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเช เชฅเชพเชฏ เชเซ, เชคเซ เชคเซเชจเชพ เช เชงเชฟเชเชพเชฐเซ เชเชตเชพ เชชเซเชฐเซเชเซเชเซเชเซเชธเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซเชเชจเซ เชธเชพเชฎเชเซเชฐเซ เชเซเชตเชพ เชฎเชพเชเซ เชชเชฃ เชชเซเชฐเชคเชพ เชฐเชนเซเชถเซ เชจเชนเซเช เชเซเชฎเชพเช เชคเซ เชญเชพเช เชฒเซเชคเซ เชจเชฅเซ. เชคเซ เชชเซเชคเซ เชคเซเชจเซ เชฌเชฆเชฒเซ เชถเชเชคเซ เชจเชฅเซ.
เช เชธเชฟเชฆเซเชงเชพเชเชคเชจเซ เชเชงเชพเชฐ Linux เช เชงเชฟเชเชพเชฐเซเชจเซ เชฎเซเชณเชญเซเชค เชธเซเชฐเชเซเชทเชพ เชนเซเชตเชพเชฅเซ, เช เชฏเซเชเชจเชพ เชตเชฟเชถเซเชตเชธเชจเซเชฏ เชเซ. เชตเชงเซเชฎเชพเช, เชฏเซเชเชจเชพเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเซเช เชเซเชฌ เช เชธเชฐเชณ เชเซ.
เชเชพเชฒเซ เชชเซเชฐเซเชเซเชเชฟเชธ เชคเชฐเชซ เชเชเชณ เชตเชงเซเช.
เชฒเชฟเชจเชเซเชธ เชธเชฐเซเชตเชฐ เชชเชฐ เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซเช เชฌเชจเชพเชตเชตเซ
เช เชฎเซ เชคเชชเชพเชธเซเช เชเซเช.
[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" เชกเชฟเชฐเซเชเซเชเชฐเซ เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชตเชพเชฏ เชเซ เช เชจเซ เชจเชตเซ เชซเชพเชเชฒเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชเซเชฎ.
เชธเซเชฅเชพเชจเชฟเช เชเชฟเช เชฐเชฟเชชเซเชเซเชเชฐเซ เชฌเชจเชพเชตเซ เช เชจเซ เชเชฟเช เชธเชฐเซเชตเชฐ เชชเชฐ เชฆเชฌเชพเชฃ เชเชฐเซ
เชเชพเชฒเซ เชเซเชฒเชพเชฏเชจเซเช เชฎเชถเซเชจ เชชเชฐ เชเชเชณ เชตเชงเซเช.
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
- เชเชพเชฒเซ, เชฌเชงเซเช เชธเชพเชฐเซเช เชเซ.
เชฌเซเชเชพ เชกเซเชตเชฒเชชเชฐเชจเซ เชเชฟเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
เชเชพเชฒเซ เชฌเซเชเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชจเชพ เชเชพเชฐเซเชฏเชจเซเช เช เชจเซเชเชฐเชฃ เชเชฐเซเช.
เชเซเชฒเชพเชฏเชจเซเช เชชเชฐ
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
- เชซเชฐเซเชฅเซ เชเชพเชฒเซ, เชฌเชงเซเช เชเชพเชฎ เชเชฐเซ เชเซ.
เชเชฟเช เชชเซเชฐเซเชเซเชเซเชเชจเซ เชเชพเชขเซ เชจเชพเชเชตเซเช เช เชจเซ เชเชฟเช เชธเชฐเซเชตเชฐเชฎเชพเชเชฅเซ เชชเซเชฐเซเชเซเชเซเช เชฒเซเชก เชเชฐเชตเซ
เช เซเช เชเซ, เชคเชฎเซ เชซเชฐเซ เชเชเชตเชพเชฐ เชเชพเชคเชฐเซ เชเชฐเซ เชถเชเซ เชเซ เชเซ เชฌเชงเชพ เชซเซเชฐเชซเชพเชฐเซ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ.
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 เชฆเซเชตเชพเชฐเชพ 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 เชฎเชพเช เชถเซเชง เชธเซเชฅเชฟเชคเชฟ เชเซเชตเซ เชฐเซเชคเซ เชเชฒเชเชพเชตเซ เชถเชเชพเชฏ
- เชฒเชฟเชจเชเซเชธ เชถเซเชฒเชฎเชพเช เชตเชจ-เชฒเชพเชเชจเชฐ เชฆเซเชตเชพเชฐเชพ เชฌเชนเซเชตเชฟเชง เชฒเชพเชเชจ เชเซเชตเซ เชฐเซเชคเซ เชชเชธเชพเชฐ เชเชฐเชตเซ
- เชฌเซเชถเชฎเชพเช เชธเชฟเชเชเชฒ เชเซเชตเซเชเซเชธเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชฌเชเชตเซเช
- เชตเชฟเชจเซเชกเซเช เชเชฎเชพเชจเซเชก เชฒเชพเชเชจเชฎเชพเช เชคเชฎเชพเชฎ เชธเชพเชฎเชเซเชฐเซ เชธเชพเชฅเซเชจเซ เชกเชฟเชฐเซเชเซเชเชฐเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชขเซ เชจเชพเชเชตเซ
- เชฌเซเชถ เชเชฎเชตเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชซเชพเชเชฒเชจเซ เชซเชฐเซเชฅเซ เชฒเชเซเชฏเชพ เชตเชฟเชจเชพ เชคเซเชจเซเช เชจเชพเชฎ เชเซเชตเซ เชฐเซเชคเซ เชฌเชฆเชฒเชตเซเช
เชคเชฎเชพเชฐเซเช เชงเซเชฏเชพเชจ เชฌเชฆเชฒ เชเชญเชพเชฐ.
เชธเซเชฐเซเชธ: www.habr.com