Git 원 격 조작 설명

7963 단어 Git원 격 조작
Git 은 현재 가장 유행 하 는 버 전 관리 시스템 으로 Git 을 배 우 는 것 은 개발 자의 필수 기능 이 되 었 다.
Git 은 많은 장점 이 있 는데 그 중 하 나 는 원 격 조작 이 매우 간편 하 다 는 것 이다.본 고 는 5 개의 Git 명령,그들의 개념 과 용법 을 상세 하 게 소개 하고 이런 내용 을 이해 하면 Git 원 격 조작 을 완전히 파악 할 수 있 습 니 다.
git clone
git remote
git fetch
git pull
git push
본 고 는 초급 사용 자 를 대상 으로 가장 간단 한 것 부터 말 하지만 독자 들 이 Git 의 기본 적 인 용법 에 대해 알 아야 한다.이 동시에 본 고 는 위의 5 개 명령 의 거의 모든 상용 용법 을 덮어 서 숙련 된 사용자 에 게 도 참고 가치 가 있다.

git clone
원 격 작업 의 첫 번 째 단 계 는 원 격 호스트 에서 버 전 라 이브 러 리 를 복제 하 는 것 입 니 다.이 때 git clone 명령 을 사용 해 야 합 니 다.
$git clone<버 전 라 이브 러 리 의 URL>
예 를 들 어 jQuery 버 전 라 이브 러 리 를 복제 합 니 다.
$ git clone https://github.com/jquery/jquery.git
이 명령 은 원 격 호스트 의 버 전 라 이브 러 리 와 같은 디 렉 터 리 를 로 컬 호스트 에 생 성 합 니 다.다른 디 렉 터 리 이름 을 지정 하려 면 디 렉 터 리 이름 을 git clone 명령 의 두 번 째 매개 변수 로 사용 할 수 있 습 니 다.
$git clone<버 전 라 이브 러 리 의 URL><로 컬 디 렉 터 리 이름>
git clone 은 다양한 프로 토 콜 을 지원 합 니 다.HTTP(s)외 에 도 SSH,Git,로 컬 파일 프로 토 콜 등 을 지원 합 니 다.다음은 예 입 니 다.

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/
SSH 프로 토 콜 에는 또 다른 표기 법 이 있다.

$ git clone [user@]example.com:path/to/repo.git/
일반적으로 Git 프로 토 콜 은 다운로드 속도 가 가장 빠 르 고 SSH 프로 토 콜 은 사용자 인증 이 필요 한 장소 에 사용 된다.각종 협의의 우열 에 대한 상세 한 토론 은 공식 문 서 를 참고 하 시기 바 랍 니 다.
git remote
관리 하기 편 하도록 Git 은 원 격 호스트 마다 호스트 이름 을 지정 해 야 합 니 다.git remote 명령 은 호스트 이름 을 관리 하 는 데 사 용 됩 니 다.
옵션 이 없 을 때 git remote 명령 은 모든 원 격 호스트 를 보 여 줍 니 다.

$ git remote
origin
-v 옵션 을 사용 하면 원 격 호스트 의 주 소 를 참조 할 수 있 습 니 다.

$ git remote -v
origin [email protected]:jquery/jquery.git (fetch)
origin [email protected]:jquery/jquery.git (push)
위의 명령 은 현재 원 격 호스트 한 대 만 있 고 origin 이 라 고 하 며 인터넷 주소 라 고 합 니 다.
버 전 라 이브 러 리 를 복제 할 때 사용 하 는 원 격 호스트 는 자동 으로 origin 이 라 고 명명 된다.다른 호스트 이름 을 사용 하려 면 git clone 명령 의-o 옵션 으로 지정 해 야 합 니 다.

