Gitは便利そうだけど、面倒くさそう…。最低限、これだけ理解していればGitを使いはじめるのに問題ないはず

Gitは便利そうだけど、面倒くさそう…。最低限、これだけ理解していればGitを使いはじめるのに問題ないはず

とりあえず分かった事をまとめてみた。

【前提知識】
1, WebサーバみたいにGitサーバが必要。そこでバージョン管理する。
選択肢A Githubなど既存のサービスを使う(公開前提)
選択肢B レンタルサーバで自分でgitサーバを運営する。
選択肢C ローカルにgitサーバをインストールして、自分専用に使う

2, gitが管理する単位をレポジトリと言う。開発環境のプロジェクトと同じイメージ(.gitフォルダで管理している)

【レポジトリ】
3, 一番最初はgitサーバからクローン(ダウンロード)してくる。
git clone レポジトリのURL
4, もしくは自分で、レポジトリ生成する。
管理したいディレクトにcdで移動してから、git init でレポジトリが生成される

【通常の操作】
5, ローカルフォルダにあるファイルを修正する(普通にエディタで修正。ファイル追加・削除もOK)
※gitの管理対象のディレクトリを作業ディレクトリと言う。

6, git add -A で、全てのファイル・フォルダをバージョン管理対象にする(この作業をステージングという)
※ 管理対象は、.git/index にリスト化される。このファイル自体はバイナリファイル。

7, コミット(その状態を保存=スラップショット)を行う。コメント(説明)は必須
git commit -m “修正の説明”

8, gitサーバにアップロード(git push)する。←ローカルgitサーバなら不要。

1人で使うなら、5~8を繰り返してフォルダ・ファイルの追加・修正・削除を積み重ねていくだけ。

【バージョン管理】
コミット過去履歴をみたい時にはgit log –oneline で、コミットIDとコメントが表示される。

0b59cba 4番目のコミット・コメント
4ee34f2 3番目のコミット・コメント
76d111b 2番目のコミット・コメント
f747045 最初のコミット・コメント

差分を見たい時には、git diff コミットIDその1 コミットIDその2で表示される
$ git diff f747045 f95f023
diff –git a/sample.txt b/sample.txt
index ce01362..4b5fa63 100644
— a/sample.txt
+++ b/sample.txt
@@ -1 +1 @@
-hello
+hello, world
←worldが追加された事が分かる。

過去の状態に戻したい時にはgit reset コミットIDで、全ファイルがそのスナップショットの状態になる(現在の状態とは無関係に上書きされる)
特定のファイルを過去の状態に戻したい時にはgit checkout ハッシュ値 ファイル名で、好きなバージョンに復活させる。
ゲームのロードと同じ!!
一度コミットしてしまえば、いつでも、その状態に戻せる(現在の作業ディレクトリは、上書きされてしまうので注意!)

とりあえず、これだけ理解していればGitを使いはじめるのに問題ないはず…。

【追記】
git pullでサーバから最新版を取得しようとしたら、以下のようなエラーが出た…。

error: Your local changes to ‘ローカルで変更したファイル’ would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.

要するに、commit後に変更されているけど、何もしないと最新版で上書きされて、手動変更が上書きされちゃうから中止しました!というエラーだった。

普通にコミットするか、要らない変更なら以下のコマンドで破棄する。
git reset –hard HEAD

これでgit pullで上書き出来た~。