Maison >outils de développement >git >Résumer et organiser le guide d'étude du contrôle de version Git
Cet article vous apporte des connaissances pertinentes sur Git, qui résume principalement les points de connaissance du contrôle de version. Jetons un coup d'œil au guide d'étude du contrôle de version Git. J'espère qu'il sera utile à tout le monde.
Étude recommandée : "Tutoriel d'apprentissage Git"
centralisé
. C'était autrefois l'outil de gestion de code (code Google) pour la plupart des logiciels open source. Au cours des dernières années, il était le plus couramment utilisé par les éditeurs de logiciels nationaux集中式
源代码管理工具。曾经是绝大多数开源软件的代码管理工具(google code),前几年在国内软件企业使用最为普遍分布式
distribué Outils de gestion de code source. À l'heure actuelle, presque toutes les entreprises nationales ont terminé la conversion de SVN en GIT
En mode centralisé, les développeurs ne peuvent que le faire. soumettre le code au serveur, en mode distribué, les développeurs peuvent le soumettre localement
Sous serveurs centralisés, uniquement distants. Il y a une base de données de code sur l'ordinateur. En mode distribué, il y a une base de données de code sur la machine de chaque développeur
SVN ( centralisé)
distribué
gratuit et open source pour agile et efficace
Gérer tout projet, petit ou grand, 分布式
版本控制系统,用于敏捷高效
地处理任何或小或大的项目.git目录
以外的内容共享版本库
, 单人开发初始化一个本地库
即可git help
:git指令帮助手册
git init
: 仓库初始化(个人仓库)
HEAD: 指向当前分支的一个提交 description: 项目的描述信息 config: 项目的配置信息 info/: 里面有一个exclude文件,指定本项目要忽略的文件 objects/: Git对象库(commit/tree/blob/tag) refs/: 标识每个分支指向哪个提交 hooks/: 默认的hook脚本
GIT设置配置信息
git config user.name "用户名"
(用于跟踪修改记录)git config user.email "邮箱"
(用于多人开发间的沟通)git config -l
: 查看配置信息git config -e
: 编辑配置信息git status
:查文件的状态
git status 文件名
git status
git add
:将工作区的文件保存到暂缓区
git add 文件名
git add .
(注意,最后是一个点 . )git commit
:将暂缓区的文件提交到当前分支
git commit -m ”注释” 文件名
git commit -m ”注释”
git log
:查看文件的修改日志
git log 文件名
git log
git log ––pretty=oneline
git log –N
(N是一个整数)git diff
:查看文件最新改动的地方
git diff 文件名
git diff
git reflog
:查看分支引用记录(能够查看所有的版本号)
git rm
:删除文件(删完之后要进行commit操作,才能同步到版本库)
git reset
répertoire .git
🎜🎜Référentiel (Repository ) :Répertoire .git, utilisé pour stocker les informations de version enregistrées 🎜🎜Staga dans le référentiel :🎜🎜Branche (maître) dans le référentiel : strong> Le première branche créée automatiquement par git🎜🎜Le **pointeur HEAD dans le dépôt :** est utilisé pour pointer vers la branche actuelle🎜🎜🎜🎜🎜🎜🎜fonction de nommage git add et git commit🎜🎜git add : modifier le fichier Ajouter mettre en attente 🎜🎜🎜🎜git commit : Mettre en attente Tous le contenu de la zone est soumis à la branche pointée par le pointeur HEAD actuel🎜🎜🎜🎜🎜🎜🎜🎜Environnement d'utilisation GIT🎜🎜🎜 Une bibliothèque de versions partagées
est requise pour le développement à plusieurs personnes. Pour le développement par une seule personne, une bibliothèque locale
. code> peut être initialisé🎜🎜version partagée Formulaire de bibliothèque : 🎜🎜Bibliothèque partagée locale : dossier/disque U/disque dur 🎜🎜Bibliothèque partagée à distance : créez votre propre serveur git/hébergez-le sur une plateforme tierce (github/oschina, etc.)🎜🎜🎜🎜Qu'il s'agisse d'un développement unique ou de développements multiples Pour le développement humain, le client peut utiliser la ligne de commande ou l'interface graphique pour utiliser git🎜🎜🎜🎜Commande GIT - développement personnel🎜🎜🎜git help
: manuel d'aide de la commande git🎜🎜🎜Voir les autres Comment utiliser la commande : git help Autres commandes🎜🎜🎜🎜
git init
: Initialisation de l'entrepôt (entrepôt personnel) 🎜🎜🎜Répertoire de fichiers d'entrepôt🎜🎜
# 表示此为注释,将被Git忽略*.a 表示忽略所有 .a 结尾的文件!lib.a 表示但lib.a除外/TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ 表示忽略 build/目录下的所有文件,过滤整个build文件夹; doc/*.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt bin/: 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件 /bin: 表示忽略根目录下的bin文件 /*.c: 表示忽略cat.c,不忽略 build/cat.c debug/*.obj: 表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj **/foo: 表示忽略/foo,a/foo,a/b/foo等 a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等!/bin/run.sh 表示不忽略bin目录下的run.sh文件*.log: 表示忽略所有 .log 文件 config.php: 表示忽略当前路径的 config.php 文件 /mtk/ 表示过滤整个文件夹*.zip 表示过滤所有.zip文件/mtk/do.c 表示过滤某个具体文件 被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。 需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:!*.zip!/mtk/one.txt 唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢? 想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::/mtk/* !/mtk/one.txt 假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来! 注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,one.txt文件虽然加了!过滤规则,也不会生效! ---------------------------------------------------------------------------------- 还有一些规则如下: fd1/* 说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略; /fd1/* 说明:忽略根目录下的 /fd1/ 目录的全部内容; /* !.gitignore !/fw/ /fw/* !/fw/bin/ !/fw/sf/ 说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;注意要先对bin/的父目录使用!规则,使其不被排除。🎜🎜
Informations de configuration des paramètres GIT🎜 🎜🎜Configurer le nom d'utilisateur : git config user.name "username"
(utilisé pour suivre les enregistrements de modifications) 🎜🎜Configurer l'e-mail : git config user.email "mailbox"
(Utilisé pour la communication entre plusieurs développeurs)🎜🎜git config -l
: Afficher les informations de configuration🎜🎜git config -e
: Modifier les informations de configuration🎜🎜🎜🎜
git status
: Vérifier l'état d'un fichier🎜🎜🎜Vérifier l'état d'un fichier : nom du fichier d'état git code>🎜🎜Vérifiez l'état de tous les fichiers dans le chemin actuel : <code>git status
🎜🎜🎜🎜
git add
: enregistrez les fichiers de l'espace de travail dans la zone tampon 🎜🎜🎜Enregistrez un fichier dans la zone tampon : git add file name
code>🎜🎜Enregistrez tous les fichiers dans le chemin actuel vers la zone temporaire : git add .
(remarque qu'il y a un point à la fin.) 🎜🎜🎜🎜
git commit
: Soumettez les fichiers dans la zone tampon à la branche actuelle🎜🎜🎜Soumettez un fichier à la branche : git commit -m "comment" nom du fichier
🎜🎜Enregistrez tous les fichiers dans le chemin actuel vers la branche : git commit -m "comment"
🎜🎜🎜🎜
git log
: Afficher le journal des modifications du fichier🎜🎜🎜Afficher le journal des modifications d'un certain fichier : git log file name
🎜🎜Afficher les journaux de modifications de tous les fichiers dans le courant chemin : git log
🎜🎜Affichez les informations de journal simples sur une seule ligne : git log ––pretty=oneline
🎜🎜Affichez les N dernières modifications : git log –N
(N est un entier) 🎜🎜🎜🎜
git diff
: Afficher les dernières modifications apportées au fichier🎜 🎜🎜L'endroit pour afficher les dernières modifications apportées à un fichier : nom du fichier git diff
🎜🎜L'endroit où afficher les dernières modifications apportées à tous les fichiers dans le chemin actuel : git diff
🎜🎜🎜🎜
git reflog
: Afficher les enregistrements de référence de branche (peut afficher tous les numéros de version) 🎜🎜🎜
git rm
: Supprimer les fichiers (une opération de validation est requise après la suppression) peut être synchronisé avec le référentiel) 🎜🎜🎜git reset
: restauration de version (il est recommandé d'ajouter le paramètre --hard, git prend en charge les regrets illimités) 🎜
git reset ––hard HEAD^
git reset ––hard HEAD^^
git reset ––hard HEAD~N(N是一个整数)
git reset ––hard 版本号(版本号用7位即可)
Git忽略提交规则 - .gitignore配置
# 表示此为注释,将被Git忽略*.a 表示忽略所有 .a 结尾的文件!lib.a 表示但lib.a除外/TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ 表示忽略 build/目录下的所有文件,过滤整个build文件夹; doc/*.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt bin/: 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件 /bin: 表示忽略根目录下的bin文件 /*.c: 表示忽略cat.c,不忽略 build/cat.c debug/*.obj: 表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj **/foo: 表示忽略/foo,a/foo,a/b/foo等 a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等!/bin/run.sh 表示不忽略bin目录下的run.sh文件*.log: 表示忽略所有 .log 文件 config.php: 表示忽略当前路径的 config.php 文件 /mtk/ 表示过滤整个文件夹*.zip 表示过滤所有.zip文件/mtk/do.c 表示过滤某个具体文件 被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。 需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:!*.zip!/mtk/one.txt 唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢? 想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::/mtk/* !/mtk/one.txt 假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来! 注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,one.txt文件虽然加了!过滤规则,也不会生效! ---------------------------------------------------------------------------------- 还有一些规则如下: fd1/* 说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略; /fd1/* 说明:忽略根目录下的 /fd1/ 目录的全部内容; /* !.gitignore !/fw/ /fw/* !/fw/bin/ !/fw/sf/ 说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;注意要先对bin/的父目录使用!规则,使其不被排除。
git init --bare
: 仓库初始化(共享仓库)git clone
:下载远程仓库到本地git pull
:下载远程仓库的最新信息到本地仓库git push
:将本地的仓库信息推送到远程仓库<<<<<<< HEAD 你本地的新增的代码======= 服务器上和你冲突的代码>>>>>>> e9609de28b65bf97539f94c6458cdebdf2711c9f
中心仓库:包含master和develop两个分支
分支分类
对于商业级项目,真正开发过程中都是基于develop分支进行的,develop分支是开发主线!
master分支中,只存放相对稳定的分支,例如:0.1版本, 0.2版本
在实际产品开发中,需要“规划版本”,例如:将100个功能规划到5个不同的版本上
发现bug,要基于“上一个最稳定的版本”进行修复,这是热补丁分支存在的意义!
理解清楚版本管理分支的特性,是迭代式开发的重要基础!
git branch
: 查看所有分支
git branch 分支名称
: 创建分支
git checkout 分支名称
: 切换到指定分支git merge 分支名称
: 合并分支git branch -d 分支名称
: 删除指定分支提示:
- Mise à jour avant chaque soumission
- Soumettez chaque jour le code compilé de la veille du travail
- La première chose au travail chaque jour est de mettre à jour le code de la veille
ssh-keygen -t rsa -b 4096 -. C "votre_email@exemple.com"
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh -T git@github.com
ssh -T git@github.com
7. Utilisez la clé SSH pour faire fonctionner GitHub
Recommandé. apprentissage : "
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!