Latest web development tutorials

Operazioni di base Git

Il lavoro di Git è quello di creare e salvare una fotografia istantanea del vostro progetto e dopo istantanee e confrontare. Questo capitolo sarà sulla creazione e presentando il comando istantanee progetto introduzione.


Entra in contatto con un comando per creare un progetto

git init

Creare una nuova directory nel repository Git con git init. È possibile, fare qualsiasi directory in qualsiasi momento, completamente localizzato.

Esecutivo git init nella directory, è possibile creare un repository Git. Ad esempio, abbiamo creato articoli w3big:

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

Ora è possibile vedere la sottodirectory .git generato nel progetto. Questo è il repository Git, e tutti i dati relativi ad una fotografia istantanea del vostro progetto sono memorizzati qui.

ls -a
.	..	.git

clone git

Usare git clone di un repository Git di una copia locale, in modo che possano visualizzare l'elemento, o modificarlo.

Se avete bisogno di un progetto di cooperazione con gli altri, o se si vuole copiare un progetto, guardare il codice, è possibile clonare il progetto. Run:

 git clone [url]

Elemento [url] che si desidera copiare.

Ad esempio, abbiamo clonato il progetto su 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.

Dopo la clonazione è completata nella directory corrente genererà un simplegit directory:

$ Cd simplegit / $ ls README Rakefile lib

L'operazione copierà tutti i record del progetto.

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

Per impostazione predefinita, Git seguirà il nome dell'URL che hai fornito indicato gli elementi per la creazione di directory del progetto locale. L'URL di solito è l'ultimo nome della voce / dopo. Se si desidera un nome diverso, è possibile aggiungere il nome che si desidera dopo il comando.


Snapshot di base

Il lavoro di Git è quello di creare e salvare una fotografia istantanea del vostro progetto e dopo istantanee e confrontare. Questo capitolo sarà sulla creazione di una fotografia istantanea del vostro progetto e presentare l'introduzione di comando.

git add

git add comando per aggiungere il file alla cache, come si aggiungono i seguenti due file:

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

il comando git status viene utilizzato per visualizzare lo stato attuale del progetto.

Successivo eseguiamo git aggiungere comando per aggiungere i file:

$ git add README hello.php 

Ora eseguiamo git status, è possibile vedere questi due documenti sono stati aggiunti ad andare.

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

Il nuovo progetto, aggiungere tutti i file in comune, possiamo usaregit add. Comando per aggiungere tutti i file nel progetto corrente.

Ora modifichiamo il file README:

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

stato "AM" significa che il file dopo che inserirlo nella cache ci sono cambiamenti. Dopo il cambio eseguiamo git add comando per aggiungerlo alla cache:

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

Quando si desidera che le modifiche contenute nella relazione prossima snapshot nel tempo, abbiamo bisogno di eseguire git add.

git status

git status di vederti dopo l'ultimo commit se ci sono cambiamenti.

Ho dimostrato questo comando quando aggiunto -s parametro per ottenere una breve risultato. Se non si aggiunge questo parametro sarà dettagliato in uscita:

$ 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

diff git

Esecutivo stato git diff git per vedere i dettagli dei risultati di esecuzione.

git comando diff e visualizza la cache di scrittura è stato modificato, ma non ancora scritta per la cache dei cambiamenti differenza. git diff Ci sono due scenari principali.

  • Le modifiche non memorizzate nella cache:diff git
  • Visualizzare lemodifiche nella cache:git diff --cached
  • Vedi nella cache e non memorizzati nella cache tutti icambiamenti: git diff TESTA
  • Mostra riassunti, piuttosto che l'interodiff: git diff --stat

Immettere la seguente nel file di hello.php:

<?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';
+?>

visualizzazione dello stato git sul vostro ultimo impegnano a cambiare dopo l'aggiornamento o scrivere linea di modifiche di cache per riga e git diff mostrano in particolare quello che tali modifiche.

Poi si arriva a vedere la prossima git diff --cached attuazione dei risultati di:

$ 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

Utilizzare git add comando che si desidera scrivere il contenuto del buffer snapshot, ed eseguire git commit aggiungerà contenuti al magazzino buffer.

GIT si invia ogni vostro nome e indirizzo e-mail registrato, in modo che il primo passo è necessario configurare un nome utente e indirizzo e-mail.

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

Successivo scriviamo caching e di fornire tutte le modifiche al hello.php. Nel primo esempio, usiamo l'opzione -m per fornire la linea di comando di presentare osservazioni.

$ 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
 

Ora che abbiamo registrato istantanee. Se eseguiamo git status:

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

L'output sopra mostra che dopo l'ultima presentazione, non ha fatto alcuna modifica, è una "directory di lavoro pulito:. Directory di lavoro pulito"

Se non si imposta l'opzione -m, Git tenta di aprire un editor per di compilare le informazioni presentate. GIT se non è possibile trovare le informazioni pertinenti nella sua configurazione, il default si aprirà vim. La schermata sarà simile a questa:

# 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

Se si pensa che git add presentato processo di cache troppo ingombrante, Git permette anche di utilizzare l'opzione -a per saltare questo passaggio. formato del comando è il seguente:

git commit -a

Andiamo a modificare il file hello.php come la seguente:

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

Quindi eseguire il seguente comando:

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

git TESTA ripristino

git ripristinare comando head per rimuovere il contenuto memorizzato nella cache.

Cambiamo il file README di file, come segue:

# w3big Git 测试
# 本教程 

file di hello.php modificato come segue:

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

Ora, dopo due file modificati sono sottoposti alla zona cuscinetto, ora vogliamo annullare una delle cache, come segue:

$ 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

Ora si esegue git commit file README, verranno presentate solo le modifiche, ma hello.php non lo è.

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

È possibile visualizzare il file i cambiamenti hello.php e per la presentazione.

Poi possiamo utilizzare il seguente comando per modificare hello.php presentare:

$ 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

In breve, fare git ripristino HEAD di cancellare prima di git add per aggiungere, ma non vogliono includere nella cache snapshot nel prossimo commit.

git rm

ingresso rm git sarà rimosso dalla cache. Questo reset HEAD git annullare le voci di cache sono diversi. "Annulla Cache", il che significa che la ripresa sarà apportare modifiche al nostro nascondiglio modo precedente.

Perimpostazione predefinita, il file rm git sarà cancellato dai file di cache e il disco rigido (la directory di lavoro).

Se si desidera mantenere il file nella directory di lavoro, è possibile utilizzaregit rm --cached:

Come togliamo hello.php file:

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

Non eliminare i file dal lavoro:

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

git mv

git comando mv per fare tutte le cose chegit rm comando di funzionamento --cached,rinominare il file su disco, e quindi eseguire git add per aggiungere nuovi file nella cache.

README che prima rimuovere solo aggiungere di nuovo:

$ git add README 

Poi il suo stesso nome:

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