Gitの基本的な使い方
2023/03/31
こんにちは!今週のコラムを担当する山中です。
今週のコラムは
Gitの基本的な使い方
をテーマにお話しさせていただきます。
〇バージョン管理とは?
あるファイルに変更を加えた時、念のため元の状態も残しておきたいということは良くあると思います。
その場合、ファイル名に日付を付けて保管していないでしょうか。
しかし、これだと新しいバージョンを保存するたびにファイル数が増えて管理の手間がかかるうえ、
バージョンごとにどのような更新を行ったかが分からなくなるなどのデメリットがあります。
1人で編集する資料であれば、これだとしてもそこまで問題にはなりませんが
100人で数年かけて開発するソフトウェア開発の場面ではどうでしょう。
編集が複数人により同時並行で行われると、それぞれのファイルの最新状態がどれか分からなくなったり、
同一ファイルに対する変更が競合したりするなどの問題が生じやすくなります。
Gitを始めとするバージョン管理システムを使うと、こういった問題を解決できます。
バージョン管理システムを使う主なメリットは以下の通りです。
・多数のファイルのバージョンをかしこくバックアップできる
・ファイルを任意の時点の状態まで簡単に戻せる
・変更履歴を簡単に辿ったり、比較したりできる
・問題が生じた際、誰がいつバグを混入させたかを確認できる
〇Gitリポジトリの初期化
プロジェクトをGitで管理したい場合は、そのプロジェクトのディレクトリに移動して、「git init」コマンドを打ちます。
$ mkdir git-tutorial && cd git-tutorial
$ git init
これによりGitリポジトリが初期化され、Gitによるバージョン管理ができるようになります。
具体的に何が起きているかというと、そのプロジェクトのディレクトリに「.git」というサブディレクトリが作られ、
その中にGitリポジトリに必要なすべてのファイルが格納されます。
〇ファイルを管理対象に追加
初期化しただけの状態では、まだどのファイルもGit管理下にありません。
ファイルのバージョン管理を始めるには、そのファイルを管理対象に追加する必要があります。
以下のように、ファイルを作成したあと、そのファイルについて「git add」コマンドを実行した後に
「git commit」コマンドを実行してください。
$ echo Hello > README.txt
$ git add README.txt
$ git commit -m "first commit"
これで作成したREADME.txtというファイルをGitの管理対象に加えたことになります。
〇編集履歴の記録
これでバージョン管理の準備が整いました。それでは、管理対象ファイルであるREADME.txtに変更を加えていきます。
変更を加えた際も、先ほどと同じ手順でgit addコマンドの後に「git commit」を実行します。
「git commit」を実行するごとに新しくバージョンが記録されていきます。
$ echo "Hello World" > README.txt
$ git add README.txt
$ git commit -m "second commit"
-mオプションの後に文字列が続いていますが、これはそのコミットについてのメモ・コメントを記録するもので、
そのバージョンや差分の意味がわかるようなメモを残しておくと、後で履歴を確認する際に分かりやすくなります。
$ touch report_1.txt
$ git add report_1.txt
$ git commit -m "Add report_1.txt"
$ echo "Git is one of the version control systems." >> report_1.txt
$ echo "writing report_1..." > README.txt
$ git add README.txt
$ touch report_2.txt
ここで、「git status」コマンドを打つと、一つ前のコミットで記録されたバージョンから差分のあるファイルを確認できます。
・Changes to be committed
⇒ 次回コミットの対象に含まれているファイル
⇒ 変更後にgit addしたファイル
・Changes not staged for commit
⇒ Gitの管理下にあるファイルのうち、差分はあるが次回コミット対象に含まれていないファイル
⇒ 変更後にgit addしていないファイル
・Untracked files
⇒ Gitの管理下にないファイル
「git add」コマンドは、次回コミットの対象に含めるコマンドになります。
まとめて編集したからといって、一度にすべての変更を次のバージョンに記録してしまうと、
問題が生じたときに切り分けが難しくなります。
新しくバージョンを記録するときは、できるだけ意味のある最小単位で記録するのがおすすめです。
また「git diff」コマンドで変更の内容を見ることもできます。
「git add」済みのREADME.txtは--cachedオプションが必要です。
〇作業のやり直し
Gitのコマンドを間違えて実行してしまったという場合には、その作業をやり直すためのコマンドも存在します。
・間違えて「git add」しまったファイルを取り消す
例:「git reset HEAD ファイル名」
※「git reset」で一括で取り消すこともできます
・間違えて行ったコミットを取り消す
例:「git reset HEAD」
〇まとめ
いかがでしたでしょうか。
次回はGit「ブランチ」「マージ」について説明出来たらと考えています。
----------------------------------------------------------------------
株式会社AQUARIZE
〒531-0072
大阪市北区豊崎3-6-8 TOビル404
電話番号 : 06-7777-2927
----------------------------------------------------------------------