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
我得到了错误,我不知道为什么?
答案 0 :(得分:0)
这里有点混乱。您使用的命令不将开发合并到您的分支中。回想一下,git pull
结合了git fetch
和git merge
。参数development:yinronghui-shopcollect-20170822
是 refspec 。它告诉git fetch
要获取哪些分支以及存储它们的位置。
正常提取将远程分支本地存储在特殊命名空间中,以便您可以将本地分支与它们进行比较,合并它们等。您可以使用git remote -r
查看已获取的分支。从development
获取的分支origin
通常显示为origin/development
。
您的git pull
告诉fetch
不使用该特殊命名空间,而是尝试直接覆盖您的分支,而不会合并,这会使您分支上的任何未提交的提交消失并导致各种其他混淆。 Git意识到你可能不想这样做,并且给你一个安全错误。
执行此操作的标准方法是将其作为本地操作。
development
是最新的(可选,您可以只合并您喜欢的内容)。git merge development