僕が今まで参加した就業型インターンで、個人開発だとあまり使わないけど、業務だとよく使う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
を実行する。
まだ何かあれば、これから追記していきます。