Maison  >  Article  >  outils de développement  >  Comment comprendre l'utilisation de base de git en 20 minutes

Comment comprendre l'utilisation de base de git en 20 minutes

WBOY
WBOYavant
2022-01-05 17:36:571529parcourir

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.

Comment comprendre l'utilisation de base de git en 20 minutes

1. Définissez la clé SSH

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账户的注册邮箱
  • id_rsa 文件是私有密钥,id_rsa.pub 是公开密钥。
$ cat ~/.ssh/id_rsa.pub

ssh-rsa 公开密钥的内容 your_email@example.com

  • 然后把公钥拷贝下来,添加到账户里面,注意要把前面的 ssh-rsa 也拷贝下来
  • 头像》Settings》SSH Key》new SSH Key

接下来验证一下,出现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.

2. git 基本操作

2.1 git clone 已有仓库

$ git clone git@github.com:hirocastest/Hello-World.git

这里会要求输入 GitHub 上设置的空开密钥的密码,认证成功后,仓库便会被 clone 到当前目录中。

2.2 git add 将文件加入暂存区

代码编写完成之后,将代码添加到系统的暂存区

$ git add 文件夹/文件

2.3 git commit 保存仓库的历史记录

git commit 命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

$ git commit -m "记录一行提交信息"
  • m 表示对这个提交的概述,如果想要记录详细信息,就把 - m 去掉

2.4 git push

之后只要执行 push 命令,GitHub 上的仓库就会被更新

$ git push

2.5 git init 初始化仓库

clone 方法建立仓库,不需要执行 init 操作。如果要把本地文件设置为仓库,那么就需要进行 init 操作

$ mkdir git-tutorial

$ cd git-tutorial

$ git init

2.6 git status 查看仓库状态

$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

结果现实,我们正处于 masteer 分支下,并且没有可提交的内容

2.7 git log 查看提交日志

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

2.8 git diff 查看更改前后的差别

执行 git diff 查看当前工作书与暂存区的差别

$ git diff

3. 分支操作

可以创建多个分支,同时进行完全不同的作业。等分支作业完成之后再与 master 分支合并。通过灵活运用分支,可以让多人同时高效的进行并发开发。

3.1 git branch 显示分支一览表

master 分支左侧有 “*”(星号),表示这是我们当前所在的分支。

$ git branch
* master

3.2 git checkout 创建、切换分支

创建并切换到分支 feature-A

$ git checkout -b feature-A

实际上,上面那条命令,等价于下面两条命令

$ git branch feature-A

$ git checkout feature-A

切换回分支 mian

$ git checkout main

切换回上一个分支

$ git checkout -
  • 操作一下:创建一个新的分支 feature,在新的分支上修改 README.md,并且 add、commit

通过实际操作可以证明:只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发

3.3 git merge 合并分支

合并时加上 --no–ff 参数,可以保存之前的分支历史

$ git merge --no-ff feature

随后编辑器会启动,用于录入合并提交的信息

3.4 git log --graph 以图标的形式查看分支

$ git log --graph

4. 更改提交的操作

4.1 git reset 回溯历史版本

$ git reset --hard 目标时间点的hash值

通过 git reflog

Le fichier id_rsa est la clé privée et id_rsa.pub est la clé publique.

$ git reflog

ssh-rsa Le contenu de la clé publique your_email@example.com

  • Copiez ensuite la clé publique et ajoutez-la au compte Attention à copier également le ssh-rsa précédent. Avatar》Paramètres》Clé SSH》nouvelle clé SSH
  • Ensuite, vérifiez-le, si le mot "avec succès" apparaît, cela signifie succès
    $ git commit --amend
  • 2 Opérations git de base

2.1 git clone existant. Warehouse

git rebase -i HEAD~2

Ici, il vous sera demandé de saisir le mot de passe de la clé ouverte définie sur GitHub. Après une authentification réussie, l'entrepôt sera cloné dans le répertoire actuel.

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
🎜2.3 git commit Enregistrer l'historique de l'entrepôt🎜🎜La commande git commit peut enregistrer le courant zone de transit Les fichiers sont en fait enregistrés dans l'historique du référentiel. Grâce à ces enregistrements, nous pouvons restaurer des fichiers dans l'arborescence de travail. 🎜
$ git push -u origin master
🎜🎜m représente un aperçu de cette soumission. Si vous souhaitez enregistrer des informations détaillées, supprimez le -m🎜🎜🎜2.4 Après git push🎜🎜, exécutez simplement la commande push et l'entrepôt. sur GitHub sera Sera mis à jour🎜
$ git checkout -b feature-D

$ git push -u origin feature-D
🎜2.5 git init initialise l'entrepôt🎜🎜Méthode 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仓库地址
🎜2.6 git status pour afficher l'état de l'entrepôt🎜
$ git pull origin feature-D
🎜La réalité est que nous sommes sous la branche master et qu'il n'y a aucun contenu à soumettre 🎜🎜2.7 git log pour afficher les soumissions Log🎜🎜La commande 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=shortaprè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🎜

5 推送至远程仓库

5.1 git remote add 添加远程仓库

在创建新仓库的时候,建议不要勾选 README.md 文件,这样会使本地仓库和远程仓库失去整合性。虽然到时候可以强制覆盖,但防止这一情况发生,还是不要勾选,就创建一个空仓库就好。

git remote 在先写代码,后创建仓库的情况下能较好的使用

$ git remote add origin git@github.com:github-book/git-tutorial.git

对于一般先创仓库,后写代码的,需要先 pull 下来仓库,再对文件进行修改

5.2 git push 推送至远程仓库

推送至 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

6 从远程仓库中获取

6.1 git clone 获取远程仓库

$ git clone git仓库地址

将本地的 feature-D 分支更新到最新状态

$ git pull origin feature-D
  • 多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁的进行 push 和 pull 操作

推荐学习:《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