gpt4 book ai didi

git - `git rm --cached` 、 `git reset --` 和 `git reset HEAD` 之间的实际区别是什么以取消暂存更改?

转载 作者:太空狗 更新时间:2023-10-29 13:20:46 30 4
gpt4 key购买 nike

我有一个别名,unstage,用于从暂存区域中删除更改。

unstage = reset --

我注意到 git 的帮助建议改为 git reset HEAD。我还注意到 git rm --cached 会做同样的事情。

除了 git rm --cached 在没有 -r 的情况下不会清除整个阶段之外,这些技术之间是否存在实际差异以从暂存中删除更改区域?就实际而言,我的意思是你能展示一个他们会产生不同结果的场景吗?或者我可以安全地互换使用它们吗?

最佳答案

git reset 是取消暂存的正确方法,原因如下:

首先让我们澄清一些事情:如果没有提供提交,git 默认提交到 HEAD

git reset == git reset HEAD

至于 -- 它期望在它之后有一条路径。

现在,对于两者之间的区别:

git reset --mixed AND git rm --cached

(重置默认为--mixed)

git reset --mixed
Resets the index but not the working tree (i.e., the changed files are preserved but not marked for
commit) and reports what has not been updated. This is the default action.

git rm --cached
Use this option to unstage and remove paths only from the index. Working tree files, whether modified or
not, will be left alone.enter code here

本质上的区别就在这里,git rm --cached 实际上将指定的文件放入未跟踪状态,并为下一次提交分阶段删除它们。另一方面,Git reset --mixed 只是将文件移至“未暂存”状态,但将其旧版本保留在 repo 中。

关于git - `git rm --cached` 、 `git reset --` 和 `git reset HEAD` 之间的实际区别是什么以取消暂存更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33004187/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com