Git 유 틸 리 티 명령 요약

12094 단어 git.
디 렉 터 리
git init
git add .

현재 디 렉 터 리 아래 의 모든 수정&새로 추 가 된 파일 을 추가 합 니 다.디 렉 터 리 나 파일 을 따로 추가 하려 면 디 렉 터 리 나 파일 주소 로 바 꾸 면 됩 니 다.
git commit -m '  '

이곳 의 제출 은 로 컬 창고 에 제출 된 것 입 니 다.
git rm file/dir

셸 을 직접 사용 하여rm file작업 을 한 후 버 전 은git rm file명령 을 사용 하여 버 전 라 이브 러 리 에서 파일 을 삭제 해 야 합 니 다.그 중에서 디 렉 터 리 를 삭제 하려 면-r 인 자 를 추가 해 야 합 니 다.
git log
git log명령 은 모든 버 전의 제출 역사 와 제출 할 때마다 버 전 번호 와 설명 을 볼 수 있 고 제출 할 때마다 유일한 버 전 번호 가 있 습 니 다.git log --graph를 사용 하면'그림'방식 으로 제출 기록 을 더욱 이미지 있 게 보 여줄 수 있 습 니 다.표시 되 는 것 처럼 간결 하면–oneline 인 자 를 하나 더 추가 하면 모든 제출 을 한 줄 에 합 칠 수 있 습 니 다.HEAD
HEAD 는 git 의 특수 한 지침 으로 현재 지점 을 가리 키 는 최신 commt 입 니 다.이 개념 은 매우 중요 합 니 다.HEAD^는 현재 분기 의 이전 commt 버 전 을 표시 하고 HEAD^는 이전 버 전 을 표시 하 며 HEAD~n 으로 표시 할 수 있 습 니 다.n 은 이전 몇 번 째 버 전 을 대표 합 니 다.
  • 로 컬 에서 뭔 가 를 수정 하고 원 하지 않 으 면 명령git reset --hard HEAD으로 지난번 에 제출 한 버 전 으로 복원 할 수 있 습 니 다.
  • 이전 버 전 을 복원 하려 면 명령git reset --hard HEAD^^
  • 으로
  • 버 전 번호 에 따라 지 정 된 버 전 으로 복원 하려 면 명령git reset --hard COMMIT_VERSION.,COMMIT버 전 번호
  • git rest명령 을 사용 하여 버 전 을 반환 한 후git log명령 을 사용 하여 제출 기록 을 보 았 을 때 현재 버 전의 기록 이 모두 없 음 을 발견 하 였 다.이때 현재 버 전의 다음 버 전 으로 복원 하려 면git refloggit 의 매번 조작 기록 을 보고 그 안에서 버 전 을 찾 은 다음git reset명령 을 다시 사용 하면 복원 할 수 있 습 니 다.
    '작업 디 렉 터 리/working directory'라 고도 할 수 있 습 니 다.지난번 에 제출 한 모든 변경 사항 은'임시 저장 소'에 저 장 됩 니 다.git status명령 을 통 해 현재 임시 저장 소 에 있 는 모든 변경 사항 을 볼 수 있 습 니 다.git add/rm 등 명령 을 사용 할 때 실제 저장 소 에 대한 작업 입 니 다.git commit명령 을 사용 할 때,임시 저장 구역 의 내용 을 현재 지점 에 한꺼번에 제출 합 니 다. git diff
    git diff file
    git diff파일 과 현재 HEAD 버 전의 이 파일 내용 의 차 이 를 볼 수 있 습 니 다.git diff COMMIT_VERSION를 통 해 현재 임시 저장 소 파일 내용 과 의 차 이 를 비교 할 수도 있 습 니 다.COMMIT 가 지정 되 지 않 으 면.VERSION,기본 HEAD 도git diff COMMIT_VERSION file를 통 해 지 정 된 파일 의 특정한 버 전과 현재 전시 저장 구역 의 차 이 를 비교 할 수 있 습 니 다git diff COMMIT_VERSION_1 COMMIT_VERSION_2를 통 해 두 버 전의 이전 차 이 를 비교 할 수 있 습 니 다.마찬가지 로 뒤에 파일 경 로 를 추가 하여 지정 한 파일 의 이전 차 이 를 볼 수 있 습 니 다.
    git checkout -- file

    주의,반드시 사용 해 야 합 니 다–,사용 하지 않 으 면–브 랜 치 전환 을 의미 합 니 다.commt 전에 어떤 파일 에 대한 수정 을 취소 하려 면 이 파일 이 add 작업 이 되 지 않 았 다 면git ckeckout -- file명령 을 사용 하여 파일 내용 을 지난번 에 제출 한 내용,즉 HEAD 버 전의 내용 으로 취소 할 수 있 습 니 다.이 파일 이 add 되 었 다 면 checkout 을 직접 사용 하면 파일 이 add 의 내용 으로 되 돌아 갑 니 다.지난번 add 의 내용 도 취소 해 야 한다 면 먼저git reset file명령 을 사용 하여 파일 을 임시 저장 소 에서 취소 할 수 있 습 니 다.이때 파일 은 add 전의 상태 로 돌아 간 다음 checkout 을 취소 할 수 있 습 니 다.reset 명령 을 사용 하여 임시 저장 소 파일 을 작업 할 때,리 셋 버 전이 아 닌 임시 저장 소 파일 을 임시 저장 소 에서 옮 깁 니 다.
    git checkout -- file

    주의 하 세 요.꼭-그렇지 않 으 면 checkout 은 분기 전환 을 의미 합 니 다.이 방법 을 사용 하여 파일 을 복구 하 는 전 제 는 삭 제 된 파일 이 로 컬 rm 일 뿐 commt 되 지 않 았 다 는 것 입 니 다.파일 이 제출 되 었 다 면git reset명령 을 사용 하여 복원 해 야 합 니 다.
    git reset          
    git checkout --     

    지정 한 파일 을 지 정 된 버 전 으로 복구 하 는 데 두 단계 가 필요 합 니 다.첫 번 째 단 계 는 reset 입 니 다.이 때 는 현재 HEAD 에 있 는 이 파일 의 내용 을 reset 의 버 전 번호 내용 으로 복원 하 는 것 입 니 다.이때 git status 명령 을 사용 하면 이 파일 이 임시 저장 영역 에 나타 나 는 것 을 볼 수 있 습 니 다.그 다음 checkout 명령 을 사용 하면 임시 저장 영역 에서 이 파일 의 수정 을 포기 합 니 다.파일 이 지정 한 버 전 으로 복구 되 었 습 니 다.
    git remote add origin remoteRespPath

    그 중에서 origin 은 마음대로 정 의 된 것 으로 원 격 창고 에 별명 을 지어 주 는 것 입 니 다.reoteRespPath 는 원 격 창고 의 주소 입 니 다.원 격 창고 에 여러 개의 원 격 창 고 를 추가 할 수 있 고 원 격 창고 에 지어 진 별명 이 다 르 면 됩 니 다.
                git remote
                git remote -v
    push
    git push remoteRespName localBranch:remoteBranch
    eg: git push origin master:master

    그 중에서 origin 은 원 격 창 고 를 추가 할 때 지은 별명 입 니 다.localBranch 는 로 컬 분기 의 이름 입 니 다.reoteBranch 는 원 격 창고 분기 의 이름 입 니 다.git push origin master:master로 컬 창고 의 master 분기 push 를 원 격 창고 origin 의 master 분기 에 올 리 고 매번 push 전에 pull 하 는 것 이 좋 습 니 다.간단 한 충돌 이 있 으 면 자동 으로 합 쳐 집 니 다.심각 한 충돌 이 있 으 면 충돌 을 해결 한 후에 push 를 합 니 다.만약 다른 사람 이 지난번 pull 이후 에 push 내용 을 올 렸 다 면 이번 push 는 잘못 보 고 될 것 입 니 다.로 컬 창고 의 HEAD 버 전이 원 격 창고 의 HEAD 버 전보 다 낮 으 면-f 매개 변 수 를 추가 하여 push 를 강제 할 수 있 습 니 다.이 경우 로 컬 창고 에서 reset 명령 을 사용 하면 버 전 을 취소 하기 때 문 입 니 다.또한 push 가 원 격 창고 에 도착 한 후 다른 사람의 로 컬 창 고 는 git pull 명령 을 직접 사용 해도 내용 을 직접 업데이트 할 수 없습니다.다른 사람의 로 컬 창고 의 HEAD 버 전이 원 격 창고 의 HEAD 버 전보 다 높 기 때문에 git 는 내용 을 업데이트 할 필요 가 없다 고 생각 합 니 다.이 때 pull 에 도-f 매개 변 수 를 추가 하여 강제로 업데이트 합 니 다. pull
    git pull remoteRespName branch
    eg: git pull origin master

    그 중에서 reoteRespName 은 창고 의 별명 을 표시 합 니 다.branch 는 분기 이름 입 니 다.git pull origin master원 격 창고 origin 의 master 분기 코드 를 로 컬 로 끌 어 옵 니 다.clone
    git clone remoteResp

    reoteResp 는 원 격 창고 의 주 소 를 대표 합 니 다.로 컬 에서 프로젝트 를 초기 화 한 다음 push 에서 원 격 창고 로 이동 하 는 것 을 제외 하고git clone명령 을 통 해 원 격 창고 clone 에 존재 하 는 프로젝트 에서 로 컬 로 이동 할 수 있 습 니 다.원 격 창고 clone 프로젝트 에서 로 컬 로 이동 하면 기본 값 은 master 분기 에 있 고 origin 이라는 원 격 창 고 를 자동 으로 추가 합 니 다.주 소 는 클 라 이언 트 때 원 격 창고 의 주소 입 니 다.기본 값 은 원 격 창고 clone 에서 master 분기 만 사용 합 니 다.다른 분기 로 전환 하려 면 clone 후git checkout -b newBranchName origin/newBranchName명령 을 사용 하여 원 격 한 분기 도 checkout 할 수 있 습 니 다.원 격 분기 checkout 을 직접 내 리 는 것 외 에 도 로 컬 에 분기git checkout -b branch01를 만 들 수 있 습 니 다.만 든 후에 pull 작업 을 하면 오류 가 발생 할 수 있 습 니 다.이 로 컬 분기 가 원 격 창고 의 분기 와 연결 되 지 않 았 기 때 문 입 니 다.다음git branch --set-upstream-to=origin/branch01 branch01을 사용 하면 로 컬 에서 만 든 branch 01 지점 을 원 격 창고 origin 아래 branch 01 지점 과 연결 할 수 있 습 니 다.이 때 pull 작업 을 할 수 있 습 니 다.
    git branch newBranchName
    eg : git branch laibao

    위의 명령 은 laibao 의 가 지 를 만 들 것 입 니 다.가 지 를 만 든 후에 도 현재 분기 에 있 습 니 다.새 분기 로 전환 하려 면 분기 전환 명령 을 사용 할 수 있 습 니 다.
    git checkout branchName
    eg : git checkout laibao

    위의 명령 은 laibao 분기 로 전 환 됩 니 다.다음 에 새 분기 에서 내용 을 수정 한 다음 에 로 컬 commt 를 사용 한 다음git push origin laibao:laibao명령 을 통 해 로 컬 laibao 분기 push 를 원 격 창고 에 전달 할 수 있 습 니 다.
    위의 두 명령 에 대해 서 는 하나의 명령 으로 대체 할 수 있 습 니 다git checkout -b newBranchName.새 지점 을 만 들 고 이 지점 으로 전환 하 는 것 을 표시 합 니 다.
    git branch -d branchName
                ,           ,git       ,     -D        
                         git push remoteRespName --delete branchName 
        b     a   <br/>
         a    git checkout a <br/>
          git merge b <br/>
         -m        <br/><br/>
           ,       ,          ,    ,  commit。      。<br/>
              --no-ff  ,      Fast Forward  ,        ,       Fast Forward  ,             ,           
      
    git stash
          
    git stash list
        
    git stash apply   id
        
    git stash drop   id
                        
    git stash pop   id

    현재 분기 에서 작업 을 한 동안 임시로 다른 분기 로 전환 해 야 하지만 현재 분기 의 내용 은 제출 되 지 않 습 니 다.이 럴 때 명령log stash을 사용 하여 현재 작업 디 렉 터 리 를 압축 한 다음 에 checkout 에서 다른 분기 로 작업 한 다음 에 checkout 에서 현재 분기 로 돌아 와 서log stash list명령 을 사용 하여 압축 파일 목록 을 볼 수 있 습 니 다.이어서 사용log stash pop id하면 이전의 내용 을 이어서 개발 할 수 있다.위 에 파일 을 저장 하지 않 고 제출 하지 않 으 면 checkout 을 다른 지점 으로 직접 가 져 가면 문제 가 있 습 니 다.충돌 하거나 현재 수 정 된 내용 을 checkout 후의 지점 으로 가 져 갑 니 다. /
    루트 디 렉 터 리 에.gitignore 파일 을 추가 할 수 있 습 니 다.파일 에 무시 할 파일 과 디 렉 터 리 를 지정 합 니 다.예 를 들 어:
    .idea/*
    target
    .settings/*
    .classpath
    .project
    .DS_Store
    logs
    Makefile
    *.iml
    */log/*
    *.dat
    alias
    어떤 명령 이 너무 길 고 쓰기 가 귀 찮 으 면 어떤 조작 에 별명 을 붙 일 수 있 습 니 다.예 를 들 어git commitgit ci으로 대체 할 수 있 으 면 더 좋 습 니 다.commt 에 별명 을 설정 할 수 있 습 니 다.설정 방법 은git config --global alias.ci "commit"입 니 다.앞으로git ci대체git commit를 사용 할 수 있 습 니 다.추가 하면–global 은 현재 사용자 에 게 유효 합 니 다.설정 한 별명 은~/.gitconfig 파일 에 저 장 됩 니 다.–global 인 자 를 추가 하지 않 으 면 현재 창고 에 만 유효 합 니 다../.git/config 파일 에 저 장 됩 니 다.프로필 을 직접 편집 하여 별명 을 추가 할 수 있 습 니 다.
    유용 한 별명 추가:
    git config --global alias.unstage 'reset HEAD'
    // "git unstage xx.txt"     "git reset HEAD xx.txt"   
    git config --global alias.ci 'commit'
    git config --global alias.br 'branch'
    git config --global alias.co 'checkout'
    git config --global alias.logx 'log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit'
    //    x ,      ,     "git logx"  

    좋은 웹페이지 즐겨찾기