เปเบกเบทเปเบญเบเบดเบเบเบฑเปเบเปเบฅเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒเปเบเบตเบเปเบงเบต Git, เบเปเบฒเบเบฒเบกเบเบตเปเปเบเบตเบเบเบทเปเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบซเบผเบฒเบเปเปเบเบเบเบฒเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบปเปเบเบเปเบงเบฒเบเบฑเบเบซเบฒเปเบฅเบฐเบเบญเบเบซเบฒเบงเบดเบเบตเปเบเปเปเบเบเบตเปเบเบญเบเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเปเบญเบ: เบเปเบฒเบเบเบฒเบ, เบเบญเบเปเบ, เปเบเบทเปเบญเบเบทเปเบเป.
เบเบงเบฒเบกเบเบฒเบเบเบฐเบซเบเบฒเบเบญเบเบเปเบญเบเปเบกเปเบ:
- เบเบนเปเปเบเปเปเบเปเบฅเบฐเบเบปเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฑเบเบเบตเบเบญเบเบเบปเบเปเบญเบ
- เบเบนเปเปเบเปเบซเบผเบฒเบเบเบปเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบเบเบฒเบเบเบฝเบง
- เบเบนเปเปเบเปเบเบฝเบงเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบซเบผเบฒเบเปเบเบเบเบฒเบ
- เบเบนเปเปเบเปเปเบเปเบฅเบฐเบเบปเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฝเบเปเบเปเปเบเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบฑเปเบเบเบตเปเบฅเบฒเบงเปเบฎเบฑเบเบงเบฝเบ
- เบกเบฑเบเบเบงเบเบเบฐเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เปเบฅเบฐเบเปเปเบเบฝเบเปเบเปเบเปเบฒเบเบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบฒเบเปเบเปเบเบญเบเปเบงเบฑเบเปเบเบเป
เบกเบฑเบเบเบฐเปเบเบฑเบเบเบฒเบเบเบตเบซเบผเบฒเบ:
- เปเบซเปเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบญเปเบฒเบเบขเปเบฒเบเบเบฝเบงเบเบฑเบเบเบนเปเบเบงเบเบเบธเบก
- เบเบฑเบเบเบฒเบเบชเบดเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบญเบเบเบนเปเปเบเปเบขเปเบฒเบเบชเบฐเบเบงเบเปเบ Git
เบเบฒเบเบฅเบงเบกเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ GIT
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบฒเบ เบเบณ เปเบเบฑเบเบเปเบญเบเบฎเบนเปเบชเบดเปเบเบเบตเปเบเบฐเปเบฅเบทเบญเบเบเบฒเบ, เบชเบฐเบเบฑเปเบเบเบตเปเปเบกเปเบเบเบฒเบเบฅเบงเบกเปเบงเบเบญเบ Git protocols.
- ssh - เบเบฑเบเบเบตเบเบนเปเปเบเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบชเบฐเปเบเบฒเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
- เบกเบฑเบเปเบเบฑเบเปเบฅเบทเปเบญเบเปเบเบเบเบตเป Git เบเปเปเปเบเปเบเบปเบเปเบงเบฑเปเบเบเบฒเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบเบกเบฑเบเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบเบตเบเบฝเบงเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบดเบ repositories เบเบฑเบเบซเบกเบปเบ. เบญเบฑเบเบเบตเปเบเปเปเปเบเบฑเบเปเบเบเบฒเบกเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเบเปเบญเบเปเบฅเบตเบ.
- เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเบซเบผเบฒเบโเบเบฑเบโเบเบตโ, เปเบเปโเบงเบดโเบเบตโเบเบตเปโเบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเบเบฑเบโเบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเบนเปโเปเบเปโเบเบฝเบโเปเบเปโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเปเบโเบซเบเบถเปเบโ?
- เบเบฒเบเบเบดเบเปเบเบปเปเบฒเปเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบฎเบทเบญเบเปเบกเปเบเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบก, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบเบฒเบเบเบตเปเบเบฐเบเบฑเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเบฝเบเบขเบนเปเบเบตเปเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบญเบทเปเบเป
- เบเบฒเบเบเปเบฒเปเบเป symlinks เบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบฎเบทเบญเบเบเบญเบเบเปเบฒเบเปเบกเปเบเบเบฑเบเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเปเบเบฒเบฐเบงเปเบฒ Git เบเปเปเปเบเปเบเบตเบเบงเบฒเบกเบซเบกเบฒเบเปเบซเปเบเบงเบเปเบเบปเบฒเปเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป
- เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเบฒเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเบฒเบชเบฒ, เปเบเปเบเปเปเบกเบตเบเบฒเบเบฎเบฑเบเบเบฐเบเบฑเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเบงเปเบฒเบกเบฑเบเบเบฐเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเบชเบฐเปเบซเบกเบต
- เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฒเบเบเบฒเบชเบฒเบเปเบฒเบชเบฑเปเบเบเบญเบเบเปเบฒเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบเบฑเปเบเบเปเบฒเบง, เปเบเป
- เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเบตเปเปเบกเปเบเบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเบตเปเบซเบเบธเปเบเบเบฒเบเบเบฒเบเบขเปเบฒเบ,
- เปเบฅเบฐเบญเบฑเบเบเบตเบชเบญเบ, เบเบตเปเบชเบฒเบกเบฒเบเบซเบฅเบตเบเบฅเปเบฝเบเปเบเป.
- เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฒเบเบเบฒเบชเบฒเบเปเบฒเบชเบฑเปเบเบเบญเบเบเปเบฒเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเปเบเบฑเปเบเบเปเบฒเบง, เปเบเป
เปเบเปเบเบฒเบเบเบตเบกเบฑเบเบเปเปเปเบกเปเบเบเบฑเบเบซเบฒเบเบตเปเบเบนเปเปเบเปเบเบฐเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเปเบเป?.. เปเบเบเบเบปเปเบงเปเบ, เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเปเบชเบเปเบเปเบเปเบฒเบเปเบฒเบเบเบดเบเบญเบญเบเบขเปเบฒเบเปเบเปเบเบญเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเปเบกเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบเบซเบฒเบงเบดเบเบตเบเบตเปเปเบเบเบฒเบเบซเบผเบฑเบ, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฒเบฅเบฐเบเบฒเบชเบฑเปเบเปเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบ, เบเบฒเบเบเบตเบญเบฒเบเบกเบตเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเบงเปเบฒ.
- เปเบเปเบเบเบญเบเบเปเบญเบเบเบดเปเบ git เบชเบฒเบกเบฒเบเปเบเปเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฑเบ sshfs, เบเบนเปเปเบเปเบซเบผเบฒเบเบเบปเบเบชเบฒเบกเบฒเบเปเบเปเปเบเป, เปเบเปเบชเปเบฒเบเบฑเบเปเบกเปเบเบเบทเบเบฑเบเบเบฑเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเบฒเบเบกเบฒ.
- http - เบญเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบ
- git เปเบกเปเบเบญเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบ
- https - เบเบฒเบเบเบตเปเบเบฐเบเบดเบเบเบฑเปเบ, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบญเบเปเบงเปเบเบตเปเบกเปเบเบตเบก, เบเบฒเบเบเบฐเปเบเบเบเบญเบเปเบเบเบเบงเบเบเบธเบกเปเบเบทเปเบญเบเบฑเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบนเปเปเบเป ... เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเปเบเปเบเป, เปเบเปเบเบฒเบเบขเปเบฒเบเบเปเปเบชเบฑเบเบชเบปเบ.
เบเบฒเบเปเบเปเปเบเปเบเบเบญเบ ssh เปเบเบทเปเบญเบเบฑเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบผเบฒเบเบเบนเปเปเบเปเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ Git
เปเบซเปเบเบฑเบเบเบทเบเปเบเบซเบฒ ssh protocol.
เบเบฑเบเบเบฑเปเบเปเบเปเบเปเบฒเบเปเบเปเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบ ssh เบชเปเบฒเบฅเบฑเบ git, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฎเบฑเบเบเบฐเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบเปเปเบกเบนเบเปเบเบตเบเปเบงเบต. เบเบนเปเปเบเปเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบ ssh เปเบเปเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเบญเบเบเบปเบเปเบญเบเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Linux, เบเบฑเปเบเบเบฑเปเบเปเบเบปเบฒเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบเบฅเบนเบเบเปเบฒ ssh เปเบฅเบฐเปเบเบปเปเบฒเปเบเบดเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
เบเปเปเบกเบตเบเบฒเบเบเบปเบเบเปเบญเบเบขเปเบฒเบเบชเบปเบกเบเบนเบเบเปเปเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฑเปเบเบเปเบฒเบง.
เปเบเปเบเบนเปเปเบเปเบเปเปเบเบงเบเบชเบปเบเปเบเปเบเบฅเป Linux. เบเปเปเบกเบนเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบกเปเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบ git repository เปเบเบปเปเบฒเบเบฑเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเปเบเปเบฒเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเปเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เปเบเปเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบกเบท 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, เปเบเบเบเบฒเบเบเบตเปเปเบกเปเบเปเบเบทเปเบญเบเบทเปเบเป. เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบเบเบเบฒเบเปเบกเปเบเบเปเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเบเปเบฅเบดเบซเบฒเบ.
เบเปเปเบซเปเบเปเบฒเบงเปเบเบชเบนเปเบเบฒเบเบเบฐเบเบดเบเบฑเบ.
เบเบฒเบเบชเปเบฒเบเบเปเบญเบเปเบเบฑเบ Git เปเบเปเบเบตเบเปเบงเบต 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" เบกเบตเปเบเบเบชเปเบฒเบเปเบเบงเปเบเปเบฅเบฐเบงเปเบฒเปเบเบฅเปเปเบซเบกเปเบเบทเบเบชเปเบฒเบเบเบทเปเบ.
เบเบฒเบเบชเปเบฒเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ 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 hook
เปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบ hook เปเบกเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบเบเบญเบเปเบเบเบเบฒเบ. hook เปเบกเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเปเบเปเบเบนเปเปเบเปเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเบธเบเบเบนเป. เบฎเบนเปเปเบฅเบทเปเบญเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
[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, เบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบเบดเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ hook post-update script เบซเบผเบฑเบเบเบฒเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ
[dev1@server proj2]$ find . ! -group proj2
- เบซเบงเปเบฒเบเปเบเบปเปเบฒ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบต.
เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเบตเบชเบญเบเปเบ Git
เปเบซเป simulate เบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเบตเบชเบญเบ.
เบเปเบฝเบงเบเบฑเบเบฅเบนเบเบเปเบฒ
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
เบเบญเบเบเบฒเบเบเบฑเปเบเปเบเบเบปเบเบเบงเบฒเบกเปเบเบปเปเบฒเบญเบฒเบเบเบฐ stumble เบเบฑเบเบชเบดเปเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบเบฐเบซเบเบฒเบเบเปเบญเบ:
- เบงเบดเบเบตเบเบฒเบเบชเปเบฒเบเบเบปเปเบเปเบกเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบ Linux
- เบงเบดเบเบตเบเบฒเบเบเปเบฒเบเปเบฅเบเบฐเบเบญเบเบเบตเปเบขเบนเปเปเบ sed เบเบฒเบเปเบชเบฑเปเบเบเบตเปเปเบเปเบเบญเบเปเบเบซเบฒเบเปเบฒเบเบเบญเบเปเบเบฅเป, เบเบฑเปเบเปเบกเปเบ, เปเบฎเบฑเบเบเบฒเบเบเบปเบเปเบเบเปเบ sed เปเบเบเบธเบเปเบชเบฑเปเบเบเบปเบเปเบงเบฑเปเบเปเบเบงเบเปเบฒเบญเบดเบ.
- เบงเบดเบเบตเบเบฒเบเบเปเบฝเบเปเบเบทเปเบญเบเปเบเบเบฒเบเบเบญเบเบซเบฒเปเบ Linux เบเบญเบเบซเบฒ
- เบงเบดเบเบตเบเบฒเบเบเปเบฒเบเบซเบผเบฒเบเบชเบฒเบเปเบเบปเปเบฒเปเบเปเบ loop เปเบเบเปเบเปเปเบชเบฑเปเบเบเบฝเบงเปเบ Linux shell
- เบงเบดเบเบตเบเบฒเบเบซเบฅเบปเบเบซเบเบตเบเปเบฒเปเบงเบปเปเบฒเบเบฝเบงเปเบ bash
- เบงเบดเบเบตเบเบฒเบเบฅเบถเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบกเบตเปเบเบทเปเบญเบซเบฒเบเบฑเบเบซเบกเบปเบเบเบญเบเบกเบฑเบเบขเบนเปเปเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ windows
- เบงเบดเบเบตเบเบฒเบเปเบเป bash mv เปเบเบทเปเบญเบเปเบฝเบเบเบทเปเปเบเบฅเปเปเบเบเบเปเปเบเปเบญเบเบเบฝเบเบเบทเบเปเบซเบกเป
เบเปเบเบญเบเปเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบญเบปเบฒเปเบเปเบชเปเบเบญเบเบเปเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com