git 상용 조작 강좌

21333 단어 git


이것은 git가 자주 사용하는 조작의 가장 완전한 강좌라고 말할 수 없다. 이것은 본인이 선인을 바탕으로 3년여 동안git총결을 응용한 것이기 때문에 비교적 완전해야 한다. 다음에 나는git가 흔히 볼 수 있는 오류를 총결할 것이다.

git 기본 작업 절차


git는 여러 가지 다른 작업 프로세스를 지원합니다. 우리는 SVN과 가까운 아날로그 중앙 서버 프로세스를 사용합니다.즉, 공용 코드 라이브러리가 서버에 놓여 있는데 개발자가 이 공유된 서버에서 복제한 후에 로컬에서 개발한 다음에 서버에 제출하고 서버에서 다른 사용자가 제출한 내용을 얻는다.
주의git는 분포식 코드 제어 시스템이기 때문에 모든 코드 라이브러리는 평등하다. 여기는 논리적으로 중앙 서버를 구분했을 뿐이다. 물리적 구조에서 중앙 코드 라이브러리는 로컬 코드 라이브러리와 다를 것이 없다.[편집] 계정git를 만들면 여러 프로토콜을 사용하여 코드 라이브러리 간에 통신할 수 있습니다.우리는 현재 ssh 프로토콜을 사용하고 있으며, 사용자가 서버에 ssh 계정을 가지고 있어야만 코드 라이브러리에 접근할 수 있습니다.사용자는 이 컴퓨터에서 ssh 키를 만들어서 관리자에게 보내고 키를 자신의 컴퓨터에 저장해야 합니다.이렇게 하면 키로 서버를 연결할 수 있다.

일을 시작하다


작업을 시작하기 전에 중앙 서버의 코드 라이브러리를 복제해야 합니다.
$ git clone /server/repo/project

로컬 수정 및 제출


git의 제출 작업은 로컬에서 이루어지며 네트워크 연결이 필요하지 않습니다.
$ git checkout branch
---   ...
$ git add newfile
$ git commit -a
---  

중앙 서버에서 다른 사람의 업데이트 가져오기


이 조작은 실제적으로 업데이트를 가져오고 로컬 코드와 두 개의 조작을 합친 것이다.두 사람이 같은 곳을 고쳤을 가능성이 있기 때문에 충돌이 일어날 수도 있다.충돌이 발생하면 수동으로 코드를 통합해야 합니다.
$ git pull
 
 commit 
$ git push

