プログラミング独学day59の学習で、得たことや気づきを教えて!
今日は
・【Git】宿題「頻出のGitコマンド」
をアウトプットします!
こんにちは。プログラミングでweb制作ができるようになりたいharuです。
2歳0歳の育児をしながら、22時〜1時に独学しています!
→プログラミング学習day59、もりけん塾day14
わかったことや、気付きをログに残します。
同じく初学者の人が、これをみてインプットや復習ができるように書いていきます。
【Git】宿題「頻出のGitコマンド」をまとめる
昨日、#もりけん塾 でGitHub勉強会がおこなわれました!
途中参加になってしまったのですが、おそらく前半?で触れたであろうGitのコマンドについて宿題をいただいていました。GitHubの基礎知識を忘れないうちに、宿題のコマンドもまとめようと思います。
git commit -m “hogehoge”
(→昨日のブログにあります。)
意味:
「commitするときに、”hogehoge”というメッセージを添えます。」
解説:
commitメッセージと呼ばれ、変更の内容をわかりやすく記入します。
ちなみにProgateでは、”Change subtitle color”と例文が出てきたはずです。
ここで書いたメッセージは、GitHub上にpushしたファイルやディレクトリの隣に表示されます。
わたしが昨日入力した “add p”が表示されています。
git add .
(→昨日のブログにあります。)
意味:
「既存のファイルをindexする」
解説:
pushまでの以下の流れで、commitの準備をするための場所がindexでした。
・すでにpushしたことのある既存のファイルをindexする場合は、
git add.
・新規のファイルがある場合は、
git add --all
を使います。
git status
意味:
「ローカル環境でおこなった、ファイルの変更内容を確認する」
解説:
昨日のブログにまとまっています→こちら
*今日は、追加で便利なオプションがあったのでアウトプットします。
・結果を簡単に表示する
git status -s
→結果は以下のように,シンプルに表示されてわかりやすい。
M sample.txt
頭文字は、以下のような意味。
- M:変更
- A:追加
- D:削除
- R:ファイル名の変更
以下記事、参考になりました。
git log –oneline
意味:
「commit一覧を、一行で簡潔に表示させる」
解説:
コミットIDとコミットメッセージのみ表示。
*実際にやってみた。以下ターミナル画面。
→昨日、今日と2回のcommitがあったのがわかります。簡潔でわかりやすいです。きちんとpull requestができているかも確認可能ですね。
・ちなみに、
git log
だけだと、
- コミットID
- 作者の名前(Author)
- メールアドレス
- コミット日時(Date)
- コミットメッセージ
これだけの情報が、新着順に表示されます(;´д`)
初心者だと情報読み取るの大変です。
git push origin head
(昨日のブログにあります→こちら)
意味:
「一番新しいcommitをpushする」
git pull origin master
意味:
「originリポジトリからデータを取得→master branchに合体する」
解説:
このように書きます。
git pull [リポジトリ] [ブランチ]
・理解が曖昧なので、pullについて深掘りをしてみます。
こちらの記事が最高にわかりやすかったので、見れば一髪なんですが…
簡単にまとめると、
です。fetchでリモート→ローカルに変更履歴を取り込み、mergeで自分のbranchに合体させます。
別の共同開発者がいる場合は、その人がリモートに上げた内容をpullすることで、自分のbranchを更新することができるんですね!
git branch -D [branch name]
意味:
「選択したローカルのbranchを削除する」
解説:
-D 大文字の場合は、どんなbranchでも削除が可能。
-d 小文字の場合は、merge済のbranchのみ可能。下記のどちらでも書き方OK
git branch --delete [ブランチ名] git branch -d [ブランチ名]
git stash と git stash apply
(→昨日のブログで一部紹介)
意味:
「git stash : commitせずに、変更内容をいったん避ける
git stash apply : 避けていた直近の内容をbranchに戻す」
解説:
以下の草を生やす過程で、
pushし終えてから、pullするまでの間にローカルでファイルの変更をおこなってしまった場合は、pullができません(エラーになる)。なぜなら、リモートとローカルのファイルに差分が生まれてしまうからです。
そこで、「一度ファイルの変更内容をよけて→pull→ファイルの変更内容を戻す」という作業が必要になります。
・避けていた「直近ではない」履歴を戻したい場合は?
git stash list git stash apply stash@{number}
listを呼び出して、呼び出したい履歴のnumberをstash@{number}に入力。
さらに詳しくは、こちら
git reset –soft HEAD^
意味:
「最新のcommit変更を取り消す→一つ前のcommitがHEADになる」
解説:
一番直近のcommitの実行を取り消して、まだcommitしていない状態に戻す。
commitのやり直しができるってことですね。
これはHEADのみを動かすものですが、indexも更新するなどの別オプションもある。
git checkout –
(→昨日のブログに書いてます)
意味:「branchの移動をおこなう」
解説:
・branchを移動+新しいbranchを作成(昨日やったやつ)
git checkout -b [new branch name]
オプション -bを使うことで、新しいbranchを作成して、そこに移動できる
git push –force-with-lease origin head
意味:
「PUSHの際、ローカルrefとリモートrefを比較しローカルが最新か確認。
最新でなければ、PUSHは失敗するというもの。
※ただし、直前にfetchしているとPUSHが成功してしまうので注意」
解説:
上記時によると、–force-with-leaseをつけてpushをすることで、ローカルとリモートが最新かどうかを確認してからpushしてくれる。
–force のみをつけた場合、強制pushができる。そのときに、リモートリポジトリでのcommitを破壊する恐れがあるのでつける。
git branch -m
意味:
「ローカル上のbranch名を変更する」
解説:
git branch -m <ブランチ名> <新しいブランチ名>
git branch
branchについては昨日のブログで詳しく書いたので省略します..
git rebase
意味:
「branch(A)とbranch(B)をmergeさせるとき、履歴を1本につなぎ直す。」
解説:
git rebase [つなぐ元にするブランチ名]
言葉だとわかりにくいので、図を拝借しました。
(引用:https://www.sejuku.net/blog/71919)
これで更新ログが見やすくなるようです。
git commit –amend
意味:
「直前のcommitを修正する」
解説:
・例)ファイルをもう一つ追加したかったのに忘れた
git add file.txt git commit --amend
gitにaddしてからcommit –amendすることで、直前のcommitにファイルを追加することができる。(commit IDは変更される)
・commitメッセージの修正
git commit --amend -m "新しいメッセージ"
git clone [url]
GitHubの新規リポジトリを、ローカルに取り込むことができる。
URLはGitHubのリポジトリURLのこと。
あとがき
もりけんさんのHPはこちら