cuando uso el desarrollo de origen de git pull: yinronghui recibí rechazo de avance rápido

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 

mi sucursal se ha comprometido y empujar a la sucursal yinronghui, luego uso el git pull origin development:yinronghui-shopcollect-20170822 tengo el error, no sé por qué?

Hay un poco de confusión aquí. El command que usó no fusiona el desarrollo en su twig. Restring que git pull combina git fetch y git merge . El development:yinronghui-shopcollect-20170822 argumento development:yinronghui-shopcollect-20170822 es lo que se llama un refspec . Le dice a git fetch qué twigs search y dónde almacenarlas.

La recuperación normal almacena las twigs remotas localmente en un espacio de nombre especial, para que pueda comparar sus twigs locales con ellas, fusionarlas, etc. Puede ver las twigs recuperadas usando git remote -r . Un development twig obtenido del origin generalmente aparece como origin/development .

Su git pull le dice a fetch que no use ese espacio de nombres especial, sino que intenta sobrescribir su bifurcación directamente, sin fusionarla, lo que haría desaparecer cualquier compromiso no utilizado en su twig y causaría todo tipo de confusión. Git se da count de que probablemente no quería hacer eso, y le da un error para estar a salvo.

Solución

La forma estándar de hacer esto es hacer esto como una operación local.

  1. Asegúrese de que su development local esté actualizado (opcional, puede fusionar solo lo que tiene si lo desea).
  2. Verifica tu sucursal.
  3. Fusionar el desarrollo localmente: git merge development