LoginSignup
7
5

More than 3 years have passed since last update.

「こんなことしたい」って時にどんなgitコマンド使えば良いのか?

Last updated at Posted at 2020-03-22

目的

ここ一年位になって(ようやく)gitを使う頻度が増えたのですが、非常に使いやすいと感じたので、備忘録として
覚えたことが増えたらちょこちょこ更新していこうかなと考えています。

とはいえ、まだ勉強中なので、表現が間違っていたり
「このコマンドは正確にはそういう意味じゃない」とか
「こっちのコマンドの方が良い」などあればご指摘いただければと思います。

なんとなく理解している構造

コマンドと構造にかんするなんとなくの理解

よく使うコマンド(オプションなし)の一覧

コマンド 概要 備考
git remote リモートリポジトリの確認
git fetch リモートリポジトリの内容をリモート追跡ブランチに反映する
git checkout ローカルブランチの切り替えやワーキングツリーの編集内容をローカルブランチの内容に戻す 指定したブランチ名がない場合はgit branchのブランチ切り出しと同じ意味
git branch ブランチ一覧取得したり、ローカルでブランチを切り出したりする
git add ワークツリーからインデックスに追加する
git status ワーキングツリーの状態を確認する
git diff 作業の差分を確認 コミット間やワーキングツリーとインデックス間の差分
git stash 作業内容を一時退避する
git commit インデックスからローカルリポジトリに反映する
git reset addcommitを取り消す
git push ローカルリポジトリの内容をリモートリポジトリに反映する

やりたいこと別コマンド一覧

ローカル作業前

やりたいこと コマンド
リモート追跡ブランチを最新化したい git fetch
リモートブランチと、ローカルブランチの状態を確認したい git remote show <リモート名>
リモート側で既に消えているブランチがあったので、リモート追跡ブランチからも消したい git remote prune origin
リモートブランチの内容をローカルブランチに反映したい git pull --no-rebase <リモート名> <ブランチ名>
ローカルのブランチ一覧を確認したい git branch
リモート追跡ブランチを含めてローカルのブランチ一覧を確認したい git branch -a
ブランチを切り替えたい git checkout <ブランチ名>
今のブランチから新しいブランチを切り出したい git branch <ブランチ名>
  • pullはよくわからないので後でちゃんと調べたい・・・

ローカル作業中

やりたいこと コマンド
ワーキングツリー・インデックスの編集状態を一覧で確認したい git status
ワーキングツリーの編集内容を取り消してブランチのコミット済み状態で上書きしたい git checkout <ファイル名>
インデックス登録済ファイルの編集差分を確認したい git diff
特定のインデックス登録済ファイルの編集差分を確認したい git diff <ファイル名>
特定のファイルをインデックスに登録したい git add <ファイル名>
カレントディレクトリ配下の全未登録作業内容をインデックスに登録したい git add .
ワーキングツリー内の全未登録作業内容をインデックスに登録したい git add -A
ワーキングツリー内でインデックス未登録(新規ファイル)を覗いた作業内容をインデックスに登録したい git add -u
変更内容を対話式で確認しながらインデックス登録する git add -p
addコマンド実行時にどのファイルがインデックス登録されるかの確認だけしたい git add -n
間違えてaddしたのを取り消したい(※) git reset HEAD <対象のファイル>
  • --soft--hardかでワーキングツリーの状態が変わる

ローカル作業中だけどブランチを切り替えて別作業をしたい(インデックスの内容を退避させて置きたい)

  • stash@{n}を指定しない場合はstash@{0}(最新stash)が対象
やりたいこと コマンド
作業内容を一旦退避させたい git stash
stashの一覧を確認したい git stash list
stash@{n}だけだとわからないのでコメントをつけてstashしたい git stash save <コメント>
stash内容をファイル一覧で確認したい git stash show stash@{n}
stash内容を差分で確認したい git stash -p show stash@{n}
stash内容を元に戻したい git stash apply stash@{n}
stash内容を元に戻した上でstashを消したい git stash pop stash@{n}
stash内容を消したい git stash drop stash@{n}
全stash内容を消したい git stash clear

作業完了

やりたいこと コマンド
ローカルブランチにコミットしたい git commit -m <コミットメッセージ>
複数行のコミットメッセージを入れてコミットしたい git commit
→vimでコミットメッセージを編集
コミットを取り消したい git reset --hard HEAD^
リモートブランチにプッシュしたい git push <リモート名> <ブランチ名>

作業後

やりたいこと コマンド
リモート追跡ブランチを最新化したい git fetch
リモートブランチとか、ローカルとリモートの比較状態確認したい git remote show <リモート名>
リモートで消えてるブランチあったら、リモート追跡ブランチから消したい git remote prune <リモート名>
ローカルからブランチを消したい git branch -d <ブランチ名>
ローカルから強制的にブランチを消したい git branch -D <ブランチ名>

その他

やりたいこと コマンド
今のワーキングツリーにマージしたらコンフリクトが起きるか確認したい git merge --no-commit <ブランチ名>
コンフリクトの確認だけしてマージをやめたい git merge --abort
コンフリクトの解消をしたのでインデックスに追加したい git add <ファイル名>

課題

  • もっとちゃんと調べたほうがいいコマンド
    • git pull
    • git add
    • git reset
  • gitの基本的な概念をもっと理解したほうが扱いやすそう
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5