LoginSignup
1
2

More than 3 years have passed since last update.

[macOS]Sourcetree+rbenvでpre-commitが動かない問題を解決する

Last updated at Posted at 2019-09-12

概要

  • CUIでのgit commitでは問題なくpre-commitが機能しているのに、みんな大好きでお馴染みSourcetreeではエラーになる問題を解決します
  • こんなこと今までなかったのですが、なぜか発生したのです

image.png

環境

  • macOS Mojave 10.14.6
  • ruby 2.6.3
  • rbenv 1.1.2
  • pre-commit 0.39.0
  • Sourcetree 3.2.1

前提

  • ターミナルでpre-commitの正常作動を伴ったgit commitが可能であること

調査方法

以下のプリントデバッグで出力を見てみました。

.git/hooks/pre-commit
#!/usr/bin/env sh

# 追記ここから
echo '@@@@@@@@@'
echo `ruby -v`
echo `which ruby`
echo `which rbenv`
echo '@@@@@@@@@'
exit 1
# 追記ここまで

# This hook has a focus on portability.
(略)

上記の状態からターミナルで確認。こちらは問題なしです。

$ git commit --amend
@@@@@@@@@
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
/Users/choripon/.rbenv/shims/ruby
/usr/local/bin/rbenv
@@@@@@@@@

しかし同じ環境にも関わらずSourcetreeでは、こうなります。
image.png

解決方法

.git/hooks/pre-commit
#!/usr/bin/env sh

# 追記
source ~/.bash_profile

# This hook has a focus on portability.
(略)
  • source ~/.bash_profile を追記しました
  • eval "$(rbenv init -)" を.bash_profileに書いていることが前提です。その他PATH等も影響していそうですが精査できてましぇん
  • もっと良い方法がある気がするのですが、今回はこれで凌ぐことにしまっす
1
2
0

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
1
2