※HTML/(S)CSSまでならできるデザイナー向けの内容
Gitとは
- 「分散型バージョン管理システム」である(ほかに集中型がある)
- 誰がなんのためにどこを変更したのか確認できる
- 「複数人で同じソースを修正する時に使うシステム」という理解でOK
プロンプト
- Linuxなどのターミナル上に表示される「$」など、「ここにコマンド打てますよ」のサイン
- bashではPS1変数に「どう表示させるのか」が格納されていて、自分で変更することができる
- エンジニアとの会話でよく出てくるから覚えておいた方がいい
プロンプトの記号の意味
terminal
[NAME +]$ # ステージングされているがコミットが終わっていない
[NAME <]$ # リモートの方が歴史が進んでいる
[NAME >]$ # ローカルの方が歴史が進んでいる
[NAME =]$ # リモートもローカルも同じ進み
[NAME %]$ # リモートにないファイルが追加されている
[NAME *]$ # リモートにもローカルにもあるファイルの内容が異なる
よく使うコマンド
基礎編(「教えられる」レベルにしておくとよい)
リモートの変更を落とす
terminal
$ git fetch
- プロンプトの記号が
<
か>
になる - ↑「手元の状態と比べて進んでるのかどうか」を言ってくる
リモートの変更を反映させる
terminal
$ git pull
- プロンプトの記号が
=
になる -
pull
にはfetch
が含まれているようだが、私は自分を信じられないのでどっちもやる
ブランチを作る
terminal
$ git checkout -b {ブランチ名}
- やる前に親ブランチを更新(
fetch
→pull
)しておかないとエンジニアに死ぬ程叱られる - 最新Gitでは
git switch
に修正されているよう - ちなみに接頭にハイフンがつくやつは「オプション」と呼ばれている(「bオプションつけて」とか言われる)
保存する修正ファイルを選択する
terminal
$ git add {ファイルパス}
- プロンプトの記号が
+
になる。これを「ステージング」という -
git add .
ですべてのファイルを選択
修正を保存する
terminal
$ git commit -m '{コミット名}'
ブランチをサーバに上げる
terminal
$ git push -u {ブランチ名}
- 初めてpushする時は必ず
-u
をつける。するとプロンプトに例の記号が表示されるようになる。これは**ローカルとリモートのブランチの紐付けがされたことを示す。**一度-u
をつけたら、次回から-u {ブランチ名}
をつけなくてよい -
-f
で強制的にpush。上書きしてよいかよく確認してから行う
親ブランチに合流する(1)
terminal
# 親ブランチにcheckout(switch)してから
$ git merge {ブランチ名}
terminal
$ git rebase {親ブランチ} #自分の作業ブランチで
- 自分の修正の途中に、親ブランチの修正を入れる
-
merge
かrebase
か、合流の仕方はエンジニアの指示に従った方がよい気がする
差分を確認する
terminal
$ git diff
-
--name-only
でファイル名だけの一覧 - 「diffを見てください」とか言う
便利編(「できる」レベルにしておくとよい)
当該ファイルの修正履歴を一覧する
terminal
$ git log {ファイルパス}
-
-p
でどんな変更をしたか表示する
コミットを一覧する
terminal
$ git log
-
--oneline
でコミット名だけの一覧 - コミットIDを確認できる
当該コミットを当該ブランチにくっつける
terminal
$ git cherry-pick {コミットID}
- 「チェリーピクる」とか言う(言わない)
コミット名を修正する
terminal
$ git commit --amend
修正を1つ前のコミットに忍ばせる
terminal
$ git commit --amend --no-edit
- 歴史が変わるので、pushしてないかpushしたことがバレてないブランチでのみ行う
当該コミットでどんな変更があったか一覧する
terminal
$ git show {コミットID}
-
--name--only
でファイル名だけの一覧を表示する
コミットしてないファイル、あるいはゴミ(Untracked file)を消す
terminal
$ git clean
-
-n
で消すファイルを選ぶ -
-f
で強制的に消す
複数のコミットを1つにまとめる
terminal
$ git rebase -i HEAD~{コミットの個数}
$ git rebase -i HEAD~~~~
- {コミットの個数}には、「1つ前のコミットから数えた個数」を入れる。2つ目はコミットの数だけ
~
を書く - 履歴がキレイになるから重宝する
- 参考:https://qiita.com/takke/items/3400b55becfd72769214
リモートの内容に書き換える
terminal
$ git reset --hard origin/{ブランチ名}
- 「もう何がなんだかよくわからなくなったし今までの修正全部ゴミにしちゃってもいいや」という境地になったらやるやつ
(蛇足)ターミナル操作への思い
たとえば
terminal
$ exit
ってした時にターミナルが閉じるのを見ると、「GUIでバツボタン押してる裏でこんなことが…」「Exitって言ったら閉じた…えらい…」という感動があるので、マークアップレベルのデザイナーも使うべきだと思っている。世界が変わる。
あと、黒い画面カッコイイ。