4
2

More than 5 years have passed since last update.

チーム開発でよく使うGitコマンド一覧

Last updated at Posted at 2019-08-05

ーーーーーーーーーーーーーーーーーーーーー8/30追記ーーーーーーーーーーーーーーーーーーーーーーーーー
Gitバージョン2.23.0がリリースされ、新たにgit switchgit restoreというコマンドが追加されました。
checkoutでは本記事で紹介していない内容も含め、色んな事ができました。しかし、できる事があまりにも多い為、わかりやすくする目的でswitchrestoreに分けたといった感じです。
本記事ではcheckoutはブランチの移動に関してしか記述していない為、checkoutは全てswitchに置き換える事ができます。もちろん、これまで通りcheckoutを使用することも可能です。
checkoutswitch
checkout -bswitch -c (-cはcreateの略)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

はじめに

業務上gitをよく使います。よく使うコマンドさえも覚えてなくググる事も多いので、検索時間の短縮の為にも自分用に一か所にまとめようと思いました。
入社当時は先輩方の口から飛び交うカタカナ言葉が私と同じ日本人の会話とは思えませんでしたが、今ではちょっと理解できるようになりました。git用語もそうですが、「プログラミング言語よりも先にIT用語覚えなきゃ会話ができない!」と感じたのはいい思い出。
今後新しいコマンドを使うようになったり、git操作で何かやらかしたらその都度更新します。

ブランチ編

hoge(ブランチ名)で作業してね

hogeブランチに移動してからコードいじってねって意味。

git checkout hoge

で移動できる。
ちゃんと移動できたか不安な人は

git branch

で、現在自分がどこのブランチにいるか確認できる。間違ったブランチで作業を進めないためにも、心配性の私はこのコマンドをよく打つ。
hogeブランチは存在するはずなのに、そのリポジトリは見つからないよ!ってエラーが出る場合は、

git fetch

で最新状態に更新してから、checkoutでいける!

hoge(ブランチ名)からブランチ切って作業してね。ブランチ名はfugaでいいよ

hogeブランチから新しくfugaブランチ作って、そこで作業してねって意味。
hogeに

git checkout hoge

で移動。その後に

git checkout -b fuga

でfugaブランチを作成&移動できる。
git checkout -b はfugaブランチがない場合、新しく作成してから移動してくれるコマンド。
git checkoutだと既に存在するブランチにしか移動はできなく、fugaブランチはないよとエラーが返ってくる。

このhogeってブランチ、名前をfugaに変えてくれない?

git branch -m hoge fuga

もし現在いるブランチがhogeなら、コマンドが短縮できて

git branch -m fuga

でok。

もう使ってないブランチあったら消しといてね

不要になったブランチの削除は

git branch --delete hoge
git branch --delete origin hoge リモートブランチの削除ならこっち

作業してて途中から不要になったブランチの削除は

git branch -D hoge

--delete-Dの違いは、--deleteだとマージしていない変更点があるとエラーが出てブランチ削除ができないが、-Dだとそんなのおかまいなしで強制削除ができる。

ちゃんとpullした?常に最新の状態維持してね

作業前に

git pull

を忘れてはいけない(戒め)

git pull origin hoge

pull先のブランチを指定することができる。

stash編

今やってる作業中断してこっちの対応やってくれる?ブランチはhogeでお願いね!

今やってる作業をそのままに他のブランチに移動する事はできないので、
①作業途中の物を一度commitする
stashで退避させ一時保存する
この二択である。
中途半端な状態でコミットを作ってしまうと、乱立してしまい後で履歴を見返すときに見づらくなってしまうのでstashがおすすめ。stash後のブランチは変更が取り消された綺麗な状態になります。
stashでの退避は

git stash

これでok。ちゃんとできたか確認しよう。

git stash list

これでstashで退避されているリストが表示される!
後から見返したい時にわかりやすくしたい場合は、メッセージも付けて退避しよう。

git stash save "hogemessage"

これでhogemessageってメッセージもセットでstashに退避されました。
stashから取り出すには、git stash listで取り出したい対象を確認して

git stash pop stash@{n}

で、番号を指定して取り出せる。listで確認する必要もなく、最新のstashを取り出したいなら、

git stash pop

でok

stashに色々入ってるけど、必要ないならちゃんと消しといてね

git stash drop

で最新のstash

git stash drop@{n}

で、nで指定した番号のstashを削除できる。
stashを全て消したいのであれば、

git stash clear

これでgit stash dropでちまちま消さずとも全消しできる。

cherry-pick編

hogeブランチで作業してると思うんだけど、今の作業、fugaブランチでやってくれない?え?もうhogeでコミットしちゃった?

まだコミットしていなければ

git stash
git checkout fuga
git stash pop

で作業内容をそのままにブランチの移動はできるが、コミット済であればstashは使用できない。そんな時はコミットごと移動できるcherry-pickの出番。
まずはlogを確認して持ってきたいコミットのIDをコピーしておこう。

git log

で対象のコミットのコミットIDをコピーして、
ブランチ移動→cherry-pickで対象のコミットを持ってくる→新しいブランチで再度pushでok

git checkout fuga
git cherry-pick コミットID
git push

やらかし対処編

コミット名間違えた!

プッシュ前なら何も焦ることはない。--amendを付けてcommitコマンドを打ち直すだけでコミット名の変更ができる。

git commit --amend -m "new hoge"

プッシュ後なら諦めるか、コミットにメッセージ残しておくか、次で紹介するリバードで取り消してから正しいコミット名で再度pushしよう。

pushしたけどバグだらけでやだ!恥ずかしい!取り消したい!

revertコマンドで指定のコミットの変更をなかった事にできる打ち消しコミットを持ってこれる。ただし、やらかしの履歴は残る。
履歴を残さず消すコマンドもあるが、個人開発なら履歴が汚くても問題ないし、業務ならなおさら下手なことはせずミスは認めよう。間違っても強制プッシュ git push -f は使用してはいけない。

git log

で取り消したいコミットのIDをコピーして

git revert コミットID

これで入力したIDのコミットを打ち消すコミットができた。後はこれをpushしておしまい。

git push

さいごに

ここまで読んでくださってありがとうございます。
間違っている説明や記述などございましたら教えてください!

4
2
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
4
2