2016-09-20 104 views
0

我将此项目设置为全新的。 我创建了一个remote repository并在我的本地计算机上执行了此操作。使用远程存储库时出现git pull错误

$ git init 
$ git remote add origin [email protected] 
$ git add . 
$ git commit 
$ git push -u origin master 
$ git branch -u origin/master 

然后我在remote repository的自述文件中写了一些东西。当我在我的本地机器git checkout master上输入我得到这个:

Already on 'master' Your branch is behind 'origin/master' by 2 commits, and can be fast forwarded. (use "git pull" to update your local branch)

但是,当我尝试做$ git pull的建议我得到这个:

error: The following untracked working tree files would be overwritten by merge: README.md Please move or remove them before you can merge.

我怎样的变化从originmaster然后?!

回答

1

就像Git所说的,你必须删除未跟踪的工作树文件(在你的情况下只有一个叫做'README.md')。如果您想要保留更改,请提交它们,然后再进行拉取。

问题:你为什么不做git clone ...

编辑

当你做一个git pull,混帐做了git fetch接着是git merge。如果你没有从远程转移,合并可以像快进一样简单。但如果你这样做了,git需要将这些更改合并在一起。为了确保你不会丢失任何工作,git会抱怨你的工作目录中的文件会被合并所触及。

要保持你的改变,你可以

  1. 将文件添加到您的索引(git add README.md),创建一个存储(git stash),做一个合并(git merge origin/master),并弹出你藏(git stash pop)或
  2. 创建提交给你的更改(后面git commitgit add README.md),然后从远程(git merge origin/master),似乎unreasnoable变化
+0

合并。如果代码中有很多更改会怎么样?我是否必须手动删除所有已更改的文件,然后用上游文件替换它们?我想将上游所做的更改包含在代码中。我尝试了'git fetch'然后'git merge origin',但是这给了我'起源 - 我们不能合并的东西'我没有做一个克隆,因为我创建存储库的文件夹不是空的。 – Stophface

+0

当你做一个'git pull'时,git做一个'git fetch',然后是一个'git merge'。合并可以像快进一样简单,如果你没有从原点转移,但如果你这样做了,git需要将这些改变合并在一起。为了确保你不会丢失任何工作,git会抱怨你的工作目录中的文件会被合并所触及。要保留更改,您可以1)将文件添加到索引,创建存储,进行合并并弹出存储或2)根据您的更改创建提交,然后合并来自远程的更改。我会更新我的答案。 – yaba

+0

当我尝试'git merge origin/master'时,我仍然得到相同的结果:'错误:以下未跟踪的工作树文件将被覆盖合并: \t README.md 请在合并之前移动或移除它们。 – Stophface