Skip to content

Instantly share code, notes, and snippets.

@daijinload
Last active May 22, 2022 11:43
Show Gist options
  • Save daijinload/ba03bd771f63e7909577e6da10ece76a to your computer and use it in GitHub Desktop.
Save daijinload/ba03bd771f63e7909577e6da10ece76a to your computer and use it in GitHub Desktop.

Gitの説明 第4弾 応用操作編

今回は、僕が実際に作業する時にやっている一連の動作とエイリアスについて話したいと思います。

第3弾で話していたブランチ戦略は、次回に持ち越ししようと思います。

エイリアスとコマンドライン関数について

エイリアスとコマンドライン関数、コマンドラインで扱う際に、別名にしたり、関数で複数コマンドをまとめて実行したり出来ます。

これらのコマンドを使うと捗りますよ。という話です。

また、自分で名前をつけられるので、オリジナルコマンドとなり、脳内変換が最小となるようなコマンドを作ることができます。

設定するファイル

bashの方は、.bashrc に追加していきます。 zshなどは、.zshrc になるので自分の使っている環境に応じて変えてください。

LinuxMintではデフォルトでは、bashになります。

命名について

エンジニアとして、daijinload名義で活動しているので、d-始まりとしました。

さらにGit系をまとめたかったので、d-g-という形のプレフィックスを付けてタブで補完するスタイルです。

僕は、上記としましたが、皆さんは自身の脳内負荷が一番下がる名称にしたり、テンションが上がる名称にすると良いと思います。

実際に設定するコマンド

# 最新のコードのみでcloneするコマンド(過去履歴が無いので軽い状態でcloneできる)
alias d-g-shallow-clone="git clone --depth 1 $2"

# サブモジュールを含むリポジトリをcloneするコマンド
alias d-g-sub-clone="git clone --recursive $2"

# cloneしたあとに、個人アカウントを設定するコマンド
alias d-g-account='git config --local user.name "daijinload" && git config --local user.email "daijinload@gmail.com" && git config --local core.sshCommand "ssh -i ~/.ssh/id_ed25519_daijinload"'

# pushするときに現在のブランチ名を取得してpushする
alias d-g-push='git push origin `git rev-parse --abbrev-ref HEAD`'
alias d-g-push-f='git push -f origin `git rev-parse --abbrev-ref HEAD`'

# addしてコミットしてpushする(よく使うので関数をエイリアス化)
alias d-g-save='d-g-save-func'

# addしてコミットしてpushする関数
function d-g-save-func() {
  git add --all
  git commit -m 'aaa'
  d-g-push
}

# タグとかブランチとか消し去ってクリーンな状態にするコマンド
function d-g-reset-func() {
  git add --all && git reset --hard
  git checkout main
  git tag | xargs git tag --delete && git fetch --prune --prune-tags
  git branch | xargs git branch -D
  git reset --hard origin/main
  git gc --force && rm -rf .git/gc.log
}

書き込みと反映は下記となります。

vi ~/.bashrc
source ~/.bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment