BETA

[git]Git逆引きチートシート/初心者向け

投稿日:2020-07-03
最終更新:2020-07-03

Git逆引きチートシート/やりたい事から検索

Gitの操作はよくやる事はある程度固定化されますが、たまにしか行わない操作は案外忘れがち。
そこでGitのやりたい事から調べられる逆引きチートシートを作成しました。

主にGitに触り始めた方が対象の為、ひとまず初心者の壁となるコンフリクトや複雑なマージ周りを除いています。
ここで挙げる項目は全て基本的なもの、逆に言えばここにある項目をマスターしてからコンフリクトが起こった時等に進んで貰えれば良いと思います。

なお一部リモートリポジトリとのやり取りがありますが、基本的にGitHubを想定しています。

基本のステージからコミットまで

//ファイルの変更をステージ  
$ git add <file name>  
//ドット(.)で全ての変更をステージ  
$ git add .  

//コミットする  
//コミットメッセージをテキストエディタで入力する場合  
$ git commit  
//コミットメッセージをCUI上で完結させる場合  
$ git commit -m "ここにコミットメッセージ"  

新規リポジトリ作成からリモートリポジトリとの連携

//GitHubにリモートリポジトリを作成(New repositoryボタンから作成が可能)  
//Repository nameを入力、public(公開)かPrivate(非公開)を選択  
//Create repositoryでリモートリポジトリ作成  
//https://github.com/ユーザー名/リポジトリ名 に表示されるリポジトリのURLを控えておく  
//リポジトリURLはhttpsとSSHの2種類あるが、GitHubはhttpsを推奨  
//(ただし二段階認証を導入している場合別途アクセストークンが必要になる為、SSHが無難)  
//SSHの場合、<[email protected]:ユーザー名/リポジトリ名.git>  

//ここからローカルでの作業  

//まずはローカルのgit初期化をプロジェクトのルートディレクトリ(一番上の階層)で実施する  
$ git init  
Initialized empty Git repository in <.gitの場所>  

//とりあえず何か空ファイルを作ってステージする  
$ git add .  

//初回のコミット  
$ git commit -m "first commit."  

//リモートリポジトリをローカルに保存  
//repository URLは先程控えておいたGitHubのリポジトリに表示されたURL  
$ git remote add origin <repository URL>  

//リモートリポジトリの追加を確認  
$ git remote -v  
origin [email protected]:ユーザー名/プロジェクト名.git (fetch)  
origin [email protected]:ユーザー名/プロジェクト名.git (push)  

//初回のプッシュ(ローカル→リモート)  
//ローカルのmasterブランチをリモート上の同名のブランチにアップロード  
$ git push origin master  

既存のリポジトリをローカルにコピー

//プロジェクトを置きたいディレクトリに移動する  
//git cloneコマンドでローカルにリモートリポジトリをコピーすると、プロジェクト名のディレクトリが作成される  
//つまりデスクトップでgit cloneするとdesktop/projectという構造になる  
$ git clone <repository URL>  

やりかけの作業を一時退避する

//作業を退避させ、直前のコミットの状態に戻す  
$ git stash  
//メッセージをつける  
$ git stash save "message"  
//ステージング済みのファイルは除外して退避  
$ git stash -k  
//新しく作成したファイルがまだステージングされていない場合  
$ git stash -u  

//stashした一覧を表示  
$ git stash list  

//stashした内容を表示  
//stash時のブランチ名や<stash no.>はgit stash listで確認可能  
$ git stash show [email protected]{<stash no.>} -p  

//stashを現在いるブランチに戻す  
$ git stash apply [email protected]{<stash no.>}  
//stashを指定しない場合は直近の退避が戻る  
$ git stash apply  
//ステージングも元に戻す場合は--indexオプション  
$ git stash apply [email protected]{<stash no.>} --index  

//stashした内容を消去  
$ git stash drop [email protected]{<stash no.>}  
//stashした内容を全て削除  
$ git stash clear  

ブランチを新規作成する

//ブランチ新規作成  
$ git branch <branch name>  
//ブランチの作成と同時に作ったブランチに移動  
$ git checkout -b <branch name>  

//ローカルブランチ一覧表示  
$ git branch  
//リモートブランチ一覧表示  
$ git branch -r  
//全てのブランチ一覧表示  
$ git branch -a  

//ブランチ移動  
$ git checkout <branch name>  

//ブランチ削除  
$ git branch -d <branch name>  

//ブランチ名変更  
$ git branch -m <new branch name>  

ブランチを取り込む

//ファストフォワード(マージコミットを作らない)  
//マージは必ず取り込む側のブランチ上で行う  
$ git merge <branch A>  

//マージコミットを必ず作成する  
$ git merge --no-ff <branch A>  

直前のコミットを訂正する

//エディタで修正  
$ git commit --amend  

//オプションで修正  
$ git commit --amend -m "<commit coments>"  

タグをつける

//軽量タグ(コメント無し)  
$ git tag <tag name>  
//注釈付タグ(コメント、名前、署名あり。通常こちらを使う)  
//mオプション無しだとエディタが立ち上がる  
$ git tag -a <tag name>  
$ git tag -a <tag name> -m "message"  

//タグ一覧表示  
$ git tag  
//絞り込み表示  
$ git tag -l "keyword"  

//タグ削除  
$ git tag -d <tag name>  

//タグをリモートリポジトリに送信  
//タグはコミットのpushとは別にpushする必要がある  
$ git push origin --tags  
//タグを指定してpush  
$ git push <remote name> <tag name>  

gitで管理しているファイルのファイル名を変える

$ git mv <old name> <new name>  

gitで管理しているファイルの削除

//ファイル削除  
$ git rm <file name>  

//ディレクトリ削除  
$ git rm -r <directory name>  

//ファイルを残してgit管理対象から除外  
//通常はプロジェクト作成時に.gitignoreを作成して除外を推奨  
$ git rm --cached <file name>  

ログを表示

//logコマンドは対話形式、qキーで終了  
//kキーで一行上、jキーで1行下  
//uキーで半ページ上、dキーで半ページ下  
//bキーで1ページ上、fキーで1ページ下  
$ git log  

//変更の差分を表示  
$ git log -p  

//表示数を指定  
$ git log -<number>  

//一行表示  
$ git log --oneline  

//ツリー表示  
$ git log --graph  

//マージコミットを非表示にする  
$ git log --no-merges  

//全ブランチのコミットを表示  
$ git log --all  

差分を確認する

//インデックスの差分表示  
$ git diff <file name>  

//最新のコミットとの差分表示  
$ git diff HEAD  

//コミットを指定して差分を表示  
$ git diff <commit ID>  

//最新のコミットとインデックスの差分を表示  
$ git diff --cached  

//コミット間の差分を表示  
$ git diff <commit A> <commit B>  

//ブランチ間の差分を表示  
$ git diff <branch A> <branch B>  

//差分があるファイル名のみ表示  
$ git diff --name-only  

//差分量のみを表示  
$ git diff --stat  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@braveryk7の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう