Latest web development tutorials

Git Grundfunktionen

Git hat die Aufgabe, zu erstellen und einen Schnappschuss Ihres Projekts und nach Schnappschüssen und vergleichen Sie speichern. In diesem Kapitel wird über das Erstellen und Ihr Projekt Schnappschüsse Befehl Einführung einreichen.


Nehmen Sie Kontakt mit einem Befehl zum Erstellen eines Projekts

git init

Erstellen Sie ein neues Verzeichnis im Git-Repository mit git init. Sie können jederzeit ein beliebiges Verzeichnis zu tun, vollständig lokalisiert.

Vorstand git init in dem Verzeichnis, können Sie ein Git-Repositories erstellen. Zum Beispiel haben wir w3big Artikel:

$ mkdir w3big
$ cd w3big/
$ git init
Initialized empty Git repository in /Users/tianqixin/www/w3big/.git/
# 在 /www/w3big/.git/ 目录初始化空 Git 仓库完毕。

Jetzt können Sie das generierte .git Unterverzeichnis in Ihrem Projekt zu sehen. Das ist Ihre Git-Repository, und alle zu einem Schnappschuss Ihres Projekts bezogenen Daten werden hier gespeichert.

ls -a
.	..	.git

git clone

Verwenden Sie git ein Git-Repository zu einer lokalen Kopie zu klonen, so dass sie das Objekt ansehen können, oder zu modifizieren.

Wenn Sie ein Kooperationsprojekt mit anderen benötigen oder wünschen Sie ein Projekt zu kopieren, den Code anschauen, können Sie das Projekt klonen. Run:

 git clone [url]

Artikel [url] Sie wollen, es zu kopieren.

Zum Beispiel geklont wir das Projekt auf Github:

$ git clone [email protected]:schacon/simplegit.git
Cloning into 'simplegit'...
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 Klonen im aktuellen Verzeichnis abgeschlossen ist, wird ein Verzeichnis simplegit erzeugen:

$ Cd simplegit / $ ls README Rakefile lib

Der Vorgang wird alle Datensätze des Projekts kopieren.

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

Standardmäßig wird Git den Namen der URL folgen Sie Elemente angezeigt, sofern Ihr lokales Projektverzeichnis zu erstellen. Die URL ist in der Regel das letzte Element Name / nach. Wenn Sie einen anderen Namen eingeben möchten, können Sie den Namen, den Sie nach dem Befehl möchten hinzufügen.


Grund Snapshot

Git hat die Aufgabe, zu erstellen und einen Schnappschuss Ihres Projekts und nach Schnappschüssen und vergleichen Sie speichern. In diesem Kapitel wird über einen Schnappschuss Ihres Projekts erstellen und den Befehl Einführung einreichen.

git add

git add Befehl, um die Datei in den Cache zu schreiben, wie wir die folgenden zwei Dateien hinzufügen:

$ touch README
$ touch hello.php
$ ls
README		hello.php
$ git status -s
?? README
?? hello.php
$ 

git status Befehl wird verwendet, um den aktuellen Status des Projekts zu sehen.

Als nächstes führen wir git Befehl fügen Sie Dateien hinzu:

$ git add README hello.php 

Jetzt führen wir git status, können Sie diese beiden Dokumente zu sehen sind hinzugefügt worden zu gehen.

$ git status -s
A  README
A  hello.php
$ 

Das neue Projekt, fügen Sie alle Dateien gemeinsam können wirgit add verwenden. Befehl , um alle Dateien im aktuellen Projekt hinzuzufügen.

Jetzt ändern wir die Readme-Datei:

$ vim README
<pre>
<p>在 README 添加以下内容:<b># w3big Git 测试</b>,然后保存退出。</p>
<p>再执行一下 git status:</p>
$ git status -s
AM README
A  hello.php

"AM" Status bedeutet, dass die Datei, nachdem wir sie in den Cache hinzufügen, gibt es Veränderungen. Nach dem Wechsel führen wir git add Befehl, um den Cache hinzuzufügen:

$ git add .
$ git status -s
A  README
A  hello.php

Wenn Sie Ihre Änderungen in der bevorstehenden Berichtsmomentaufnahme in der Zeit enthalten wollen, müssen wir git add auszuführen.

git status

git status Sie, um zu sehen, nachdem die letzte begehen, wenn es Änderungen gibt.

Ich zeigte diesen Befehl, wenn Parameter -s hinzugefügt, um eine kurze Ergebnis zu erhalten. Wenn Sie diesen Parameter nicht hinzufügen ausgegeben näher erläutert:

$ 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

git diff

Executive-git diff git status, um die Details der Ergebnisse der Ausführung zu sehen.

git diff Befehl und zeigt die Schreib-Cache, aber noch nicht geschrieben, um den Cache der Differenz Änderungen modifiziert wurde. git diff Es gibt zwei Hauptszenarien.

  • Nicht im Cache gespeichertenÄnderungen: git diff
  • Sehen Sie im Cache gespeichertenÄnderungen: git diff --cached
  • Ansicht gecached und uncached alleÄnderungen: git diff HEAD
  • Anzeigen Zusammenfassungen und nicht die gesamtediff: git diff --stat

