LoginSignup
0
0

More than 1 year has passed since last update.

Git基礎3

Posted at

概要

前回まででGit基礎として、Gitの基礎となる原理や考え方などについてまとめたので
今回も調べた結果、よく使うであろうコマンドなどについてまとめてみた

参考:いまさらだけどGitを基本から分かりやすくまとめてみた

commit

・直前のcommitを上書きする
タイポ等で新しくcommitを作成する必要がない場合などに使用する
コマンド例:git commit --amend

tag

リリースバージョン等の重要なタイミングで印をつけるためのもの
git-flowモデルなどでreleaseブランチにtagを打ったりする
・タグ作成
コマンド例:git tag v1.0
・作成したタグをリモートリポジトリに反映する
コマンド例:git push origin v1.0
・タグ削除
コマンド例:git tag -d v1.0

revert

特定のコミットをもとに戻すコマンド
指定のコミット以降に行われた処理をすべて戻すわけではない
revertによってコミットをもとに戻したこともコミットログとして残る
コマンドを使用するとエディタが開き、コミットメッセージを編集することができる
コマンド例:git revert
参考:いまさらのrevert

PR後に問題が発覚した時の修正反映までのフロー

①GitHub上でPRをrevert
②ローカルでgit pull でrevertを取り込んで更新する
③ローカルでrevertを取り消す
一見①②が無駄にも見えるが、正しくログを残すうえでは必要な操作となる
④修正
⑤リモートにPush
⑥PR作成してマージしてもらう

reset

特定のコミットをもとに戻すコマンド
resetによってコミットをもとに戻したことはコミットログとして残らない
リモートリポジトリにPushした内容について、resetでもとに戻してはならない

pull

リモートリポジトリの内容をリモート追跡ブランチに反映し、ローカルブランチに反映するコマンド
オプションなしであれば fetch + merge の動作となる
つまり、マージコミットが積まれるようになる
・rebaseコマンド
git pull --rebaseとすることで fetch + rebase の動作となる
つまり、マージコミットを積まずにpullされる
流れとしては
①ローカルリポジトリでトピックブランチを切る
②変更をリモートリポジトリにPushする
③リモートリポジトリ側でmasterにトピックブランチの差分をマージ
④ローカルリポジトリ側でmasterブランチに移動
⑤git pull --rebaseを実行する
こうするとでトピックブランチの差分がそのまま最新のブランチとなる
オプションなしであればマージコミットが積まれる
つまり、masterブランチ側とトピックブランチ側の両方が親となるマージコミットができることになる

stash

ローカルコミットしていない内容を一時的に避難させるコマンド
ユースケースが(今のところ)思い浮かばないので、リンクだけ貼っておく
参考:コミット前の内容を一時的に避けておく「git stash」の使い方

cherry-pick

他ブランチの特定のコミットを現在のブランチに取り込むコマンド
コマンド例:git cherry-pick
参考:cherry-pickコマンド備忘録

grep

リポジトリに対して検索し、検索文字列と一致した内容の該当行を出力する
コマンド例:git grep aaa

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