在git中反转提交

时间:2013-09-25 03:42:29

标签: ios git

我在Storyboard for iOS上进行了本地更改。我无法与我的一个朋友正确合并,所以我放弃了。我的变化非常小,我可以稍后重做。我想做的是在没有故事板的情况下撤消上次提交并保留我的代码。我试着这样做:

How to undo last commit(s) in Git?

我如何解释这是:

git reset --soft HEAD^

之后,我做了git状态,我在暂存区看到了所有绿色文件,包括故事板。所以我想取消它们(或者我认为)。所以我做了

git reset HEAD MainStoryboard*

然后我没有在git status上看到我的故事板文件。在我认为很奇怪的未上升区域,我没有看到它们是红色的。所以我接着做了

git commit -a -c ORIG_HEAD

它允许我更改提交消息,但提交是相同的。它仍然提交我的故事板文件。所以我不确定这里发生了什么......有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

进行重置时,请尝试使用 - 将文件列表与修订版分开

  

git reset HEAD - file_list

也使用简单提交(不是修改形式)

  

git add your_changed_files

     

git commit

答案 1 :(得分:0)

如果取消暂停模式不起作用,您可以尝试“GIT: I want to unstage all files matching a certain pattern”中的方法:

for i in `git status --porcelain | grep '^M.*MainStoryboard.*$' | sed 's/^M \+//'`; do
    git reset HEAD -- "$i"
done