Heim > php教程 > PHP开发 > Detaillierte Erläuterung der Grundfunktionen des Git-Tutorials

Detaillierte Erläuterung der Grundfunktionen des Git-Tutorials

黄舟
Freigeben: 2016-12-16 15:00:11
Original
1129 Leute haben es durchsucht

Grundlegende Git-Operationen

Die Aufgabe von Git besteht darin, Schnappschüsse Ihres Projekts zu erstellen, zu speichern und sie mit nachfolgenden Schnappschüssen zu vergleichen. In diesem Kapitel werden die Befehle zum Erstellen und Senden von Snapshots Ihres Projekts vorgestellt.

Projektbefehle abrufen und erstellen

git init

Verwenden Sie git init, um ein neues Git-Repository im Verzeichnis zu erstellen. Sie können dies jederzeit und in jedem Verzeichnis tun, und es ist vollständig lokalisiert.
Führen Sie git im Verzeichnis aus init können Sie ein Git-Repository erstellen. Zum Beispiel erstellen wir das Runoob-Projekt:

$ mkdir runoob
$ cd runoob/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/
# 在 /www/runoob/.git/ 目录初始化空 Git 仓库完毕<BR>
Nach dem Login kopieren


Jetzt können Sie sehen, dass das .git-Unterverzeichnis in Ihrem Projekt generiert wird . Dies ist Ihr Git-Repository, in dem alle Snapshot-Daten zu Ihrem Projekt gespeichert sind.

ls -a
..git

git clone

Verwenden Sie git clone, um ein Git-Repository lokal zu kopieren. Verschaffen Sie sich die Möglichkeit, das Element anzuzeigen oder Änderungen vorzunehmen.

Wenn Sie mit anderen an einem Projekt zusammenarbeiten müssen oder eine Kopie eines Projekts erstellen möchten, um den Code anzuzeigen, können Sie dieses Projekt klonen. Führen Sie den Befehl aus:

git clone [url]

[url] für das Projekt, das Sie kopieren möchten, fertig.

Wenn wir beispielsweise das Projekt auf Github klonen:

$ git clone git@github.com:schacon/simplegit.git
Cloning into &#39;simplegit&#39;...
remote: Counting objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.
Resolving deltas: 100% (2/2), done.
Checking connectivity... done.
Nach dem Login kopieren

Nach Abschluss des Klonens wird ein Simplegit-Verzeichnis generiert im aktuellen Verzeichnis:

$ cd simplegit/ $ ls README Rakefile lib

Der obige Vorgang kopiert alle Datensätze des Projekts.

$ ls -a
.    ..    .git   README  Rakefile lib
$ cd .git
$ ls
HEAD    description info    packed-refs
branches  hooks    logs    refs
config   index    objects
Nach dem Login kopieren


Standardmäßig erstellt Git Ihr lokales Projektverzeichnis entsprechend dem Namen des Projekts, der in der von Ihnen angegebenen URL angegeben ist . Normalerweise das letzte / der URL Der Projektname danach. Wenn Sie einen anderen Namen wünschen, können Sie den gewünschten Namen nach dem Befehl hinzufügen.

Grundlegende Schnappschüsse

Gits Aufgabe ist es, Schnappschüsse Ihres Projekts zu erstellen und zu speichern und sie mit nachfolgenden Schnappschüssen zu vergleichen. In diesem Kapitel werden die Befehle zum Erstellen und Senden von Snapshots Ihres Projekts vorgestellt.

git add

Der Befehl git add kann die Datei zum Cache hinzufügen. Wir fügen beispielsweise die folgenden zwei Dateien hinzu:

$ touch README
$ touch hello.php
$ ls
README hello.php
$ git status -s
?? README
?? hello.php
$
Nach dem Login kopieren


Der Befehl git status wird verwendet, um den aktuellen Status des Projekts anzuzeigen.

Als nächstes führen wir den Befehl git add aus, um die Datei hinzuzufügen:

