よく使うgitコマンド

もくじ
https://tera1707.com/entry/2022/02/06/144447

やりたいこと

普段tortoise gitを使っていて、gitコマンドはあまり意識せずに使えてしまってるが、 たまに細かいことをしようと思うときや、別のgitクライアントソフトを使ってる人からgitに関する質問をされると、 全然話が通じなくなってしまうので、ちょっとコマンドも覚えときたい。

git push origin ブランチ名

リモートに、指定のブランチをpushする。

git push origin ブランチ名 -f

リモートに、指定のブランチを強制的にpushする。

rebaseしたあとに、元のブランチと派生元が変わったときに、 そのままだとpush時にエラーがでるので、どうしてもpushしたいときは、強制的にpushする必要がある。

たとえば、ブランチ1をプルリクエストしたあとに、ブランチ2のプルリクがでて、先に2のほうがdevelopにマージされた。 その後、ブランチ1も引き続きプルリクしてるが、マージの前に先にブランチ2の変更を取り込みたい、というときに、 ブランチ1を最新のdevelopにrebaseする。 rebaseしたローカルのブランチは、リモートにpushする際にエラーになる(ブランチの派生元が変わってるから)ので、強制的にpushする。

そうすれば、ブランチ1のプルリクエストはそのまま使うことができる。

git reset <コミットハッシュ> --hard

今のブランチを、指定の(過去の)時点のコミットに巻き戻したいときに使う。

参考

  • ブランチが指定コミットに巻き戻る
  • ステージングエリアが巻き戻る
  • ワーキングディレクトリが巻き戻る

→要するに、全部巻き戻る。

手元のワーキングディレクトリにも、変更は残らず、全部指摘のコミット時点に戻ってる。 ※リモートのブランチには、この時点ではまだ残ってるので、「消えてもた!」と焦らなくてもOK。

git reset <コミットハッシュ> --soft

今のブランチを、指定の(過去の)時点のコミットに巻き戻したいときに使う。

ただし、hardとは戻り具合が違う。

  • ブランチが指定コミットに巻き戻らない
  • ステージングエリアが巻き戻らない
  • ワーキングディレクトリが巻き戻る

tortoise gitを使ってると、

  • 元のコミットから、指定のコミットまでの変更点が、手元のワーキングディレクトリに残る。
    • 赤マルのファイルが残る

という感じ。

tortoise gitを使ってる上では、「ステージングエリア」はあまり意識しない(ファイルをAddするときぐらいな)感じなので、ほぼほぼ「--hardとの違いは、手元ワーキングディレクトリに変更差分がのこるかどうか」な感じ。

git branch -m <現ブランチ名> <新ブランチ名>

今のブランチ名を変更したいときに使う。