Help us understand the problem. What is going on with this article?

俺俺Gitのalias&ワンライナー集

More than 5 years have passed since last update.

個人的によく使用するgitのalias+ワンライナー。
やっていることはただのShellScriptの操作ですが、忘備録を兼ねて記載。

リポジトリの変更を一括で取り消し

[alias]
    restart = reset --hard HEAD
$ git restart

リポジトリの作業内容を最後のコミットの状態に戻す(作業内容を全て初期化)ときに使用。
単純にHEADの内容に戻しているだけですが、何だかんだで便利です。
当たり前ですが、 作業内容は全て吹き飛ぶので必要な分はコミットしてあることを確認してください

$ git resetって何?という方はこちらの記事がわかりやすいです。

git reset についてもまとめてみる

リポジトリにて削除されたファイルを、削除状態にしてIndexに登録する

[alias]
    delete-items = !git status | grep deleted: | awk '{print $2}' | xargs git rm
$ touch README.md
$ git commit -a -m "first commit"
$ rm README.md
$ git delete-items
$ git commit -a -m "remove : README.md"

毎回$ git rm path/to/fileをするのが面倒になって作成。
やっていることは、working tree上でdeleted扱いになっているものをIndexに登録しているだけ。
単一のファイルのみであればtig上や、git rmでいいと思いますが、
数百のファイルをリポジトリで管理していて、そのファイルをディレクトリごと削除した等、
大量のファイルを削除したい時に役に立ちます。

リポジトリに追加されたファイルを一括で削除

[alias]
    delete-add-items = !git status | awk '{print $1}' | xargs rm -rf

Finder上から大量のファイルをリポジトリに追加してしまった時などに役に立ちます。
やっていることはただrm -rfをやっているだけなので、 ファイルは削除されることに注意。

ローカルブランチの特定の文字を含んでいるブランチを一括削除

$ git branch | grep hoge | xargs -I % git branch -D %

この例で言うと、ブランチ名にhogeを含んでいるブランチを一括削除。
例で言うと、アプリビルド用のブランチなどを作った際に、build等、命名規則をつけて、
ビルドが終わった後に使用してます。

teitei_tk
Software Engineer
https://teitei-tk.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away