我刚刚对分支进行了更改。如何将更改提交到另一个分支?
我正在尝试使用:
git checkout "the commmit to the changed branch" -b "the other branch"
但是,我认为这不是正确的做法,因为在这种情况下,我正在创建一个新分支,而不是将更改提交到“另一个分支”。
我应该改用以下命令吗?
git merge "the other branch"
我刚刚对分支进行了更改。如何将更改提交到另一个分支?
我正在尝试使用:
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 希望提交到新分支,并且如果您的更改与目标分支兼容而不会触发覆盖,也适用。
正如约翰布罗迪接受的答案一样,您可以简单地签出新分支并提交工作:
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