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 libL'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