MinEMemO

【Git/GitHub】知ってたら便利系のコマンド

📝 更新日:2023-07-17 / 📄 作成日:2023-07-17
Hero Image
目次

はじめに

取り消したり、戻したり、確認したりなどの知ってたら便利なコマンドをざっと記載します。

git管理addの状態確認

git_command

git status

※編集中でaddされてないファイルは赤文字で表示される
※addされているファイルは緑色で表示される

ファイルの変更内容を確認

git_command

#git addする前の変更分を表示(ワークツリーとステージ)
git diff

#git add した後の確認(ステージとリポジトリ)
#ネットでは git diff –cached のほうがよく出てくるが出力結果は同じでした
git diff --staged

コミットメッセージの複数行

git_command

git commit -m "1行目" -m "2行目"

コメント、変更履歴を確認

git_command

git log

直前のコミットを打ち消すコミット

git_command

git revert

※git revert HEADと同じで=一個前(HEAD^)の状態に戻る
※不用意な履歴が増えるのだけが懸念だが、成れないうちはこれが無難

誤pushをとりけしたい

git_command

git revert

↓

git push

怖い時は間違ってpushしたのですが、どうしたらいいか。とチームメンバーに相談するのが良さそうです。

ブランチ作成+切り替え

git_command

git swicth -c ブランチ名
#ブランチを新規作成して切り替える

ブランチ確認

git_command

git branch
#ブランチ一覧と緑文字で今いるブランチが表示される

git branch -a 
#-a でリモート側も含めたブランチを表示する

git branch ブランチ名
#ブランチ名指定でブランチ作成ができる

ローカルファイルを編集変更した後に、変更前の最終コミットの状態までローカルのファイルを戻したい

git_command

git reset --hard HEAD

プッシュ前のコミットに対してのみつかわないと履歴が崩れるので危ないらしい
※HEAD^ はひとつ前のコミットまで戻すという意味。二つ前ならHEAD^^となる(~は^と同じ意味)
※HEADなら現在作業中のHEADになる

  • soft コミットだけ取り消し
  • mixed コミットとaddを取り消し
  • hard コミット、add、フォルダのファイルも取り消し

コミットしていない編集状態を消したり、戻したり

Ctrl+ZやCtrl+Shift+Zで直前の状態を消したり、戻したりする感覚で状態を操作できる。
この操作で消したりした内容はメモリに確保される。

例えば、違うブランチで作業してしまい、その内容を戻し、別のブランチのファイルにその内容を反映するみたいなことができる

git_command

git stash	
#内容をもとに戻す(消してメモリに確保)

git stash pop
#消した内容を反映する

commitされる前に戻す

git_command

git restore -s HEAD^ ファイル名

git pullされる前に戻す

git_command

##ログ確認
git reflog

##例)ログの二行目に戻す場合は{1}を指定する
git reset --hard HEAD@{1}

git configのスコープ

git_command

$ git config --local ...   # 各リポジトリごとの設定 (.git/config)(優先度:高)

$ git config --global ...  # 現在のユーザの共通設定 (~/.gitconfig)

$ git config --system ...  # システム内の共通設定 (/etc/gitconfig など)(優先度:低)

さいごに

よく使うのだけしか結局覚えれないし、覚えなくてOK
profile_icon
taka
プログラマー
2017年11月から業務でPHPを触りだしたエンジニアです。 業務経験8年程度。 2022年から「要求整理→設計→実装→テスト→リリース」と開発のステップをきちんと経験したく、 転職を始めましたが、なかなか思う通りには・・・いっていません。 現職が自社案件枯渇、本社エリア以外のSES案件の繋がりがなしと急に発覚し、 26/05から急遽強制的に転職活動中。 現職をやめるつもりはなかったし、転職は本当に最後にしたいのでもしよければお声がけください。 参画したPJ、エンジニアとしての経験をまとめたGitHubリポジトリもあります。 https://github.com/tm-qc/project-experience