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