새 브랜치에 변경 사항을 커밋하는 방법 커밋하려면 어떻게해야합니까? 사용하려고합니다 : git

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

사용하려고합니다 :

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"

변경 사항을 커밋 한 경우

커밋을 원래 브랜치에 유지하려면

이 경우 올바른 도구 인 체리 따기와 함께 Carl Norum의 답변을 참조하십시오.

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

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

이 잠재적 중복 에 대한 joeytwiddle의 답변을 참조하십시오 . 위의 단계를 적절히 수행 한 다음 원래 분기를 롤백하십시오.

git branch -f <original branch> <earlier commit id>

GitHub와 같은 공유 리모콘으로 변경 사항을 푸시 한 경우 수행중인 작업을 모르면이 롤백을 시도해서는 안됩니다.


답변

내가 올바르게 이해한다면, 당신은 커밋을 changed_branch하고 그 커밋을 복사하고 싶 other_branch습니까? 쉬운:

git checkout other_branch
git cherry-pick changed_branch