我刚对一个分支做了改动。如何将更改提交到另一个分支?我正在尝试用途:
git checkout "the commmit to the changed branch" -b "the other branch"
然而,我不认为这是正确的做法,因为在这种情况下,我正在创建一个新的分支,而不是将更改提交到“另一个分支”。我应该使用下面的命令吗?
git merge "the other branch"
pprl5pva1#
git checkout -b your-new-branch git add <files> git commit -m <message>
首先,结帐到您的新分支。然后,添加要提交到暂存的所有文件。最后,提交刚刚添加的所有文件。之后您可能需要执行git push origin your-new-branch,以便您的更改显示在远程上。
git push origin your-new-branch
p3rjfoxz2#
这是问题中的情况,因为OP希望提交到新分支,并且如果您的更改与目标分支兼容而不会触发覆盖,则也适用。正如John Brodie给出的公认答案,你可以简单地 checkout 新分支并提交工作:
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>
从你的最后一次提交创建一个新的分支(这将保留你的工作),然后重置原始分支:
git checkout -b <new-branch-name> git checkout <original-branch-name> git reset <commit-id> --soft
如果你已经将你的更改推送到一个共享的远程站点,比如GitHub,除非你知道自己在做什么,否则不应该尝试回滚。另见joeytwiddle在this potential duplicate上的回答。
yyhrrdl83#
如果我理解正确的话,您已经向changed_branch提交了一个提交,并且想要将该提交复制到other_branch?简单:
changed_branch
other_branch
git checkout other_branch git cherry-pick changed_branch
3条答案
按热度按时间pprl5pva1#
首先,结帐到您的新分支。然后,添加要提交到暂存的所有文件。最后,提交刚刚添加的所有文件。之后您可能需要执行
git push origin your-new-branch
,以便您的更改显示在远程上。p3rjfoxz2#
未提交更改
如果您的更改与其他分支兼容
这是问题中的情况,因为OP希望提交到新分支,并且如果您的更改与目标分支兼容而不会触发覆盖,则也适用。
正如John Brodie给出的公认答案,你可以简单地 checkout 新分支并提交工作:
如果您的更改与其他分支不兼容
如果你得到错误:
然后你可以隐藏你的工作,创建一个新的分支,然后弹出你的隐藏更改,并解决冲突:
这就好像你在创建新分支后做了这些更改一样。然后你可以像往常一样提交:
如果提交了更改
如果要保留原分支提交
请参阅Carl Norum的答案,在这种情况下,这是正确的工具:
如果不想保留原始分支中的提交
从你的最后一次提交创建一个新的分支(这将保留你的工作),然后重置原始分支:
如果你已经将你的更改推送到一个共享的远程站点,比如GitHub,除非你知道自己在做什么,否则不应该尝试回滚。
另见joeytwiddle在this potential duplicate上的回答。
yyhrrdl83#
如果我理解正确的话,您已经向
changed_branch
提交了一个提交,并且想要将该提交复制到other_branch
?简单: