tl;dr
.gitconfigにもaliasの登録ができる[alias]ブロックにaliasを登録する
tagsで単数・複数の悩みを解消するdiscardで変更を取り消すunstageでaddを取り消すuncommitでcommitを取り消すignoreで.gitignoreを生成する
git aliases
この記事は今すぐalias登録すべきワンライナー by ゆめみ① Advent Calendar 2018
の6日目の穴埋め記事です。
こちらのアドベントカレンダーは今すぐalias登録べきワンライナーということで、みなさん.bashrcや.zshrcのaliasについて記事を書いてらっしゃいますが、実は.gitconfigという、gitコマンドの設定を書いておくファイルにもaliasの指定ができます。
誰もshellのaliasとは言ってない!(・・・はず)ので、いくつか.gitconfig用に便利なaliasを紹介していきましょう
aliasの登録方法
.gitconfigは基本的にiniファイルです。そのため、次のように登録します。
| |
簡単ですね? [alias]というブロックを作成し、alias名=コマンドの形で記述します。
このときコマンドはgit xxxの形で実行される、xxxの部分のみを指定します。
例えば、
| |
と指定すると実際の実行時にはgit git statusという形で実行されてしまいエラーになるので注意しましょう。
gitのつかないコマンドを実行したい場合は頭に!をつけます。
| |
このように記載すると、git lsでlsが実行されます。
git tags
git tagというコマンドがありまして。まぁみなさんご存知でしょうが、tagの一覧を出したり、新しいtagを作ったりするコマンドです。これ単体では特に問題がないのですが、リモートリポジトリと合わせて使うと、ちょっと悩みが発生します。
git tagコマンドでタグをつけた後、リモートリポジトリにpushするときのコマンドはgit push --tagsです。これはtagをまとめてpushするので、複数形なんでしょう。しかしです。tagの一覧を出すときに使うのもgit tagと単数形なんですね。
ついついgit tagsと打ってしまいませんか?
そんなあなたはこんなaliasを登録しておきましょう
| |
地味ですが、これで単数形か複数形か悩まずに済みます。
git discard
ファイルを変更して、「あ、やっぱやーめた」、とそんなこと、ありませんか?そんなときにmagit
を使っていればM-x magit-statusからのk、で一発ですが、さてコマンドでやるにはどうしたらいいんでしょうか?
git reset?git checkout?なんにせよ少し悩んで場合によってはGoogle先生にお聞きする必要がありそうです。
そんなときに便利なのが次のalias。
| |
正解はgit checkoutですが、もっとわかりやすく、git discardとすれば悩む必要もないですね。
git unstage
普段はなにかしらのクライアントからgitを操作しているあなた。一度git addしたファイルをaddしていない状態に戻すコマンドをすぐに答えられますか?私はすぐには答えられません。確実にGoogleで検索
する自信があります。
そこで、こんなaliasを登録しておきます。
| |
これで間違ってaddしたファイルもgit unstage hogehogeと一発です。
git uncommit
さて、編集しただけだったり、addしただけならそんなに難しいことはありませんが、一旦commitした後はどうでしょうか。ヒントはresetを使うということですが、どのように指定をしたら良いかわかりますか?
--mixedオプションを使う、が答えです。とはいえ、こんなのすぐには思い出せません。やりたいことはcommitを取り消したい、ですから。
こんなaliasが便利でしょう。
| |
git uncommit。うん、わかりやすくなりました。
git ignore
最後はこれです。前にも一度紹介しましたが
、みなさんは.gitignoreをどのように作成していますか?
色々と方法はあると思いますが、私はgitignore.io
が好きです。
しかし毎回ブラウザでアクセスしたり、URLをタイプするのは面倒です。
私は次のように設定しています。
| |
これで、git ignoreコマンドが使えるようになり、git ignore macos > .gitignoreの形で簡単に.gitignoreのテンプレートを作れるようになりました。
なお、普段私が使っている.gitconfigはGitHubで
公開しています。
