Git基本操作1-修正コミット(add,commit)


前回は倉庫の作成過程を説明しましたが、実はgit管理に正式に入っています。今日は日常の基本操作を正式に説明します。


エピソード:プログラマーとして、最も恐れているのはカスタマーサービス、テスト、制品の向こうから私たちを探しに来ました:andoridクライアントの要求は異常で、iosの向こうはフラッシュバックして、誰も自分で作った制品がバグを出したくありません.
もちろん一部の人は思っています:私は行って、ついにバグに来て、ついにまた机会を借りてテストの妹とチャットすることができて、もし会社にプログラマーが先生を励まして、私は毎日自分にバグを提起することを望んでいます.惜しい
励ましの先生はいませんね.話が遠くなって、実はバグが正常で、書くプログラムが完璧であることを保証する人はいません.バグがなくても、私たちは自分のコードを絶えず最適化しなければなりません.これは必ずコードなどを修正しなければなりません.
gitは、それ自体が管理の修正です.次に、gitがどのように修正を管理しているかを実例に直接説明します.
1.ローカルでテキストaddmeを個別に作成しました.txt、中に1行の内容が追加されました
zxdeMacBook-Pro:git_project zs$ cd work
zxdeMacBook-Pro:work zs$ ls -a
.		..		.git		addme.txt

zxdeMacBook-Pro:work zs$ cat addme.txt
GIT records your name and email address

プロジェクトの現在のステータスを表示するために****git statusコマンドを使用するgit statusを実行します.
zxdeMacBook-Pro:work zs$ git status
On branch master
Initial commit
Untracked files:
  (use "git add ..." to include in what will be committed)
	addme.txt
nothing added to commit but untracked files present (use "git add" to track)

説明:変更後、ステータスを表示すると、Gitがaddmeをプロンプトすることがわかります.txtは「Untracked files」であり、「git add...」の使用を求めるメッセージが表示されます.のコマンドにより、コミット対象リストにファイルが含まれます.ヒントに従ってgit add addme.txtコマンドを使用し、git statusを使用して表示します.
zxdeMacBook-Pro:work zs$ git add addme.txt
zxdeMacBook-Pro:work zs$ git status
On branch master
Initial commit
Changes to be committed:
  (use "git rm --cached ..." to unstage)
	new file:   addme.txt

ファイルtxtの状態は"Changes to be committed"つまりaddmeとなる.txtは、一時保存領域でスナップショットを生成する(
以前git addは修正を一時保存領域に提出すると述べていましたが)、提出されるのを待っています.Gitが提示したように、「git rm--cached addme.txt」コマンドにより、ファイルの状態を未保存状態に戻すことができます.すなわち、「Untracked files」ファイルの状態に戻ります.今、addme.txtはgitディレクトリにコミットできますが、しばらくコミットしません.考え続けてtxtは内容を変更し、「git status」で表示します.
zxdeMacBook-Pro:work zs$ git status
On branch master
Initial commit
Changes to be committed:
  (use "git rm --cached ..." to unstage)
	new file:   addme.txt
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)
	modified:   addme.txt

以前の「Changes to be committed」状態を除いて、ファイルが変更されたことを示す「Changes not staged for commit」状態がもう1つ増えていることがわかりますが、まだ一時保存領域に入れられていない、つまりスナップショットが生成されていません.現在commit操作が行われている場合、変更前のファイルスナップショットをgitディレクトリにコミットするだけで、最近の変更はコミットされません.一時保存領域のファイル(つまり、ファイルステータスが「Changes to be committed」)のみがコミットされることを覚えておいてください.ヒントとして、「git add addme.txt」コマンドで変更ファイルを一時保存領域に更新します.変更を取り消すには、「git checkout--addme.txt」コマンドを使用します.ではgit checkout--addmeを実行します.txt回復するかどうか見てみましょう
zxdeMacBook-Pro:work zs$ git checkout -- addme.txt
zxdeMacBook-Pro:work zs$ cat addme.txt
GIT records your name and email address

経験証は確かに修正を回復した.
 
上の例の解析により,Gitはcommit操作を行わない前に,Untracked files,Changes not staged for commit,Changes to be committedの3つの状態が存在し,各状態間で自由に相互変換できる.この3つの状態がそれぞれ異なることを知ることで、Gitを効率的に使用してプロジェクトを管理することができます.
上にcommitの前の3つの状態の分析を挿入して、みんながこれらを深く理解して、出会ったときに困惑しないようにしました.
2.git addコマンドの詳細については、上記の手順で説明しました.
3.次に、git commit-m「説明の発行」を使用してコミットを続行します.
この例ではgit commit-m「addme.txt add」を引き続き実行します.
zxdeMacBook-Pro:work zs$ git commit -m "addme.txt add"
[master (root-commit) e6e0647] addle.txt add
 1 file changed, 2 insertions(+)
 create mode 100644 addme.txt
zxdeMacBook-Pro:work zs$ git status
On branch master
nothing to commit, working directory clean
zxdeMacBook-Pro:work zs$ 

4.git diff HEAD--addme.txt、ワークスペースとバージョンライブラリファイルの違いを表示します
zxdeMacBook-Pro:work zs$ git diff HEAD -- addme.txt
diff --git a/addme.txt b/addme.txt
index b92c635..2d49a86 100644
--- a/addme.txt
+++ b/addme.txt
@@ -1,2 +1,3 @@
 GIT records your name and email address
+git add


+git addはワークスペース未addから一時保存領域への変更です
补充:実际の仕事の中で私达は1つのファイルが何度も修正することに出会って、同时に複数のファイルを修正します.この場合,addを一時保存領域に一度修正することはできず,commitから分岐に至るまで,提唱しない.1つのファイルの修正に対して最終的にaddを変更し、commitで、複数のファイルでgit addを実行することができます.(addの後ろの記号点に注意)、git commit-m」にあります.
概要:git add.,git commit -m .両者はgit commit-amの「修正説明」についても煩わしい
最後のまとめ:gitがファイルの変更をどのように追跡するかを理解するときは、2点を覚えておくだけです.変更はaddから一時保存領域にのみcommitに追加され、ブランチにコミットされます.今日は主にgit add、git commit、git status、git diffについて話しましたが、自分で実例を探してみてください.