当我使用git pull origin开发时:yinronghui我被拒绝了非快进

时间:2017-08-28 07:38:36

标签: git github

git pull origin development:yinronghui-shopcollect-20170822
Enter passphrase for key '/Users/jackiewillen/.ssh/id_rsa':
remote: Counting objects: 150, done.
remote: Compressing objects: 100% (138/138), done.
remote: Total 150 (delta 90), reused 16 (delta 4)
Receiving objects: 100% (150/150), 19.02 KiB | 0 bytes/s, done.
Resolving deltas: 100% (90/90), completed with 58 local objects.

From ssh://git.dianpingoa.com/ed-f2e/gandalf-plus
 ! [rejected]        development -> yinronghui-shopcollect-20170822 (non-fast-forward)
   c391a9d..007bb97  development -> origin/development

我的分支已经提交并推送到yinronghui分支,然后我使用git pull origin development:yinronghui-shopcollect-20170822我得到了错误,我不知道为什么?

1 个答案:

答案 0 :(得分:0)

这里有点混乱。您使用的命令将开发合并到您的分支中。回想一下,git pull结合了git fetchgit merge。参数development:yinronghui-shopcollect-20170822 refspec 。它告诉git fetch要获取哪些分支以及存储它们的位置。

正常提取将远程分支本地存储在特殊命名空间中,以便您可以将本地分支与它们进行比较,合并它们等。您可以使用git remote -r查看已获取的分支。从development获取的分支origin通常显示为origin/development

您的git pull告诉fetch不使用该特殊命名空间,而是尝试直接覆盖您的分支,而不会合并,这会使您分支上的任何未提交的提交消失并导致各种其他混淆。 Git意识到你可能不想这样做,并且给你一个安全错误。

解决方案

执行此操作的标准方法是将其作为本地操作。

  1. 确保您的本地development是最新的(可选,您可以只合并您喜欢的内容)。
  2. 结帐你的分行。
  3. 在本地合并开发:git merge development