【簡潔】git初心者準備編
「はじめてgitというもの使ってみよう。」と思っているエンジニア、もしくは別の職種の皆様、こんにちは。
このシートではgitとは何かの簡単な説明とはじめかたについて完結に説明させていただきます。対象者は「まったくgitを使ったことが無い方」です。
1. まずgitは何者か
簡単に言えば「バージョン管理を行ってくれるもの」、そして「複数人で同じコードをいじる時にぶつからないようにしてくれるもの」と認識すればOK。
「いつどこを編集したか」が分かるので、プログラミングのコード以外にも長いドキュメントを書く人にも正直オススメしたい。
2. gitをはじめる
gitのインストールはmacであればターミナル、winであれば
コマンドプロンプトで以下のどちらかを打てばだいたいのPCなら成功する。
sudo yum install git-all
sudo apt-get install git-all
インストールに成功したら以降は管理したいファイルがある場所で「git init」のコマンドを打てば管理がはじまる。
[~/sample]$ git init
Initialized empty Git repository in /Users/sasaki/sample/.git/
initは"初期化"っていう意味。初期化が終わったら以下のコマンドを打ってください。この意味はあとあとでわかりますが簡単に言えば「git始めるには作業履歴が最低1つは必要」ということ。
git commit --allow-empty -m "first commit"
3. ブランチとは?
branchは"枝"という意味で、gitは基本的にmasterと呼ばれるブランチを元にして派生したブランチを作り、そこで作業する。実はコピー(複製)に近い概念。ただSFに少し知識がある人なら「別の世界線」という考え方が一番しっくりくる。
「本物のコピーを作成し、コピーのほうを編集し、その編集がいい感じだったら本番のほうに採用する」という流れがgitではできる。
masterブランチを見ている状態で「git branch {新しいブランチ名}」というコマンドを使うことでそのコピーの作成が可能。
以下の例では「sasaki」というブランチを作っている。また「git branch」とだけコマンド打つと今あるブランチをすべて表示することができる。
[~/sample]$ git branch sasaki
[~/sample]$ git branch
* master
sasaki
4. checkoutと「今いるブランチ」
gitには「今どのブランチにいるか?」という概念がある(「今見ている」でも可)。さっきコピーの概念に近いといったが、ファイル単位ではなくて「フォルダーまるごとコピーされている」と考えること。
「branch」のコマンドを打った時に「*(アスタリスク)」が付いているブランチが「今いるブランチ」となる。そして「checkout」というコマンドを利用するとブランチを移動することができる。
[~/sample]$ git branch
* master
sasaki
[~/sample]$ git checkout sasaki
Switched to branch 'sasaki'
[~/sample]$ git branch
master
* sasaki
5. ファイルを編集してdiffを出す
diffは「difference」の略で"差分"と呼ばれる。次は「status」と「diff」の2つのコマンドで差分が出たことを確認してみる。まず何もしていない状態で「git status」を打つと、
[~/sample]$ git status
On branch sasaki
nothing to commit, working tree clean
次にaisatsu.txtという「おはよう。」とだけ書かれたファイルを作ってみたので改めて「git status」を打ってみると、
[~/sample]$ cat aisatsu.txt
おはよう。
[~/sample]$ git status
On branch sasaki
Untracked files:
(use "git add <file>..." to include in what will be committed)
aisatsu.txt
nothing added to commit but untracked files present (use "git add" to track)
上記のようにaisatsu.txtというファイルができたことがわかる。「status」はその名の通り、今のgitの状態を表示するコマンド。
次に差分を作ってみるのですが、その前に一旦以下のコマンドを打っておいてください。
git add aisatsu.txt && git commit -m "create aisatsu.txt"
(「add」と「commit」のコマンドが登場していますが、次のnoteで説明するので今はざっくり「add = 仮決定」、「commit = 決定」とだけ思っておけばOK)
その後、aisatsu.txtの中身を「おはよう。」から「おっはよ〜。」に変更し、「git status」と「git diff {ファイル名}」を使ってみる。
[~/sample] (sasaki *)$ cat aisatsu.txt
おっはよ〜。
[~/sample] (sasaki *)$ git status
On branch sasaki
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: aisatsu.txt
no changes added to commit (use "git add" and/or "git commit -a")
[~/sample] (sasaki *)$ git diff aisatsu.txt
diff --git a/aisatsu.txt b/aisatsu.txt
index 6eaa086..e60ddf7 100644
--- a/aisatsu.txt
+++ b/aisatsu.txt
@@ -1 +1 @@
-おはよう。
+おっはよ〜。
diffコマンドで表示された最後の5行くらいに注目するとaisatsu.txtにおいて「おはよう。」の行が消えて「おっはよ〜。」の行が増えたということが明示されている。コードを良いものにしていくということは「既存のものに変更を加えていくこと」でもあるので「どんな変更をしたか」が明らかになっていることがコードの質を保つために大切である。
6. まとめ
gitをインストールし、gitによる管理をはじめ、ブランチの意味を知り、差分を確認する、というところまでが学べました。
次は[初級編]を読んで実践で使うコマンドを学んでいきましょう。実践で頻繁に使うことになる「add」、「commit」、「push」が登場します。次も簡潔なドキュメントです。
7. ちなみに
「git checkout」はブランチの移動以外にもコードに加えた変更をなかったことにする使い方もあります。「git branch」など他のコマンドもオプションを付けることで別の効果を発揮するので気になったら"git branch オプション"とかで調べてみてください。
この記事が気に入ったらサポートをしてみませんか?