2

我想保持索引与现在完全相同,但我想直接将特定提交加载到工作树中。有没有办法在 git 中做到这一点?

4

2 回答 2

4

尽管先前的答案已被接受,但我认为它并不能真正回答问题。它不会将索引留在初始状态,而是在更新工作树后重置索引以匹配 HEAD。这将丢失已完成的任何工作git add

相反,我会使用一个临时索引:

export GIT_INDEX_FILE=.git/tmpindex
git read-tree abc123  # Read commit into (temporary) index file
git checkout . # Update working tree with contents of (temporary) index
rm $GIT_INDEX_FILE
unset GIT_INDEX_FILE

这将真正使正常索引保持在原始状态。

于 2013-02-13T16:04:50.507 回答
1

看起来你不能在一个命令中做到这一点,但你应该能够使用两个:

$> git cherry-pick -n abc123     # cherry-pick to index and WC, no commit
$> git reset                     # revert index
于 2013-02-13T15:20:05.193 回答