$ git clone -o jQuery https://github.com/jquery/jquery.git
$ git remote
jQuery
위 명령 은 복제 할 때 원 격 호스트 를 jQuery 라 고 지정 합 니 다.
git remote show 명령 에 호스트 이름 을 추가 하면 호스트 의 자세 한 정 보 를 볼 수 있 습 니 다.
$git remote show<호스트 이름>
git remote add 명령 은 원 격 호스트 를 추가 하 는 데 사 용 됩 니 다.
$git remote add<호스트 이름>
git remoterm 명령 은 원 격 호스트 를 삭제 하 는 데 사 용 됩 니 다.
$git remote rm<호스트 이름>
git remote rename 명령 은 원 격 호스트 의 이름 을 바 꾸 는 데 사 용 됩 니 다.
$git remote 이름 변경<원래 호스트 이름><새 호스트 이름>
git fetch
원 격 호스트 의 버 전 라 이브 러 리 에 업데이트 가 있 으 면 이 업 데 이 트 를 로 컬 로 되 찾 아야 합 니 다.이 때 git fetch 명령 을 사용 해 야 합 니 다.
$git fetch<원 격 호스트 이름>
원 격 호스트 의 업 데 이 트 를 모두 로 컬 로 가 져 오 라 는 명령 이 있 습 니 다.
기본적으로 git fetch 는 모든 분기(branch)의 업 데 이 트 를 되 찾 습 니 다.특정 분기 의 업데이트 만 되 찾 으 려 면 분기 이름 을 지정 할 수 있 습 니 다.
$git fetch<원 격 호스트 이름><지점 이름>
예 를 들 어 origin 호스트 의 master 지점 을 되 찾 습 니 다.
$ git fetch origin master
가 져 온 업 데 이 트 는 로 컬 호스트 에서'원 격 호스트 이름/분기 이름'으로 읽 어야 합 니 다.예 를 들 어 origin 호스트 의 master 는 origin/master 로 읽 어야 합 니 다.
git branch 명령 의-r 옵션 은 원 격 지점 을 볼 수 있 고-a 옵션 은 모든 지점 을 볼 수 있 습 니 다.

$ git branch -r
origin/master

$ git branch -a
* master
 remotes/origin/master

