Heim >Entwicklungswerkzeuge >Idiot >Fassen Sie den Studienleitfaden zur Git-Versionskontrolle zusammen und organisieren Sie ihn
Dieser Artikel vermittelt Ihnen relevantes Wissen über Git, das hauptsächlich die Wissenspunkte zur Versionskontrolle zusammenfasst. Ich hoffe, dass es für alle hilfreich ist.
Empfohlene Studie: „Git Learning Tutorial“
zentralisiertes
Quellcode-Verwaltungstool. Früher war es das Code-Management-Tool (Google-Code) für die meisten Open-Source-Software. In den letzten Jahren wurde es am häufigsten von inländischen Softwareunternehmen verwendet. GIT, ein großartiges Werk der verteilten Versionskontrolle. GIT: a verteilt Quellcode-Verwaltungstools Derzeit haben fast alle inländischen Unternehmen die Umstellung von SVN auf GIT abgeschlossen. <ul>
<li>Der größte Unterschied zwischen verteilt und zentralisiert ist: <ul>
<li>Entwickler können dies nur tun Senden Sie Code an den Server. Im verteilten Modus können Entwickler lokal senden. zentralisiert)</ul>
</li>
<li><ul><li>
<code>集中式
源代码管理工具。曾经是绝大多数开源软件的代码管理工具(google code),前几年在国内软件企业使用最为普遍
分布式
GIT (verteilt)分布式
版本控制系统,用于敏捷高效
地处理任何或小或大的项目.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
gemeinsame Versionsbibliothek
ist für die Mehrpersonenentwicklung erforderlich. Für die Einzelpersonenentwicklung ist eine lokale Bibliothek erforderlich. Code> kann initialisiert werden🎜🎜gemeinsame Version Bibliotheksform: 🎜🎜Lokale gemeinsam genutzte Bibliothek: Ordner/U-Disk/Festplatte 🎜🎜Remote-gemeinsam genutzte Bibliothek: Erstellen Sie Ihren eigenen Git-Server/hosten Sie ihn auf einer Plattform eines Drittanbieters (Github/Oschina, usw.)🎜🎜🎜🎜Ob es sich um eine Einzelentwicklung oder eine Mehrfachentwicklung handelt. Für die menschliche Entwicklung kann der Kunde die Befehlszeile oder die grafische Oberfläche verwenden, um git🎜🎜🎜🎜GIT-Befehl - persönliche Entwicklung🎜🎜🎜<p><code zu verwenden>git help
: Git-Befehlshilfehandbuch🎜🎜🎜Andere anzeigen So verwenden Sie den Befehl: git help Andere Befehle🎜🎜🎜🎜
git init
: Warehouse-Initialisierung (persönliches Warehouse) 🎜🎜🎜Warehouse-Dateiverzeichnis🎜🎜
# 表示此为注释,将被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-Einstellungen-Konfigurationsinformationen🎜 🎜🎜Benutzernamen konfigurieren: git config user.name "username"
(wird zum Verfolgen von Änderungsdatensätzen verwendet) 🎜🎜E-Mail konfigurieren : git config user.email "mailbox"
(Wird für die Kommunikation zwischen mehreren Entwicklern verwendet)🎜🎜git config -l
: Konfigurationsinformationen anzeigen🎜🎜git config -e
: Konfigurationsinformationen bearbeiten🎜🎜🎜🎜
git status
: Überprüfen Sie den Status einer Datei🎜🎜🎜Überprüfen Sie den Status einer Datei: git status file name code>🎜🎜Überprüfen Sie den Status aller Dateien im aktuellen Pfad: <code>git status
🎜🎜🎜🎜
git add
: Dateien im Arbeitsbereich im Pufferbereich speichern 🎜🎜🎜Speichern Sie eine Datei im Pufferbereich: git add file name
code>🎜🎜Speichern Sie alle Dateien im aktuellen Pfad im temporären Bereich: git add .
(Hinweis dass am Ende ein Punkt steht.) 🎜🎜🎜🎜
git commit
: Dateien im Pufferbereich an den aktuellen Zweig senden🎜🎜🎜Eine Datei an den Zweig senden: git commit -m "comment" Dateiname
🎜🎜Alle Dateien im aktuellen Pfad zum Zweig speichern: git commit -m "comment"
🎜🎜🎜🎜
git log
: Änderungsprotokoll der Datei anzeigen🎜🎜🎜Änderungsprotokoll einer bestimmten Datei anzeigen: git log file name
🎜🎜Änderungsprotokolle aller Dateien in der aktuellen Datei anzeigen Pfad: git log
🎜🎜Einfache Protokollinformationen in einer Zeile anzeigen: git log ––pretty=oneline
🎜🎜Die neuesten N Änderungen anzeigen: git log –N
(N ist eine ganze Zahl) 🎜🎜🎜🎜
git diff
: Die neuesten Änderungen an der Datei anzeigen🎜 🎜🎜Ort zum Anzeigen der neuesten Änderungen an einer Datei: git diff-Dateiname
🎜🎜Ort zum Anzeigen der neuesten Änderungen an allen Dateien im aktuellen Pfad: git diff
🎜🎜🎜🎜
git reflog
: Zweigreferenzdatensätze anzeigen (kann alle Versionsnummern anzeigen) 🎜🎜🎜
git rm
: Dateien löschen (Commit-Vorgang ist nach dem Löschen erforderlich), kann mit dem Repository synchronisiert werden) 🎜🎜🎜
git reset
: Versions-Rollback (es wird empfohlen, den Parameter --hard hinzuzufügen, Git unterstützt unbegrenztes Bedauern) 🎜
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 分支名称
: 删除指定分支提示:
- Aktualisieren Sie vor jeder Einreichung
- Senden Sie jeden Tag den kompilierten Code des Tages vor der Arbeit
- Das erste, was Sie bei der Arbeit jeden Tag tun müssen, ist, den Code des Vortages zu aktualisieren
ssh -T git@github.com
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh -T git@github.com
Das obige ist der detaillierte Inhalt vonFassen Sie den Studienleitfaden zur Git-Versionskontrolle zusammen und organisieren Sie ihn. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!