ubuntu14.04git 서버, 원격 창고 구축, 자동 배치

2443 단어 git서버
건설하는 과정에서 세부 사항이 너무 많고 커브도 많이 걸었기 때문에 말하지 않고 주로 몇 가지 주의점을 이야기했다.
1. 반드시 잘못된 힌트를 보는 것을 배워야 한다
잘못된 힌트에서 많은 것을 볼 수 있다. 예를 들어 어디에 권한이 부족한지 알려주면 권한을 바꾸는 것을 알아야 한다
비교적 유용한 두 명령:
chgrp -R [ ] [ ]
chmod -R g+rws [ ]

2. 몇 군데git 창고
우선/home/git/아래의 xx입니다.git 라이브러리, 이것이 바로 우리의 주인공인 git 센터 서버입니다. 이것은 나체 라이브러리입니다. 즉git init--bare--shared로 만든 것입니다. 수정 역사만 유지하고 작업 경로를 만드는 것은 책임지지 않기 때문에 아무리 제출(push)하더라도 이 디렉터리에는 xx만 있습니다.git, 나머지 물건이 없으니 이상하게 생각하지 마세요.
두 번째 곳은/var/www/html/xx 아래의git 라이브러리입니다. 이것은 코드를 배치하는 git 라이브러리입니다. 이 안의 내용은 아파치 서버에서 직접 처리됩니다. 이것은 누드 라이브러리가 아닙니다. 아파치에 실제 존재하는 파일을 제공해야 하기 때문입니다.
세 번째는/home/jpz/하의 xx입니다.git 라이브러리, 엄격한 의미에서 보면 이것은 독립된git 라이브러리가 아니라 소프트 연결 방식(ln-s)을 통해 우리가 처음으로 언급한 누드 라이브러리에 연결된다. 그러면 우리는 ssh를 통해 사용자 jpz를 연결하는 방식으로 인터넷에서 각종git 조작을 할 수 있다.
네 번째~n은 우리가 방금 언급한 ssh를 통해 jpz 사용자를 어느 구석에서든 clonegit 라이브러리에 연결한 다음에git init 등 후속 작업을 할 수 있는 곳이다.
3, 자동 배포
hooks 아래의post-receive를 작성합니다. 환경 변수를 env-i로 무시하십시오. gitpull에서 사용하는 기본 경로는 PWD가 아니기 때문입니다.
다음은 내 부분의 시도 경과를 붙여서 정리하고 싶지 않다.
	ssh x.x.x.x -l root
	apt-get install git-core
	groupadd developers
	cd /home/
	mkdir git
	useradd git -d /home/git
	vi /etc/group
		developers:x:1000:git
	cd /home/git
	mkdir test
	cd /test
	git init
	cd ..
	chgrp developers test
	chmod g+rws test
	cd /test
	chgrp developers .git
	chmod g+rws .git
	useradd jpz -m -s /bin/bash
	passwd jpz
	cd /var/www/html
	ln -s /home/git/test test
	git init --bare --shared .git
	vi /etc/group
		developers:x:1000:git,jpz
	su jpz
	ln -s /home/git/test gitrep
	exit
	git clone [email protected]:~/gitrep/.git
	git pull
	vi test_git.html
	git push
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)
	git branch --unset-upstream
	git push origin master
remote: error: insufficient permission for adding an object to repository database ./objects

	ssh x.x.x.x -l root
	cd /home/git/test/.git/objects
	chmod g+rws *
	exit
	git push origin master
	git push -u origin master


--delete all
	cd /home/git
	mkdir web_foo.git
	chgrp developers web_foo.git/
	chmod g+rws web_foo.git/
	git clone /home/git/web_foo.git
	cd web_foo
	git init
	git pull
	vi test_git.html
	git add test_git.html
	git commit -am "test git"
	git push -u origin master
	vi test_git.html
	git commit -am "add sth"
	git push

좋은 웹페이지 즐겨찾기