说于foo的顶部其他人创造了吧,但你创造了同时巴兹然后合并,给人
$ git lola
* 2582152 (HEAD, master) Merge branch 'otherguy'
|\
| * c7256de (otherguy) bar
* | b7e7176 baz
|/
* 9968f79 foo
历史
注:git lola是一个非标准但有用的别名。
与git revert
没有骰子:
$ git revert HEAD
fatal: Commit 2582152... is a merge but no -m option was given.
查尔斯·贝利发表了excellent answer如常。使用git revert
在
$ git revert --no-edit -m 1 HEAD
[master e900aad] Revert "Merge branch 'otherguy'"
0 files changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 bar
有效地删除bar
和产生的
$ git lola
* e900aad (HEAD, master) Revert "Merge branch 'otherguy'"
* 2582152 Merge branch 'otherguy'
|\
| * c7256de (otherguy) bar
* | b7e7176 baz
|/
* 9968f79 foo
历史,但我怀疑你想扔掉这次合并提交:
$ git reset --hard HEAD^
HEAD is now at b7e7176 baz
$ git lola
* b7e7176 (HEAD, master) baz
| * c7256de (otherguy) bar
|/
* 9968f79 foo
作为记录git rev-parse
manual
<rev>^
, e.g. HEAD^, v1.5.1^0
A suffix ^
to a revision parameter means the first parent of that commit object. ^<n>
means the n-th parent (i.e.<rev>^
is equivalent to <rev>^1
). As a special rule, <rev>^0
means the commit itself and is used when <rev>
is the object name of a tag object that refers to a commit object.
所以调用之前git reset
,HEAD^
(或HEAD^1
)为b7e7176和HEAD^2
是c7256de,即,分别合并的第一和第二父母提交。
小心git reset --hard
因为它可以摧毁工作。
好的谢谢。我发现只需更改受合并影响的两个文件,然后再提交一些其他更改也更容易。 – icnhzabot 2011-05-11 22:11:31
我在哪里可以找到有关我是否必须使用-m1或-m2,...的信息? – 2016-07-18 08:51:35
'git cat-file -p [MERGE_COMMIT_ID]'将按顺序显示父分支。列出的第一个是“-m 1”,第二个是“-m 2”。 – nostromo 2016-10-12 05:23:56