Skip to content

Git Commands

Yutaro Ishiwata edited this page Feb 18, 2022 · 4 revisions

基本コマンド

既存のリポジトリをクローン

mkdir [ディレクトリ] //ローカルディレクトリ作成
git clone [リポジトリ] [ディレクトリ] //既存のリポジトリをクローン
git init //.gitサブディレクトリが生成される(自動で生成されるかかも)

設定

$ git config --list
$ git config --global user.name "yutaroishiwata"
$ git config --global user.email "[email protected]"
$ git config --global --list

リモート環境の変更内容をローカルにpull

$ git fetch //--prune fetchやpullする際に自動的にリモートで削除されているリモートブランチを削除してくれる。
$ git pull

新規ブランチ作成

$ git branch [branch_name]  //ブランチの作成
$ git checkout [branch_name]  //ブランチの移動
$ git checkout -b [branch_name] //新規ブランチを作成しチックアウト
$ git branch -d [branch_name]  //ブランチの削除
$ git branch -m [branch_name]  //現在のブランチ名の変更
$ git branch // ローカルブランチの一覧
$ git branch -a //リモートとローカルのブランチの一覧
$ git branch -r //リモートブランチの一覧
$ git checkout -b branch_name origin/branch_name //リモートブランチをローカルにクローンしてチェックアウト(originの付与は必須)

差分確認・インデックスにStage

$ git diff //差分確認(Ctrl+f,Ctrl+bで1ページ分スクロール)
$ git diff --stat //差分量確認
$ git add .  //全てのファイル

$ git status //現在の状態を表示
$ git diff --staged //stage環境にあげたファイルの変更箇所を表示
$ git reset HEAD . //aadの取り消し
$ git log //commitの履歴を表示

Stageしたファイルを作業ツリーに戻す

$ git reset HEAD -- <ファイル名>
$ git reset //全てのファイル

作業ツリーの変更を元に戻す(破棄)

$ git checkout ファイル名 //特定のファイル
$ git checkout . //全てのファイル

ファイルを削除(git Untracked filesなど)

$ git clean -n //削除するファイルを表示
$ git clean -f //削除実行

コミット

$ git add [ファイル名] //追加
$ git commit -m "任意のコメント"  //コミット (-aオプションは作業ツリー変更も自動検出する)
$ git push origin master  //masterを更新
$ git commit --amend //直前のコミットに上書き
$ git commit --amend -m "fugafuga" "コミットメッセージを修正" //一つのみ指定すると直前のコミットメッセージを修正する

応用コマンド

直前のコミットを取り消し

$ git reset --hard HEAD^
$ git push -f //すでにリモートにpushしてしまってる場合には変更内容を強制pushする

スタッシュ

$ git stash save //saveは省略可能
$ git stash apply stash@{0}
$ git stash list

入力が異常になったとき(下記のどちらか)

$ stty sane 
$ reset

コンフリクト解消

$ git marge develop //現在のブランチにdeveopをmarge
$ git commit -m "任意のコメント" //コンフリクトを解消してコミット
$ git push

特定の行がいつ変更されたのか確認

$ git blame [ファイルまでのパス] //特待したい変更があるファイル
$ git blame -L 行数,行数 [ファイルまでのパス] //行数を指定して検索
$ git show [コミットID]

ブランチをまとめて削除

$ git branch | grep <文字列> | xargs git branch -d 

補足情報

GitでCtrl+cで終了させるとそれ以降のコマンドが表示されない

現象

git log, git diff等のコマンドを実行してCtrl+cで終了させるとそれ以降のコマンドが実行されない

復旧方法

Ctrl + cで終了させてしまい、コマンドが表示されなくなってしまったら、resetstty saneを 実行し端末制御をきれいにすることでコマンドが表示されるようになる。

抑止方法

qで終了させる。

参考: みちしるべ, Terminalの入力が異常になったときの直し方, コミットの取り消し、打ち消し、上書き

Clone this wiki locally