위 명령 에 따 르 면 로 컬 호스트 의 현재 가 지 는 master 이 고 원 격 가 지 는 origin/master 입 니 다.
원 격 호스트 의 업 데 이 트 를 되 찾 은 후,git checkout 명령 을 사용 하여 새로운 가 지 를 만 들 수 있 습 니 다.
$ git checkout -b newBrach origin/master
위의 명령 은 origin/master 를 바탕 으로 새 가 지 를 만 드 는 것 을 표시 합 니 다.
또한 git merge 명령 이나 git rebase 명령 을 사용 하여 로 컬 분기 에 원 격 분 지 를 합 칠 수 있 습 니 다.
$ git merge origin/master
혹은
$ git rebase origin/master
위의 명령 은 현재 분기 에 origin/master 를 통합 하 는 것 을 표시 합 니 다.
git pull
git pull 명령 의 역할 은 원 격 호스트 의 한 분기 의 업 데 이 트 를 되 찾 고 로 컬 지정 한 분기 와 합 치 는 것 입 니 다.그것 의 전체 형식 은 약간 복잡 하 다.
$git pull<원 격 호스트 이름><원 격 지점 이름>:<로 컬 지점 이름>
예 를 들 어 origin 호스트 의 next 지점 을 되 찾 고 로 컬 master 지점 과 통합 하려 면 다음 과 같이 써 야 합 니 다.
$ git pull origin next:master
원 격 분기 가 현재 분기 와 합 쳐 지면 콜론 뒤의 부분 은 생략 할 수 있 습 니 다.
$ git pull origin next
위의 명령 은 origin/next 지점 을 되 찾 아 현재 지점 과 합병 하 라 는 것 을 표시 합 니 다.실질 적 으로 이것 은 git fetch 를 먼저 하고 git merge 를 하 는 것 과 같다.
$ git fetch origin
$ git merge origin/next
어떤 경우 Git 은 자동 으로 로 컬 분기 와 원 격 분기 사이 에 추적 관 계 를 맺 습 니 다(tracking).예 를 들 어 git clone 에 있 을 때 모든 로 컬 지점 은 기본적으로 원 격 호스트 와 같은 이름 의 지점 으로 추적 관 계 를 맺 습 니 다.즉,로 컬 master 지점 은 자동 으로 origin/master 지점 을 추적 합 니 다.
Git 도 수 동 으로 추적 관 계 를 만 들 수 있다.
git branch --set-upstream master origin/next
위 명령 은 master 분기 추적 origin/next 분기 입 니 다.
현재 분기 와 원 격 분기 가 추적 관계 가 있다 면 git pull 은 원 격 분기 이름 을 생략 할 수 있 습 니 다.
$ git pull origin
위의 명령 은 로 컬 의 현재 분기 가 자동 으로 대응 하 는 origin 호스트 의'추적 분기'(reote-tracking branch)와 합 쳐 진 다 는 것 을 나타 낸다.
현재 지점 에 추적 지점 이 하나 밖 에 없다 면 원 격 호스트 이름 도 생략 할 수 있 습 니 다.
$ git pull
위의 명령 은 현재 지점 이 유일한 추적 지점 과 자동 으로 합 쳐 진 다 는 것 을 나타 낸다.
합병 에 rebase 모드 가 필요 하 다 면--rebase 옵션 을 사용 할 수 있 습 니 다.
$git pull--rebase<원 격 호스트 이름><원 격 지점 이름>:<로 컬 지점 이름>
git push
git push 명령 은 로 컬 분기 의 업 데 이 트 를 원 격 호스트 로 보 내 는 데 사 용 됩 니 다.그것 의 형식 은 git pull 명령 과 비슷 하 다.
$git push<원 격 호스트 이름><로 컬 지점 이름>:<원 격 지점 이름>
주의,분기 푸 시 순서 의 작성 방법 은<출처>:<목적지>이 므 로 git pull 은<원 격 분기>:<로 컬 분기>이 고,git push 는<로 컬 분기>:<원 격 분기>입 니 다.
원 격 브 랜 치 이름 을 생략 하면 로 컬 브 랜 치 를'추적 관계'가 있 는 원 격 브 랜 치(보통 같은 이름)로 보 내 고 원 격 브 랜 치가 존재 하지 않 으 면 새로 만 듭 니 다.
$ git push origin master
위의 명령 은 로 컬 master 지점 을 origin 호스트 의 master 지점 으로 보 내 는 것 을 표시 합 니 다.후자 가 존재 하지 않 으 면 새로 생 긴 다.
로 컬 브 랜 치 이름 을 생략 하면 지정 한 원 격 브 랜 치 를 삭제 합 니 다.이것 은 빈 로 컬 브 랜 치 를 원 격 브 랜 치 로 푸 시 하 는 것 과 같 기 때 문 입 니 다.
$ git push origin :master
\#
$ git push origin --delete master
위의 명령 은 origin 호스트 의 master 지점 을 삭제 하 는 것 을 표시 합 니 다.
현재 지점 과 원 격 지점 사이 에 추적 관계 가 존재 한다 면 로 컬 지점 과 원 격 지점 은 모두 생략 할 수 있 습 니 다.
$ git push origin
현재 지점 을 origin 호스트 의 대응 지점 으로 보 내 라 는 명령 이 있 습 니 다.
현재 지점 에 추적 지점 이 하나 밖 에 없다 면 호스트 이름 은 모두 생략 할 수 있 습 니 다.
$ git push
현재 분기 가 여러 호스트 와 추적 관계 가 있다 면-u 옵션 을 사용 하여 기본 호스트 를 지정 할 수 있 습 니 다.그러면 그 다음 에 git push 를 추가 하지 않 고 사용 할 수 있 습 니 다.
$ git push -u origin master
위 명령 은 로 컬 master 분 지 를 origin 호스트 로 보 내 고 origin 을 기본 호스트 로 지정 하면 git push 를 사용 하지 않 을 수 있 습 니 다.
인자 가 없 는 git push 는 기본적으로 현재 분기 만 푸 시 합 니 다.이것 은 Simple 방식 이 라 고 합 니 다.이 밖 에 matching 방식 도 있 습 니 다.원 격 분기 가 있 는 로 컬 가 지 를 모두 푸 시 합 니 다.Git 2.0 버 전 이전 에는 기본적으로 matching 방법 을 사 용 했 으 나 현 재 는 기본 값 으로 Simple 방식 을 사용 합 니 다.이 설정 을 수정 하려 면 git config 명령 을 사용 할 수 있 습 니 다.
$ git config --global push.default matching
혹은
$ git config --global push.default simple
원 격 분기 가 있 든 없 든 로 컬 의 모든 가 지 를 원 격 호스트 로 보 내 는 경우 도 있 습 니 다.이 때 는--all 옵션 을 사용 해 야 합 니 다.
$ git push --all origin
모든 로 컬 지점 을 origin 호스트 로 보 내 라 는 명령 이 있 습 니 다.
원 격 호스트 의 버 전이 로 컬 버 전보 다 업데이트 되면 Git 에서 오류 가 발생 할 수 있 습 니 다.먼저 로 컬 에서 git pull 을 합 친 다음 에 원 격 호스트 로 전송 해 야 합 니 다.이 때,만약 당신 이 반드시 푸 시 하려 고 한다 면,--force 옵션 을 사용 할 수 있 습 니 다.
$ git push --force origin
위 명령 에서--force 옵션 을 사용 하면 원 격 호스트 에'비 직 진 식'합병(non-fast-forward merge)이 발생 합 니 다.이렇게 하 겠 다 고 확신 하지 않 는 한--force 옵션 을 사용 하 는 것 을 피해 야 합 니 다.
마지막 으로 git push 는--tags 옵션 을 사용 하지 않 는 한 태그(tag)를 푸 시 하지 않 습 니 다.
$ git push origin --tags

좋은 웹페이지 즐겨찾기