Maison  >  Questions et réponses  >  le corps du texte

git push如何至两个git仓库

分别有仓库 A(github),B(JAE 的 git),本机为C。

A, B都进行了 README.md 的初始化,就是说,这个情况下,已经存在冲突了,log不一致。

先从仓库A获取下来,C 修改完毕提交,顺利提交至A,

此时 如何从 C 提交到B,需要进行多少操作,使得仓库记录 A 和 B 的log一致(后面一致即可)?

这个问题我尝试过,没解决。

PHP中文网PHP中文网2733 Il y a quelques jours789

répondre à tous(7)je répondrai

  • 某草草

    某草草2017-04-27 09:04:42

    Après si longtemps, après une utilisation continue de git, je connais aussi la méthode spécifique.

    Supposons que l'entrepôt a soit l'entrepôt d'utilisation finale et b soit l'entrepôt de sortie. Les branches sont toutes dev

    Maintenant, je vais me répondre :

    La première étape consiste à ajouter un entrepôt distant
    git distant ajouter origin1 git.a
    git distant ajouter origin2 git.b

    La deuxième étape consiste à s'assurer que rien n'a changé localement, à extraire l'adresse de l'entrepôt distant, puis à rebaser.
    git récupérer origin1
    git rebase -i origin1/dev

    S'il y a un conflit, résolvez-le.

    git push -f origin1 dev
    git push -f origin2 dev

    fait.

    répondre
    0
  • 漂亮男人

    漂亮男人2017-04-27 09:04:42

    En fait, vous pouvez effacer les fichiers d'initialisation et ajouter l'adresse d'un autre entrepôt distant au .git/config local, tel que :
    [remote "all"]
    url = https://github .com /segment/test.git
    url = https://git.oschina.net/segment/test.git
    Les opérations ultérieures sont les mêmes et le code soumis sera soumis aux deux entrepôts simultanément .

    répondre
    0
  • 阿神

    阿神2017-04-27 09:04:42

    Je n'ai pas essayé deux référentiels git, je suppose que ça peut être comme ça :

    1.git à distance ajouter $C nom de l'entrepôt distant $C URL de l'entrepôt distant

    2.fetch vers C

    3. Fusion locale

    4.push $C nom de l'entrepôt distant $nom du projet

    Référence : http://www.git-scm.com/book/zh/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4 %BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8

    répondre
    0
  • 漂亮男人

    漂亮男人2017-04-27 09:04:42

    La solution pour conserver tous les logs dans une branche (supposée être la branche master) identique :

    1. Ajouter B à la liste distante git remote add jae git://xxxxx@xxxx.git
    2. Supposons que C ait synchronisé A et terminé la modification, vous devez alors soumettre C à B. À ce stade, vous devez forcer la soumission pour éviter le problème de conflit en ne pouvant pas soumettre : git push jae master:master --force

    Après l'avoir poussé vers le haut, les logs de C et B seront cohérents, et vous pourrez continuer l'opération

    Si vous souhaitez garder toutes les branches cohérentes, je vous suggère simplement de créer un nouveau projet sur jae et d'y pousser C

    J'espère que cela vous aidera

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-27 09:04:42

    Je suppose qu'avant de tirer depuis n'importe quel référentiel distant,

    git cachette

    Puis tirez, modifiez, ajoutez, soumettez, poussez. Encore

    git stash pop

    Résolvez ensuite les conflits s'il y en a. S'il n'y a pas de conflits, extrayez directement le code d'un autre entrepôt distant, puis modifiez, ajoutez, soumettez et poussez étape par étape.
    Tout est basé sur des suppositions. Veuillez vous entraîner vous-même si vous êtes précis. Pour référence seulement.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-27 09:04:42

    Je pense que vous savez déjà comment ajouter plusieurs référentiels distants, donc je n'entrerai pas dans les détails.

    Simple : Lorsque C=A, sous C git push -f 'B远程仓库' '分支' De cette façon, bien que B entre en conflit avec A C, il sera obligé d'écraser l'état de C. Donc A=B=C. Le LOG sera cohérent après cela. Le paramètre -f signifie poussée forcée.
    essayez-le

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-04-27 09:04:42

    Configurez simplement l'entrepôt miroir
    1.git remote add --mirror=push --mirror=fetch repoName url
    2.git push repoName master

    répondre
    0
  • Annulerrépondre