【问题标题】:Git: Undo local changes; git add . + git rm?Git:撤消本地更改;混帐添加。 + git rm?
【发布时间】:2011-12-07 21:27:44
【问题描述】:

需要帮助找出几个使用 Github 的常见工作流程。我来自 VS TFS 背景,请见谅。

撤消挂起的更改

假设我已将 git 存储库克隆到本地文件系统。此时,项目的本地文件与远程存储库中的完全匹配。

然后我决定对代码进行一些更改,并更改几个文件的本地版本。在做了一些测试之后,我发现我想放弃我的本地更改并将本地文件恢复到它们在远程存储库中的状态。

如何撤消这些本地更改,将它们恢复到存储库中的当前版本?

提交所有更改

每当我在我的存储库克隆中修改本地文件的内容,或添加新文件,并想要推送更改时,我会使用我的 cmets 发出“git add .”、“git commit”,然后发出“git push”到我的主人。

但是,当我在本地删除存储库中跟踪的文件时,“git add .”不捕获 rm 更改。相反,我必须在“git commit”之前“git rm [filename]”来更新存储库。不过我总是忘记这样做。

是否有一个 git 命令会“git add .”和“git rm”我在本地删除的任何文件,一步?在修改了本地文件并删除了几个文件后,我想在“git commit”之前发出一个命令来捕获我的所有更改。

【问题讨论】:

    标签: git git-reset git-add git-rm


    【解决方案1】:

    您可以通过发出以下命令恢复到您上次的有效提交(即远程仓库的副本,在游览示例中):

    git reset --hard HEAD
    

    另外,我建议阅读有用的http://progit.org/2011/07/11/reset.html 页面,以更好地了解重置的工作原理和索引是什么,以及为什么 git add 和 git rm 是单独的命令。

    【讨论】:

      【解决方案2】:

      如何撤消这些本地更改,将它们恢复到存储库中的当前版本?`

      git reset --hard
      

      (这会将您的索引和工作目录重置为 HEAD)

      是否有一个 git 命令可以一步完成git add .git rm 我在本地删除的所有文件?`

      git add -u
      

      (它不会添加新文件)

      如果要添加新文件,请删除 rm'ed 文件,并对文件进行修改:

      git add -A
      

      【讨论】:

      猜你喜欢
      • 2012-11-21
      • 1970-01-01
      • 2014-03-05
      • 2015-08-05
      • 2022-01-17
      • 2013-07-20
      • 1970-01-01
      • 2016-12-07
      • 2015-01-30
      相关资源
      最近更新 更多