我错误地改变了主人的变化,而不是我的新分支。我想在新的分支上移动它们。问题是我已经完成了提交,我还没有看到它是在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
答案 0 :(得分:2)
看起来实际的提交结构是你想要的,只是分支指向错误的提交。确保工作树中没有重要更改,并首先阅读完整答案,以检查更改是否真正符合您的要求。然后,这样做:
git checkout branch1
git reset --hard master
这会改变branch1,使其指向与master相同的提交,这是我们想要的。 --hard
参数告诉git也检查该提交的工作树和索引,这样我们就不会有未提交的更改。这意味着所有未提交的更改都将被覆盖。这就是我说工作树应该没有重大变化的原因......
无论如何,我们不必只对主分支做同样的事情:
git checkout master
git reset --hard origin/master
我假设这是您希望主人现在指向的地方,因为您没有在您的问题中指明它。您也可以删除本地主分支,并从origin / master再次检出相同的结果。