IT박스

두 개의 커밋을 하나의 커밋으로 결합하려면 어떻게해야합니까?

itboxs 2020. 11. 10. 07:56
반응형

두 개의 커밋을 하나의 커밋으로 결합하려면 어떻게해야합니까?


2 커밋이있는 'firstproject'분기가 있습니다. 이 커밋을 제거하고 단일 커밋으로 표시하고 싶습니다.

명령은 git merge --squash유망하게 들리지만 git merge --squash터미널을 실행 하면 명령에 대한 옵션이 표시됩니다. 올바른 명령은 무엇입니까?

Commit 1:
Added 'homepage.html'
Added 'contacts.html'

Commit 2:
Added 'homepage.php'
Added 'homepage.php'
Deleted 'homepage.html'
Deleted 'contacts.html'

대화식 리베이스git rebase -i 를 수행 하려고합니다 .

현재 경우 , 이전이 실행할 수있는, 커밋 당신의 "1 커밋"하고는 "2 커밋", 병합 할 커밋 git rebase -i HEAD~2하고 "스쿼시"를 "선택"에서 두 번째 줄의 첫 번째 단어를 변경 . 그런 다음 파일을 작성하고 종료하십시오. Git은 첫 번째 커밋을 두 번째 마지막 커밋으로 스쿼시합니다.

이 프로세스는 브랜치의 기록을 다시 작성합니다. 코드를 어딘가에 밀어 넣는 경우 코드를 git push -f공유하는 사람은 변경 사항을 가져 오기 위해 몇 가지 수고를 거쳐야합니다.

문제의 두 커밋 이 브랜치의 마지막 두 커밋 이 아닌 경우 프로세스가 약간 다릅니다.


나 같은 건망증을위한 게으른 간단한 버전 :

git rebase -i HEAD~3 또는 3 대신 많은 커밋.

이것을 돌려

pick YourCommitMessageWhatever
pick YouGetThePoint
pick IdkManItsACommitMessage

이것으로

pick YourCommitMessageWhatever
s YouGetThePoint
s IdkManItsACommitMessage

그리고 변경 사항을 저장하기 위해 esc누른 위치에서 몇 가지 작업을 수행 enter하십시오. [1]

다음 화면이 나타나면 쓰레기 # 줄 [2]을 제거하고 새로운 커밋 메시지 또는 무언가를 생성하고 동일한 escape enter작업을 수행하십시오. [1]

와우, 커밋이 적습니다. 아니면 당신은 모든 것을 깨뜨 렸습니다.


[1]-또는 git 구성에서 작동하는 모든 것. 이것은 내 설정에서 효율적인 시퀀스 일뿐입니다.

[2]- # this is your n'th commit이 메시지 바로 아래에 원래 커밋과 함께 몇 번 같은 내용 이 표시됩니다. 이러한 줄을 제거하고 1로 결합하는 n 개의 커밋의 의도를 반영하는 커밋 메시지를 만들고 싶습니다.


  1. 브랜치를 확인하고 모든 커밋의 수량을 계산합니다.
  2. git bash를 열고 다음과 같이 작성하십시오. git rebase -i HEAD~<quantity of your commits>(ie git rebase -i HEAD~5)
  3. 열린 txt파일에서 첫 번째 커밋 (맨 위에 있음)을 제외한 모든 커밋 picksquash대한 변경 키워드 입니다. 맨 위를 변경하고 reword(다음 단계에서이 커밋에 대한 새 주석을 제공함을 의미 함) 저장을 클릭합니다! vim에 있다면를 누른 esc다음 Enter 눌러 저장 wq!하고 Enter를 누르십시오.
  4. 의견을 제공하십시오.
  5. Git을 열고 "모두 가져 오기"를 수행하여 새 변경 사항을 확인하십시오.

끝난

참고 URL : https://stackoverflow.com/questions/12522565/how-can-i-combine-two-commits-into-one-commit

반응형