Bug tersebut diekspos sebagai berikut:
$ git flow init # accept the defaults
$ echo "foo" > foo
$ git add . && git commit -m 'Add foo' # on develop
$ git flow release start 0.1.0
$ echo "bar" > bar
$ git add . && git commit -m 'Add bar' # on release/0.1.0
$ git flow release finish -m "Test release" 0.1.0
flags:FATAL the available getopt does not support spaces in options
Spasi pada flag -m
berisi spasi yang tampaknya tidak dapat ditangani oleh getopt Mac OS X dengan benar.
Apakah ada solusi untuk masalah ini? Saya sedang mengerjakan OSX dan mencari solusinya. Terima kasih sebelumnya.
Karena saya sangat bodoh, saya menggunakan textmate sebagai editor git saya. Saya beralih ke editor terminal (vi, pico, nano, dll) dan tidak memiliki masalah lagi.
Ini mungkin terjadi karena bug di # 50 yang mungkin diperbaiki oleh # 160 dengan ekspansi variabel.
Yang ini tetap terbuka dan tampaknya terkait dengan bahaya khusus Mac OS X yang terkait dengan shFlags.
Lihat permintaan tarik saya https://github.com/nvie/gitflow/pull/223 untuk solusi bagi masalah ini. Saya menerapkan opsi yang memetakan ke 'git tag -F', membaca pesan dari file dan menghindari kebutuhan untuk menggunakan editor interaktif.
Saya tahu saya terlambat ke pesta ini, tetapi di bawah ini adalah instruksi singkat untuk metode yang saya dan kolega saya gunakan untuk menginstal git-flow di OS X tanpa masalah yang dijelaskan di atas dan di # 50. Metode ini bermuara pada dua hal:
Petunjuk ini dikutip dari dokumen yang lebih panjang yang berisi alternatif penginstalan lain yang menggunakan Homebrew, tetapi tidak ada yang benar-benar disebutkan di sini. Mereka semua melibatkan beberapa tingkat bodging karena bug atau keanehan, yang tampaknya tidak diperlukan karena metode yang lebih sederhana tersedia. Saya akan dengan senang hati memberikan detail bagi yang penasaran. Jika dan saat rilis baru git-flow meresap ke Homebrew, ini semua seharusnya tidak diperlukan.
Instruksi:
Unduh dan instal git-flow terbaru dengan shflag terbaru:
$ git clone git://github.com/nvie/gitflow.git
$ cd gitflow
$ git svn clone -r HEAD http://shflags.googlecode.com/svn/trunk/source/1.0 shFlags
$ sudo make install
Anda juga bisa melakukannya tanpa git:
$ curl -L https://github.com/nvie/gitflow/tarball/develop | tar --exclude '*shFlags' -s '/nvie-\(gitflow\)-[a-z0-9]\{1,\}/\1/' -xvf -
$ cd gitflow
$ curl -L -o gitflow-shFlags http://shflags.googlecode.com/svn/trunk/source/1.0/src/shflags
$ sudo make install
Instal gnu-getopt (dengan Homebrew) dan konfigurasikan shflag untuk menggunakannya:
$ brew install gnu-getopt
$ echo 'export FLAGS_GETOPT_CMD="$(brew --prefix gnu-getopt)/bin/getopt"' >> ~/.bashrc
Mulailah sesi terminal baru untuk memastikan shell login Anda mengambil FLAGS_GETOPT_CMD:
$ echo $FLAGS_GETOPT_CMD
yang seharusnya mengembalikan sesuatu seperti: /usr/local/Cellar/gnu-getopt/1.1.4/bin/getopt
Ini 2017
dan banyak hal telah berubah.
http://shflags.googlecode.com/svn/trunk/source/1.0/src/shflags
telah pindah dan mengembalikan 404.
Alih-alih, gunakan https://raw.githubusercontent.com/nvie/shFlags/master/src/shflags
git-flow
dengan shFlags
$ curl -L https://github.com/nvie/gitflow/tarball/develop | tar --exclude '*shFlags' -s '/nvie-\(gitflow\)-[a-z0-9]\{1,\}/\1/' -xvf -
$ cd gitflow
$ curl -L -o gitflow-shFlags https://raw.githubusercontent.com/nvie/shFlags/master/src/shflags
$ sudo make install
Instal gnu-getopt (dengan Homebrew) dan konfigurasikan shflag untuk menggunakannya:
$ brew install gnu-getopt
$ echo 'export FLAGS_GETOPT_CMD="$(brew --prefix gnu-getopt)/bin/getopt"' >> ~/.bashrc
Mulailah sesi terminal baru untuk memastikan shell login Anda mengambil FLAGS_GETOPT_CMD:
$ echo $FLAGS_GETOPT_CMD
yang seharusnya menghasilkan sesuatu seperti: /usr/local/Cellar/gnu-getopt/1.1.4/bin/getopt
.
Coba lagi apa pun yang Anda coba lakukan dengannya.
bagaimana jika saya melakukan langkah-langkah itu dan gema tidak menunjukkan apa-apa? tetapi .bashrc diperbarui, terminal dimuat ulang.
MacBook-Pro-mac-2: ~ loyi $ echo $ FLAGS_GETOPT_CMD
MacBook-Pro-mac-2: ~ loyi $
@kahurangitama bisa terjadi jika Anda menggunakan Shell lain, seperti Zsh. http://zpalexander.com/switching-to-zsh/
Saya harus mengganti perintah yang disebutkan di atas dengan yang ini:
echo 'export FLAGS_GETOPT_CMD="$(brew --prefix gnu-getopt)/bin/getopt"' >> ~/.zshrc
(bukan ~/.bashrc
)
Solusi saya untuk memperbaiki.
Saya sudah menginstal git-flow
, bukan git-flow-avh
. Jadi saya menjalankan hal-hal ini secara manual untuk menyelesaikannya:
brew install git-flow-avh
brew link git-flow-avh -f
git-flow-avh
tidak mengharuskan Anda menyiapkan FLAGS_GETOPT_CMD
lagi.
Pengembalian: 4 paket terhubung ... dll ...
Seperti yang dikatakan @heymartinadams dengan ZSH shell, inilah cara saya untuk mencegah konflik. Terus setup .zsh pengaturan seperti itu akan membantu Anda tidak perlu menyentuh .zshrc
.bashrc
source ~/.profile
.zshrc
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Semoga setiap pria menemukan topik ini bermanfaat!
Komentar yang paling membantu
Saya tahu saya terlambat ke pesta ini, tetapi di bawah ini adalah instruksi singkat untuk metode yang saya dan kolega saya gunakan untuk menginstal git-flow di OS X tanpa masalah yang dijelaskan di atas dan di # 50. Metode ini bermuara pada dua hal:
Petunjuk ini dikutip dari dokumen yang lebih panjang yang berisi alternatif penginstalan lain yang menggunakan Homebrew, tetapi tidak ada yang benar-benar disebutkan di sini. Mereka semua melibatkan beberapa tingkat bodging karena bug atau keanehan, yang tampaknya tidak diperlukan karena metode yang lebih sederhana tersedia. Saya akan dengan senang hati memberikan detail bagi yang penasaran. Jika dan saat rilis baru git-flow meresap ke Homebrew, ini semua seharusnya tidak diperlukan.
Instruksi:
Unduh dan instal git-flow terbaru dengan shflag terbaru:
Anda juga bisa melakukannya tanpa git:
Instal gnu-getopt (dengan Homebrew) dan konfigurasikan shflag untuk menggunakannya:
Mulailah sesi terminal baru untuk memastikan shell login Anda mengambil FLAGS_GETOPT_CMD:
yang seharusnya mengembalikan sesuatu seperti: /usr/local/Cellar/gnu-getopt/1.1.4/bin/getopt