Maison  >  Article  >  outils de développement  >  Résumé des points de connaissance de l'entrepôt distant Git (Github)

Résumé des points de connaissance de l'entrepôt distant Git (Github)

WBOY
WBOYavant
2022-05-10 18:23:363074parcourir

Cet article vous apporte des connaissances pertinentes sur Git, qui présente principalement le contenu pertinent sur les entrepôts distants, comme SVN. Jetons un coup d'œil à quelques problèmes liés à l'utilisation de Github comme entrepôt distant. aide tout le monde.

Résumé des points de connaissance de l'entrepôt distant Git (Github)

Apprentissage recommandé : "Git Learning Tutorial"

Git Remote Warehouse (Github)

Git n'a pas de serveur central comme SVN.

Les commandes Git que nous utilisons actuellement sont toutes exécutées localement, si vous souhaitez partager votre code ou collaborer avec d'autres développeurs via Git. Vous devez ensuite placer les données sur un serveur auquel d'autres développeurs peuvent se connecter.

Cet exemple utilise Github comme entrepôt distant, vous pouvez d'abord lire notre tutoriel concis Github.

Résumé des points de connaissance de lentrepôt distant Git (Github)
Commande d'entrepôt distant
1. Affichez la bibliothèque distante actuelle
Résumé des points de connaissance de lentrepôt distant Git (Github)
2. Ajoutez un entrepôt distant
Exécutez git remote add pour ajouter un nouvel entrepôt Git distant et spécifiez une abréviation pratique :
Résumé des points de connaissance de lentrepôt distant Git (Github)
3. $ git fetch
Cette commande accédera au référentiel distant et extraira toutes les données que vous n'avez pas encore. Une fois l'exécution terminée, vous aurez des références à toutes les branches de ce référentiel distant, qui pourront être fusionnées ou visualisées à tout moment.
Résumé des points de connaissance de lentrepôt distant Git (Github)

Toutes les branches sous origin sont copiées
Résumé des points de connaissance de lentrepôt distant Git (Github)
La commande git fetch téléchargera uniquement les données sur votre référentiel local - elle ne fusionnera ni ne modifiera automatiquement votre travail en cours. Vous devez l'intégrer manuellement dans votre travail lorsque vous êtes prêt.
La commande git pull récupérera et fusionnera automatiquement la branche distante dans la branche actuelle
Par défaut, la commande git clone définira automatiquement la branche principale locale pour suivre la branche principale de l'entrepôt distant cloné (ou la branche par défaut avec un autre nom ). L'exécution de git pull récupère généralement les données du serveur initialement cloné et tente automatiquement de les fusionner dans la branche actuelle.
3. git push vers l'entrepôt distant
Résumé des points de connaissance de lentrepôt distant Git (Github)
Cette commande ne peut prendre effet que si vous disposez des autorisations en écriture sur le serveur clone et que personne n'a poussé auparavant. Lorsque vous clonez en même temps que quelqu'un d'autre, et qu'il pousse d'abord vers l'amont, puis que vous poussez vers l'amont, votre poussée sera rejetée sans aucun doute. Vous devez récupérer leur travail et le fusionner avec le vôtre avant de pouvoir le diffuser.
4. Afficher un référentiel distant
Si vous souhaitez afficher plus d'informations sur un référentiel distant, vous pouvez utiliser la commande git remote show.
Résumé des points de connaissance de lentrepôt distant Git (Github)
5. Renommer l'entrepôt distant
git remote rename pour modifier l'abréviation d'un entrepôt distant Résumé des points de connaissance de lentrepôt distant Git (Github)
6. Suppression de l'entrepôt distant
git Remote Remove ou git Remote rm
Résumé des points de connaissance de lentrepôt distant Git (Github)
7. Tag : vous pouvez donner à l'entrepôt A certains commits dans l'historique sont étiquetés pour indiquer leur importance. Il est plus représentatif que les gens utilisent cette fonction pour marquer les nœuds de publication
1) Liste des balises
Résumé des points de connaissance de lentrepôt distant Git (Github)
2) Méthode générique git tag -l/list pour lister les balises
Résumé des points de connaissance de lentrepôt distant Git (Github)
3) Balises légères : c'est juste une référence à un élément spécifique. commit, stockant essentiellement la somme de contrôle de validation dans un fichier - aucune autre information n'est enregistrée
Résumé des points de connaissance de lentrepôt distant Git (Github)

