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