- Verzeichnisflussdiagramm
1. Verteilte Versionskontrolle und zentralisierte Versionskontrolle
1.1 Zentralisierte Versionskontrolle
- Zu den zentralisierten Versionskontrollsystemen gehören: CVS und SVN
- Ihr Hauptmerkmal ist ein einziger zentral verwalteter Server, der Revisionen aller Dateien speichert;
- Kollaborative Entwickler stellen über den Client eine Verbindung zu diesem Server her und rufen die neuesten Dateien ab oder übermitteln Aktualisierungen.
- Vorteile und Nachteile
- Im Vergleich zum altmodischen lokalen Management kann jeder bis zu einem gewissen Grad sehen, was alle anderen im Projekt tun.
- Doch die zentralisierte Versionskontrolle hat auch ein Kernproblem: Der zentrale Server kann nicht ausfallen:
- Wenn die Festplatte, auf der sich die zentrale Datenbank befindet, beschädigt ist und keine ordnungsgemäße Sicherung durchgeführt wird, gehen mit Sicherheit alle Daten verloren;
1.2 Verteilte Versionskontrolle
- Zu den verteilten Versionskontrollsystemen gehören: Git
- Vorteile und Nachteile:
- Der Client extrahiert nicht nur die neueste Version des Datei-Snapshots, sondern spiegelt das Code-Warehouse vollständig wider, einschließlich des vollständigen Verlaufs.
- Auf diese Weise kann bei einem Ausfall eines für die Zusammenarbeit genutzten Servers jedes gespiegelte lokale Warehouse zur anschließenden Wiederherstellung genutzt werden;
- Denn jeder Klonvorgang ist eigentlich eine vollständige Sicherung des Code-Repositorys ;
2. Installation und Konfiguration
Installations- und Konfigurationsreferenz
- Benutzername und E-Mail-Konfiguration
$ git config --global user.name "username"
$ git config --global user.email "[email protected]"
3. Git-Befehlszeilenoperationen
Grundlegende Unterrichtsvoraussetzung
1. 克隆项目 `git clone 项目地址`
2. 初始化仓库` git init`
3. 添加暂存区 `git add .`
4. 提交本地仓库 `git commit -m 项目初始化`
5. master分支创建release分支` git branch release`
6. 基于master分支创建develop分支 `git branch develop`
# 推送master分支
git push -u origin master
# 推送release分支
git push origin release
# 推送develop分支
git push origin develop
# 在任意目录操作 (仓库地址仅供参考)
git clone https://gitee.com/zd1231230/doctor-demo.git
# 拉取其他分支
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git drugPayment:drugPayment
3.1 ADMU-Logo
M modified
Sie haben die Datei zu Github hinzugefügt. Wenn Sie die Datei dann ändern, wird sie nach der Datei mit „M“ markiert.
U untracked
Wenn Sie diese Datei lokal erstellen und nicht an Github übermittelt haben, wird sie mit U markiertD delete
Wenn Sie diese Datei löschen, zeichnet vscode-git diesen Status aufA
Es wurde noch nicht im Staging-Bereich eingereicht.
3.2 Grundlegende Befehle für die Projektinitialisierung und -übermittlung
- Erstellen Sie ein leeres Verzeichnis (vorzugsweise ohne Chinesisch).
$ mkdir gitMaster
$ cd gitMaster
$ pwd
/Users/git/gitMaster
- Lager initialisieren
git init
$ git init
Initialized empty Git repository in /Users/hxk/mymenu/.git/
- Fügen Sie Dateien zum Repository hinzu
$ git add test.txt
- Senden Sie Dateien an das Lager
- m
Nachfolgend finden Sie die Anweisungen zur Einreichung- Der übermittelte Kommentar ist falsch, Sie können
git commit --amend
ihn ändern
$ git commit -m "a new file"
- Commit-Verlauf anzeigen
git log
- Status anzeigen
$ git status
3.3 Dateistatusverfolgung und Betriebsprozess
-
Dateien können bei der Übermittlung in
跟踪和未跟踪
Status unterteilt werden未跟踪
: Standardmäßig werden Dateien im Git-Warehouse nicht zur Git-Warehouse-Verwaltung hinzugefügt. Wir müssen den Befehl add verwenden.已跟踪
: Zur Git-Lagerverwaltung hinzugefügte Dateien befinden sich in einem verfolgten Zustand und Git kann verschiedene Verfolgungs- und Verwaltungsfunktionen für sie durchführen.
-
Überprüfen Sie den Status einer Datei
git status –s
git status --short
- Verfolgte Dateien können in Unterteilungsstatus unterteilt werden
staged
: Dateistatus im Pufferbereich;Unmodified
Mit dem Befehl :commit können Sie bereitgestellte Dateien an das Git-Repository sendenModified
: Nachdem eine Datei geändert wurde, befindet sie sich im Status „Geändert“.
- Befehls-Trace-Dateien
git add .
und fügen Sie sie dem Staging-Bereich hinzu
- Übermittlung von Dateiaktualisierungen –
git commit - m
Übermittlungsanweisungen
3.4 Übermittlungsverlauf und Versions-Rollback
git log // 提交的日志 (里面包含提交的id) q 退出
git log --pretty=oneline --graph //简短的提交历史日志 (可以看到分支的提交结构)
git log --pretty=oneline
- Wenn Sie ein Versions-Rollback durchführen möchten, müssen Sie wissen, in welcher Version Sie sich derzeit befinden. Git zeichnet die aktuelle Version über den HEAD-Zeiger auf.
git reset--hard HEAD ^
^ Vorherige Versiongit reset--hard HEAD~1000
~Mehrere Versionen in Zahlengit reset--hard 595674bdc04935452e583b360e714238b1295bf7
Version angeben
3,5 Git-Dateien ignorieren
.gitignore
files, listet die Muster der zu ignorierenden Dateien auf
;
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
src/views/User/components/ConsultItem.vue
3.6 Remote-Server
- Remote-Lager anzeigen
git remote
git remote –v
-v是—verbose的缩写(冗长的)
- Remote-Adresse hinzufügen: Lassen Sie das lokale Warehouse und das Remote-Server-Warehouse eine Verbindung herstellen
git remote add <shortname> <url>
git remote add origin http://152.136.185.210:7888/gitremotedemo.git
重命名远程地址: git remote rename master newMaster
移除远程地址: git remote remove gitlab
- Spezifische Schritte
// 重要 添加远程地址(让本地的仓库和远程服务器仓库建立连接):
// git remote add < shortname > <url>
0. git init // 初始化
1. git remote add origin https://gitee.com/zd1231230/in.git // 关联远程仓库
2.0 git push --set-upstream origin newFetch 提交到远程仓库
2.1 git pull https://gitee.com/zd1231230/in.git master 拉取仓库到主分支
3. 新建仓库 newFetch
4. git commit -a -m "初始化"
5. push
注意点
Ziehen Sie nach der Verknüpfung mit dem Remote-Warehouse den Zweig und führen Sie ihn zusammengit pull
git pull 等于 git fetch + git merge(rebase)
3.7 Zweigerstellung, -wechsel und -zusammenführung
- Zweigstellenerstellung
git branch 分支名
- Erstellen Sie einen Zweig und führen Sie ihn zusammen
git checkout -b <newbranchname>
- Zweigstellenzusammenlegung
git merge <name>
- Zweige anzeigen und löschen
git branch
# Alle aktuellen Filialen anzeigengit branch –v
# Sehen Sie sich auch den letzten Commit angit branch --merged
# Alle mit dem aktuellen Zweig zusammengeführten Zweige anzeigengit branch --no-merged
# Alle Zweige anzeigen, die nicht mit dem aktuellen Zweig zusammengeführt wurdengit branch –d hotfix
# Den aktuellen Zweig löschengit branch –D hotfix
# Erzwungenes Löschen eines Zweigs
3.8 Filialen verfolgen
- Problem 1: Der aktuelle Zweig verfügt über keinen Gleiszweig
- Grund: Der aktuelle Zweig wird nicht mit dem Remote-Ursprungs-/Master-Zweig verfolgt
- Ohne Tracking führen wir direkt aus
pull操作的时候必须指定从哪一个远程仓库中的哪一个分支中获取内容
;
- Ohne Tracking führen wir direkt aus
- Direkte Ausführung
git push origin master
- Wenn wir git fetch direkt ausführen wollen, gibt es eine Voraussetzung: Für den aktuellen Branch muss ein Tracking-Branch gesetzt sein.
4. Git-Workflow (Git-Flow)
- Aufgrund der Bequemlichkeit der Verwendung von Zweigen auf Git wurden viele Git-Workflows erstellt:
- Mit anderen Worten: Sie können in verschiedenen Phasen des gesamten Projektentwicklungszyklus mehrere offene Zweige gleichzeitig haben;
- Sie können bestimmte Themenzweige regelmäßig mit anderen Zweigen zusammenführen;
- Beispielsweise der folgende Workflow:
master
als Hauptzweig;develop
Als Entwicklungszweig und wenn es eine stabile Version gibt, wird er mit dem Hauptzweig zusammengeführt.topic
Wird als Zweig eines bestimmten Themas, einer bestimmten Funktion oder Funktion entwickelt und nach Abschluss der Entwicklung in den Entwicklungszweig integriert.
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git dev:dev
Artikelreferenz zum Git-Flow-Workflow-Diagramm : Rebase- und Tag-Tags