4) Balise annotée : un objet complet stocké dans la base de données Git. Ils peuvent être vérifiés et contiennent le nom, l'adresse e-mail, la date et l'heure du tagueur, et il y a aussi des informations sur la balise
Résumé des points de connaissance de lentrepôt distant Git (Github)
5) Marquage ultérieur : Tag. projets historiques
Résumé des points de connaissance de lentrepôt distant Git (Github)
6) Balises partagées : La commande git push ne transférera pas les balises vers le serveur de l'entrepôt distant. Vous pouvez exécuter git push origin.
Résumé des points de connaissance de lentrepôt distant Git (Github)

git push origin --tags:将会把所有不在远程仓库服务器上的标签全部传送到那里。
![Résumé des points de connaissance de lentrepôt distant Git (Github)](https://img-blog.csdnimg.cn/498567ecae294ae9af392a975334650f.png)

7) Pour supprimer la balise sur votre référentiel local
git tag -d

Notez que la commande ci-dessus ne supprimera cette balise d'aucun référentiel distant, vous devez utiliser git push :refs/tags/ Mettez à jour votre télécommande référentiel :
Résumé des points de connaissance de lentrepôt distant Git (Github)

Notez que la commande ci-dessus ne supprimera cette balise d'aucun référentiel distant
Vous devez utiliser la première variante qui est git push :refs/tags/ :

$ git push origin :refs /tags/v1. 4-lw
La signification de l'opération ci-dessus est de pousser la valeur nulle avant les deux points vers le nom de la balise distante, la supprimant ainsi efficacement.
La deuxième façon, plus intuitive, de supprimer les balises distantes est :
$ git push origin --delete
8. gestion des branches git
Remarque : git branch répertorie toutes les branches actuelles. Le caractère * avant la branche : cela signifie vérifier maintenant
. 1) git branch testing crée une branche de test
2) git checkout testing change de branche et affiche la branche actuelle Vous pouvez pointer HEAD vers la branche actuelle
[ git checkout -b crée et change de branche ]
Résumé des points de connaissance de lentrepôt distant Git (Github)
3) Soumettre le public. test d'opinion + test des branches séparément, et le pointeur principal avancera
Le benchmark des deux branches est 9623a70fe Après avoir soumis séparément, leurs pointeurs respectifs changeront

Résumé des points de connaissance de lentrepôt distant Git (Github)
Résumé des points de connaissance de lentrepôt distant Git (Github)
Exécutez git log --oneline --decorate --graph. --all , il affichera votre historique de soumission, les pointeurs vers chaque branche et les branches du projet.
Résumé des points de connaissance de lentrepôt distant Git (Github)
Situation du fork :
Résumé des points de connaissance de lentrepôt distant Git (Github)
Fusion de branches git merge [Aucune modification de la branche de l'opinion publique, nouvelles soumissions à la branche des correctifs] – Fusion tripartite
Extractions de correctifs basées sur la branche de test d'opinion publique, génère des soumissions dans le correctif, vérifiez les soumissions de la branche du correctif L'identifiant est 85bb*, revenez à la branche de l'opinion publique, exécutez git merge et constatez que l'identifiant de soumission de la branche de l'opinion publique est également avancé à 85bb* généré par la branche du correctif
Résumé des points de connaissance de lentrepôt distant Git (Github)
Illustration des changements dans la branche d'opinion publique et la branche de correctifs :
Résumé des points de connaissance de lentrepôt distant Git (Github)
Branch merge git merge [Public Opinion Branch] /Testing branch génère de nouvelles soumissions】
Le test est extrait en fonction de la branche de test d'opinion publique et de la branche Test/opinion publique La branche est modifiée pour générer respectivement des soumissions.Une fois que la branche de l'opinion publique a fusionné le contenu de la branche du correctif, elle est basculée vers la branche Test. Lorsque la branche de test fusionne la branche de l'opinion publique, on constate que la branche Test génère directement une nouvelle branche. commit id41b1*, et les d804 et 85 correspondants dans la branche opinion publique ne seront pas fusionnés. Pour le moment, le nouvel identifiant correspond à deux identifiants parents, qui sont Da4 de la branche testing et 85b de la branche opinion publique
1. ) case à cocher git Testing
2) git merge branche d'opinion publique
Résumé des points de connaissance de lentrepôt distant Git (Github)

