programing

기존의 다른 분기에 변경 사항을 커밋하는 방법

closeapi 2023. 6. 20. 21:37
반응형

기존의 다른 분기에 변경 사항을 커밋하는 방법

방금 지점을 변경했습니다.변경 사항을 다른 지점에 커밋하려면 어떻게 해야 합니까?

다음을 사용하려고 합니다.

git checkout "the commmit to the changed branch" -b "the other branch"

그러나 이 경우 "다른 지점"에 대한 변경을 커밋하는 대신 새 지점을 만드는 것이기 때문에 이 작업은 올바른 작업이 아니라고 생각합니다.

대신 다음 명령을 사용해야 합니까?

git merge "the other branch"
git checkout -b your-new-branch
git add <files>
git commit -m <message>

먼저 새 지점에서 체크아웃합니다.그런 다음 스테이징에 커밋할 모든 파일을 추가합니다.마지막으로 방금 추가한 모든 파일을 커밋합니다.당신은 할 수도 있습니다.git push origin your-new-branch나중에 변경 사항이 리모컨에 표시됩니다.

변경 내용을 커밋하지 않은 경우

변경 내용이 다른 분기와 호환되는 경우

OP가 새 분기에 커밋하기를 원하며 덮어쓰기를 트리거하지 않고 변경 사항이 대상 분기와 호환되는 경우에도 적용되기 때문입니다.

John Brodie가 수락한 답변과 마찬가지로 새 지점을 확인하고 작업을 커밋할 수 있습니다.

git checkout -b branch_name
git add <files>
git commit -m "message"

변경 내용이 다른 분기와 호환되지 않는 경우

오류가 발생하는 경우:

error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches

그런 다음 작업을 저장하고, 새 분기를 만든 다음, 저장 변경 사항을 팝업하고, 충돌을 해결할 수 있습니다.

git stash
git checkout -b branch_name
git stash pop

새 분기를 만든 후 변경한 것과 같습니다.그런 다음 평소와 같이 커밋할 수 있습니다.

git add <files>
git commit -m "message"

변경 내용을 커밋한 경우

원래 분기에 커밋을 유지하려는 경우

이 경우에 적합한 도구인 체리 픽과 함께 칼 노룸의 답변을 보십시오.

git checkout <target name>
git cherry-pick <original branch>

원래 분기에 커밋을 유지하지 않으려면

작업을 유지하는 마지막 커밋에서 새 분기를 만든 다음 원래 분기를 재설정합니다.

git checkout -b <new-branch-name>
git checkout <original-branch-name>
git reset <commit-id> --soft

GitHub와 같은 공유 원격으로 변경사항을 푸시한 경우, 작업 내용을 모르는 경우에는 이 롤백을 시도하면 안 됩니다.

이 잠재적인 복제에 대한 Joeytwiddle의 답변을 참조하십시오.

내가 옳게 이해했다면, 당신은 약속을 했습니다.changed_branch그리고 당신은 그 약속을 복사하고 싶어합니다.other_branch쉬운:

git checkout other_branch
git cherry-pick changed_branch

언급URL : https://stackoverflow.com/questions/14655816/how-to-commit-changes-to-another-pre-existent-branch

반응형