Geben Sie Folgendes in hello.php Datei:

<?php
echo '本教程:www.w3big.com';
?>
$ 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 '本教程:www.w3big.com';
+?>

git Statusanzeige auf dem letzten Commit nach dem Update zu ändern oder Cache Änderungen Zeile für Zeile und git diff schreiben zeigen konkret, was diese Änderungen.

Als nächstes kommen wir von den nächsten git diff --cached Umsetzung der Ergebnisse zu sehen:

$ 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 @@
+# w3big 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 '本教程:www.w3big.com';
+?>

git commit

Verwenden Sie git add Befehl können Sie den Inhalt des Snapshot-Puffer zu schreiben möchten, und führen Sie git commit werden Inhalte in den Pufferlager hinzuzufügen.

Git Sie einreichen jeden aufgezeichneten Ihren Namen und E-Mail-Adresse, so dass der erste Schritt, den Sie benötigen einen Benutzernamen und E-Mail-Adresse zu konfigurieren.

$ git config --global user.name 'w3big'
$ git config --global user.email [email protected]

Weiter schreiben wir Caching und alle Änderungen an der hello.php einreichen. Im ersten Beispiel verwenden wir die Option -m die Befehlszeile zur Stellungnahme zu unterbreiten.

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

Nun, da haben wir Schnappschüsse aufgezeichnet. Wenn wir ausführen git status:

$ git status
# On branch master
nothing to commit (working directory clean)

Die obige Ausgabe zeigt, dass wir nach der letzten Vorlage, keine Änderungen zu machen, ist ein "Arbeitsverzeichnis sauber. Sauberes Arbeitsverzeichnis"

Wenn Sie nicht die Option -m gesetzt ist, versucht Git einen Editor zu öffnen für Sie in der vorgelegten Informationen zu füllen. Git, wenn Sie nicht die relevanten Informationen in seiner Konfiguration finden kann, wird die Standard-vim öffnen. Der Bildschirm wird wie folgt aussehen:

# Please enter the commit message for your changes. Lines starting
# with '#' 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

Wenn Sie git add Cache Prozess zu umständlich eingereicht denken, auch Git können Sie die Option -a verwenden, um diesen Schritt zu überspringen. Befehlsformat ist wie folgt:

git commit -a

Lassen Sie uns hello.php Datei wie folgt zu ändern:

<?php
echo '本教程:www.w3big.com';
echo '本教程:www.w3big.com';
?>

Dann führen Sie den folgenden Befehl ein:

git commit -am '修改 hello.php 文件'
[master 71ee2cb] 修改 hello.php 文件
 1 file changed, 1 insertion(+)

git reset HEAD

git reset HEAD-Befehl den zwischengespeicherten Inhalt zu entfernen.

Lassen Sie uns die Datei Readme-Datei zu ändern, wie folgt:

# w3big Git 测试
# 本教程 

hello.php Datei wie folgt geändert:

<?php
echo '本教程:www.w3big.com';
echo '本教程:www.w3big.com';
echo '本教程:www.w3big.com';
?>

Jetzt, nach zwei modifizierten Dateien in der Pufferzone vorgelegt werden, wollen wir nun einen der Cache zu löschen, wie folgt:

$ 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

Nun führen Sie git commit, werden die Änderungen nur Readme-Datei eingereicht werden, aber hello.php nicht.

$ git commit -m '修改'
[master f50cfda] 修改
 1 file changed, 1 insertion(+)
$ git status -s
 M hello.php

Sie können die Änderungen hello.php Datei und die Vorlage zu sehen.

Dann können wir den folgenden Befehl verwenden, um hello.php einreichen zu ändern:

$ git commit -am '修改 hello.php 文件'
[master 760f74d] 修改 hello.php 文件
 1 file changed, 1 insertion(+)
$ git status
On branch master
nothing to commit, working directory clean

Kurz gesagt, tun HEAD git reset vor git abzubrechen hinzufügen, hinzufügen, aber nicht wollen, begehen in der Snapshot-Cache in der nächsten aufzunehmen.

git rm

git rm Eintrag wird aus dem Cache entfernt werden. Dieser git reset HEAD heben sich die Cache-Einträge unterschiedlich sind. "Abbrechen Cache", was bedeutet, dass die Erholung Änderungen an unseren bisherigen Weg Cache machen.

In derStandardeinstellung git rm - Datei wird aus den Cache - Dateien und der Festplatte (das Arbeitsverzeichnis) gelöscht werden.

Wenn Sie die Datei im Arbeitsverzeichnis behalten möchten, können Siegit rm --cached verwenden:

Wie wir entfernen hello.php Dateien:

$ git rm hello.php 
rm 'hello.php'
$ ls
README

Nicht gelöscht Dateien aus dem Arbeitsbereich:

$ git rm --cached README 
rm 'README'
$ ls
README

git mv

git mv Befehl all die Dinge zu tun , dierm --cached Operation Befehl git,benennen Sie die Datei auf der Festplatte, und führen Sie dann git hinzufügen , um neue Dateien in den Cache hinzufügen.

README wir zuerst entfernen fügen Sie einfach zurück:

$ git add README 

Dann seine gleichnamige:

$ git mv README  README.md
$ ls
README.md