Résumé des points de connaissance de lentrepôt distant Git (Github)
4)git branch -v 查看每个分支的最后一次提交
Résumé des points de connaissance de lentrepôt distant Git (Github)
5)git branch --merged/–no-merged 过滤这个列表中已经合并或尚未合并到当前分支的分支
Résumé des points de connaissance de lentrepôt distant Git (Github)
6)git branch -d
包含了还未合并的工作,尝试使用 git branch -d 命令删除它时会失败,除非用-D
Résumé des points de connaissance de lentrepôt distant Git (Github)
9、远程分支
1) git ls-remote 来显式地获得远程引用的完整列表
通过 git remote show 获得远程分支的更多信息
Résumé des points de connaissance de lentrepôt distant Git (Github)
2)origin/master和master区别

master : 它代表本地的某个分支名。
origin master 代表着两个概念,前面的 origin 代表远程名,后面的 master 代表远程分支名
origin/master 本地分支,是从远程拉取后,在本地建立的一份拷贝【是用来和远程分支对应的,一般不可见】
 举几个例子可能会更加清晰地说明问题:
① 执行 git fetch origin master 时,它的意思是从名为 origin 的远程上拉取名为 master 的分支到本地分支
 origin/master 中。既然是拉取代码,当然需要同时指定远程名与分支名,所以分开写。
 ②执行 git merge origin/master 时,它的意思是合并名为 origin/master的分支到当前所在分支。既然是分支的合并,当然就与远程名没有直接的关系,所以没有出现远程名。需要指定的是被合并的分支。
 ③执行 git push origin master 时, 推送本地的 master 分支到远程origin, 
④ 一次性拉取多个分支的代码:git fetch origin master dev1 dev2
 ⑤ 一次性合并多个分支的代码:git merge origin/master 分支1 分支2 分支3

Résumé des points de connaissance de lentrepôt distant Git (Github)
2)如果远程仓库有人提交内容,那么远程仓库就会向前移动,而本地origin/master如果不拉取,将还保持不动,如果希望本地同远程保持一致,可以通过git fetch拉取远程仓库数据,
git fetch
3) git push origin 分支名
推送本地的 舆情测试 分支,将其作为远程仓库的 舆情测试 分支
如果并不想让远程仓库 上的分支叫做 舆情测试 ,可以运行 git push origin 舆情测试 :test0421 来将本地的 舆情测试 分支推送到远程仓库上的 test0421 分支。
Résumé des points de connaissance de lentrepôt distant Git (Github)
Résumé des points de connaissance de lentrepôt distant Git (Github)
4)checkout 的操作
通过 git checkout test0421 会把分支切换到test0421分支上

这个操作会处于‘detached Head’ 状态,在这种状态下不会修改origin/test0421上的数据,可以修改并提交做一些实验性的操作,但是切换回test0421分支后,再次从test0421切换回origin/test0421时,之前的改变不会同步,因为origin/test0421 是用户只读的Résumé des points de connaissance de lentrepôt distant Git (Github)
5)git push origin --delete 分支名 删除远程仓库分支【本地仓库还有数据】
Résumé des points de connaissance de lentrepôt distant Git (Github)
6)rebase变基:使用 rebase 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。
Résumé des points de connaissance de lentrepôt distant Git (Github)
Résumé des points de connaissance de lentrepôt distant Git (Github)

首先找到这两个分支(即当前分支 Test0421、变基操作的目标基底分支 Test0420) 的最近共同祖先 85bb,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件, 然后将当前分支指向目标基底 3467, 最后以此将之前另存为临时文件的修改依序应用

Résumé des points de connaissance de lentrepôt distant Git (Github)
Test0420 使用git merge 合并Test0421内容,结果两个分支完全一致,可以发现提交记录没有出现分拆,而是保持在一条直线上【可以比较前面get merge环节中结果出现分叉】

Résumé des points de connaissance de lentrepôt distant Git (Github)
rebase时一系列提交按照原有次序依次应用,只是当前分支的提交id值改变

Résumé des points de connaissance de lentrepôt distant Git (Github)
merge时多次提交合并成一次,生成新的提交id
总结:无论是通过变基,还是通过三方合并,整合的最终结果所指向的快照始终是一样的,只不过提交历史不同罢了。 变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。

推荐学习:《Git学习教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer