Gitflow: git flow init gagal pada repo kloning.

Dibuat pada 26 Apr 2011  ·  29Komentar  ·  Sumber: nvie/gitflow

Saya mungkin melakukan kesalahan ini, tetapi jika saya mencoba untuk mengkloning repo yang hanya memiliki cabang develop dan kemudian mencoba memulai fitur menggunakan git flow feature start foo maka ia memberitahu saya untuk menginisialisasi ulang aliran git . Menjalankan git flow init gagal karena cabang master tidak ada. Saya harus membuatnya secara manual agar berfungsi.

Ini tampaknya salah bagi saya. Di belakang layar, tentu saja, aliran git harus membuat cabang yang diperlukan atau hanya menangani mereka yang tidak ada di sana. Apakah ini terdengar seperti bug?

Berikut adalah contoh sesi:

oj<strong i="12">@mint</strong> ~/tmp $ git init test
Initialized empty Git repository in /home/oj/tmp/test/.git/
oj<strong i="13">@mint</strong> ~/tmp $ cd test
oj<strong i="14">@mint</strong> ~/tmp/test $ git flow init
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master] 
Branch name for "next release" development: [develop] 

How to name your supporting branch prefixes?
Feature branches? [feature/] 
Release branches? [release/] 
Hotfix branches? [hotfix/] 
Support branches? [support/] 
Version tag prefix? [] 
oj<strong i="15">@mint</strong> ~/tmp/test $ echo "foo" > test.txt
oj<strong i="16">@mint</strong> ~/tmp/test develop * $ git add test.txt
oj<strong i="17">@mint</strong> ~/tmp/test develop * $ git commit -m "testing"
[develop 9ebdd64] testing
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 test.txt
oj<strong i="18">@mint</strong> ~/tmp/test develop $ cd ..
oj<strong i="19">@mint</strong> ~/tmp $ git clone ./test test2
Cloning into test2...
done.
oj<strong i="20">@mint</strong> ~/tmp $ cd test2
oj<strong i="21">@mint</strong> ~/tmp/test2 develop $ git flow feature start foo
fatal: Not a gitflow-enabled repo yet. Please run "git flow init" first.
oj<strong i="22">@mint</strong> ~/tmp/test2 develop $ git flow init

Which branch should be used for bringing forth production releases?
   - develop
Branch name for production releases: [] master
Local branch 'master' does not exist.
oj<strong i="23">@mint</strong> ~/tmp/test2 develop $ git branch master
oj<strong i="24">@mint</strong> ~/tmp/test2 develop $ git flow init

Which branch should be used for bringing forth production releases?
   - develop
   - master
Branch name for production releases: [master] 

Which branch should be used for integration of the "next release"?
   - develop
Branch name for "next release" development: [develop] 

How to name your supporting branch prefixes?
Feature branches? [feature/] 
Release branches? [release/] 
Hotfix branches? [hotfix/] 
Support branches? [support/] 
Version tag prefix? [] 
oj<strong i="25">@mint</strong> ~/tmp/test2 develop $ git flow feature start foo
Switched to a new branch 'feature/foo'

Summary of actions:
- A new branch 'feature/foo' was created, based on 'develop'
- You are now on branch 'feature/foo'

Now, start committing on your feature. When done, use:

     git flow feature finish foo

oj<strong i="26">@mint</strong> ~/tmp/test2 feature/foo $ 

Terima kasih!
OJ

Komentar yang paling membantu

@kasterma terima kasih!

$ git flow init

Which branch should be used for bringing forth production releases?
   - develop
Branch name for production releases: [] 
Local branch '' does not exist.

$ git branch -a
* develop
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/master

Untuk mendapatkan cabang lokal:

$ git checkout master
$ git checkout develop
$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/master

Sekarang jalankan git flow init seperti biasa.

$ git flow init

Semua 29 komentar

Saya mengalami masalah yang sama persis. Saya belum membuat cabang master secara lokal (karena itu juga tampak salah bagi saya), tetapi saya belum menemukan solusi yang berbeda. Akan memposting lagi jika saya dapat menemukan sesuatu.

Sejauh ini, satu-satunya solusi yang saya temukan adalah membuat cabang master, meskipun tidak digunakan. Ini tidak menyenangkan, tetapi berhasil. Semoga segera ada perbaikannya!

Bukankah lebih bijaksana untuk melacak cabang master awal, misalnya
git checkout -t asal/master

Tentu... Jika ada! Saat membuat proyek baru, saya tidak mendorong dan
cabang master kosong, dan setelah mendorong pengembangan, tidak ada master di
github juga.

Jadi itu masih menjadi masalah.

Dikirim dari Windows Phone saya (ya Anda membacanya dengan benar) Dari: shuane
Dikirim: Sabtu, 2 Juli 2011 6:33
Kepada: [email protected]
Subjek: Re: [gitflow] git flow init gagal pada repo kloning. (#121)
Bukankah lebih bijaksana untuk melacak cabang master awal, misalnya
git checkout -t asal/master

Balas email ini secara langsung atau lihat di GitHub:
https://github.com/nvie/gitflow/issues/121#issuecomment -1486906

+1 masalah yang sama...

+1 masalah yang sama

Apa alasan filosofis di balik tidak ingin mendorong cabang master awal yang kosong (yang dibuat secara default) ketika repositori pertama kali dibuat?

Jika Anda tidak mendorong cabang master (seperti yang tampaknya tidak dilakukan oleh para komentator di sini), maka Anda tidak dapat menariknya menjadi klon. Git-flow benar dalam tidak mencoba membuat yang baru, jika Anda lupa memeriksa cabang master yang sudah ada sebelumnya dan kemudian akan mengalami konflik jika membuat cabang baru.

Tidak ada yang filosofis tentang ini. Ini ada hubungannya dengan alur kerja. Saya dapat mendorong cabang master, tetapi itu mungkin tidak menghentikan orang hanya mengambil cabang pengembangan.

Git-flow mungkin benar karena tidak mencoba membuat yang baru. Tapi bukannya gagal, kenapa tidak bertanya padaku? "Apakah Anda ingin saya membuat cabang baru atau haruskah saya melacak master jarak jauh untuk Anda?"

Pikiran?

Dalam kasus beberapa orang di sini tidak ada master jarak jauh karena mereka pikir akan salah untuk mendorong cabang kosong. Akan berguna bagi mereka untuk tampil

git push --all origin 

untuk mendorong cabang pengembangan dan master pada awalnya untuk memperbaiki bagian masalah itu.

Jika ada master jarak jauh, akan berguna untuk menanyakan pertanyaan itu pada saat itu, dan seharusnya tidak terlalu sulit bagi seseorang untuk diterapkan. Ini adalah fallback sederhana dan tidak akan memengaruhi alur kerja orang lain jika mereka membuat cabang master sendiri.

Inilah cara kami mengalami masalah ini. Sebagian besar pengembangan kami saat ini di git repo kami berada di cabang fitur dari pengembangan.

Saya telah menetapkan "develop" sebagai cabang default dari repositori di github. Saya ingin bekerja pada cabang fitur mesin baru. Saya mengkloning repo, melakukan "git flow init", dan gagal.

@lorin Ini menunjukkan ada banyak cara agar kita bisa digigit oleh ini. Sangat masuk akal bagi saya untuk memiliki git-flow menangani kasus ini, bahkan jika itu membutuhkan Prompt yang mengganggu, itu masih lebih baik daripada tidak bekerja sama sekali dan mengandalkan orang untuk mencari tahu sendiri.

Bagian dari masalah ini mungkin karena git mungkin hanya mengambil satu cabang ketika Anda menjalankan git clone, dan jika Anda mengatur cabang default GitHub menjadi sesuatu selain master, seperti yang saya lakukan sendiri, maka master tidak akan ada di sana sebagai referensi jarak jauh sampai Anda menjalankan git fetch Origin (saya pikir). Jika itu terjadi pada banyak orang, komit yang menambahkan perubahan untuk git-flow-init untuk mendukung pemeriksaan remote/Origin/master [1] mungkin perlu diperpanjang untuk menambahkan panggilan "git fetch Origin" sebelum memeriksa apakah tuannya ada.

[1] https://github.com/nvie/gitflow/commit/baf163e07d579bec3dd0e21d00297832e8848b8b

maka master tidak akan ada di sana sebagai referensi jarak jauh sampai Anda menjalankan git fetch Origin (saya pikir).

Operasi git clone secara harfiah mengkloning repositori seperti yang tercantum dalam progit boot , Anda dapat memutuskan kabel jaringan Anda dan melakukan:

git checkout -b master origin/master

git akan membuatkan Anda cabang lokal yang disebut master sebagai salinan Origin/master.

Catatan:

git checkout master

sudah cukup seolah-olah cabang tidak ditemukan tetapi ada cabang pelacakan yang digunakan.

@kasterma terima kasih!

$ git flow init

Which branch should be used for bringing forth production releases?
   - develop
Branch name for production releases: [] 
Local branch '' does not exist.

$ git branch -a
* develop
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/master

Untuk mendapatkan cabang lokal:

$ git checkout master
$ git checkout develop
$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/master

Sekarang jalankan git flow init seperti biasa.

$ git flow init

git config gitflow.branch.master master untuk mengatur cabang master Anda dengan benar ketika Anda tidak dapat "membatalkan" git flow init.

Sama di sini, saya memiliki masalah yang sama.

+1 masalah yang sama

+1

Baru saja mengalami ini. Garrrgh! +1

Pastikan untuk checkout master setidaknya sekali di repo lokal Anda.

Pasti. Terima kasih

Pada 18 Nov 2016 18:41, "Rob Moore" [email protected] menulis:

Pastikan untuk checkout master setidaknya sekali di repo lokal Anda.


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/nvie/gitflow/issues/121#issuecomment -261593726, atau bisukan
benang
https://github.com/notifications/unsubscribe-auth/AVuyNjaPvHr8jyO9Zmy1bzynI0mhm0F_ks5q_eNRgaJpZM4AD0E_
.

+1 Terjadi pada saya juga.

melakukan langkah-langkah berikut untuk memperbaiki masalah pada repo yang dikloning

 git checkout -b master
 git checkout develop
 git flow init

Proses CI TeamCity saya dapat membungkus build dalam _git flow release_ melalui skrip _ant_, tetapi saya belajar sepanjang jalan bahwa perlu untuk checkout master dan develop , dan kemudian menjalankan inisialisasi default sebelum membangun:

git flow init -d

Bukankah lebih bijaksana untuk melacak cabang master awal, misalnya
git checkout -t asal/master

bekerja untuk saya! Terima kasih

Solusinya adalah:
-git master kasir
-git checkout berkembang
-git aliran init

@andres310597 Itu mungkin jawaban untuk Anda. Itu tidak membantu pada repo saya.

➜  mobile_provider git:(develop) git checkout master   
Updating files: 100% (17199/17199), done.
Switched to branch 'master'
Your branch is up to date with 'origin/master'. 
➜  mobile_provider git:(master) ✗ git checkout develop
Updating files: 100% (17199/17199), done.
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.                                                            /3.1s
➜  mobile_provider git:(develop) git flow init       

Which branch should be used for integration of the "next release"?
   - bug/mstelly/prov/2449-leave-job-crash
   - master
   - poc/realmdb
Branch name for "next release" development: [develop]

Dan file .gitconfig tidak berisi referensi ke pengaturan aliran apa pun. Jadi saya tidak tahu di mana nilai-nilai itu disimpan.

Fakta bahwa masalah ini tetap terbuka selama 9 tahun mengatakan banyak tentang peluang kami untuk menyelesaikannya dalam waktu dekat. Namun, saya menerima default dan menerima pesan ini:
To force reinitialization, use: git flow init -f
Jadi, tidak rusak. Saya kira itu tidak didokumentasikan dengan baik. Seseorang mungkin harus menutup masalah ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat