最近のgit操作環境(2019/12/21時点)
最近、Gitの環境を整理して使いやすい環境になってきたので記事にしてまとめておこうと思います。
使用している OS は Ubuntu 18.04 です。
シェル
現在使用しているシェルは fish を利用しています。
fishは構文の強調表示、入力時に入力候補の表示、タブ補完などの機能をデフォルトで使用することができます。
インストール
下記コマンドを実行すれば完了です。
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish
デフォルトのシェルをfishに設定します。
chsh -s $(which fish)
ログインしなおせばシェルがfishに設定されているはずです。
ついでにfishのパッケージを管理するツール、fisherをインストールします。
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
リポジトリ操作
リポジトリの移動
私が設定しているGit関連の設定は以下の2つです
- cloneしたリポジトリへの移動
- ブランチ移動
この2つについて、キーバインドで完結できるように設定します。
まずはじめに fzf というコマンドラインで使用できる対話式のフィルタツールを使用します。
これと似たツールにpecoというものもありますが、fzfではあいまい検索ができるため、こちらを使っています。
ではインストールしていきます。インストールは以下のコマンドで行うことができます。
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install --no-bash --no-zsh --key-bindings --completion --update-rc
次に、にcloneしてきたリポジトリを管理する方法として ghq を使います。
ざっくりと説明するとcloneしてきたリポジトリを特定のディレクトリに配置して一括管理できるようにしてくれるツールです。
インストールについてはghqのリポジトリを参考にしてインストールします。
ghqにはghq list
というghqでcloneしたリポジトリをリスト表示する機能があるのですが、この機能とfzfのあいまい検索を連携させるためのプラグインをfisherでインストールします。
fisher add decors/fish-ghq
インストール後、Ctrl+Gでghq get
で取得したリポジトリがfzfのインターフェースでリストアップされあいまい検索と対話的選択でリポジトリを移動することができるようになります。
リポジトリのブランチ移動
ブランチの移動には gitコマンドとfzfコマンドを組み合わせて移動します。
fzfのwikiにあるfishでの例で紹介されているコマンドを使ってキーバインドでのブランチ移動を実現します。
function __git_branch -d "Fuzzy-find and checkout a branch"
git branch --all | grep -v HEAD | string trim | fzf | read -l result; and git checkout "$result"
commandline -f repaint
end
次に、先程作成したコマンドをキーバインドに紐付けます。
bind \cb '__git_branch'
if bind -M insert > /dev/null 2>/dev/null
bind -M insert \cb '__git_branch'
end
fishにログインしなおせばキーバインドの紐付けが完了しているはずなので、Ctrl+bでリポジトリの移動時のような画面で現在のリポジトリのブランチを対話的に切り替える事ができるようになります。
以上で、最近のgit操作今日の紹介は終わりにしようと思います。
これら使っていく中でよりよいものがあれば追記していこうと思います。
Author And Source
この問題について(最近のgit操作環境(2019/12/21時点)), 我々は、より多くの情報をここで見つけました https://qiita.com/tamago0224/items/94dd0391fbacb4422bda著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .