在git中,如何将提交加载到工作树而不是索引

时间:2013-02-13 15:12:12

标签: git

我想保持索引与现在完全一样,但我想直接将特定提交加载到工作树中。有没有办法在git中执行此操作?

2 个答案:

答案 0 :(得分:4)

虽然previous answer已被接受,但我认为并非如此 回答这个问题。它不会让索引处于初始状态, 相反,它会在更新工作树后重置索引以匹配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

这确实会使正常指数处于原始状态。

答案 1 :(得分:1)

看起来你不能在一个命令中完成它,但你应该能够用两个:

$> git cherry-pick -n abc123     # cherry-pick to index and WC, no commit
$> git reset                     # revert index