$ git add README hello.php

Jetzt führen wir git aus Im Status können Sie sehen, dass diese beiden Dateien hinzugefügt wurden.

$ git status -s
A README
A hello.php
$
Nach dem Login kopieren

In einem neuen Projekt ist es üblich, alle Dateien hinzuzufügen. Wir können den Befehl git add verwenden, um alle Dateien des aktuellen Projekts hinzuzufügen.
Jetzt ändern wir die README-Datei:


$ vim README
<pre class="brush:php;toolbar:false">
<p>在 README 添加以下内容:<b># Runoob Git 测试</b>,然后保存退出。</p>
<p>再执行一下 git status:</p>
$ git status -s
AM README
A hello.php
Nach dem Login kopieren


Der Status „AM“ bedeutet Folgendes Die Datei hat sich geändert, seit wir sie zum Cache hinzugefügt haben. Nach der Änderung führen wir den Befehl git add aus, um sie dem Cache hinzuzufügen:

$ git add .
$ git status -s
A README
A hello.php
Nach dem Login kopieren

Wenn Sie Ihre Änderungen in den Snapshot aufnehmen möchten, der gerade erstellt wird eingereicht, Git Add muss ausgeführt werden.

Git-Status

Git-Status, um zu sehen, ob seit Ihrem letzten Commit Änderungen stattgefunden haben.

Ich habe bei der Demonstration dieses Befehls den Parameter -s hinzugefügt, um eine kurze Ergebnisausgabe zu erhalten. Wenn dieser Parameter nicht hinzugefügt wird, lautet die detaillierte Ausgabe:

$ git status
On branch master
  
Initial commit
  
Changes to be committed:
 (use "git rm --cached <file>..." to unstage)
  
 new file:  README
 new file:  hello.php
Nach dem Login kopieren


git diff

Führen Sie git diff aus, um detaillierte Informationen zu den Ergebnissen der Ausführung von git status anzuzeigen.

Der Befehl git diff zeigt den Unterschied zwischen Änderungen, die in den Cache geschrieben wurden, und Änderungen, die geändert, aber noch nicht in den Cache geschrieben wurden. Es gibt zwei Hauptanwendungsszenarien für Git Diff.

1. Änderungen, die nicht zwischengespeichert wurden: git diff

2. Zwischengespeicherte Änderungen anzeigen: git diff --cached

3 Änderungen, die nicht zwischengespeichert werden: git diff HEAD

4. Zusammenfassung anstelle des gesamten Diff anzeigen: git diff --stat

Geben Sie Folgendes in die hello.php-Datei ein:

<?php
echo &#39;菜鸟教程:www.runoob.com&#39;;
?>
Nach dem Login kopieren


$ git status -s
A README
AM hello.php
$ git diff
diff --git a/hello.php b/hello.php
index e69de29..69b5711 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo &#39;菜鸟教程:www.runoob.com&#39;;
+?>
Nach dem Login kopieren


git status zeigt Ihren letzten Commit an Aktualisierte Änderungen oder in den Cache geschriebene Änderungen, und git diff zeigt Zeile für Zeile an, um welche Änderungen es sich handelt.

Als nächstes überprüfen wir den Ausführungseffekt von git diff --cached:

$ git add hello.php 
$ git status -s
A README
A hello.php
$ git diff --cached
diff --git a/README b/README
new file mode 100644
index 0000000..8f87495
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+# Runoob Git 测试
diff --git a/hello.php b/hello.php
new file mode 100644
index 0000000..69b5711
--- /dev/null
+++ b/hello.php
@@ -0,0 +1,3 @@
+<?php
+echo &#39;菜鸟教程:www.runoob.com&#39;;
+?>
Nach dem Login kopieren


git commit

Verwenden Sie den Befehl „git add“, um den Inhalt des gewünschten Snapshots in den Cache zu schreiben, und führen Sie „git commit“ aus, um den Inhalt des Caches zum Warehouse hinzuzufügen.

