git 원격 창고 만들기 상세 정보
4397 단어 도구 및 관련
A를 서버로 설정하여 모든 사용자가 공통으로 B를 클라이언트로 설정
A에 빈 라이브러리 초기화: ~/mygittest$mkdirgitserver
~/mygittest$ cd gitserver
~/mygittest/gitserver$ git init –bare
Initialized empty Git repository in/home/zhangyafei/mygittest/gitserver/
B에 창고 초기화: ~/mygittest$mkdirgitclient
~/mygittest$ cd gitclient/
~/mygittest/gitclient$ git init Initialized empty Git repository in/home/zhangyafei/mygittest/gitclient/.git/
파일을 추가하고commit을 사용하면 자동으로 마스터 지점이 생성됩니다: ~/mygittest/gitclient$echo "git test file"> test
~/mygittest/gitclient$ git add test
~/mygittest/gitclient$ git commit -m “test commit” [master (root-commit) ae8c788] test commit 1 file changed, 1 insertion(+) create mode 100644 test
~/mygittest/gitclient$ git branch * master
원격 git 서버 주소 추가 (로컬 라이브러리에서 라이브러리를 가리키는 것), 즉 라이브러리가 로컬 라이브러리로 간주되는 서버 (주: 회사 보안 소프트웨어 제한 때문에 ssh를 사용할 수 없습니다. 파일만 사용할 수 있습니다) ~/mygittest/gitclient$git remote add originfile:///home/zhangyafei/mygittest/gitserver
로컬 지점push를 원격 서버에 ~/mygittest/gitclient$gitpushorigin master Counting objects:3,done.Writing objects: 100% (3/3), 221 bytes, done. Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. To file:///home/zhangyafei/mygittest/gitserver * [new branch] master -> master
새 디렉터리, 원격 서버 복제 창고: ~/mygittest$mkdirgitclient2
~/mygittest$ cd gitclient2
~/mygittest/gitclient2$ git clone file:///home/zhangyafei/mygittest/gitserver Cloning into ‘gitserver’… remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done.
~/mygittest/gitclient2$ cd gitserver/
~/mygittest/gitclient2/gitserver$ git log commit ae8c7889268b07e4ebb14af19169327d499b1323 Author: zhangyafei [email protected] Date: Tue Feb 28 17:04:44 2017 +0800
test commit
결과 최신 제출
gitclient ~/mygittest/gitclient$git branch * master
~/mygittest/gitclient$ git pull You asked me to pull without telling me which branch you want to merge with, and ‘branch.master.merge’ in your configuration file does not tell me, either. Please specify which branch you want to use on the command line and try again (e.g. ‘git pull ’). See git-pull(1) for details.
If you often merge with the same branch, you may want to use something like the following in your configuration file: [branch “master”] remote = merge =
[remote ""]
url =
fetch =
See git-config(1) for details.
pull을 실행하면 상기 알림을 표시합니다.즉, 우리는 우리가 어느 리모컨에서pull 코드를 사용해야 하는지, 어떤 지점과merge를 지정해야 하는지를 지정하지 않았다.설정 보기: ~/mygittest/gitclient$cat.git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote “origin”] url = file:///home/zhangyafei/mygittest/gitserver fetch = +refs/heads/:refs/remotes/origin/
이 설정에remote와merge가 설명되어 있지 않기 때문에 자주 merge 지점이 필요하면 설정을 수정해 주십시오.
원격 서버에서 로컬 창고로 복제된 것이기 때문에 관련 설정이 있습니다. ~/mygittest/gitclient2/gitserver$cat.git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote “origin”] fetch = +refs/heads/:refs/remotes/origin/ url = file:///home/zhangyafei/mygittest/gitserver [branch “master”] remote = origin merge = refs/heads/master
비교해 보면 마스터 지점을 지정하는 원격과merge가 많을 뿐입니다. 설정을 수정하지 않으면pull,push 명령을 사용할 때마다remote와merge를 지정해야 합니다. 명령:gitpull:gitpulloriginmaster:masteroriginmaster는 원격origin의master지점입니다. 마스터는 로컬 지점입니다.
이 명령의 사용법은'어느 원격의'어느 지점'을 로컬 창고의'어느 지점'으로 가져오는 것입니다.'
원격 지점을 삭제하려면: 왼쪽 지점이 비어 있으면 삭제합니다: 오른쪽 원격 지점gitpush origin: test//원격 지점에 제출한 test는 삭제되지만 로컬은 저장됩니다
gitpush의 사용법:gitpushoriginlocal:master//push 로컬 로컬 로컬 로컬 로컬 지점을 원격 마스터 지점으로
~/mygittest/gitclient2/gitserver$git branch-a(지고 있는 모든 지점 표시)*master remotes/origin/HEAD->origin/master remotes/origin/master
~/mygittest/gitclient2/gitserver$git branch-r(원격 지점만 표시)origin/HEAD->origin/master origin/master
여기에서 마스터는 로컬 지점이고 orgin/master는 원격에서 마스터라고 명명된 지점임을 알 수 있다.remotes/origin/master와 origin/master의 지향은 같다.HEAD 는 현재 작업 의 branch 를 가리키며, master 는 반드시 현재 작업 의 branch 를 가리키지 않는다
git config branch.master.remote origin git config branch.master.merge refs/heads/master 이 두 명령을 사용하여config에 master 지점의remote와merge를 설정합니다