Git のクイック スタート ...login
Git のクイック スタート チュートリアル
著者:php.cn  更新時間:2022-04-11 13:44:34

Gitの基本操作


Git の仕事は、プロジェクトのスナップショットを作成して保存し、後続のスナップショットと比較することです。この章では、プロジェクトのスナップショットを作成および送信するためのコマンドを紹介します。


プロジェクト コマンドを取得および作成する

git init

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

ディレクトリで git init を実行して Git リポジトリを作成します。たとえば、php プロジェクトを作成するとします。

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

これで、プロジェクト内に .git サブディレクトリが生成されたことがわかります。 これは Git リポジトリで、プロジェクトに関するすべてのスナップショット データが保存されます。

ls -a
.	..	.git

git clone

git clone を使用して Git リポジトリをローカルにコピーし、プロジェクトを表示したり変更を加えたりできるようにします。

他のユーザーとプロジェクトで共同作業する必要がある場合、またはコードを確認するためにプロジェクトのコピーを作成したい場合は、そのプロジェクトのクローンを作成できます。 コピーしたいアイテムに対してコマンド

 git clone [url]

[url] を実行するだけです。

たとえば、Github でプロジェクトのクローンを作成した場合:

$ git clone git@github.com: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 ディレクトリが生成されます:

$ cd 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 add

git add コマンドは、ファイルをキャッシュに追加できます。たとえば、次の 2 つのファイルを追加します。

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

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

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

$ git add README hello.php

ここで git status を再度実行すると、これら 2 つのファイルが追加されたことがわかります。

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

新しいプロジェクトでは、すべてのファイルを追加するのが一般的です。 git add . コマンドを使用して、現在のプロジェクトのすべてのファイルを追加できます。

次に、README ファイルを変更します:

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

「AM」ステータスは、このファイルがキャッシュに追加された後に変更されたことを意味します。変更を加えた後、 git add コマンドを実行してキャッシュに追加します。

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

送信するスナップショットに変更を含めたい場合は、 git add を実行する必要があります。

git status

git status を使用して、最後のコミット以降に変更があったかどうかを確認します。

このコマンドをデモンストレーションするときに、簡単な結果出力を取得するために -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 status の実行結果の詳細情報を表示します。

git diff コマンドは、キャッシュに書き込まれた変更と、変更されたがまだキャッシュに書き込まれていない変更の違いを表示します。 git diff には 2 つの主なアプリケーション シナリオがあります。

  • まだキャッシュされていない変更: git diff

  • キャッシュされた変更を表示: git diff --cached

  • キャッシュされた変更とキャッシュされていない変更をすべて表示: git diff HEAD

  • を表示diff 全体の代わりに概要: git diff --stat

hello.php ファイルに次のように入力します:

<?php
echo 'php中文网:www.php.cn';
?>
$ 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 'php中文网:www.php.cn';
+?>

git status 最後​​のコミット更新以降の変更を表示するか、変更をキャッシュに書き込み、git diff を表示します。具体的には行ごとに変更されます。

次に 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 @@
+# php 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 'php中文网:www.php.cn';
+?>

git commit

git add コマンドを使用して、必要なスナップショットの内容をキャッシュ領域に書き込みます。 git commit を実行して、キャッシュ領域の内容をウェアハウスに追加します。

Git は、送信するたびにあなたの名前とメール アドレスを記録するため、最初のステップはユーザー名とメール アドレスを構成することです。

$ git config --global user.name 'php'
$ git config --global user.email test@php.cn

次に、キャッシュに書き込み、すべての変更を 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 status:

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

を実行すると、上記の出力は、最新の送信以降何も変更が加えられていないことを示しており、「作業ディレクトリ clean: clean working directory」となっています。

-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 add コミット キャッシュのプロセスが面倒だと感じる場合は、Git では -a オプションを使用してこのステップをスキップすることもできます。コマンドの形式は次のとおりです:

git commit -a

まず、hello.php ファイルを次の内容に変更します:

<?php
echo 'php中文网:www.php.cn';
echo 'php中文网:www.php.cn';
?>

次に、次のコマンドを実行します:

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

git replace HEAD

git replace HEAD コマンドは、キャッシュされた内容をキャンセルするために使用されます。コンテンツ。

最初に README ファイルを変更します。内容は次のとおりです:

# php Git 测试
# php中文网

hello.php ファイルは次のように変更されます:

<?php
echo 'php中文网:www.php.cn';
echo 'php中文网:www.php.cn';
echo 'php中文网:www.php.cn';
?>

両方のファイルが変更され、キャッシュ領域に送信されたので、次に、操作は次のとおりです:

$ 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 commit を実行すると、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 replace HEAD を実行して、以前 git add によって追加されたが、次のコミットスナップショット。

git rm

git rm はキャッシュからエントリを削除します。これは、エントリのキャッシュを解除する git replace HEAD とは異なります。 「キャッシュ解除」とは、キャッシュ領域を変更前の状態に戻すことを意味します。


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

ファイルを作業ディレクトリに保持したい場合は、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 mv コマンドが行うことは、git rm --cached コマンドの操作、ディスク上のファイルの名前変更、そして git add を実行して新しいファイルをキャッシュに追加することだけです。

まず、先ほど削除した README を再度追加しましょう:

$ git add README

それから名前を変更します:

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

PHP中国語ウェブサイト