Latest web development tutorials

Git Opérations de base

Le travail de Git est de créer et enregistrer un instantané de votre projet et après des instantanés et de comparer. Ce chapitre sera sur la création et l'envoi de votre commande instantanés de projet mise en place.


Entrez en contact avec une commande pour créer un projet

git initialisation

Créez un nouveau répertoire dans le dépôt Git avec git initialisation. Vous pouvez, faire un répertoire à tout moment, complètement localisées.

git exécutif initialisation dans le répertoire, vous pouvez créer un Git référentiels. Par exemple, nous avons créé des articles w3big:

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

Maintenant, vous pouvez voir le sous-répertoire .git généré dans votre projet. Ceci est votre dépôt Git, et toutes les données relatives à un instantané de votre projet sont stockés ici.

ls -a
.	..	.git

clone git

Utilisez git cloner un dépôt Git à une copie locale, de sorte qu'ils puissent voir l'article, ou de le modifier.

Si vous avez besoin d'un projet de coopération avec d'autres, ou si vous voulez copier un projet, regardez le code, vous pouvez cloner le projet. Exécuter:

 git clone [url]

Point [url] que vous souhaitez copier.

Par exemple, nous avons cloné le projet sur 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.

Après le clonage est terminé dans le répertoire courant va générer un simplegit de répertoire:

$ Cd simplegit / $ ls README Rakefile lib

L'opération permet de copier tous les dossiers du projet.

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

Par défaut, Git suivra le nom de l'URL que vous avez fourni des articles pour créer votre répertoire local du projet indiqué. L'URL est généralement le dernier nom de l'élément / après. Si vous voulez un nom différent, vous pouvez ajouter le nom que vous voulez après la commande.


Snapshot Basic

Le travail de Git est de créer et enregistrer un instantané de votre projet et après des instantanés et de comparer. Ce chapitre sera sur la création d'un instantané de votre projet et de soumettre la commande mise en place.

git add

git add commande pour ajouter le fichier dans le cache, que l'on ajoute les deux fichiers suivants:

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

commande git status est utilisé pour afficher l'état actuel du projet.

Ensuite, nous exécutons git add commande pour ajouter des fichiers:

$ git add README hello.php 

Maintenant, nous exécutons git status, vous pouvez voir ces deux documents ont été ajoutés à aller.

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

Le nouveau projet, ajouter tous les fichiers en commun, nous pouvons utilisergit add. Commande pour ajouter tous les fichiers du projet en cours.

Maintenant, nous modifions le fichier README:

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

signifie "AM" statut que le fichier après que nous l'ajouter à la cache il y a des changements. Après le changement que nous exécutons git add commande pour l'ajouter à la mémoire cache:

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

Lorsque vous voulez que vos modifications contenues dans le prochain rapport instantané dans le temps, nous avons besoin d'exécuter git add.

git status

git status de vous voir après le dernier commit s'il y a des changements.

Je démontrais cette commande lorsqu'il est ajouté -s paramètre pour obtenir un bref résultat. Si vous ne pas ajouter ce paramètre sera détaillé sortie:

$ 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

Executive git status git diff pour voir les détails des résultats de l'exécution.

git commande diff et affiche le cache d'écriture a été modifiée mais pas encore écrit dans le cache des changements de différence. git diff Il existe deux scénarios principaux.

  • changements non mis en cache:diff git
  • Voir lesmodifications mises en cache:git diff --cached
  • Voir le cache et non mis en cache toutes lesmodifications: git diff HEAD
  • Afficher les résumés plutôt que l'ensemble dudiff: git diff --stat

Entrez le suivant dans le fichier 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';
+?>

affichage de l'état git sur votre dernière engage à changer après la mise à jour ou écrire des modifications de cache ligne par ligne et git diff montrent précisément ce que ces changements.

Ensuite, nous arrivons à voir le prochain git diff application --cached des résultats de:

$ 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

Utilisez git add commande que vous voulez écrire le contenu de la mémoire tampon de l'instantané, et exécuter git commit va ajouter du contenu à l'entrepôt de la mémoire tampon.

Git vous soumettez chaque votre nom et votre adresse e-mail enregistrée, de sorte que la première étape, vous devez configurer un nom d'utilisateur et adresse e-mail.

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

Ensuite, nous écrivons la mise en cache, et soumettre toutes les modifications apportées à la hello.php. Dans le premier exemple, nous utilisons l'option -m pour fournir la ligne de commande pour présenter des observations.

$ 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
 

Maintenant que nous avons enregistré des instantanés. Si nous exécutons git status:

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

La sortie ci-dessus montre que nous après la dernière présentation, ne pas faire des modifications, est un "répertoire de travail propre. Répertoire de travail propre"

Si vous ne définissez pas l'option -m, Git tente d'ouvrir un éditeur pour vous de remplir les informations soumises. Git si vous ne pouvez pas trouver les informations pertinentes dans sa configuration, la valeur par défaut ouvrira vim. L'écran ressemblera à ceci:

# 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

Si vous pensez que git add soumis processus de cache trop lourd, Git vous permet également d'utiliser l'option -a pour sauter cette étape. Format de la commande est la suivante:

git commit -a

Modifions fichier hello.php comme suit:

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

Ensuite, exécutez la commande suivante:

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

git reset HEAD

git reset commande HEAD pour supprimer le contenu mis en cache.

Changeons le fichier README de fichier, comme suit:

# w3big Git 测试
# 本教程 

fichier hello.php modifié comme suit:

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

Maintenant, après deux fichiers modifiés sont soumis à la zone tampon, nous voulons maintenant annuler l'un des cache, comme suit:

$ 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

Maintenant, vous exécutez git commit fichier README, les changements ne seront soumis, mais hello.php est pas.

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

Vous pouvez voir le dossier des changements et pour la soumission.

Ensuite, nous pouvons utiliser la commande suivante pour modifier hello.php soumettre:

$ 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

En bref, faire git reset HEAD annuler avant git ajouter à ajouter, mais ne veulent pas inclure dans le cache de l'instantané dans le prochain commit.

git rm

entrée rm git sera supprimée du cache. Cette réinitialisation HEAD git annuler les entrées du cache sont différentes. "Annuler Cache", ce qui signifie que la reprise va faire des changements à notre cache de façon précédente.

Pardéfaut, le fichier rm git sera supprimé à partir des fichiers de cache et votre disque dur (le répertoire de travail).

Si vous voulez garder le fichier dans le répertoire de travail, vous pouvez utilisergit rm --cached:

Comme nous enlevons hello.php fichiers:

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

Ne pas supprimer les fichiers de l'espace de travail:

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

git mv

git commande mv pour faire toutes les choses quegit rm commande d'opération --cached,renommez le fichier sur le disque, puis exécutez git add pour ajouter de nouveaux fichiers dans le cache.

README nous d'abord supprimer simplement Rajouter:

$ git add README 

Puis son même nom:

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