我有一个master
有一些提交,我回到第一个提交,从那里创建了一个分支并使用cherry-pick
来应用master
分支中的一个提交。但由于一些冲突,我得到了一条消息:
Automatic cherry-pick failed. After resolving the conflicts,
mark the corrected paths with 'git add <paths>' or 'git rm <paths>'
and commit the result with:
git commit -c some_hash_id
问题是,解决冲突花了我一段时间,同时我用消息关闭了终端,现在我不知道提交解析文件时我应该使用什么提交哈希。我如何找到它?
如果我没有提供足够的详细信息,请在评论中提出要求。
编辑:
$ git status
# On branch upgrade
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: file1.php
# new file: file2.php
#
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: file3.php
# both modified: file4.php
# both modified: file5.php
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# [long list of files...]
file3.php
,file4.php
和file5.php
是我必须解决冲突的问题。
$ git cherry-pick --continue
error: unknown option `continue'
usage: git cherry-pick [options] <commit-ish>
-n, --no-commit don't automatically commit
-e, --edit edit the commit message
-x append commit name when cherry-picking
-r no-op (backward compatibility)
-s, --signoff add Signed-off-by:
-m, --mainline <n> parent number
--rerere-autoupdate update the index with reused conflict resolution if possible
--ff allow fast-forward
$ git cherry-pick --abort
error: unknown option `abort'
usage: git cherry-pick [options] <commit-ish>
-n, --no-commit don't automatically commit
-e, --edit edit the commit message
-x append commit name when cherry-picking
-r no-op (backward compatibility)
-s, --signoff add Signed-off-by:
-m, --mainline <n> parent number
--rerere-autoupdate update the index with reused conflict resolution if possible
--ff allow fast-forward
但是文档说:
--continue
Continue the operation in progress using the information in .git/sequencer. Can be used to continue after resolving conflicts in a failed cherry-pick or revert.
我没有这样的文件(我查过)所以也许我现在不能使用这些命令。
我使用的是git 1.7.1版。
答案 0 :(得分:0)
Git 2.22(2019年第二季度,4年后)应该做得更好,以保持樱桃签的状态或恢复解决冲突的状态。
请参见commit 4a72486的commit b07d9bf,Phillip Wood (phillipwood
)(2019年4月16日)。
(由Junio C Hamano -- gitster
--在commit b51a0fd中合并,2019年5月13日)
提交后修复
cherry-pick
/revert
状态如果用户在一系列的樱桃/还原操作中间使用
git commit
提交了一个冲突解决方案,那么git status
会错过仍然在进行樱桃/还原操作的事实。< / p>
并且:
commit
/reset
:尝试清理音序器状态选择或还原提交序列时以及最终 选择/还原有冲突,并且用户使用
git commit
提交 解决冲突,然后不运行git cherry-pick --continue
音序器状态被留下。稍后可能会导致问题。
就我而言,我挑选了一系列提交,最后一个提交 解决了一些冲突后,使用
git commit
进行了承诺 后来,在另一个分支上,我中止了还原,从而将HEAD倒退到 前一个分支上的Cherry-pick序列的结尾。如果要提交或删除定序器状态,则可以避免此潜在问题 按顺序重置最终选择。