1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

よく使うGitコマンドまとめ

Last updated at Posted at 2019-12-17

ここではよく使うGitのコマンドをこういう状況で使うという背景と共にまとめました。
自分用のメモでありますが、もしどなたかの手助けになればと思います。
間違いなどありましたらご指摘ください。今後も随時追加、編集していきます。

STASH 一時避難

タスクAを作業中に、タスクBを優先するように言われてしまった。。でもタスクAはまだ全然途中。。そんな時はSTASHをして、自分の書いたコードを一時避難しておけます。

git stash save “タイトルを書く”

これで書きかけのコードはSTASH(一時避難)されて、コードはブランチは切った状態(作業する前)に戻ります。

さて、タスクBは無事に終わり、タスクAの作業を再開。STASHしておいたタスクAのコードを元に戻す時はまずこのコマンドでSTASHの一覧を確認しましょう。

git stash list

そうすると、こんな風に新しい順にリストが出ます。↓

stash@{0}: On branch_name: タスクA作業途中
stash@{1}: On branch_name: タスクC担当変更のため保留

該当するSTASH、この場合はstash@{0}なので、このSTASHを適用します。

git stash apply stash@{0}

これで一時避難しておいた書きかけのコードを元に戻す事ができます。

でもこれは既存のファイルを修正していた場合で、新規のファイルを作った場合はGitは監視していないので、STASHしても一時避難されません。なので、新規ファイル、画像を含む場合はこうしましょう。

git stash --include-untracked

git stash -uでも大丈夫という記事も見かけますが自分はgit stash --include-untrackedじゃないとダメでしたので、こちらを推奨します。

ちなみに、STASHしてしばらく経ってリモートブランチと差分が出てしまった場合はConflictすると思うので、その場合はConflict解消してください。


未マージのリモートブランチをローカルに取り込む

チームメンバーのプルリクエストのレビュー依頼が来たけど、コード読んだだけじゃわからない、自分の環境に取り込んで動作の確認がしたい時。

まずリモートのブランチを取り込む。

git fetch

そしてgit branch -aでリモートのブランチも全て表示させます。
-aをつけないとローカルのブランチだけが表示されます。

git branch -a

ブランチ一覧が出てきて、リモートのブランチ名は赤色で出てきます。
リモートのブランチ名は大体こんなんだと思います。(ちなみに現在のブランチは緑色)
remotes/origin/team_member_branch

そして、そのブランチをローカルにPULLしつつ、新しいブランチも同時に切るのがこのコマンドです。GitHubのPRからコピペしてしまっても同じです。

git checkout team_member_branch

こうしたら自分の環境でチームメンバーの書いたコードを確認しつつ、動作のチェックもできます。


Pushしたものに余計なファイルを入れてしまってた。。消したい。。

git reset --soft HEAD^ 
これで直前のCommitを取り消して、ステージング状態(git add した状態)まで戻る
Commit文をミスった時もこれで取り消せます。
git status 
これでステージングにあるファイルの一覧が見れますので、不要なファイルのパスをコピーして、resetします。

git reset ファイル名

あとはもう一回commit、pushするだけ。
Commitを増やしたく無い場合は、これで強制プッシュすると前回のCommitに上書きしてくれるので、不要にCommitを増やさずに済みます。

git push -f

マージの取り消し

PR出して無事にマージされたけど、バグが見つかった。。。
すぐに修正したいけど、難しい時、一旦マージを取り消したい。。

まず、プルリクページのRevertボタンをクリック
下の方にあります。
unnamed.png

打ち消しのプルリク発行ページに飛ぶので、いつも通り普通にプルリクを発行。タイトルも内容もブランチ名も自動で生成されるので、基本このままでいいと思います
(ローカルルールがある場合はそれに従いましょう)
unnamed-1.png

あとはレビュー依頼など出して、これをマージしてもらえばOK

unnamed-2.png

一連の流れをまとめるとこうです。

↓ 元のコード
↓ 修正してプルリクエスト
↓ マージ
↓ やっぱり外して元のコードに戻したい。。
↓ Revert=元のコードをプルリクエスト
↓ これがマージされると元のコードに戻るという事です

あのコミットした時に戻りたい。。

理由は色々あると思いますが、コンフリクト解消とかでなんかうまくいかなくて、一旦あのコミットした時まで戻したい。。という時あると思います。

// まずはコミット履歴を確認ます。
git log
するとこんな感じでコミットの履歴がでてきますので、commit(英数字の文字列がID)をコピーします。
commit aebb2dc5055f32cf1a952168b8a394c4d2b03fe2
Author: Hisashi Matsui <mail@address.com>
Date:   Tue Jan 14 13:02:46 2020 +0900

    コミットした時のメモが表示される
// これでこのコミットをした状態に戻ります!
git reset --hard aebb2dc5055f32cf1a952168b8a394c4d2b03fe2
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?