从github中提取新版本时,如何丢弃我的Git存储库中的本地更改?

时间:2011-04-24 21:51:36

标签: git workflow github

我在过去几天开始学习git,我有一个基本的问题。

想象一下这种情况:

您创建一个空文件夹,然后在其中创建一个foo.txt文件。

为了将数据推送到远程存储库(例如github),您可以执行以下命令:

  • git init - >为了初始化文件夹中的存储库
  • git add . - >为了将索引中的所有文件添加到索引中,在本例中为foo.txt
  • git commit -m "First commit" - >我们进行第一次提交
  • git remote add origin git@github.com:username/gitrepository.git - >我们添加了github存储库
  • git push origin master - >我们将更改推送到远程存储库

    1. 现在在github存储库中,您只有一个foo.txt文件。

    2. 所以现在你在另一台机器上并且想要使用存储库,因此你创建一个空文件夹并从远程存储库中提取数据。
      然后创建一个名为bar.txt的文件,删除foo.txt,将文件(bar.txt)添加到索引,进行提交并将更改推送到远程存储库。

    3. 现在在存储库中我们只有bar.txt文件

    4. 但是现在在第一台机器上我们仍然有foo.txt文件,如果我们从远程存储库中取出,我们有foo.txt和bar.txt。

但这不是我想要做的,我想从存储库中提取所有文件并仅使用这些文件。所以在这个例子中,如果我现在只在存储库中有bar.txt,当我进行拉动时,我不想在我的项目文件夹中有任何其他文件。

你是如何管理的?

2 个答案:

答案 0 :(得分:5)

我认为你错过了2中的一步。

您必须从索引中删除foo.txt文件。它需要一个特定的命令(“git add。”只将文件放入索引但不删除文件):

  • git rm foo.txt
  • git add -u(从索引中删除工作区中不再存在的所有文件)

然后提交。

在第3步,在拉动第一台计算机后,foo文件应该已经消失。

答案 1 :(得分:1)

git的工作方式,总是将这些文件存储在您的存储库中(即存储库的.git文件夹中)。不同之处在于,在第4步中,一旦您进行了更改,您仍然可以使用原始工作副本(如果您没有进行任何更改,git将仅自动合并)。我想你是一个远离你想要的合并:)

我觉得这个Git Cheat-sheet非常有帮助。