Cet article vous apporte des connaissances de base sur l'utilisation de git, y compris les opérations de base de git, les opérations de branche, les opérations de soumission de modifications, etc. J'espère qu'il sera utile à tout le monde.
Définissez la clé SSH pour que l'appareil puisse avoir l'autorisation d'accéder au référentiel de code dans le compte
$ ssh-keygen -t rsa -C "your_email@example.com"
"votre_email@example.com"
Définissez-le sur votre propre GitHub L'adresse e-mail enregistrée du compte"your_email@example.com"
设置为自己GitHub账户的注册邮箱$ cat ~/.ssh/id_rsa.pub
ssh-rsa 公开密钥的内容 your_email@example.com
ssh-rsa
也拷贝下来接下来验证一下,出现successfully字样即为成功
$ ssh -T git@github.com Enter passphrase for key '/c/Users/MYPC/.ssh/id_rsa': Hi abc! You've successfully authenticated, but GitHub does not provide shell access.
$ git clone git@github.com:hirocastest/Hello-World.git
这里会要求输入 GitHub 上设置的空开密钥的密码,认证成功后,仓库便会被 clone 到当前目录中。
代码编写完成之后,将代码添加到系统的暂存区
$ git add 文件夹/文件
git commit 命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。
$ git commit -m "记录一行提交信息"
之后只要执行 push
命令,GitHub 上的仓库就会被更新
$ git push
clone
方法建立仓库,不需要执行 init
操作。如果要把本地文件设置为仓库,那么就需要进行 init 操作
$ mkdir git-tutorial $ cd git-tutorial $ git init
$ git status # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track)
结果现实,我们正处于 masteer 分支下,并且没有可提交的内容
git log
命令可以查看以往仓库中提交的日志。包括什么人在什么时候进行了提交或合并
$ git log commit 5dbbff6e009abb8a6cc44187c93b694f94fbf82a (HEAD -> main, origin/main, origin/HEAD) Author: ywm <ywm_up@qq.com> Date: Sun Feb 28 17:17:00 2021 +0800
只想现实提交信息的第一行,可以在 git log
命令后加上 -- pretty=short
$ git log --pretty=short
执行 git diff
查看当前工作书与暂存区的差别
$ git diff
可以创建多个分支,同时进行完全不同的作业。等分支作业完成之后再与 master 分支合并。通过灵活运用分支,可以让多人同时高效的进行并发开发。
master 分支左侧有 “*”(星号),表示这是我们当前所在的分支。
$ git branch * master
创建并切换到分支 feature-A
$ git checkout -b feature-A
实际上,上面那条命令,等价于下面两条命令
$ git branch feature-A $ git checkout feature-A
切换回分支 mian
$ git checkout main
切换回上一个分支
$ git checkout -
通过实际操作可以证明:只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发
合并时加上 --no–ff 参数,可以保存之前的分支历史
$ git merge --no-ff feature
随后编辑器会启动,用于录入合并提交的信息
$ git log --graph
$ git reset --hard 目标时间点的hash值
通过 git reflog
$ git reflog
ssh-rsa
précédent. Avatar》Paramètres》Clé SSH》nouvelle clé SSH$ git commit --amend
2.1 git clone existant. Warehouse
git rebase -i HEAD~2
2.2 git add Ajouter le fichier à la zone de transit
Une fois le code écrit, ajoutez le code à la zone de transit du système
$ git remote add origin git@github.com:github-book/git-tutorial.git
$ git push -u origin master
push
et l'entrepôt. sur GitHub sera Sera mis à jour🎜$ git checkout -b feature-D $ git push -u origin feature-D
clone
pour créer un entrepôt, pas besoin d'effectuer l'opération init
. Si vous souhaitez définir un fichier local comme entrepôt, vous devez effectuer une opération d'initialisation🎜$ git clone git仓库地址
$ git pull origin feature-D
git log
peut afficher les journaux soumis dans les entrepôts précédents. Y compris qui a effectué la validation ou la fusion à quelle heure🎜rrreee🎜Si vous souhaitez afficher uniquement la première ligne des informations de validation, vous pouvez ajouter -- Pretty=short
après le git log code> command >🎜rrreee🎜2.8 git diff Vérifiez la différence avant et après le changement🎜🎜Exécutez <code>git diff
pour vérifier la différence entre le classeur de travail actuel et la zone de préparation🎜rrreee🎜🎜3. opération🎜🎜🎜Vous pouvez créer plusieurs branches, effectuant des tâches complètement différentes en même temps. Attendez que le travail de branche soit terminé avant de le fusionner avec la branche principale. Grâce à l'utilisation flexible des branches, plusieurs personnes peuvent effectuer efficacement un développement simultané en même temps. 🎜🎜La branche git 3.1 affiche la liste des branches🎜🎜Il y a un «*» (astérisque) sur le côté gauche de la branche principale, indiquant qu'il s'agit de la branche sur laquelle nous nous trouvons actuellement. 🎜rrreee🎜3.2 git checkout Créer et changer de branche🎜🎜Créer et passer à la fonctionnalité de branche-A🎜rrreee🎜En fait, la commande ci-dessus est équivalente aux deux commandes suivantes🎜rrreee🎜Revenir à la branche mian🎜rrreee🎜Revenir en arrière Exploiter la branche précédente🎜rrreee🎜🎜 : créez une nouvelle fonctionnalité de branche, modifiez README.md sur la nouvelle branche, puis ajoutez et validez🎜🎜🎜Cela peut être prouvé par des opérations réelles : tant que vous créez plusieurs branches, vous pouvez développer plusieurs fonctions en même temps tout en s'influençant mutuellement🎜🎜3.3 git merge merge branches🎜🎜Ajoutez le paramètre --no–ff lors de la fusion pour enregistrer l'historique de la branche précédente🎜rrreee🎜Ensuite, l'éditeur démarrera pour saisir les informations de validation de fusion🎜🎜3.4 git log --graph Afficher les branches sous forme d'icônes🎜rrreee🎜🎜4. Modifier les opérations de validation🎜🎜🎜4.1 git reset Revenir aux versions historiques🎜rrreee🎜via git reflog
Vérifiez le journal des opérations de l'entrepôt actuel pour trouver la valeur de hachage avant l'historique de retour en arrière. Tant que le GC (garbage collection) de git n'est pas effectué, l'état historique récent peut être récupéré à volonté via le journal. Même si le développeur effectue une opération git par erreur, il peut essentiellement utiliser la commande git reflog pour restaurer l'état d'origine. 🎜rrreee🎜L'opération la plus récente est imprimée ci-dessus et l'opération la plus ancienne est imprimée ci-dessous🎜🎜4.2 Éliminer les conflits🎜🎜🎜Lors de la fusion d'opérations, des conflits sont susceptibles de se produire. À ce stade, vous devez 🎜ouvrir l'éditeur🎜 pour les résoudre. le conflit🎜🎜 Dans le développement réel, l'un d'entre eux doit souvent être supprimé, alors assurez-vous d'analyser soigneusement le contenu de la partie en conflit avant d'apporter des modifications. Après avoir résolu le conflit, effectuez des opérations d'ajout et de validation si vous n'êtes pas satisfait. les informations de soumission précédentes, , peuvent être modifiées à l'aide du paramètre amend🎜rrreee🎜4.3 git rebase -i compression history🎜🎜Avant de fusionner des branches, si vous trouvez des fautes d'orthographe dans le contenu soumis, vous souhaiterez peut-être soumettre une modification, puis inclure cette modification dans la soumission précédente, compressée dans un enregistrement historique. 🎜rrreee🎜Vous pouvez sélectionner un planning pour cibler les deux derniers enregistrements historiques dont HEAD dans la branche, et l'ouvrir dans l'éditeur🎜在创建新仓库的时候,建议不要勾选 README.md 文件,这样会使本地仓库和远程仓库失去整合性。虽然到时候可以强制覆盖,但防止这一情况发生,还是不要勾选,就创建一个空仓库就好。
git remote 在先写代码,后创建仓库的情况下能较好的使用
$ git remote add origin git@github.com:github-book/git-tutorial.git
对于一般先创仓库,后写代码的,需要先 pull 下来仓库,再对文件进行修改
推送至 master 分支
$ git push -u origin master
-u 参数可以在推送的同时,将 origin 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游),添加这个参数,将来运行 git pull 命令从远程仓库获取内容的时候,本地仓库的这个分支就可以直接从 origin 的 masteer 分支获取内容,省去了另外添加参数的麻烦
除了 master 分支之外,还可以推送到其他分支
$ git checkout -b feature-D $ git push -u origin feature-D
$ git clone git仓库地址
将本地的 feature-D 分支更新到最新状态
$ git pull origin feature-D
推荐学习:《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!