git remote add (remote) (repoUrl) est utilisé pour deux bibliothèques indépendantes
伊谢尔伦
伊谢尔伦 2017-06-29 10:08:59
0
1
1160

Je n'ai jamais pensé à cette question, et je pense qu'elle n'est pas facile à décrire, donc je ne l'ai jamais posée.
Par exemple, il y a le projet A et le projet B, et ils n'ont absolument aucun rapport.
Les projets A et B ont des entrepôts distants et des entrepôts locaux, représentés respectivement par remoA, locA, remoB et locB.

Question :
Dans des circonstances normales, locA est définitivement associé à remoA, et locB est associé à remoB, que cette association se fasse par clonage ou par git remote add (remote) (repoUrl). Supposons maintenant que les bibliothèques locales locA et locB existent déjà, mais que locB est dans un état nouvellement initialisé et est toujours une bibliothèque vide. En raison d'une erreur d'opération, git remote add origin (remoAUrl) a été exécuté.

J'ai trouvé cette erreur plus tard et exécuté

git remote add originB (remoBUrl)

Alors, remoA/master et remoB/master sont-ils mappés à locB/master en ce moment ?

Si vous exécutez git pull, les codes de branche distante de remoA et remoB seront-ils fusionnés sur la branche principale locale ?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(1)
phpcn_u1582

En raison d'une erreur d'opération, git remote add origin (remoAUrl) a été exécuté. Plus tard, j'ai découvert cette erreur et exécuté git remote add originB (remoBUrl)

Si vous ne prévoyez pas de mettre remoA 关联给 locB,那么到这里就还是错的。正确做法应该是 git remote rm origin 然后 git remote add origin (remoBUrl)

Alors, remoA/master et remoB/master sont-ils mappés à locB/master en ce moment ?

Bien sûr que non. Tout d’abord, je pense qu’il serait peut-être plus approprié de dire qu’une relation « associée » s’est établie, similaire à git checkout -b --track xxx 这种感觉。其次,你添加了两个 remote,其中一个叫 origin,另一个叫 originB。但 git 会优先使用 origin. Voir l'article suivant pour plus de détails

Si vous exécutez git pull, les codes de branche distante de remoA et remoB seront-ils fusionnés sur la branche principale locale ?

Bien sûr que non. À moins que vous ne mettiez d'abord à jour le local vers l'une des succursales, puis que vous alliez dans pull l'autre succursale.

git pull 不指定后续参数,默认就是 git pull origin。如果你在 master branch 上,默认也就是 git pull origin master.

Bien sûr, cela peut changer en fonction de vos paramètres. Les conditions mentionnées ci-dessus ne sont que les conditions par défaut. Veuillez ouvrir .git/config 文件看一看。命令行里输入 cat .git/config pour connaître la situation actuelle. Par exemple :

[branch "master"]
    remote = origin
    merge = refs/heads/master

Cela raconte git deux choses :

  1. Si vous êtes ici maintenant master branch 上,那么默认的 remoteorigin

  2. Si vous performez dans cette situation git pull,不带任何参数的那种,那么就相当于 git pull origin master

Vous pouvez utiliser git push -u newOrigin newBranch 来改,那现在 git pull 就相当于 git pull newOrigin newBranch 了。
类似地,也可以 git config branch.master.remote newOrigin 然后 git config branch.master.merge refs/heads/newBranch. Le résultat est le même.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal