Git 기본 자습서
git 상용 개념 및 기초
git분지의 개념
이 대상에는 임시 저장 내용의 스냅샷을 가리키는 지침이 포함되어 있으며 이번에 제출한 작가와 같은 부속 정보를 포함하고 이 제출 대상을 가리키는 0개 이상의 부모 대상 지침이 포함되어 있다. 첫 제출은 직접적인 조상이 없고 보통 제출은 조상이 한 명 있고 두 개 이상의 지점이 합쳐진 제출은 여러 조상이 있다.
매번 commit에서hashvalue를 생성하여 이번에 제출한 내용에 대응합니다.
Git 원리도
git 일반 명령
git branch 관리 분기
git add
수정된 파일, 추적 파일,.와일드카드를 사용하여 수정된 모든 파일을 임시로 저장합니다.
git status
상태 간략화, 가-s로 격식을 더욱 치밀하게 할 수 있다
git commit
저장소에 임시 저장소 파일 제출하기
git pull
원격 창고에서 파일을 가져와 로컬 지점과 통합합니다.예:git pull origin master,origin 창고에서 master 지점을 가져와 로컬로 통합하기;
git push
로컬 지점의 수정 파일을origin 창고(사실은 링크의 대칭)의 마스터 지점으로 전송하고 코드를 통합합니다. 예:git push origin 마스터;
git log 레코드 보기
제출 내용 보기
git log fix_branch ^master
;git tag - 태그
git reset and revert - 사용 내역 보기
git에서
HEAD
로 현재 버전을 표시하는데, 사실은 어떤commit을 가리키는 지침이다.HEAD^
는 지난번commit,HEAD^^
지난번제출,HEAD~100
전 100번의commitgit reset은 코드 롤백에 사용됩니다.git reset - Hard HEAD^ 이전에 제출한 커밋으로 롤백합니다.git reset - hard 34434ef (commit id) 를 커밋으로 롤백합니다.
bogon:Show sks$ git reset --hard 44e62d03aeb4fdc9e3b84f7b51fe8720c8b9f2e6
HEAD is now at 44e62d0 Merge remote-tracking branch 'origin/master'
checkout에서 원격 분기git branch-a로 원격 분기 보기;git fetch origin fetch 원격 지점에서 로컬 git checkout [branch-name] (주:remote origin을 추가할 필요가 없습니다. 예를 들어origin/develop)git rebase 분기의 결합
연화 기본 사용
주 분기에서gitcheckout -b experiment에서 테스트 분기를 생성하고 파일 조건을 수정한 후 스냅샷 C3 생성
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/DD084AEC-84B4-A845-8BB7-B6C0488FAE94.png)
앞서 소개한 바와 같이 가장 쉽게 지점을 통합하는 방법은merge명령이다. 두 지점의 최신 스냅숏(C3과 C4)과 양자의 최신 공동 조상(C2)을 삼자합병하여 합병한 결과 새로운 제출 대상이 생성된다(C5).
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/81371B41-EBD9-D94E-8A3C-0DA730CF6B77.png)
또 다른 합병 방법이 있어요. - 연화.
너는 C3에서 발생한 변화 패치를 C4의 기초 위에서 다시 한 번 칠 수 있다.Git에서 이런 조작을 연합(rebase)이라고 부른다.리베이스 명령이 있으면 한 지점에서 제출한 변경 사항을 다른 지점으로 옮겨서 다시 한 번 재생할 수 있습니다.
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/B3A77D28-5EFD-2143-B9ED-B6F0D0D6667B.png)
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/E60BDAFD-E375-074F-8129-596B7243D570.png)
Gitcheckout experiment
Gitrebase master
First,rewinding head to replay your work on top of it... Applying: added stagedcommand
그들의 원리는 두 지점의 가장 가까운 공동 조상으로 돌아가 현재 지점(즉 진화를 진행하는experiment 지점)의 후속 역대 제출 대상(이곳은 C3)에 따라 일련의 패치 파일을 생성한 다음에 기저 지점(즉 주요 지점 마스터)의 마지막 제출 대상을 새로운 출발점으로 하여 이전에 준비한 패치 파일을 하나씩 응용하여 새로운 합병 제출 대상 C3'을 생성하는 것이다.experiment의 제출 역사를 바꿉니다
그것을 마스터의 직접 하류로 만들다.제출 기록을 깨끗하게 하다.마지막 C3랑 C5랑 결과는 똑같아요.
연화의 진급 사용 - 기타 지점에서 연화를 진행
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/024EA003-ACA7-184E-A342-39BDA45CC6FE.png)
하나의 특성 지점에서 하나의 특성 지점의 역사를 나누는 것이다
우리가 먼저 클라이언트의 수정을 주 지점에 합쳐서 서비스 측의 합입을 잠시 연기할 것이다. (더 많은 테스트가 필요하기 때문이다.)이럴 때, 우리는 서버 지점이 아닌 클라이언트 지점에 기반한 변경 (C8, C9) 을 서버 지점을 건너뛰고 마스터 지점에서 직접 재연할 수 있습니다.그러나 이것은gitrebase의onto 명령으로 새로운 베이스 지점 마스터를 지정해야 합니다
Git rebase --onto master server client
이것은 마치 "client 지점을 꺼내서 client 지점과 서버 지점의 공동 조상 이후의 변화를 찾아내고 그것들을 마스터에서 재연하는 것과 같다"는 말과 같다.좀 복잡하지 않아요?그러나 그 결과는 그림3-32와 같다.아주 멋있다.
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/C6A5DF5B-3AA6-1142-82C4-BE8C463E0152.png)
특성 분지의 다른 특성 분지를 다른 분지로 확대하다
이제 마우스트 지점으로 들어갈 수 있어요.
Git checkout master;
Git merge client;
빨리 마스터 지점에 들어가서client의 변화를 포함합니다
서버 분기의 변화도 포함하여 서버를 마스터로 직접 연결할 수 있으며 수동으로 서버 분기로 전환하지 않고 다시 연결할 수 있습니다 -git rebase [주 분기] [특성 분기] 명령은 먼저 특성 분기 서버를 꺼내서 주 분기 마스터에서 재연합니다:
Gitrebase master server;
Gitrebase master server;
그래서 서버의 변화가 마스터에 포함됩니다
그리고 빨리 마스터 지점으로 들어가세요.
Gitcheckout master;
Git mergeserver;
현재client와 서버의 변화가 마스터 지점에 합쳐져서 특성 지점을 삭제할 수 있습니다
Gitbranch -d client;
Gitbranch -d server;
결국 저희가 제출한 역사는 이렇습니다.
![](file:////Users/sks/Library/Group%20Containers/UBF8T346G9.Office/msoclip1/01/64F901D7-AB61-124C-8550-E3D3C609BEA6.png)
파생적 위험
반드시 하나의 준칙을 준수해야 한다. 일단 지점의 수정 대상이 공공 창고에 제출되면 이 지점에 대해 확대하고 조작하지 말아야 한다.
이유:
연합을 진행할 때 사실상 현존하는 제출 대상을 버리고 유사하지만 다른 새로운 제출 대상을 만들었다.만약 당신이 원래 지점의 제출 대상을 발표하고 다른 사람이 다운로드를 업데이트한 후에 그 기초 위에서 작업을 전개한다면, 잠시 후에 gitrebase로 제출 대상을 버리고, 새로운 재연된 제출 대상을 발표한다면, 당신의 협력자는 그들의 업무를 다시 통합시켜야 한다. 그러면 당신이 다시 그들에게서 내용을 얻게 되면 제출 역사는 엉망이 될 것이다.
git diff
git diff 저장된 업데이트 및 저장되지 않은 업데이트 보기
git remote 관련 명령
git 기타 명령
git reflog
Git에서 명령을 제공합니다.
git reflog
명령을 기록할 수 있습니다.bogon:Show sks$ git reflog
0b7e40c HEAD@{0}: commit:
594d9ef HEAD@{1}: commit:
045cb6e HEAD@{2}: commit:
e4b50cf HEAD@{3}: commit:
44e62d0 HEAD@{4}: merge origin/master: Merge made by the 'recursive' strategy.
d934ed9 HEAD@{5}: commit:
5c8fbc7 HEAD@{6}: merge origin/master: Merge made by the 'recursive' strategy.
mac ssh 공공 키 개인 키 생성
ssh-keygen -t rsa -b 4096 -C "[email protected]"
ssh-keygen -t rsa -C "[email protected]"
git 고려 사항
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.