2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ちっちゃくアウトプットAdvent Calendar 2023

Day 2

よく使っているgit aliasをまとめてみた

Last updated at Posted at 2023-12-02

この記事はなに?

2年ほど前にgit aliasの設定方法の記事を書きました。

この記事では、自分でもよく使っているaliasの備忘録です。
誰かのお役に立つことがあればいいなぁと思いつつ、ほぼ自分のための記事です :sweat_smile:

よく使っているalias

~/.gitconfig
[alias]
  st = status -sb
  co = checkout
  br = branch
  ft = fetch
  loga = log --graph --oneline
  push-f = push --force-with-lease --force-if-includes
  rebase-i = rebase -i --autosquash
  dn = diff --name-status
  bc = !"git branch --merged origin/HEAD | grep -vE 'HEAD' | xargs git branch -d"
  ro = !"git fetch --prune && git rebase origin/HEAD"

解説

status -sb

status コマンドは現在作業中の状態を確認するコマンドです。

オプションの -s-short です。
git helpを読むとGive the output in the short-format.と書いてあります。
変更ファイルだけが表示され、かつファイル名の頭に M?? などがついて、現在どのような状態になっているか見やすくなります。

オプションの -b-branch です。

これまたgit helpを読むと、Show the branch and tracking info even in short-format.と書いてあります。
-s と一緒に使うことで、現在のブランチ情報を表示してくれます。

他にもオプションがあるので、気になる方は git help status でご確認ください。

checkout

ブランチ移動などに利用するコマンドです。
いっぱい使うので登録しています。

git co -b <新しいブランチ名> で新規のブランチを切ることができます。

branch

ブランチを切るときに使うコマンドです。
これもいっぱい使うので登録しています。

fetch

リモートリポジトリから最新の情報を取得するときに使うコマンドです。
これまたいっぱい使うので登録しています。

log --graph --oneline

gitツリーを見やすくするためのコマンドです。
git log でコミットの履歴を確認できます。

オプションの--graph でgitツリーが表示されます。
ただ、 git log と同じ情報が表示されてしまうので、情報が多すぎてツリー全体が見にくいです。
そこで、 --online を追加して、コミットIDとコミットメッセージがわかるgitツリーを表示させています。

ちなみに年券表示させるのかとか、日付を表示させるのかとかカスタマイズできる内容が沢山あります。

push --force-with-lease

pushはコミットした内容をリモートに送るコマンドです。

オプションの --force-with-lease は、pushの際にローカルとリモートを比較し、ローカルが最新でなければpushが失敗します。
-f だけでも、リモートに強制的に上げることができますが、チーム開発をしている場合、同じブランチを複数人で触ったときに、他の人のコミットをなくしてしまう可能性があります。

なので、 --force-with-lease を利用しています。

この記事がとてもわかりやすいと思います。

rebase -i --autosquash

Qiitaでは、レビュー後の修正は git commit --fixup で管理し、レビューが全て終わったらコミットをまとめる運用をしています。

--fixup のことについては、下記の記事が詳しいので、気になった方はご覧ください :pray:

rebaseコマンドは、ブランチを統合するときに使います。
例えば、最新のmasterに作業中のブランチを乗せて開発したいときに使います。

オプションの -i--interactive です。
リベース前にコミットのリストを作成します。

--autosquashgit commit --fixup を行ったことで、 fixup! とコミットメセージの文頭についているコミットを、指定したコミットIDのコミットに自動で変更するオプションです。

-i と組み合わせることで、リベース前に本当に正しい位置にコミットをリベースしようとしているか確認できます。

diff --name-status

diffコマンドは、変更差分を確認するためのコマンドです。
他のコマンドよりは使用頻度は少なめなのですが、私の場合、特定のコミットとコミットを比較して変更があったファイルのパスを取得したいときに利用しています。

git branch --merged origin/HEAD | grep -vE 'HEAD' | xargs git branch -d

マージ済みのブランチを削除したいときに利用するコマンドです。
日々開発を行っていると、ローカルにマージ済みのブランチが溜まって行ってしまうので、一括削除するときに利用しています。

git fetch --prune && git rebase origin/HEAD

最新のmasterを参照します。
作業中のブランチを最新のmasterにリベースしたいときに使っています。

mainをfetchして、pullして、作業中のbranch移動して…って手間なので、重宝しております。

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?