结帐后Git丢弃了未提交的更改

Bil*_*een 3 git git-revert git-checkout git-commit

据我所知git checkout,在我们提交所有先前的更改之前,我们不允许结帐分支,但我的更改已被丢弃.

我执行了git status命令,它向我显示了修改过的文件列表.然后我执行了git checkout .(点)命令,但它没有提示我先提交我以前的更改并丢弃所有更改并检查我本地计算机上的master分支.

任何人都可以指导我为什么git checkout .这样做?以及如何在本地计算机上移回我之前的代码(使用修改和未提交的更改)?为什么要放弃我的更改?

Chr*_*ler 5

不幸的是,这git checkout是一个具有几个非常不同含义的命令,这导致了您的问题:通过结帐,您可以切换分支,创建分支,使用特定版本或分支的HEAD更新工作目录文件.

执行:时git checkout <branchname>,您要求git 切换分支,因此如果您有可以删除,隐藏或提交的未提交更改,它会发出警告.

执行:时git checkout <pathname>,您要求git 使用版本更新您的文件,因此您要求git使用存储库中已有的内容覆盖可能的修改; 这就是git所做的.

希望它会有所帮助.对不起您的遗弃变更.这是UI的简单性很重要的地方.

  • `.`是路径名; 它指的是当前目录.很棒的答案,BTW. (2认同)