我需要将工作目录和索引更新为某些提交的状态。
当我跑步时git checkout
Git 更新HEAD
, index
and a working directory
。
我知道我可以从提交中签出单个文件而无需更新HEAD
只需指定文件的路径即可。但是对整个工作目录执行此操作的最佳方法是什么?
目前我只是在做:
ID=$(git rev-parse HEAD)
git reset --hard COMMIT_ID
git reset --soft $ID
Use git checkout
with a dot
作为一条路径
git checkout COMMIT_ID .
从手册页git 结账:
git checkout [<tree-ish>] [--] <pathspec>…
通过替换索引或 中的内容来覆盖工作树中的路径(通常是提交)。当给出 时,匹配的路径会在索引和工作树中更新。
由于先前的合并失败,索引可能包含未合并的条目。默认情况下,如果您尝试从索引中检出此类条目,则检出操作将失败并且不会检出任何内容。使用 -f 将忽略这些未合并的条目。可以使用 --ours 或 --theirs 从索引中检出合并特定端的内容。使用 -m,可以放弃对工作树文件所做的更改以重新创建原始的冲突合并结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)