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
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 .
La solution pour conserver tous les logs dans une branche (supposée être la branche master) identique :
Ajouter B à la liste distante git remote add jae git://xxxxx@xxxx.git
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
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.
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
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.
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 .
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
La solution pour conserver tous les logs dans une branche (supposée être la branche master) identique :
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
Je suppose qu'avant de tirer depuis n'importe quel référentiel distant,
Puis tirez, modifiez, ajoutez, soumettez, poussez. Encore
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.
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
Configurez simplement l'entrepôt miroir
1.git remote add --mirror=push --mirror=fetch repoName url
2.git push repoName master