我有一个git存储库,目前位于master
分支上。最后一次提交(f3d8237
有大约十二个文件(全部为modified
)。这些文件大多数与工作目录中的同伴不同。
我想要做的是:对于f3d8237
中的每个文件,使用此文件替换工作树中的相应文件。
我一直在游泳这个特定场景。这个答案:https://stackoverflow.com/a/12049323/2554788似乎最接近我的情景,但基于这个主题的无数其他答案和评论,我害怕冒险。不想让事情变得更糟!
当然,可能很清楚我还没有削减我的git
乳牙。
答案 0 :(得分:2)
这应该做的工作:
git show --pretty="format:" --name-only f3d8237 | while read line
do
git checkout f3d8237 -- $line
done
至于您担心这些变化,如果不满意,您可以随时恢复更改,
git reset --hard
答案 1 :(得分:1)
受@ pratZ方法的启发,我最终重新创建,然后使用Windows PowerShell解决问题。我认为我应该继续在这里发布我的实际解决方案(因为它可能对其他人有帮助),同时接受他的回答。
git show --pretty="format:" --name-only f3d8237 | foreach{ git checkout f3d8237 -- $_ }
这将保留最后一次提交的f3d8237
存储库HEAD,但用相应的文件替换所有工作副本。