我问这个的原因是我不小心做了一个git commit -a
,其中包含一个我还不想提交的文件。我的解决办法是做到以下几点:有没有办法将特定版本的文件添加到git索引?
git reset --soft HEAD^
git reset -- file/with/changes_not_to_committed
git commit -C [email protected]{1}
这里,我倒回由一个分支提交,同时保持索引和工作树,然后拉file/with/changes_not_to_committed
从一个又旧版本到索引,然后我犯该索引使用来自先前分支头提交的提交消息。 git-reset
调用都不会触及工作副本,因此我对file/with/changes_not_to_committed
的修改仍然存在,但不会再记录在HEAD
修订版中。
但是,它会一直,如果我可以拉从HEAD^
修订file/with/changes_not_to_committed
对进入指数不接触工作副本容易。由于该指数以其他方式已经代表我想要的状态,然后我可以只修改HEAD
犯,产生这样的顺序:
git magic-pony HEAD^ file/with/changes_not_to_committed
git commit --amend -C HEAD
这是几乎什么,我会用git-checkout
更换git-magic-pony
,除了得到要求保持工作副本不变,只更新索引。看起来没有办法使git-checkout
不能同时触及两者。
我的问题是:确实存在git-magic-pony
,如果是的话,下是什么名字?
谢谢!这正是我所期待的。不过,我不同意GUI的使用。 :-)也许更容易发现。 – 2008-11-03 12:09:17