[Git 작업] 커밋, 병합, 수정, 삭제 및 기타 작업

1. 소개

Git 사용 과정에서 각 코드 수정이 완료되면 수정 된 내용을 로컬 브랜치에 저장 한 다음 원격 브랜치로 푸시해야하며 각 커밋은 커밋 형태로 브랜치에 저장, 사용자는 명령 줄을 사용하여 제출 된 콘텐츠를보고, 편집하고, 수정하거나, git 운영 인터페이스에서 해당 작업을 수행 할 수 있으며, 다음과 같이 제출에 해당하는 모든 코드 콘텐츠를 직접 다운로드 할 수도 있습니다. 주로 명령 줄 작업의 관점에서 Git의 커밋 관련 작업을 소개합니다.
여기에 사진 설명 삽입

2. 사용

(1) 제출

코드 수정 완료 후 코드 변경 git status의 기본 상황을 확인하거나 git diff변경된 파일의 세부 변경 내용을 볼 수 있습니다 . 정확한 것으로 확인되면 git add .모든 항목을 추가 할 수 있습니다 . 제출할 콘텐츠를 선택하거나 여러 파일 git add filename선택 하여 특정 파일을 추가 할 수 있습니다. 제출이 완료된 후을 사용 git commit -m "comment"하여 콘텐츠 제출을 완료하여 제출 된 콘텐츠가 로컬 브랜치에 들어가도록 할 수 있습니다 . 더 이상 vim 편집기를 열어 콘텐츠를 늘린 다음 vim 편집기를 열 수 있습니다 git commit. 콘텐츠가 추가 된 후 저장하고 종료합니다.
다음 그림은 Git의 작업 경로를 보여줍니다. 프로젝트는 로컬 파일 (또는 작업 공간), 저장소 (로컬 브랜치)에 추가하고 원격 브랜치 git addgit commit추가 하여 스테이징 영역에 추가 할 수 있습니다. 원격 브랜치의 컨텐츠는 다음을 통해 로컬 브랜치로 가져올 수 있습니다.git pushgit pull
여기에 사진 설명 삽입

(2)보기

( ) git add를 사용하여 임시 저장 영역에 파일을 추가 하면 이 제출에있는 모든 (일부) 파일 의 변경 사항을 수 있습니다. 저장소에 변경 사항을 추가 한 후 다음을 사용할 수 있습니다. 버전git diffgit diff 文件名git commitgit show 版本id

(3) 수정

① 제출 정보
수정 시나리오 1 : 최근 커밋의 제출 정보 수정,
git commit --amend 커밋 편집 인터페이스 진입, 편집 후 저장
시나리오 2 : 이전 n 커밋
의 제출 정보 수정. 마지막 n 번째 커밋.

$ git rebase -i HEAD~n
# 进入编辑模式,会出现类似以下的内容
pick 6608e22 修改代码结构调整导致不能正常显示的问题
pick 1d381cd 菜单切换可用
...

# 将需要修改的commit的那一行的pick修改为edit,然后保存退出
# 然后输入
$ git commit --amend
# 进入你需要修改的commit编辑界面,编辑后保存退出
# 修改结束后,输入以下命令返回到最新的commit
$ git rebase --continue

몇 개의 커밋을 수정해야하며, 여러 번 수행 git commit --amend하고 git rebase --continue작업을 수행해야 합니다.
② 제출을 수정합니다.
step1 : 현재 브랜치는 일시적으로 휴업 상태로 저장됩니다.

 git stash

2 단계 : 수정해야하는 커밋으로 HEAD를 이동합니다.

 git rebase eb69bff96^ --interactive

3 단계 : 커밋을 수정할 필요가 있는지 확인하고 4 단계 이후에 저장 한 첫 번째 줄 pick변경 : 파일 내용 수정 시작 5 단계 : 나머지 변경 사항을 파일에 추가edit

 git add

6 단계 : 제출에 변경 사항 추가

 git commit --amend

step7 : HEAD를 최신 커밋으로 다시 이동

 git rebase --continue

step8 : 이전 작업 상태 복원

 git stash pop

(4) 삭제

예를 들어 제출 내역은 다음과 같습니다.

commit 58211e7a5da5e74171e90d8b90b2f00881a48d3a

Author: test <[email protected]>

Date:   Fri Sep 22 20:55:38 2017 +0800

    add d.txt

commit 0fb295fe0e0276f0c81df61c4fd853b7a000bb5c

Author: test <[email protected]>

Date:   Fri Sep 22 20:32:45 2017 +0800

    add c.txt

commit 7753f40d892a8e0d14176a42f6e12ae0179a3210

Author: test <[email protected]>

Date:   Fri Sep 22 20:31:39 2017 +0800

    init

비고가 add c.txtcommit 0fb295fe0e0276f0c81df61c4fd853b7a000bb5c커밋 을 삭제하려면

이 제출 전에 제출 된 커밋을 먼저 찾습니다.7753f40d892a8e0d14176a42f6e12ae0179a3210

step2. 다음 명령을 실행합니다.

   git rebase -i  7753f40

다음 인터페이스가 나타납니다 (원본 그림이 손실되고 아래 그림이 유사합니다).

img

step3. 0fb295f이 줄 앞부분이 대신 드롭을 선택한 다음 프롬프트에 따라 저장을 종료합니다.

STEP4. 지금까지 삭제 된 커밋 지정, 당신은 그것을 사용할 수 있습니다 git log보기

(5) 합병

때로는 한 브랜치에서 의미가 비슷한 여러 커밋이 전체 커밋 기록을 엉망으로 만들 수 있습니다. 이때 커밋의 일부를 하나의 커밋으로 병합하여 전체 커밋 기록을 아름답게 만들 수 있습니다. rebase 메서드를 사용하여 여러 번 병합 할 수 있습니다. , 주요 단계는 다음과 같습니다.

1 단계 : 현재 커밋 기록을보기위한 git log

예를 들어, 다음 3 개의 "Leave Application Client Code Optimization"커밋을 하나의 커밋으로 병합해야합니다. 2
img
단계 : git 압축을
위한 git rebase 실행 git rebase -i HEAD ~ 4를 실행하여 마지막 4 개의 커밋을 리베이스합니다.
img

아래 명령은 특정 작업에 대해 매우 명확합니다. 커밋 병합을 위해 squash 및 fixup 명령을 사용할 수 있습니다. 차이점은 squash가 이전 커밋 주석에 커밋의 주석을 추가하고 수정은 현재의 주석을 포기하는 것입니다. 범하다;

img
편집 후 저장하고 종료합니다. Git은 커밋 내역을 자동으로 압축합니다. 충돌이있는 경우 git rebase --continue를 사용하여 충돌을 해결 한 후 현재 git 압축 프로세스로 돌아가는 것을 잊지 마십시오.
img

3 단계 : 원격웨어 하우스로 푸시 git push -f
커밋 기록을 검토하면 이러한 커밋이 병합되었으며 전체 커밋 기록이 훨씬 더 간결하다는 것을 알 수 있습니다.
img

(6) 리모컨으로 푸시

①Do 추적 설정하지
여기에 사진 설명 삽입
T6 자식 푸시 기원을 ②Set가
추적
자식 푸시 --set-상류 기원 지점 이름의
자식 밀어
여기에 사진 설명 삽입

③ 강제 푸시
git push -f는
제출 된 콘텐츠를 리베이스, 병합, 삭제 및 수정하는 데 자주 사용됩니다.

추천

출처blog.csdn.net/weixin_44704985/article/details/113977683