說於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