Git:如何将修改从master改为branch?

时间:2014-06-03 09:54:13

标签: git

我错误地改变了主人的变化,而不是我的新分支。我想在新的分支上移动它们。问题是我已经完成了提交,我还没有看到它是在master上。当我想做推...我已经看过了。有没有办法返回并将更改从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

1 个答案:

答案 0 :(得分:2)

看起来实际的提交结构是你想要的,只是分支指向错误的提交。确保工作树中没有重要更改,并首先阅读完整答案,以检查更改是否真正符合您的要求。然后,这样做:

git checkout branch1
git reset --hard master

这会改变branch1,使其指向与master相同的提交,这是我们想要的。 --hard参数告诉g​​it也检查该提交的工作树和索引,这样我们就不会有未提交的更改。这意味着所有未提交的更改都将被覆盖。这就是我说工作树应该没有重大变化的原因......

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

git checkout master
git reset --hard origin/master

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