Git结帐问题

时间:2019-02-18 15:23:35

标签: git svn

我想对svn update执行类似于git的操作。我有一个远程存储库,该存储库源自主存储库上的fork操作。我克隆了这个远程存储库,现在有了一个本地存储库。

我开始在此本地存储库中工作,并修改了一些文件,添加了一些文件,并删除了一些文件。在这一点上,我没有做出任何承诺。我想提出一个通用命令,该命令将使我可以将本地存储库的状态还原为远程分支存储库中的状态,但又不会删除我添加的文件。更具体地说,该操作(类似于svn update应当:

  • 将所有修改的文件还原为它们在远程存储库中的状态
  • 添加远程存储库中已在本地存储库中删除的所有文件
  • 单独保留新添加的文件。

我认为这属于git checkout的范畴。当我运行git checkout时,表明已添加,删除或修改了文件,但是当我再次运行git status时,我得到的内容与运行git checkout之前的相同。在浏览我的本地存储库时,我也看到不再删除已删除的文件。

我使用git checkout错了吗?为什么我的本地存储库不回到以前的状态?

1 个答案:

答案 0 :(得分:1)

如果尚未暂存新文件,则将取消跟踪文件。重置时不会删除未跟踪的文件。您可以使用以下方法重置:

git reset master --hard

请注意,硬重置可能会有些吓人,请确保您没有希望保留的跟踪更改!

另请参阅: git reset --hard HEAD leaves untracked files behind