就業型インターンで役に立ったgitコマンドまとめ


こんにちは、@kons16 です。
僕が今まで参加した就業型インターンで、個人開発だとあまり使わないけど、業務だとよく使うgitコマンドを忘れないようにメモしておきます。
commitとかpushのような本当によく使うコマンドの他の、+α 的なところです。

リモートブランチをローカルに持ってくる

$ git checkout -b remote_dev
$ git fetch
$ git reset --hard origin/remote_dev

force pull みたいなことをしています。 ローカルのブランチ情報を強制的にリモートブランチに合わせる形でリモートのブランチを持ってきています。
Git で force pull する方法 ( $ git reset --hard origin/branch_name )

あるローカルブランチに、リモートブランチの情報を取り込みたい

$ git branch
* cat
  main

$ git pull origin dev

catブランチ上で作業していて、リモートのdevブランチが更新されたとき、最新のdevブランチを今いるブランチに取り組みたい場合がある。これは単純に、pullでリモートブランチを指定すればよい。
このとき強制的にリモートブランチに合わせたいときは、上の通り、fetch して reset --hard すればいい。

ある修正を前のコミットに含めたい

$ git reset @~
$ git add ファイル名
$ git commit -m 'xxx'

オプションなしで reset すると、addも取り消してくれる。
git-resetは結局何を戻すのか
ちなみに、@ は head と同じ意味。
git コマンドの @ (アットマーク) って何? > HEAD と同じ意味

ブランチ移動する際、未コミットがあるとき

$ git branch
* cat
  hoge

$ git stash save

$ git checkout hoge
// hogeで作業
$ git checkout cat

$ git stash pop

catブランチでファイルを追加した後で、hogeブランチで作業することが見つかりにhogeに移動すると、catブランチの情報が反映されている。 このような場合、stashを利用し、catブランチの編集情報を一時的に保存しておき、hogeブランチにcatブランチの作業が反映しないようにする。
hogeブランチで作業が終わってcatブランチに戻ってきたら、applyとかpopとかして復元する。

ただし、新規ファイルをstashするときは、$ git addしてから$ git stashするか、
$ git stash -u を実行する。

まだ何かあれば、これから追記していきます。