1: 버전 제어 수칙

  • 쓰레기 서류를 제출하지 마세요.임시 파일, 컴파일된 바이너리 파일, 개인 설정 파일, 시스템cache, 프로젝트와 무관한 파일 등을 포함한다.사용gitignore 파일은git에게 어떤 파일을 무시해야 하는지 알려줍니다
  • 컴파일할 수 없는 코드를 마스터 지점에 제출하지 마십시오.평소에 임시 지점을 만들어서 작업할 수 있으며, 언제든지 제출할 수 있으며, 일단락된 후에 마스터 지점으로 통합할 수 있습니다.마스터 지점의 코드가 실행 가능하다는 것을 보증합니다. 이렇게 하면 팀의 다른 사람들에게 불필요한 영향을 주지 않습니다
  • 지점을 잘 사용한다.새로운 기능을 시작할 때마다 새 지점을 만들고 수정한 후master에 통합할 수 있습니다.새 버전마다 새 지점을 사용해야 합니다. 그러면 낡은 버전의 버그를 고쳐야 한다면 쉽게 낡은 지점으로 전환할 수 있습니다. 수정한 후에 다시 새 지점으로 전환할 수 있습니다
  • 많이 제출하고 제때에 제출하세요.한 마디로 설명할 수 있을 때마다 제출..
  • 반드시 제출 주석을 명확하게 쓰고 어떤 수정을 했는지 명확하게 써야 한다. 두루뭉술한 한마디, 예를 들어'버그 고치기'가 아니라 구체적인 설명을 써야 한다. 예를 들어'버튼 문자가 전달에서 공유로 바뀌었다'는 것이다.온라인 제출 준비 버전마다 tag를 쳐서 v1.0.0_rc1이라는 형식은 첫 번째 제출은 rc1, 두 번째 제출은 rc2 등이다

  • 2:git 창고


    요청 코드

    $ git clone ssh://%%%%.git
    $ git clone ssh://%%%%%%.git
    

    3: 로컬 코드 라이브러리 관리


    1.git가 당신의 사용자 이름을 사용해서 매번commit을 표시하도록 합니다

    $ git config --global user.name "hufeng"
    $ git config --global user.email hufeng@hufengvip.cn
    

    2. 현재 디렉터리에서 코드 라이브러리 초기화

    $ git init
    

    3. 모든 파일을 버전 제어에 넣기

    $ git add .
    

    4.commit 수정된 모든 파일

    $ git commit -a
    

    5. 코드 라이브러리에 대한 수정 사항을 버리고 HEAD 버전으로 복원

    $ git checkout -f
     
    $ git reset --hard
    

    6. 로그 디스플레이 최적화

    git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    

    7. 분기 만들기

    $ git branch test
    

    8. 한 지점으로 전환

    $ git checkout test
    

    9. 주 브랜치로 전환

    $ git checkout master
    

    10. 명령행 프롬프트 스크립트


    아래 스크립트를 ~/.프로필 또는 ~/.bashrc에서 명령줄의 알림부호는 현재git 지점 이름을 표시합니다.예: ~/Projects/cmb(master)$
    function parse_git_branch {
          ref=$(git symbolic-ref HEAD 2> /dev/null) || return
            echo "("${ref#refs/heads/}")"
    }
    
    PS1="\w \$(parse_git_branch)\$ "
    

    셋.원격 코드 라이브러리 작업


    1.git 프로토콜을 사용하여 로컬 코드 라이브러리 공유


    git 자체에 서버 명령을 가지고 있습니다. 시작하면 다른 기계는git 프로토콜로 본 컴퓨터의 코드 라이브러리에 접근할 수 있습니다
    $ git daemon --export-all --base-path=/home/pub/projects/ test.git
    

    참고:
  • "fatal: no matching remote head"로 되돌아오면 코드 라이브러리에 파일이 없거나commit이 없었다는 것을 의미합니다..
  • 네.git 디렉터리에 git-daemon-export-ok 파일이 있어야 합니다. 그렇지 않으면 export-all 매개 변수를 사용하여 강제로 공유해야 합니다
  • 원격으로 코드를 제출할 수 있다면 - enable=receive-pack 파라미터를 추가해야 합니다

  • 2. 버전 라이브러리에서 파일 삭제

     git rm -rf  --cached  CCB.xcodeproj/project.xcworkspace/xcuserdata/  
    
    --cached  
    

    3. 원격 창고의 이름 변경


    새 Git에서는 git remote rename 명령으로 원격 창고의 간단한 이름을 수정할 수 있습니다. 예를 들어 pb를 paul로 바꾸려면 이렇게 실행할 수 있습니다.
    $ git remote rename pb paul
    $ git remote origin pau
    

    원격 창고의 이름을 바꾸는 것도 대응하는 지점의 이름을 변화시킬 수 있습니다. 원래의 pb/master 지점은paul/master가 되었습니다.

    4. 원격 창고 삭제


    원격 창고 서버가 이전되거나 원래의 복제 렌즈가 사용되지 않거나 참여자가 코드를 공헌하지 않으면 대응하는 원격 창고를 제거하고gitremoterm 명령을 실행할 수 있습니다.
    $ git remote rm branchA
    

    또는
     $ git push origin :xx // 
     
     $ git branch -d xx // 
    

    5. 지정된 브랜치 지정 파일 업데이트

    $ git checkout    
    
    $ git checkout master HFFrame/Global/Global_macro.h
    

    6. 원격 코드 라이브러리 복사

    $ git clone git://10.150.150.136/test.git test
    

    7. 원격 코드 라이브러리의 주 지점에서 최신 코드 가져오기


    첫 번째:
    $ git pull git://10.150.###.###/test.git master
     
    $ git pull ssh://10.150.###.###/test.git master
    

    이후:
    $git pull origin master
    
     pull push    
    
        .git/config 
    
     [core]
               repositoryformatversion = 0
               filemode = true
               bare = false
               logallrefupdates = true
               ignorecase = true
       [remote "origin"]
               fetch = +refs/heads/*:refs/remotes/orig    in/*
               url = ssh://[email protected]:6521    /cmblife.git
       [branch "master"]
              remote = origin
              merge = refs/heads/master
       [branch "hufeng"]
              remote = origin
              merge = refs/heads/hufeng
    

    8. 원격 코드 라이브러리에 로컬 코드 라이브러리 수정 전송


    마스터 지점에 제출할 경우:
    $ git push origin master
    

    원격 코드 라이브러리는 비어있는bare 라이브러리여야 합니다. 그렇지 않으면workingcopy를 혼란스럽게 할 수 있습니다!!만약workingcopy가 깨끗하다면gitcheckout-f를 사용하여 코드 라이브러리를 동기화할 수 있습니다.만약 이미 수정을 했다면, 동기화 상태를 회복할 좋은 방법이 없을 것이다.

    9. 원격 코드 라이브러리에 분기 만들기


    때때로 로컬에서 만든 지점은 원격 코드 라이브러리의 지점에 공유하기를 원합니다. 다음 명령은 원격에서 브랜치라는 지점을 만들고 로컬의 브랜치 지점과 연결합니다.
    $ git push origin branch
    

    이후,gitpush를 사용하여 코드를 원격 라이브러리에 공유할 수 있습니다.

    10. 로컬에 원격 라이브러리를 연결하는 지점


    이 명령을 사용하려면 로컬에서 원격 지점을 가져와야 할 때가 있습니다.
    $ git branch --track origin/branch
    

    이후gitpull을 사용하여 원격 업데이트를 받을 수 있습니다

    11. 모든 원격 지점 다운로드

    $ get fetch --all

    가능한 오류
    $ git remote addorigin [email protected]:defnngj/hello-world.git
    오류 알림:fatal:remote origin이 이미 존재합니다.
    해결 방법:
    $ git remote rm origin
    그리고 실행: $git remote add [email protected]:defnngj/hello-world.git 는 잘못 을 보고하지 않을 것 이다

    기본 프로세스 단계


    git .init git add * git remote add origin dev@faa git commit -a -m “” git push origin master

    좋은 웹페이지 즐겨찾기