ubuntu14.04git 서버, 원격 창고 구축, 자동 배치
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Heroku H10/503 오류 해결 방법 - 이야기오후 2시 30분까지 내 이해 수준에 따라 배포할 준비가 된 내 코드 를 완성했습니다. 몇 달 전에 플랫폼에 Node.js 앱을 배포하여 을 따르기로 결정했습니다. How to solve Heroku H10 erro...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.