현재 변경 사항을 git [duplicate]의 다른 지점에 커밋하는 방법
이 질문에 이미 답변이 있습니다.
때때로 작업 디렉토리에서 일부 변경을 수행하고 이러한 변경 사항이 현재 분기와 다른 분기에서 커밋되어야한다는 것을 깨달았습니다. 이것은 일반적으로 새로운 것을 시도하거나 테스트를 수행하고 싶고 미리 새 분기를 만드는 것을 잊었지만 마스터 분기에 더티 코드를 커밋하고 싶지 않을 때 발생합니다.
그렇다면 커밋되지 않은 변경 사항 (또는 인덱스에 저장된 변경 사항)을 현재 분기와 다른 분기에 커밋하려면 어떻게해야합니까?
다른 브랜치를 체크 아웃 한 다음 커밋을 제안하는 다른 답변은 로컬 수정을 고려할 때 체크 아웃이 가능한 경우에만 작동합니다. 그렇지 않은 경우 다음과 같은 가장 일반적인 사용 사례입니다 git stash
.
git stash
git checkout other-branch
git stash pop
첫 번째는 stash
변경 사항을 숨기고 (기본적으로 임시 커밋을 수행함) 이후에 stash pop
다시 적용합니다. 이를 통해 git은 병합 기능을 사용할 수 있습니다.
숨김을 팝하려고 할 때 병합 충돌이 발생하면 다음 단계는 충돌이 무엇인지에 따라 다릅니다. 숨겨진 모든 변경 사항이 실제로 다른 브랜치에 속하는 경우 단순히 정렬해야합니다. 이는 잘못된 브랜치에서 변경 한 결과입니다.
반면에, 정말 엉망이되었고 작업 트리에 두 가지 변경 사항이 혼합되어 있고 충돌이 원래 분기에서 다시 커밋하려는 항목에만있는 경우 일부 작업을 저장할 수 있습니다. . 평소와 같이이를 수행하는 방법에는 여러 가지가 있습니다. 다음은 충돌을 확인한 후 시작하는 것입니다.
# 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)
bashrc에서 PS1에 추가하여 현재 브랜치 이름을 프롬프트에 입력하여 피 하십시오. (예를 들어 Bash 문서 의 Git을 참조하십시오 .)
새 분기를 만들고 전환 할 수 있습니다. 그런 다음 변경 사항을 커밋하십시오.
git branch dirty
git checkout dirty
// And your commit follows ...
또는 기존 브랜치를 체크 아웃 할 수도 있습니다 ( git checkout <name>
). 그러나 충돌이없는 경우에만 해당됩니다 (편집 된 모든 파일의 기본이 현재 분기와 동일 함). 그렇지 않으면 메시지가 표시됩니다.
git checkout my_other_branch
git add my_file my_other_file
git commit -m
그리고 커밋 메시지를 제공하십시오.
'Program Tip' 카테고리의 다른 글
PHP로 POST 요청을 보내려면 어떻게합니까? (0) | 2020.10.02 |
---|---|
Linux의 특정 포트에서 실행되는 프로세스를 종료하는 방법은 무엇입니까? (0) | 2020.10.02 |
jQuery 각 루프에서 벗어나는 방법 (0) | 2020.10.02 |
INotifyPropertyChanged 구현-더 나은 방법이 있습니까? (0) | 2020.10.02 |
Java에서 폴더의 모든 파일을 읽는 방법은 무엇입니까? (0) | 2020.10.02 |