료설봉의 Git 튜토리얼

6292 단어

분산 버전 제어

  • 중앙 버전 제어 시스템
  • 버전 라이브러리는 중앙 서버에 집중되어 있으며, 중앙 서버는 최신 최신 버전 정보를 저장하고 있다
    문제는 반드시 네트워크가 연결되어야 정상적으로 작동할 수 있다는 것이다
  • 분산 버전 제어 시스템은 중앙 서버를 포기하고 각 분산 노드는 완전한 버전 라이브러리
  • 설치

    git config --global user.name "name"
    git config --global user.email "email"
    

    그 중에서 config 명령의 --global 매개 변수는 이 기계의 모든 Git 창고에서 이 설정을 사용한다는 것을 나타낸다.
    창고에 대해 다른 사용자 이름과 이메일 주소를 지정할 수도 있습니다.

    버전 라이브러리 만들기

    git init // Git , git .git , 
    git add filename or filename list    // 
    git commit -m "comments"     // ,**-m** 
    

    버전 관리

  • git status

  • 결과 보기, 현재 창고 상태 보기, 파일 수정 보기
  • git diff filename

  • difference 보기, 수정 내용 표시
  • git log

  • 가장 가까운 제출 로그를 보십시오. --pretty=oneline를 추가하여 출력 정보를 줄일 수 있습니다.
    Git에서 HEAD로 현재 버전을 나타내는데 이전 버전은 HEAD^, 이전 버전은 HEAD^, 여러 개의^를 간략하게 쓸 수 있다. 예를 들어 HEAD~2
  • git reset
  • git reset --hard HEAD^  // 
    git reset --hard serialno   //serialno commit id
    
  • git reflog

  • 각 명령 기록
  • 작업공간 및 임시 저장공간
  • 작업공간에 디렉터리를 숨깁니다.git는 Git의 버전 라이브러리로 스테이지(또는 index)라고 불리는 임시 저장 구역과 지점, 그리고 마스터를 가리키는 바늘 HEAD를 포함한다.
    Git 버전 라이브러리에 파일을 추가하여 2단계로 수행
  • git add로 파일을 추가하고 파일 수정을 임시 저장소에 추가
  • 변경 사항을 git commit로 제출하여 현재 지점에 임시 저장소의 모든 내용을 제출
  • 매번 수정할 때마다 add 임시 저장소에 가입하지 않으면 commit 에 가입하지 않습니다
  • git check -- filename

  • 작업공간의 수정을 버리는 것이 중요합니다. 그렇지 않으면 다른 지점으로 전환됩니다.
  • file은 수정 후 아직 임시 저장소에 저장되지 않았습니다. 수정을 취소하고 버전 라이브러리와 똑같은 상태로 되돌립니다
  • 파일이 임시 저장소에 추가되었고 수정되었습니다. 수정을 취소하면 임시 저장소를 추가한 상태로 돌아갑니다
  • 즉, 파일을 가장 최근-- 또는 git commit 상태로 되돌리는 것입니다.git add 임시 저장 영역의 수정을 작업 영역으로 되돌릴 수 있으며, git reset 최신 버전을 표시합니다.
    git reset HEAD file    // 
    
  • git rm filename

  • 버전 라이브러리에서 파일을 삭제합니다. HEAD 잘못 삭제된 파일을 찾을 수 있습니다.

    원격 웨어하우스 GitHub

  • 준비
  • 로컬 Git 웨어하우스와 GitHub 웨어하우스 간에 SSH 암호화를 통해 전송되는 인증 설정
  • SSH 키 생성
  • git checkout -- file
    홈 디렉터리에서 ssh-keygen -t rsa -C "email" 디렉터리를 찾았습니다. 생성된 .ssh (개인 키) 와 id_rsa (공용 키) 두 개의 파일이 있습니다.
  • GitHub에 로그인하여 SSH Key 추가id_rsa.pub 파일의 내용
  • 원격 웨어하우스 추가
  • git remote add origin [email protected]:XXX/XXX.git //origin 
    git push -u origin master  // ,-u ,Git master master , master 
    

    후속 푸시 실행 id_rsa,pub
  • clone 원격 라이브러리
  • git push origin master

    지점 관리


    Git는 브랜치 생성, 전환 및 삭제에 관계없이 매우 신속합니다.

    브랜치 생성 및 결합


    Git는 포인터를 통해 브랜치의 생성과 결합을 간단하고 신속하게 합니다.
    git checkout -b dev    //-b 
    git checkout master    // master
    git merge dev  // 
    git branch -d dev  // 
    
  • 지점 보기git clone [email protected]:XXX/XXX.git
  • 분기 생성git branch
  • 분기 전환git branch
  • 분기 생성 + 전환git checkout
  • 특정 지점을 현재 지점으로 통합git checkout -b
  • 분기 삭제git merge
  • 관리 정책


    Git가 자동으로 브랜치를 병합할 수 없는 경우 먼저 충돌을 해결한 다음 커밋하고 병합을 완료해야 합니다.git branch -d 분기 결합도를 볼 수 있습니다
    브랜치를 통합할 때 Git는 가능한 한 git log --graph 모드를 사용하고 브랜치를 삭제하면 브랜치 정보를 잃어버리고 이 모드 Fast forward 를 금지할 때 Git는merge에서 새로운commit을 생성하여 브랜치 역사에서 브랜치 정보를 볼 수 있다.
    git checkout -b dev
    // file
    git add filename
    git commit -m "add merge"
    git checkout master
    git merge --no-ff -m "merge with no-ff" dev
    

    분기 원칙:
  • master 지점은 안정적이어야 하며 새 버전만 발표
  • 다른 지점에서 개발
  • 버그 분기

  • git--noff 현재 작업 현장을 저장
  • stash로 저장된 작업 현장 보기
    복구 방식은 다음과 같습니다.
  • gitstashapply'stash'내용은 삭제하지 않고, 삭제는gitstashdrop
  • git stash pop, 회복과 동시에 stash 내용도 삭제
  • 여러 번stash, 복구용git stash list을 보고 지정한stashgit stash list를 복구합니다

    Feature 분기


    새로운 기능을 개발하려면 새 지점을 만드는 것이 좋습니다. 통합되지 않은 지점을 버리려면 git stash apply stash@{0} 를 통해 강제로 삭제하는 것이 좋습니다.

    여러 사람이 협력하다


    원격 창고 clone에서 Git는 자동으로 로컬 마스터 지점과 원격 마스터 지점을 대응합니다. 원격 창고의 기본 이름은 origingit branch -D 입니다. 원격 라이브러리 정보 보기git remote에 대한 자세한 정보를 표시합니다.
  • 푸시 브랜치는 이 브랜치의 모든 로컬 제출을 원격 라이브러리로 푸시git remote -v
  • master 주 지점, 시간과 원격 동기화
  • dev 개발 지점, 원격 동기화
  • 분기 캡처
  • git push origin master
  • 밀어내기에 실패하면 git push origin branch-name 결합
  • 합병에 충돌이 있으면 충돌을 해결하고 로컬로 제출
  • 다시'git push origin branch-name'
  • 'git pull'에서 "no tracking information"을 제시하면 로컬 지점과 원격 지점의 링크 관계가 만들어지지 않았음을 나타냅니다. 명령 git branch --set-upstream branch-name origin/branch-name 사용하기

    태그 관리


    버전을 발표할 때, 보통 현재 버전 라이브러리에 탭이 있습니다. 탭은 버전 라이브러리의 스냅샷 Git입니다. 탭은 어떤commit을 가리키는 바늘입니다. 탭을 만들고 삭제하는 것은 순식간에 이루어집니다.

    레이블 만들기

  • git pull
  • git tag 레이블 보기
    git branch
    git checkout master
    git tag v1.0
    

    기본 탭이 최신commit에 있습니다. 태그를 잊어버리면 역사적으로 제출한commit id를 통해
    git log --pretty=oneline --abbrev-commit
    git tag v0.9 "id"
    
    git tag 레이블 정보 보기git show 를 통해 개인 키 앞 탭으로...

    태그 작업


    레이블 삭제 -s 원격 밀어넣기 git tag -d v1.0 밀어넣지 않은 로컬 레이블 모두 밀어넣기 git push origin 원격 레이블 삭제
  • 로컬에서 삭제하고gittag-dv0.9
  • 원격에서push를 삭제하고gitpushorigin:refs/tags/v0.9
  • Git 사용자 정의

  • 구성 색상git push origin --tags
  • 특수한 파일을 무시하고 작업공간의 루트 디렉터리에 특수한 git config --global color.ui true 파일을 만듭니다
  • 파일 무시 원칙
  • 운영 체제가 자동으로 생성한 파일 무시
  • 컴파일된 중간 파일, 실행 가능한 파일, 자동으로 생성된 파일 등 무시
  • 민감한 정보가 포함된 구성 파일 무시
  • 별칭 구성

    .gitignore 저장소당 Git 구성 파일git config --global alias.logcolor "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%Creset' --abbrev -commit"참고 링크: 랴오설봉의 공식 사이트

    좋은 웹페이지 즐겨찾기