Maison > Questions et réponses > le corps du texte
分别有仓库 A(github),B(JAE 的 git),本机为C。
A, B都进行了 README.md 的初始化,就是说,这个情况下,已经存在冲突了,log不一致。
先从仓库A获取下来,C 修改完毕提交,顺利提交至A,
此时 如何从 C 提交到B,需要进行多少操作,使得仓库记录 A 和 B 的log一致(后面一致即可)?
这个问题我尝试过,没解决。
某草草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.
漂亮男人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 .
阿神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
漂亮男人2017-04-27 09:04:42
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
伊谢尔伦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.
天蓬老师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
我想大声告诉你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