programing

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

instargram 2023. 8. 25. 23:15
반응형

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

저는 2개의 커밋이 있는 지점 '첫 번째 프로젝트'가 있습니다.이러한 커밋을 제거하고 단일 커밋으로 표시합니다.

명령어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대화형 기본 재배치를 수행합니다.

현재 "commit 1"에 있고 병합할 커밋 "commit 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]

와, 커밋이 적네요.아니면 그냥 다 부숴버렸거나.


- 또는 Git 구성과 함께 작동하는 모든 것.이것은 제 설정을 고려할 때 효율적인 순서일 뿐입니다.

- 다음과 같은 것들을 보게 될 것입니다.# this is your n'th commit이 메시지 바로 아래에 있는 원래 커밋과 함께 몇 번.이 행을 제거하고 1로 결합하는 커밋의 의도를 반영하는 커밋 메시지를 작성하려고 합니다.

  1. 분기를 확인하고 모든 커밋의 수량을 계산합니다.
  2. gitbash를 열고 다음을 기록합니다.git rebase -i HEAD~<quantity of your commits>(즉,git rebase -i HEAD~5)
  3. 개봉됨txt파일 변경pick에 대한 키워드.squash첫 번째 커밋(맨 위에 있음)을 제외한 모든 커밋에 대해.첫 번째는 다음으로 변경합니다.reword, 에서 이 새 입니다.) 저장, 다음단서에이을대커것다에니입다제즉니할한공합밋클릭을명설새을저장고계클하릭])를 클릭합니다.에는 vim인를, 다니누릅우를 .esc그런 다음 을 입력하여 저장합니다.wq!Enter 키를 누릅니다.
  4. 설명을 제공합니다.
  5. Git를 열고 "모두 가져오기"를 눌러 새 변경 사항을 확인합니다.

다 했어요.

이게 제가 하는 일입니다.대화형 리베이스를 수행하는 것보다 더 쉽습니다.

git reset HEAD~2.  // go back 2 commits.
git commit -am “My squashed single commit”
git push --force 

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

반응형