我在过去几天开始学习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
- >我们将更改推送到远程存储库
现在在github存储库中,您只有一个foo.txt文件。
所以现在你在另一台机器上并且想要使用存储库,因此你创建一个空文件夹并从远程存储库中提取数据。
然后创建一个名为bar.txt的文件,删除foo.txt,将文件(bar.txt)添加到索引,进行提交并将更改推送到远程存储库。
现在在存储库中我们只有bar.txt文件
但是现在在第一台机器上我们仍然有foo.txt文件,如果我们从远程存储库中取出,我们有foo.txt和bar.txt。
但这不是我想要做的,我想从存储库中提取所有文件并仅使用这些文件。所以在这个例子中,如果我现在只在存储库中有bar.txt,当我进行拉动时,我不想在我的项目文件夹中有任何其他文件。
你是如何管理的?
答案 0 :(得分:5)
我认为你错过了2中的一步。
您必须从索引中删除foo.txt文件。它需要一个特定的命令(“git add。”只将文件放入索引但不删除文件):
然后提交。
在第3步,在拉动第一台计算机后,foo文件应该已经消失。
答案 1 :(得分:1)
git的工作方式,总是将这些文件存储在您的存储库中(即存储库的.git
文件夹中)。不同之处在于,在第4步中,一旦您进行了更改,您仍然可以使用原始工作副本(如果您没有进行任何更改,git将仅自动合并)。我想你是一个远离你想要的合并:)
我觉得这个Git Cheat-sheet非常有帮助。