Git:如何将修改从主分支转移到分支?

标签 git

我错误地在主分支上进行了更改,而不是在我的新分支上。我想把它们移到新分支上。问题是我已经完成了提交,但我还没有看到它在master上。当我想做推送时...我已经看到了。有没有办法返回并将更改从主分支移至分支,而无需重做我曾经做过的所有操作?

它的样子是这样的:

* d4452d9 (HEAD, master) Added saving images for viewing
| * 129aa64 (branch2) Added interiors_folder in config file
| * ae892d8 Added images of interior
|/  
* c08a8d4 (origin/branch1, branch1) Before new branch
* b7b9dd5 (origin/master) Removed printing

我想要这样的:

* d4452d9 (HEAD, branch1) Added saving images for viewing
| * 129aa64 (branch2) Added interiors_folder in config file
| * ae892d8 Added images of interior
|/  
* c08a8d4 (origin/branch1, branch1) Before new branch
* b7b9dd5 (origin/master) Removed printing

最佳答案

看起来实际的提交结构就是您想要的,只是分支指向错误的提交。确保工作树中没有重要的更改,并首先阅读完整的答案,以检查更改是否真正达到您想要的效果。然后,执行以下操作:

git checkout branch1
git reset --hard master

这将更改branch1,使其指向与master相同的提交,这就是我们想要的位置。 --hard 参数告诉 git 还检查该提交的工作树和索引,这样我们就不会出现未提交的更改。这意味着所有未提交的更改都将被覆盖。这就是为什么我说工作树应该摆脱重要的变化......

无论如何,我们不必对 master 分支做同样的事情:

git checkout master
git reset --hard origin/master

我假设这就是您现在希望主人指出的地方,因为您没有在问题中指定它。您也可以删除本地 master 分支,然后从 origin/master 再次检查它以获得相同的结果。

关于Git:如何将修改从主分支转移到分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24012125/

相关文章:

linux - 如何在任何文件夹中忽略git中的目录

两个人在本地协作的 git 工作流

python - 使用 PyGit2 复制“git checkout <commit>

git - Git 并发在客户端安全吗?

GitHub 错误 : Key already in use

git - 致命的 : could not unset 'branch.master.remote'

git - 如何仅使用管道命令查找 git 提交的日期?

Git 推送 : fatal: Out of memory, malloc 失败

git - 由于正在创建 @tmp 路径,Jenkins 管道作业找不到脚本

git - 如何反转 git log --author=me? (不使用 Perl)