よく忘れる便利なGitコマンド

ちょいちょい使う便利なGitコマンドをまとめました。

差分抽出してzipで保存

$ git archive HEAD git diff --name-only 比較するブランチ HEAD --diff-filter=d -o ファイル名.zip

現在のコミットと「比較するブランチ」との差分を抽出して「ファイル名.zip」を作成します。
「比較するブランチ」や「HEAD」はコミットIDやタグなども指定できます。

結構使うけど全然覚えられない(覚える気もない)コマンド個人的第一位です。

直前のコミットを修正

$ git commit --amend -m'コメント'

ファイルを修正して、上記コマンドを実行すると、直前のコミットに修正を含めてくれます。
コミットのコメントで誤字脱字してしまった場合などに便利です。

別ブランチの特定のコミットのみをマージ

$ git cherry-pick コミットID

cherry-pick を使うときに思いますよね。
「ちゃんと作業ごとにコミットしてくれ」と。

git add の取り消し

$ git reset HEAD

上記コマンドを実行すると、git adしてインデックスに追加(ステージング)したファイルを全て元に戻します。
HEADの後に半角スペースを空けて、ファイルパスを追加すれば、特定のファイルのみ、戻すこともできます。

git merge の中断

$ git merge --abort

マージしようとしたけど、コンフリクトが起きてしまって、しかも修正がめんどくさい……なんて場合に、一旦マージを中止したい、と思うときがあります。
元の状態に戻して、取り込んでから、改めて自分の編集を加えた方が良さそうだ、というときも、たまにはあるものです。

強制マージ(どちらか一方の編集を適用するマージ)

マージしようとして、コンフリクトが発生してしまった時に「向こうのブランチの変更を優先してほしいんだけど……」という場合があったりしますね。
相手のブランチを、自分のブランチにマージする、という時に、片方のブランチの編集のみを適用してマージする方法です。

相手のブランチの変更を採用

$ git checkout --theirs .

自分のブランチの変更を採用

$ git checkout --ours .

最後の「.」は全てのファイルを指定するものなので、ファイルパスに置き換えることで特定のファイルのみ適用させることも可能です。

リモートのリポジトリと紐付ける

$ git remote add origin リモートのURL

ちょこちょこSourceTreeを使っているので、コマンド打とうとしたときに思い出せなかったりするんですよね。

さいごに

よくメモを見返すGitコマンドをまとめてみました。
また、そういえばこれも、というコマンドを思い出したら追記していこうと思います。

カテゴリー: Git