Git 기본 작업 명령

8122 단어
업데이트 중

기본 작업

  • git 주소 보기
      git remote  -v
    
  • 로컬 Spoke를 서버 원격 웨어하우징
      git push origin branch_name
    
          git push origin     iknow_dev_6_8_x86_BRANCH:svn/iknow_dev_6_8_x86_BRANCH
    
  • 원격 웨어하우스 지점 삭제
      git branch -r -d origin/branch-name
      git push origin :branch-name
    
  • 원격 지점 보기
      git branch -a  
    
  • 제출하기 전에 본 제출을 보고 수정된 파일
      git status
    
  • 통계가 얼마나 수정되었는가
      git status | grep -c ****
    
  • 버퍼 파일 보기
      git diff --cached
    
  • 제출 후 이번에 제출된 파일 보기
  • commit했는데 주석이 틀렸어요. 수정하려면 어떻게 해야 돼요?
       git commit --amend , vim 。
    
  • 합병 이후 충돌이 많았는데 이번 합병을 포기하려면 어떻게 해야 하나요?
      git add .
      git reset --hard
    
  • 파일의 기록 조회
  • 어떤 역사 버전을 어떻게 거슬러 올라가는가
      git checkout commit_number
    
  • 원격 창고의 지점을 로컬로 가져오고 이 지점으로 전환
      git checkout -b bugfix-tagSelectedIssue origin/bugfix-tagSelectedIssue
    
  • 차이 분석 도구
      git config --global merge.tool vimdiff
    
  • fetch 작업
      git fetch
    
  • git rm

  • 현재 추적 목록에서 파일을 제거하고 완전히 삭제
      git rm readme.txt
    
  • 임시 저장소에서만 삭제하고 현재 디렉터리에 파일을 보존하며 추적하지 않음
      git rm –cached readme.txt
    
  • 파일 이름 바꾸기
      git mv reademe.txt readme   
    
  • git clone 명령

  • 기본 마스터 분기 뽑기
      git clone *****.git  
    
  • 이전에gitclone은 모든 코드, 지점 정보를 끌어내릴 것이라고 생각했는데, 실제 상황은 그렇지 않다. 기본적으로master 지점의 코드만 끌어내릴 뿐이다
  • 지정된 브랜치의 코드 가져오기
      git clone -b branch_name *****.git 
    
  • 주의 branch_name은 origin 문자열이 없습니다.
  • clone에서 프로젝트의 디렉터리 이름 변경
      git clone  
    
  • git remote 명령


    Git은 관리가 용이하도록 각 원격 호스트에 호스트 이름을 지정해야 합니다.gitremote 명령은 호스트 이름을 관리하는 데 사용됩니다.
  • 옵션이 없을 때gitremote 명령은 모든 원격 호스트
      $ git remote
        origin
    
  • 를 표시합니다
  • - v 옵션을 사용하여 원격 호스트의 웹 주소
      $ git remote -v
      origin  [email protected]:jquery/jquery.git (fetch)
      origin  [email protected]:jquery/jquery.git (push)
       , , origin, 
    
  • 참조 가능
  • 원격 호스트 추가
      git remote add  
      git remote add origin ***.git
    
  • 원격 호스트 삭제
      git remote rm 
    
  • 원격 호스트 이름 변경
      $ git remote rename  
    
  • git Fetch


    원격 호스트의 버전 라이브러리에 업데이트가 생기면 이 업데이트를 로컬로 가져와야 합니다.gitfetch 명령을 사용해야 합니다.
  • 원격 호스트의 업데이트를 모두 로컬로 복구
      $ git fetch 
    
  • 기본적으로gitfetch는 모든 지점 (branch) 의 업데이트를 가져옵니다.특정 지점의 업데이트만 되찾으려면 지점 이름을 지정할 수 있습니다.
      $ git fetch  
    
  • 예를 들어origin 호스트의 마스터 지점을 되찾는다.
      $ git fetch origin master
    

  • 가져온 업데이트는 로컬 호스트에서 원격 호스트 이름/분기 이름으로 읽습니다.예를 들어origin 호스트의master는origin/master로 읽어야 한다.
  • gitbranch 명령의 -r 옵션은 원격 지점을 볼 수 있고, -a 옵션은 모든 지점을 볼 수 있습니다.
      $ git branch -r
        origin/master 
      $ git branch -a
      * master
        remotes/origin/master
    

  • 위 명령은 로컬 호스트의 현재 지점은master이고 원격 지점은origin/master입니다.
    원격 호스트의 업데이트를 되찾은 후에gitcheckout 명령을 사용하여 새로운 지점을 만들 수 있습니다.
    $ git checkout -b newBrach origin/master
    //  , origin/master , 。
    

    git pull


    gitpull 명령의 역할은 원격 호스트의 특정한 지점의 업데이트를 가져와 로컬의 지정한 지점과 통합하는 것입니다.그것의 전체 형식은 약간 복잡하다.
  • origin 호스트의next지점을 되찾아 로컬master지점과 합병하려면 다음과 같이 써야 합니다.
      $ git pull  :
      $ git pull origin next:master
       , 。
    
  • origin/next 지점을 되찾고 현재 지점과 합병합니다.실질적으로 이것은 먼저gitfetch를 하고gitmerge
      $ git pull origin next
    
      $ git fetch origin
      $ git merge origin/next
    
  • 를 하는 것과 같다
  • 어떤 경우 Git는 자동으로 로컬 지점과 원격 지점 사이에 추적 관계를 구축한다(tracking).예를 들어gitclone에서 모든 로컬 지점은 기본적으로 원격 호스트의 동명 지점과 추적 관계를 맺는다. 즉, 로컬 마스터 지점 자동'추적'origin/master 지점이다.Git도 수동으로 추적 관계를 설정할 수 있음
      git branch --set-upstream master origin/next
       master origin/next 。
      set-upstream , tracking
    
  • 현재 지점과 원격 지점이 추적 관계가 있으면gitpull은 원격 지점의 이름을 생략할 수 있습니다. $gitpull origin 위의 명령은 로컬 현재 지점이 대응하는 origin 호스트'추적 지점'(remote-tracking branch)과 자동으로 통합된다는 것을 나타냅니다.
  • 현재 지점에 추적 지점이 하나만 있으면 원격 호스트 이름도 생략할 수 있습니다. $gitpull 위의 명령은 현재 지점이 자동으로 유일한 추적 지점과 통합된다는 것을 나타냅니다.

  • 합병에 rebase 모드가 필요한 경우 – rebase 옵션
      $ git pull --rebase  :
    
  • git push


    gitpush 명령은 로컬 지점의 업데이트를 원격 호스트로 전송하는 데 사용됩니다.그것의 형식은gitpull 명령과 비슷합니다.
    $ git push  :
    

    주의, 분기 전송 순서의 쓰기 방법은:, 그래서gitpull은:, 그리고gitpush는:입니다.
    원격 브랜치 이름을 생략하면 로컬 브랜치가 존재하는 추적 관계로 밀어넣는 원격 브랜치(보통 두 개의 이름이 같음)를 나타내고, 이 원격 브랜치가 존재하지 않으면 새로 만들어집니다.
    $ git push origin master
    

    위 명령은 로컬 마스터 지점을origin 호스트의 마스터 지점으로 전송합니다.후자가 존재하지 않으면 새로 만들어집니다.
    로컬 브랜치 이름을 생략하면 지정한 원격 브랜치를 삭제합니다. 이것은 빈 로컬 브랜치를 원격 브랜치로 푸시하는 것과 같기 때문입니다.
    $ git push origin :master
    #  
    $ git push origin --delete master
    

    위의 명령은 origin 호스트의 마스터 지점을 삭제합니다.
    현재 지점과 원격 지점 사이에 추적 관계가 있으면 로컬 지점과 원격 지점 모두 생략할 수 있습니다.
    $ git push origin
    

    위 명령은 현재 지점을origin 호스트의 대응하는 지점으로 전송합니다.
    현재 지점에 추적 지점이 하나만 있다면 호스트 이름은 생략할 수 있습니다.
    $ git push
    

    현재 지점이 여러 호스트와 추적 관계가 있다면, -u 옵션을 사용하여 기본 호스트를 지정할 수 있으며, 그 다음에gitpush를 사용하지 않아도 됩니다.
    $ git push -u origin master
    

    위의 명령은 로컬master 지점을origin 호스트로 보내고 origin을 기본 호스트로 지정하면 그 다음에gitpush를 사용하지 않아도 됩니다.
    매개 변수가 없는gitpush는 기본적으로 현재 지점만 전송합니다. 이것을simple 방식이라고 합니다.이 밖에 대응하는 원격 지점이 있는 모든 로컬 지점을 전송하는 matching 방식도 있습니다.Git 2.0 버전 이전에는 matching 방법이 기본으로 사용되었으나, 지금은 simple 방식으로 변경되었습니다.이 설정을 수정하려면gitconfig 명령을 사용할 수 있습니다.
    $ git config --global push.default matching
    #  
    $ git config --global push.default simple
    

    또 다른 상황은 대응하는 원격 지점이 있든 없든 로컬의 모든 지점을 원격 호스트로 보내는 것입니다. 이 때 -all 옵션을 사용해야 합니다.
    $ git push --all origin
    

    위 명령은 모든 로컬 지점을origin 호스트로 전송합니다.
    원격 호스트의 버전이 로컬 버전보다 업데이트되면 Git가 오류를 보고합니다. 로컬에서gitpull을 병합하고 원격 호스트로 전송해야 합니다.이 때, 만약 당신이 반드시 밀어 넣으려면 - force 옵션을 사용할 수 있습니다.
        $ git push --force origin
    

    위의 명령은 - force 옵션을 사용합니다. 그 결과 원격 호스트에서'비직진식'의 통합 (non-fast-forwardmerge) 을 생성합니다.만약 당신이 이렇게 해야 한다고 확신하지 않는다면, 가능한 한 force 옵션을 사용하지 말아야 합니다.
    마지막으로,gitpush는 태그 (tag) 를 사용하지 않습니다. - 태그 옵션을 사용하지 않으면.
        $ git push origin --tags
    

    태그 작업

  • 태그 표시
      git tag #  
    
  • 레이블 만들기
      git tag -a v0.1.2 -m " 0.1.2 "
    
  • 레이블로 전환
      git checkout [tagname]
    
  • 라벨을 삭제하거나 수정해야 할 때 라벨을 삭제하고 새 라벨을 눌러야 한다.
      git tag -d v0.1.2 #  
       d delete , 
    
  • 탭 추가 탭은 헤드 위에 있을 필요가 없고 이전 버전에서도 할 수 있습니다. 이것은 제출 대상의 검사와 (gitlog를 통해 얻을 수 있음) 을 알아야 합니다.
      git tag -a v0.1.1 9fbc3d0
    
  • 라벨 발표 일반적인gitpush는 라벨 대상을git 서버에 제출하지 않습니다. 저희는 현저한 조작을 해야 합니다.
      $ git push origin v0.1.2 #  v0.1.2 git 
      $ git push origin --tags #  git 
    
  • 구성 관련

  • git에 사용할 편집기 설정
      git config --global core.editor emacs
    
  • 사용자 디렉터리나 공사 디렉터리에 있는.gitConfig 파일에서 수정
      [user]
          name = wangshengwei01
          email = [email protected]
      [core]
          editor = vim
          excludesfile = /Users/baidu/.gitignore_global
      [http]
          sslverify = false
      [difftool "sourcetree"]
          cmd = opendiff \"$LOCAL\" \"$REMOTE\"
          path = 
      [mergetool "sourcetree"]
          cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
          trustExitCode = true
    
  • 참조 문서

  • Git 원격 작업 세부 정보
  • Git 튜토리얼
  • gitclone 원격 지점
  • gitmerge와gitrebase소결
  • 료학봉git강좌
  • 좋은 웹페이지 즐겨찾기