Git แกแแ แแแ แแก แแแกแขแแแแชแแแกแ แแ แแแแคแแแฃแ แแชแแแกแแก, แฉแแแแแ แแแแฎแแ แ แแแแแแแแ แแแแฎแแแ แแแแแกแแแแก แ แแแแแแแแ แแ แแแฅแขแแ แฌแแแแแแก แแ แแแแแแแแแก แจแแกแแฎแแ. แแ แแแแแแแแแแแ แแก แกแแแแแฎแ แแ แแแแแแ แแแแแกแแแแแ, แ แแแแแแช แแแแแงแแคแแแแแก แฉแแแก แงแแแแ แแแแฎแแแแแก: แแแ แขแแแ, แฃแกแแคแ แแฎแ, แกแแแแแแ.
แฉแแแ แกแฃแ แแแแแแแ:
- แแแแแแฃแแ แแแแฎแแแ แแแแแ แแแแแจแแ แแแก แกแแแฃแแแ แแแแแ แแจแก
- แ แแแแแแแแ แแแแฎแแแ แแแแแก แจแแฃแซแแแ แแ แ แแ แแแฅแขแแ แแฃแจแแแแ
- แแ แแกแ แแ แแแแแ แแแแฎแแแ แแแแแก แจแแฃแซแแแ แแแฃแจแแแก แแ แแแแ แแ แแแฅแขแแ
- แแแแแแฃแ แแแแฎแแแ แแแแแก แแฅแแก แฌแแแแแ แแฎแแแแ แแ แแ แแแฅแขแแแแ, แ แแแแแแแแช แแก แแฃแจแแแแก
- แจแแกแแซแแแแแแ แฃแแแ แแงแแก แแแแแแจแแ แแแ แแ แซแแแแแแก แฎแแแแก แแแจแแแแแแ แแ แแ แ แแฎแแแแ แ แแแแ แกแแฎแแก แแแ แแแขแแ แคแแแกแแก แกแแจแฃแแแแแแ
แแกแแแ แแแ แแ แแฅแแแแ:
- แแแแแแขแ แแแแแแ แแแ แแแก แแแแแแญแแ แแฎแแแแ แฌแแแแแฎแแแก แแแแแ แแแแแ
- แแแฎแแ แฎแแแฃแแแ แแแ แแแ แแแแฎแแแ แแแแแก แฌแแแแแแก แฃแคแแแแแแ Git-แจแ
GIT แกแแ แแแ แแ แฌแแแแแแก แจแแกแแซแแ แแแ แแแแขแแแแก แแแแแฎแแแแ
แฃแแแ แแแแแก แงแแแแแกแ, แแฅแแแ แฃแแแ แแชแแแแ แ แ แฃแแแ แแแ แฉแแแ, แแกแ แ แแ, แแฅ แแ แแก Git แแ แแขแแแแแแแแก แกแฌแ แแคแ แแแแแฎแแแแ.
- ssh - แกแแแชแแแแฃแ แแ แจแแฅแแแแแ แแแแฎแแแ แแแแแก แแแแแ แแจแ แแแแแแงแแแแแ แกแแ แแแ แแ แฌแแแแแแกแแแแก.
- แฃแชแแแฃแ แแ, แ แแ Git แแ แแแแแ แแชแฎแแแก แแแแแกแ แ แแแแแแแแแชแแแแแแแ แแ แแ แแแแแ แแจแแก แแแแแงแแแแแแก แงแแแแ แกแแชแแแจแ แฌแแแแแแกแแแแก. แแก แกแแแ แแแ แแ แแแแแงแแคแแแแแก แฉแแแก แแแแฎแแแแแแก.
- แแฅแแแ แจแแแแซแแแแ แแแแแแงแแแแ แแ แแแแแ แแแแแ แแจแ, แแแแ แแ แ แแแแ แจแแแแซแแแแ แจแแแฆแฃแแแ แแแแฎแแแ แแแแแก แฌแแแแแ แแฎแแแแ แแแ แแแแฃแ แแแ แแฅแขแแ แแแแ?
- แแแแแแ แ แแแ แแฅแขแแ แแแจแ แแแฎแฃแ แแ แแ แแ แแก แจแแกแแคแแ แแกแ, แ แแแแแ แซแแแแแ แกแฎแแ แแแแฎแแแ แแแแแแแกแแแแก แฉแแฌแแ แแก แฎแแแแแกแแฌแแแแแแแแก แแ แแแแแแแแ
- แกแแแแแแฃแ แ แแแฃแแแแแก แแแแแงแแแแแ แแฅแแแแ แกแแฎแแแก แแแ แแฅแขแแ แแแจแ แแกแแแ แ แแฃแแแ, แ แแแแแ Git แแ แแแแแแ แขแแแก แแแ, แ แแแแ แช แแแฃแแแแก
- แจแแกแแซแแแแแแแ แแแ แฏแแแแแก แฌแแแแแแก แจแแแฆแฃแแแ, แแแแ แแ แแ แแ แกแแแแแก แกแ แฃแแ แแแ แแแขแแ, แ แแ แแก แงแแแแแแแแก แแแฃแจแแแแแก
- แแฅแแแ แจแแแแซแแแแ แแแแแแแ แแแแแแแจแแ แแ แแฅแแแแ แแ แซแแแแแแก แแแ แฏแแแแแ แแกแแแ แแแแฎแแแ แแแแแแแกแแแแก, แแแแ แแ
- แฏแแ แแ แแ, แแก แฃแแแ แแ แแแแแ แ แ แแฃแแ แแแแแฌแงแแแขแแแแแแ,
- แแ แแแแ แแช, แแแแก แแแแ แแแก แแแแ แจแแกแแซแแแแแแแ.
- แแฅแแแ แจแแแแซแแแแ แแแแแแแ แแแแแแแจแแ แแ แแฅแแแแ แแ แซแแแแแแก แแแ แฏแแแแแ แแกแแแ แแแแฎแแแ แแแแแแแกแแแแก, แแแแ แแ
แแแแ แแ แแฅแแแ แแ แแ แแ แแแแแแ, แ แแ แแแแฎแแแ แแแแแแ แจแแซแแแก แ แแแแ แแ แซแแแแแแก แจแแกแ แฃแแแแ?.. แแแแแแแ, แแก แแแแแแ แแ แแ แแก แแแแแ แแชแฎแฃแแ, แแฃ แแฃแกแขแแ แแแแ แแแแแแ, แ แแแแ แแแแแแงแแแแ แแแ. แฉแแแ แแแแแแแแแแแ แแแแฃแแ แฃแแแแแแ แแ แแแแแแก, แแแแ แแ แแฎแแ แแแแแแ แแแแแแฎแแแแแ แกแฎแแ แแแขแแ แแแขแแแแแก, แแฅแแแ แแงแแก แ แแแแ แฃแคแ แ แแแ แขแแแ.
- git แแแแแแแแ แแแ แแ แแขแแแแแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก sshfs-แแแ แแ แแแ, แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแแแ แแแแฎแแแ แแแแแ, แแแแ แแ แแ แกแแแแแแ แแแแแแ, แ แแช แฌแแแ แจแแแแฎแแแแ
- http - แแฎแแแแ แฌแแกแแแแแฎแแ
- git แแ แแก แแฎแแแแ แฌแแแแแฎแแแแ
- https - แ แแฃแแ แแแกแแแแกแขแแแแ แแแแแแ, แแญแแ แแแแแ แแแแแขแแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ, แ แแแแ แกแแฎแแก แแแ แแแแก แแแแแแ แแแแฎแแแ แแแแแก แฌแแแแแแก แแ แแแแแแแแแกแแแแก... แ แแแแ แช แฉแแแก แจแแกแแกแ แฃแแแแแแ, แแแแ แแ แ แแฆแแชแแแแ แแ แงแแแแแคแแ แ แ แแฃแแแ.
ssh แแ แแขแแแแแแก แแแแแงแแแแแ Git แกแแ แแแ แแ แแ แแแแ แแแแฎแแแ แแแแแก แฌแแแแแแก แแ แแแแแแแแแกแแแแก
แแแแฃแแ แฃแแแแ ssh แแ แแขแแแแแก.
แแแแแแแแ แแงแแแแแ ssh แฌแแแแแแก git-แแกแแแแก, แแฅแแแ แฃแแแ แฃแแ แฃแแแแแงแแ แกแแ แแแ แแก แแแแแชแแแแแแก แฃแกแแคแ แแฎแแแแ. แแแแฎแแแ แแแแแ, แ แแแแแแช แแแแแจแแ แแแก ssh-แแก แกแแจแฃแแแแแแ, แแงแแแแแก แกแแแฃแแแ แจแแกแแแแก Linux แกแแ แแแ แแ, แแกแ แ แแ แแแ แจแแฃแซแแแแ แแแแแแจแแ แแแ ssh แแแแแแขแแก แแแจแแแแแแ แแ แกแแ แแแ แแก แแ แซแแแแแแก แฎแแแแแ แฌแแแแแ.
แแ แแ แกแแแแแก แกแ แฃแแ แแแชแแ แแกแแแ แฌแแแแแแกแแแ.
แแแแ แแ แแแแฎแแแ แแแแแ แแ แฃแแแ แแงแแก แแแแแขแแ แแกแแแฃแแ Linux แคแแแแแแแ. แแแแจแแแแแแแแแ แแแคแแ แแแชแแ แแแแฎแแแ แแฎแแแแ git แกแแชแแแจแ. แแฅแแแแ แแแแแแแแแแ แ, แจแแกแแซแแแแแแแ แแ แ แฌแแแแแแก แจแแแฆแฃแแแ แแ แซแแแแแแก แฎแแแแก แแแจแแแแแแ, แแ แแแแ 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-แแก แกแแแฃแจแแ แแแ แแฅแขแแ แแ แแ แแก แแ แแแฅแขแแก root แแแ แแฅแขแแ แแ. 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-แแก แคแฃแแฅแชแแแแแ แแแแก แแแแแฎแแแแแก แจแแแแแแแ แกแแ แแแขแแก แจแแกแ แฃแแแแแก แจแแแแแ
[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
แแกแแแ แกแขแแขแแแจแ แจแแแซแแแแ แฌแแแฌแงแแแ แแแขแแ แ แกแแกแแ แแแแแ แแแแแแแก:
- แ แแแแ แแแแจแแแแ แแแ แแฅแขแแ แแ แฎแ Linux-แจแ
- แ แแแแ แแแแแแแขแแแแ แแแกแแแแ แแแแแก แแแแแแแแแ sed-แจแ แแแ แแแแฃแแ แฎแแแแแแ แคแแแแแก แแแแแแแ, แแแฃ แฉแแแแแชแแแแ sed-แจแ แงแแแแ แกแขแ แแฅแแแจแ, แแแ แแ แแแ แแแแ แฎแแแแกแ
- แ แแแแ แจแแชแแแแแก แกแแซแแแแ แแแแแแแ แแแแ Linux Find-แจแ
- แ แแแแ แแแแแแแขแแแแ แแ แแแแแ แฎแแแ แแแ แงแฃแแจแ แแ แแ แแแแแแ แแก แแแแแงแแแแแแ Linux shell-แจแ
- แ แแแแ แแแแฅแชแแ แชแแแแแฃแ แชแแขแแขแแแก bash-แจแ
- แ แแแแ แฌแแจแแแแ แแแ แแฅแขแแ แแ แแแแแ แแแกแ แจแแแแแ แกแแ windows แแ แซแแแแแแก แฎแแแจแ
- แ แแแแ แแแแแแแงแแแแ bash mv แคแแแแแก แแแแแ แฅแแแแแก แแแแแแ แแแกแ แฎแแแแฎแแ แแแแแฌแแ แแก แแแ แแจแ
แแแแ แแแแแแแ แงแฃแ แแแฆแแแแกแแแแก.
แฌแงแแ แ: www.habr.com