Latest web development tutorials

Gitの基本操作

Gitリポジトリの仕事は、作成し、プロジェクトのとスナップショットの後にスナップショットを保存して比較することです。 この章では、プロジェクトのスナップショットコマンドの導入を作成し、提出についてになります。


プロジェクトを作成するコマンドと連絡を取る

Gitの初期化

git initでのGitリポジトリに新しいディレクトリを作成します。 あなたは、完全にローカライズされ、いつでも任意のディレクトリを行うことができます。

エグゼクティブのgit initはディレクトリに、あなたはGitリポジトリを作成することができます。 例えば、我々はw3bigアイテムを作成しました:

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

今すぐあなたのプロジェクトで生成された.gitサブディレクトリを見ることができます。 これはあなたのGitのリポジトリで、プロジェクトのスナップショットに関連するすべてのデータがここに格納されます。

ls -a
.	..	.git

gitのクローン

彼らはアイテムを表示、またはそれを変更することができるように、ローカルコピーにGitのリポジトリをgitのクローン使用します。

あなたが他の人と協力プロジェクトを必要とする、またはプロジェクトをコピーする場合は、コードを見て、あなたはプロジェクトのクローンを作成することができます。 実行します。

 git clone [url]

項目[URL]あなたがそれをコピーします。

例えば、我々は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.

クローニングは、現在のディレクトリに完了すると、ディレクトリsimplegitが生成されます。

$カドミウムsimplegit / $ lsのREADME Rakefileのlib

操作は、プロジェクトのすべてのレコードをコピーします。

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

デフォルトでは、Gitはあなたがあなたのローカルプロジェクトディレクトリを作成するために、指定されたアイテムを提供されたURLの名前に従います。 URLは通常、/後の最後の項目名です。 あなたが別の名前にしたい場合は、コマンドの後に名前を追加することができます。


基本的なスナップショット

Gitリポジトリの仕事は、作成し、プロジェクトのとスナップショットの後にスナップショットを保存して比較することです。 この章では、プロジェクトのスナップショットの作成に関することやコマンドの導入を提出します。

Gitのアドオン

gitの私たちは、次の2つのファイルを追加すると、キャッシュにファイルを追加するには、コマンドを追加します。

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

git statusコマンドは、プロジェクトの現在の状態を表示するために使用されます。

次に、ファイルを追加するコマンドを追加gitのコマンドを実行します。

$ git add README hello.php 

今、私たちはgitの状態を実行するには、これら二つの文書が行くために追加された見ることができます。

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

新しいプロジェクトは、我々はGitのアドオンを使用することができます。コマンドを現在のプロジェクト内のすべてのファイルを追加するには、共通してすべてのファイルを追加します。

今、私たちは、READMEファイルを変更します。

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

「AM」の状態は、我々はキャッシュに追加するファイルの後に変更があることを意味しています。 変更後に我々はgitのは、キャッシュに追加するコマンドを追加実行します。

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

あなたが時間内に今後のレポートスナップショットに含まれる変更をしたいとき、私たちはGitのアドオンを実行する必要があります。

gitのステータス

変更がある場合、最後のコミット後にあなたを参照するにはgitの状態。

簡潔な結果を得るために、パラメータ-s追加されたとき、私は、このコマンドを実証しました。 このパラメータを追加しない場合は、詳細な出力になります。

$ 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を

エグゼクティブのgitのdiff gitのステータスは、実行結果の詳細を確認してください。

gitのdiffコマンドとライト・キャッシュが変更されたが、まだ差変化のキャッシュに書き込まれていないされています表示されます。 gitのdiffを二つの主要なシナリオがあります。

  • gitのdiffを:変更をキャッシュされていません
  • キャッシュされた変更を見る:gitのdiffを--cached
  • ビューのキャッシュされたとキャッシュされていないすべての変更:Gitの差分HEAD
  • 要約を表示全体ではなく、差分:gitのdiffを--stat

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

あなたの最後の更新後に変更したり、キャッシュを書くためにコミット時にgitの状態表示具体的にどのようなそれらの変更を示すラインとgitの差分によって行を変更します。

次に、結果の次のgitのdiffを--cached実装を見に来て:

$ 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のコミット

バッファ倉庫にコンテンツを追加しますコミットgitのスナップショットバッファの内容を書きたいコマンドを追加はgitを使用し、実行します。

あなたが記録された各お名前とメールアドレスを送信するGitは、そのように最初のステップは、ユーザー名と電子メールアドレスを設定する必要があります。

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

次に、キャッシュを書き、hello.phpに対するすべての変更を提出します。 最初の例では、意見を提出するためのコマンドラインを提供するために、-mオプションを使用します。

$ 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
 

今、私たちは、スナップショットを記録していること。 我々はGitのステータスを実行する場合:

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

上記の出力であり、我々は最後の提出後、任意の変更をしなかったことを示し、「作業ディレクトリがクリーン:クリーンな作業ディレクトリ "

-mオプションを設定しない場合、Gitはあなたが提出された情報を記入するためのエディタを開こうとします。 あなたは、その構成の関連情報を見つけることができない場合Gitは、デフォルトではVimを開きます。 画面は次のようになります。

# 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

あなたはgitのはあまりにも面倒提出キャッシュ処理を追加すると考えられる場合は、Gitはまた、このステップをスキップする-aオプションを使用することができます。 次のようにコマンド形式は次のとおりです。

git commit -a

のは、次のようhello.phpファイルを変更してみましょう:

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

次に、以下のコマンドを実行します。

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

gitのリセットHEAD

gitがキャッシュされたコンテンツを削除するには、HEADコマンドをリセットします。

次のようにのは、ファイルのREADMEファイルを変更してみましょう:

# w3big Git 测试
# 本教程 

次のようにhello.phpファイルは改正しました:

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

2変更されたファイルをバッファゾーンに提出された後、次のように今、私たちは今、キャッシュの1をキャンセルしたいです:

$ 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

今、あなたはgitのは、変更のみが提出されるREADMEファイルをコミット実行されますが、hello.phpではありません。

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

あなたは、変更hello.phpファイルを参照し、提出することができます。

その後、我々は提出hello.php変更するには、次のコマンドを使用することができます。

$ 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

要するに、追加するために追加gitの前にキャンセルするgitのリセットHEADを行うが、次のコミットにスナップショットキャッシュに含めません。

gitのは、rm

gitのRMエントリがキャッシュから削除されます。 これはgitのリセットHEADは、キャッシュエントリが異なるキャンセル。 回復が私たちの前のウェイ・キャッシュに変更を加えることを意味し、「キャッシュをキャンセル」。

デフォルトでは、gitのは、rmファイルがキャッシュファイルとハードドライブ(作業ディレクトリ)から削除されます。

あなたが作業ディレクトリにファイルを保存したい場合は、gitのは、rm --cachedを使用することができます。

私たちは、ファイルをhello.php削除するように:

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

ワークスペースからファイルを削除しません。

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

GitのMV

、gitのRMは運転指令を--cachedすべてのことを行うディスク上のファイルの名前を変更し、gitのは、キャッシュに新しいファイルを追加するために追加し実行するためにmvコマンドをgitの。

README我々が最初に戻ったばかりの追加を削除します。

$ git add README 

そして、その同じ名:

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