ありあけこういち’s diary

SaaS企業Webエンジニア|HSK6級|福岡ラバー|木管楽器|ITについて、明快な読み物を目指しています。

Git コマンド 備忘録

Gitコマンドの整理に至った経緯

いままでSourceTreeなどのGUIに頼りすぎていたので、改めてGitの基礎を整理しておこうと思い、現投稿にまとめました。
また後日Git コマンドとSourceTreeとの違いについてもまとめたいと思います。

Gitコマンド

リポジトリを新規に作成(git init)

$ git rebase <リベース元ブランチ名>

リベースでミスをしたときは、直近の変更履歴を閲覧

$ git reflog

戻したい位置を選んで元に戻す。コード内容も変更。(commitの取消しにも使えます)

$ git reset --hard HEAD@{戻したい位置のHead番号}

戻したい位置を選んで元に戻す。コード内容は変更なし。(commitの整理に使います。)

$ git reset --soft HEAD@{戻したい位置のHead番号}

git rebase 自体を中断して元にもどす

$ git rebase --abort

conflict解消後 git rebaseを継続

$ git rebase --continue

上記コマンド流した後、「 :q 」 (変更を保存せずに終了) または「 :wq 」 (変更を保存して終了) と入力を押下することで、編集モードを終了することができます。

チェリーピック(cherry-pick)

$ git checkout <チェリーピックを反映したいブランチ名>
$ git cherry-pick <gitハッシュ値>

※ チェリーピックは差分のみをとるのであり、その時のスナップショットを撮るものではないことに注意。
Cherry-pickは英語でいいところだけをつまみ食いするとの意味があるようです。

コミット(Git Commit)

$ git commit -m "コミットメッセージ"

リモートブランチにプッシュ(Git Push)

$ git push origin <ブランチ名>

Force Push

$ git push --force origin <ブランチ名>

マージ(Git Merge)

$ git checkout {マージ元ブランチ名}
$ git merge {マージ先ブランチ名}

commit と push の違い

恥ずかしながら、現在までcommitとpushの違いをあまり理解できてなかったので、改めて再度調べていました。
SourceTreeではcommitと同時にPUSHするように設定する設定がある他、現在までPush changes immediately to {ブランチ名}を無意識的にチェックを入れて使ってたのであまり意識していない状態でした。

  • commitは、インデックスにあるファイルをローカルリポジトリに保存です。

  • pushは、保存したデータをリモートリポジトリの保存することです。

Wordで例えますと、文章を書いて保存する処理がcommit、保存した文書をクラウドに保存することになります。

 


参考サイト