LoginSignup
2
1

More than 3 years have passed since last update.

Gitのおさらい(よく使うコマンドまとめ)

Last updated at Posted at 2019-08-19

※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 {ブランチ名}
  • やる前に親ブランチを更新(fetchpull)しておかないとエンジニアに死ぬ程叱られる
  • 最新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 {ブランチ名}
  • --no-ffで「マージした」というコミットを残す
  • 自分の修正の後に、親ブランチの修正をくっつける

  • 親ブランチに合流する(2)

    terminal
    $ git rebase {親ブランチ} #自分の作業ブランチで
    
  • 自分の修正の途中に、親ブランチの修正を入れる

  • mergerebaseか、合流の仕方はエンジニアの指示に従った方がよい気がする

差分を確認する

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~~~~

リモートの内容に書き換える

terminal
$ git reset --hard origin/{ブランチ名}
  • 「もう何がなんだかよくわからなくなったし今までの修正全部ゴミにしちゃってもいいや」という境地になったらやるやつ

(蛇足)ターミナル操作への思い

たとえば

terminal
$ exit

ってした時にターミナルが閉じるのを見ると、「GUIでバツボタン押してる裏でこんなことが…」「Exitって言ったら閉じた…えらい…」という感動があるので、マークアップレベルのデザイナーも使うべきだと思っている。世界が変わる。
あと、黒い画面カッコイイ。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1