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 libDer 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