如何撤消git merge分支

马诺洛

我已经在本地仓库中的两个新分支中更改了两个文件(我称其为“ new_branch”)。我已经提交了更改并将其推送到远程仓库。然后,我想将这些更改合并到master分支中。我已经做到了:

$ git checkout master
$ git merge new_branch

但是,不仅将这两个文件添加到了master,而且还添加了其他配置文件。我刚做完:

$ git add file1
$ git add file2
$ git commit -m "changes file1 and file2"
$ git push -u origin --all

为什么还要添加其他文件?以及如何撤消此合并?

这是merge的输出:

Updating b57febc..5a967d5
Fast-forward
.gitignore                                       |    6 +-
app/config/parameters.yml                        |    2 +-
src/MSD/HomeBundle/Controller/HomeController.php |  421 +++++++++++-----------
src/MSD/HomeBundle/Entity/Imagen.php             |  298 +++++++++++++++
web/bundles/msdhome/js/acercade.js               |    2 +-
5 files changed, 506 insertions(+), 223 deletions(-)
create mode 100644 src/MSD/HomeBundle/Entity/Imagen.php

我只想更改:

src/MSD/HomeBundle/Controller/HomeController.php
src/MSD/HomeBundle/Entity/Imagen.php  

“ git log --graph --decorate --pretty = oneline --abbrev-commit --all”输出:

* 5a967d5 (HEAD, origin/mejoras_contralador, mejoras_contralador, master) Controlador mo
* 081224a Cambios en controlador y clase Imagen
* a74e337 añadir directorio vendor a .gitignore
* 42d3217 Primer commit
* b57febc (origin/v1, origin/master, origin/HEAD) version 1 definitiva
* 1d1c5f7 solucionado error de js en botones social media
* 2f40866 primer commit

似乎也添加了.gitignore(但未添加app / config / parameters.yml)

其他文件可能是在分支的上一个提交中添加的。

前提是您尚未推送master分支,则可以使用以下命令轻松撤消合并git reset --hard <sha of last commit on master>:查找合并提交消息,您将看到:

合并:1234556 5423456

这显示了合并分支中的两个最新提交。一个来自大师,另一个来自new_branch。将分支重置为对master的最后一次提交。

警告这正在更改历史记录,只有在未按分支机构的情况下才应这样做。

如果您已经推分支,那么你就需要git revert HEAD~1 -m 1http://gitready.com/intermediate/2009/03/16/rolling-back-changes-with-revert.html

如果您只想从new_branch获取某些文件,则有两种选择:

1)您可以git cherry-pick提交。请记住,这将带来整个提交。因此,如果在多个提交中对文件进行了更改,则只会得到您正在挑选的提交中的更改。

2)您可以从另一个分支中签出文件,git checkout <branch-name> -- <files>然后在分支中提交它们。基本上这是相同的操作,cherry-pick但是您只能获取在一次提交中修改的一些文件,并且您对更改的选择更加严格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章