🤳

現場で使えるGitコマンド集

2022/05/25に公開

はじめに

gitの操作ってどうやってますか?SourceTree?Github Desktop?
やっぱりエンジニアならコマンドでしょ!
というわけでgitコマンドの紹介です。

git checkout {ブランチ名}

指定したブランチに移動してくれます。
-b オプションでブランチを新規で作成しつつ、ブランチを変更してくれます。

git checkout {ファイル名}

指定したファイルの変更(stageされてないもの)を消してくれます。
.で全ファイルの変更を消せます。気をつけてね!

git add {ファイル名}

指定したファイルの変更をstageにあげてくれます。
.で全ファイルです。

git clean -fd

untrackedなファイルを削除してくれます。
-fオプションで強制削除。
-dオプションでディレクトリも削除。
です。

git commit -m "{コメント}"

stageされているファイルをコメント付きでコミットしてくれます。

git commit --amend

最新のコミットを変更できます。
コミットコメントを変えたい場合はこちら!

git reset --hard HEAD^

コミットを戻します。
^の数でいくつのコミットを戻すかを指定できます。
戻したコミット内容は全て消えるので気をつけてください。

git reset --soft HEAD^

コミットを戻します。
^の数でいくつのコミットを戻すかを指定できます。
1つ上の--hardと違って戻したコミット内容はstageに残るので安心して使ってください。

git merge {ブランチ名}

指定したブランチから作業ブランチにマージしてくれます。
コンフリクトが起こった場合は、
1.git statusでコンフリクトが起こっているファイルを確認します。
2.コンフリクトを解消し、git add {ファイル名}
3.git commitをします。この時-mオプションでコメントを追加する必要はないです!
自動でマージコメントが入力されます。
4.マージコメントが入っているvimが立ち上がるので、:wqで保存して完了です。

git rebase {ブランチ名}

指定したブランチから作業ブランチにリベースしてくれます。(日本語違うかも。。)
コンフリクトが起こった場合は、
1.git statusでコンフリクトが起こっているファイルを確認します。
2.コンフリクトを解消し、git add {ファイル名}
3.git rebase --continueで完了です。

コンフリクトが起こったから、リベースはやめたい!ってなった場合はこのコマンドです。
git rebase --abort

git push origin {ブランチ名}

指定したブランチをプッシュしてくれます。
-fでフォースプッシュです。git resetgit commit --amendをしてコミットログが変わった場合は、-fを指定してあげましょう。
チームメンバーで使っているブランチにフォースプッシュするときは要注意です!

git pull origin {ブランチ名}

指定したブランチをプルしてくれます。

git fetch

フェッチしてくれます。
-pオプションでリモートで既に削除されているブランチをローカルの方でも削除してくれます。

git stash

スタッシュしてくれます。

git stash pop

スタッシュを戻してくれます。
複数スタッシュがある場合は指定することもできますが、スタッシュされている中身を確認するのが大変なのでSourceTreeを使いましょう←

git branch

今あるブランチの一覧を表示してくれます。
-rオプションでリモートのブランチ一覧を表示してくれます。

git branch -d {ブランチ名}

ブランチを削除してくれます。
指定したブランチがまだdevelopブランチ(デフォルトブランチ)にマージされていないと削除できません。
developブランチにマージされてなくても削除したい!ってときは、-Dオプションで削除可能です。

git status

現在変更しているファイルとstageされているファイルを表示してくれます。

さいごに

これであなたもgitコマンド派ですね!
でも最近は、少しGithub Desktopに浮気中です(*´-`)

gitをコマンドで操作する場合は、.zshrcの設定を行うと便利なのでこちらの記事の設定をしてみることもおすすめしますᕦ(ò_óˇ)ᕤ
https://qiita.com/hiiragi252/items/6a665f5c2b7ea0f4ce01

Discussion