programing

Git의 다른 브랜치에 현재 변경을 커밋하는 방법

easyjava 2023. 4. 14. 22:14
반응형

Git의 다른 브랜치에 현재 변경을 커밋하는 방법

작업 디렉토리에서 변경을 가하는 경우가 있는데, 이러한 변경은 현재와 다른 지점에서 커밋해야 합니다.이것은 보통 새로운 것을 시도하거나 테스트를 하고 싶을 때 새로운 브랜치를 만드는 것을 잊어버렸을 때 발생합니다만, 마스터 브랜치에 더러운 코드를 커밋하고 싶지 않습니다.

그러면 커밋되지 않은 변경(또는 인덱스에 저장된 변경)을 현재 브랜치와 다른 브랜치로 커밋하려면 어떻게 해야 합니까?

다른 답변은 다른 브랜치를 체크 아웃하고 나서 그것을 커밋하는 것으로, 로컬이 변경되었을 때 체크 아웃이 가능한 경우에만 기능합니다.그렇지 않은 경우 가장 일반적인 사용 사례에 해당됩니다.git stash:

git stash
git checkout other-branch
git stash pop

첫 번째stash변경 내용을 숨기고(일시적으로 커밋하는 경우) 후속 변경 내용을 숨깁니다.stash pop다시 검사해봐이를 통해 Git은 머지 기능을 사용할 수 있습니다.

저장 공간을 열려고 할 때 병합 충돌이 발생하면...다음 단계는 그 갈등들이 무엇이냐에 달려있다.저장된 모든 변경 사항이 실제로 다른 지점에 속한다면, 단순히 그것들을 분류해야 합니다. 이는 잘못된 지점에 변경을 가한 결과입니다.

한편, 워크트리에 2개의 브런치가 혼재하고 있는 경우, 원래의 브런치로 되돌리고 싶은 브런치에 경합이 있는 경우는, 몇개의 작업을 보존할 수 있습니다.여느 때처럼, 많은 방법이 있습니다.다음은 팝업 표시 후 충돌 보기부터 시작합니다.

# Unstage everything (warning: this leaves files with conflicts in your tree)
git reset

# Add the things you *do* want to commit here
git add -p     # or maybe git add -i
git commit

# The stash still exists; pop only throws it away if it applied cleanly
git checkout original-branch
git stash pop

# Add the changes meant for this branch
git add -p
git commit

# And throw away the rest
git reset --hard

또는 이 문제가 발생할 것을 미리 알고 있는 경우에는 현재 브랜치에 속하는 것을 커밋하기만 하면 됩니다.언제든지 돌아와서 커밋을 수정할 수 있습니다.

git add -p
git commit
git stash
git checkout other-branch
git stash pop

그리고 물론 이 모든 것에 약간의 작업이 필요하다는 것을 기억하시고, 다음 번에는 다음을 추가하여 현재 지점 이름을 프롬프트에 입력함으로써 이 문제를 회피하시기 바랍니다.$(__git_ps1)ps1 환경변수로 이동합니다.(예를 들어 Git in Bash 매뉴얼 참조)

새 브랜치를 만들고 전환하기만 하면 됩니다.다음으로 변경을 커밋합니다.

git branch dirty
git checkout dirty
// And your commit follows ...

기존 그냥 브런치)를 도 있습니다.git checkout <name>그러나 충돌이 없는 경우에만 해당됩니다(편집된 모든 파일의 베이스는 현재 브랜치와 동일합니다).그렇지 않으면 메시지가 나타납니다.

에 변경을 할 수 . -m은 git에 변경을 병합하도록 지시할 수 있습니다.git checkout -m <name>

  1. git checkout my_other_branch
  2. git add my_file my_other_file
  3. git commit -m

그리고 약속 메시지를 제공하세요.

언급URL : https://stackoverflow.com/questions/2944469/how-to-commit-my-current-changes-to-a-different-branch-in-git

반응형