Git zeichnet Ihren Namen und Ihre E-Mail-Adresse für jede Einreichung auf, die Sie einreichen. Der erste Schritt besteht also darin, Ihren Benutzernamen und Ihre E-Mail-Adresse zu konfigurieren.

$ git config --global user.name 'runoob'
$ git config --global user.email test@runoob.com

Als nächstes schreiben wir in den Cache und übernehmen alle Änderungen in hello.php. In diesem ersten Beispiel verwenden wir die Option -m, um Commit-Kommentare in der Befehlszeile bereitzustellen.

$ git add hello.php
$ git status -s
A README
A hello.php
$ $ git commit -m &#39;第一次版本提交&#39;
[master (root-commit) d32cf1f] 第一次版本提交
 2 files changed, 4 insertions(+)
 create mode 100644 README
 create mode 100644 hello.php
Nach dem Login kopieren


Nun haben wir den Schnappschuss aufgenommen. Wenn wir dann git status:

$ git status
# On branch master
nichts tun commit (Arbeitsverzeichnis bereinigen)

以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"。
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。屏幕会像这样:

# Please enter the commit message for your changes. Lines starting
# with &#39;#&#39; will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#  (use "git reset HEAD <file>..." to unstage)
#
# modified:  hello.php
#
~
~
".git/COMMIT_EDITMSG" 9L, 257C
Nach dem Login kopieren


如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:

git commit -a

我们先修改 hello.php 文件为以下内容:

<?php
echo &#39;菜鸟教程:www.runoob.com&#39;;
echo &#39;菜鸟教程:www.runoob.com&#39;;
?>
Nach dem Login kopieren

再执行以下命令:


git commit -am &#39;修改 hello.php 文件&#39;
[master 71ee2cb] 修改 hello.php 文件
 1 file changed, 1 insertion(+)
Nach dem Login kopieren

git reset HEAD

git reset HEAD 命令用于取消已缓存的内容。

我们先改动文件 README 文件,内容如下:

# Runoob Git 测试
# 菜鸟教程

hello.php 文件修改为:

<?php
echo &#39;菜鸟教程:www.runoob.com&#39;;
echo &#39;菜鸟教程:www.runoob.com&#39;;
echo &#39;菜鸟教程:www.runoob.com&#39;;
?>
Nach dem Login kopieren

现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下


$ git status -s
 M README
 M hello.php
$ git add .
$ git status -s
M README
M hello.pp
$ git reset HEAD -- hello.php 
Unstaged changes after reset:
M hello.php
$ git status -s
M README
 M hello.php
Nach dem Login kopieren

现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 是没有的。

$ git commit -m &#39;修改&#39;
[master f50cfda] 修改
 1 file changed, 1 insertion(+)
$ git status -s
 M hello.php
Nach dem Login kopieren

可以看到 hello.php 文件的修改并为提交。

这时我们可以使用以下命令将 hello.php 的修改提交:

$ git commit -am &#39;修改 hello.php 文件&#39;
[master 760f74d] 修改 hello.php 文件
 1 file changed, 1 insertion(+)
$ git status
On branch master
nothing to commit, working directory clean
Nach dem Login kopieren

简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。

git rm

git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。

默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。

如果你要在工作目录中留着该文件,可以使用 git rm --cached:

如我们删除 hello.php文件:

$ git rm hello.php 
rm &#39;hello.php&#39;
$ ls
README
Nach dem Login kopieren

不从工作区中删除文件:

$ git rm --cached README 
rm &#39;README&#39;
$ ls
README
Nach dem Login kopieren

git mv

git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。

我们先把刚移除的 README 添加回来:

$ git add README

然后对其重名:

$ git mv README README.md
$ ls
README.md
Nach dem Login kopieren

   

 以上就是Git 教程之基本操作详解的内容,更多相关文章请关注PHP中文网(www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage