我有一个文本文件,然后4 commits
添加了一些东西
reflog显示此
b8855f5 HEAD@{0}: commit: sample file 7, 8
76a0a1d HEAD@{1}: commit (amend): sample file 5, 6
c1e92ac HEAD@{2}: commit: sample file 35,6
a96273f HEAD@{3}: commit: sample file 3,4
c296a17 HEAD@{4}: commit: sample file added
我想要做的是还原提交a96273f
我试过这个并得到了这个
git revert -n a96273
error: could not revert a96273f... sample file 3,4
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
答案 0 :(得分:4)
与git apply
和git merge
一样,git revert
有时需要您(用户)帮助解决冲突。
例如,假设在提交a96273
中添加了limerick的第三行和第四行:
A mathematician named Klein
Thought the Moebius band was divine
Said he, "If you glue
The edges of two
You'll get a weird bottle like mine!"
然后,假设在后续提交中,您将“Moebius”的拼写更改为使用变音符号“Möbius”。
如果你然后尝试git revert a96273
,git会看到更改是添加两条缩进的行 - 它可以找到,所以没有问题 - 但是第一条缩进行之前的行说“Moebius” 。现在的那条线不匹配。 Git无法确定删除两个缩进行是否正确,因此它会因冲突而停止,并要求您编辑文件,选择最终正确的表单,然后执行git add
和git commit
完成还原操作。
答案 1 :(得分:0)
我认为您要做的是将txt文件重置为a96273,因此您要查找的命令为git reset
而不是git revert
。
尝试命令:git reset --hard a96273
,此命令将丢弃a96273之后的所有更改,因此非常危险,请小心!
如果您只想回滚提交a96273并且不放弃更改,请使用git reset --soft a96273
。
您可以查看git-reset
的手册页