git 如何将更改提交到另一个预先存在的分支

4nkexdtk  于 2023-04-28  发布在  Git
关注(0)|答案(3)|浏览(141)

我刚对一个分支做了改动。如何将更改提交到另一个分支?
我正在尝试用途:

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

然而,我不认为这是正确的做法,因为在这种情况下,我正在创建一个新的分支,而不是将更改提交到“另一个分支”。
我应该使用下面的命令吗?

git merge "the other branch"
pprl5pva

pprl5pva1#

git checkout -b your-new-branch
git add <files>
git commit -m <message>

首先,结帐到您的新分支。然后,添加要提交到暂存的所有文件。最后,提交刚刚添加的所有文件。之后您可能需要执行git push origin your-new-branch,以便您的更改显示在远程上。

p3rjfoxz

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上的回答。

yyhrrdl8

yyhrrdl83#

如果我理解正确的话,您已经向changed_branch提交了一个提交,并且想要将该提交复制到other_branch?简单:

git checkout other_branch
git cherry-pick changed_branch

相关问题