Saya telah memeriksa repositori svn menggunakan git svn. Sekarang saya perlu checkout salah satu cabang dan melacaknya. Mana cara terbaik untuk melakukannya?
Saya telah memeriksa repositori svn menggunakan git svn. Sekarang saya perlu checkout salah satu cabang dan melacaknya. Mana cara terbaik untuk melakukannya?
Jawaban:
Buat klon git yang mencakup trunk, tag, dan cabang Subversion Anda
git svn clone http://svn.example.com/project -T trunk -b branch -t tag
The --stdlayout
pilihan adalah jalan pintas baik jika repositori Subversion Anda menggunakan struktur khas:
git svn clone http://svn.example.com/project --stdlayout
Buat repositori git Anda mengabaikan semua yang dilakukan repo subversi:
git svn tampilkan-abaikan >> .git / info / kecualikan
Anda sekarang dapat melihat semua cabang Subversion di sisi git:
cabang git -r
Katakanlah nama cabang di Subversion adalah waldo
. Di sisi git, Anda akan lari
git checkout -b waldo-svn remote / waldo
Sufiks -svn adalah untuk menghindari peringatan dari formulir
peringatan: refname 'waldo' ambigu.
Untuk memperbarui cabang git waldo-svn
, jalankan
git checkout waldo-svn git svn rebase
Untuk menambahkan cabang Subversion ke klon khusus trunk, modifikasi repositori git Anda .git/config
mengandung
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =: refs / remote / mybranch
Anda harus mengembangkan kebiasaan berlari
git svn fetch --fetch-all
untuk memperbarui semua yang git svn
dianggap sebagai remote terpisah. Pada titik ini, Anda dapat membuat dan melacak cabang seperti di atas. Misalnya, untuk membuat cabang git yang sesuai dengan mybranch, jalankan
git checkout -b mybranch-svn remote / mybranch
Untuk cabang tempat Anda berniat git svn dcommit
, pertahankan riwayatnya linier!
Anda mungkin juga tertarik membaca jawaban untuk pertanyaan terkait .
--prefix=svn/
saat melakukan git-svn init
atau git-svn clone
) Ini akan menghilangkan kebutuhan untuk menambahkan akhiran pada cabang lokal Anda.
show-ignore
kesalahan keluar, cobagit svn show-ignore -i trunk