在从github中获取新版本时,如何丢弃Git存储库中的本地更改?
在过去的几天里我开始学习git,我有一个基本的问题 想象一下这种情况: 创建一个空文件夹,并在其中创建一个foo.txt文件 为了将数据推送到远程存储库(例如github),您可以执行以下命令:在从github中获取新版本时,如何丢弃Git存储库中的本地更改?,git,workflow,github,Git,Workflow,Github,在过去的几天里我开始学习git,我有一个基本的问题 想象一下这种情况: 创建一个空文件夹,并在其中创建一个foo.txt文件 为了将数据推送到远程存储库(例如github),您可以执行以下命令: git init->以初始化文件夹中的存储库 git add.->以便将文件夹中的所有文件(本例中为foo.txt)添加到索引中 git commit-m“First commit”->我们进行第一次提交 git远程添加源git@github.com:username/gitrepository.gi
->以初始化文件夹中的存储库git init
->以便将文件夹中的所有文件(本例中为foo.txt)添加到索引中git add.
->我们进行第一次提交git commit-m“First commit”
->我们添加了github存储库git远程添加源git@github.com:username/gitrepository.git
->我们将更改推送到远程存储库git push origin master
- 现在在github存储库中只有一个foo.txt文件
- 因此,现在您在另一台计算机中,并且希望使用存储库,因此您创建了一个空文件夹,并从远程存储库中提取数据
然后创建一个名为bar.txt的文件,删除foo.txt,将文件(bar.txt)添加到索引中,进行提交并将更改推送到远程存储库 - 现在存储库中只有bar.txt文件
- 但是现在在第一台机器中,我们仍然有foo.txt文件,如果我们从远程存储库中提取,我们有foo.txt和bar.txt
您如何管理它?git的工作方式是,您将始终在存储库中保存这些文件(即存储库的
.git
文件夹中)。不同之处在于步骤4。一旦拉取更改,您仍然保留原始工作副本(只有在未进行任何更改的情况下,git才会自动合并)。我猜你离你想要的只有一步之遥:)
我觉得这很有帮助。我想你错过了第二步 您必须从索引中删除foo.txt文件。它需要一个特定的命令(“git add.”只将文件放入索引,但不删除文件):
- git rm foo.txt
- git add-u(从索引中删除工作区中不再存在的所有文件)
在第三步,在第一台计算机上拉一下之后,foo文件应该消失了。我想我解释得不好。假设您在存储库中只有一个bar.txt文件,而在家中您的工作目录中有一个foo.txt文件。如果从github进行拉取,您的工作目录中将同时包含bar.txt和foo.txt。但我不想这样做,我希望每次拉取时都能清理github存储库,这意味着如果我在github中只有bar.txt,那么当我拉取时,我只希望在我的工作文件夹中有bar.txt,而不需要更多的文件。拉取是“获取+合并”。如果我理解,您不希望与本地更改合并。这里有一种方法可以做到这一点,但我必须警告您:您的本地更改,即使已提交,也将丢失。第一个:“git fetch origin”(而不是pull)。然后:“git重置——硬源/主”。