Saya punya repositori git yang melacak repositori svn. Saya mengkloningnya menggunakan --stdlayout
.
Saya membuat cabang lokal baru via git checkout -b foobar
Sekarang saya ingin cabang ini berakhir di …/branches/foobar
repositori svn.
Bagaimana saya melakukannya?
(potongan banyak teks investigasi. lihat riwayat pertanyaan jika Anda peduli)
Jawaban:
Saya tahu pertanyaan ini telah dijawab beberapa waktu yang lalu, tetapi setelah membacanya, saya mungkin membantu menambahkan contoh perintah cabang git svn tertentu dan menghubungkannya dengan alur kerja yang khas.
Seperti jawab kch, gunakan
git svn branch
. Berikut ini adalah contoh lengkapnya, (perhatikan-n
untuk uji coba kering):Jika ini berjalan dengan baik, server membalas dengan jawaban seperti ini:
Dan tanpa
-n
saklar server mungkin menambahkan sesuatu seperti:Bagian terbaiknya, sekarang Anda dapat membuat cabang lokal berdasarkan cabang jarak jauh Anda seperti:
Yang berarti "memeriksa dan membuat cabang lokal bernama
auth_bug
dan membuatnya mengikuti cabang jarak jauh (parameter terakhir)auth_bug
Uji bahwa cabang lokal Anda berfungsi pada cabang jarak jauh itu dengan menggunakan
dcommit
dengan--dry-run
(-n
):Dan server SVN harus membalas dengan nama cabang baru:
sumber
git co
dengangit checkout
sehingga contoh tersebut dapat bekerja untuk siapa sajagit-svn branch
perintah - Anda harus online untuk membuat cabang baru dengan cara ini. Anda dapat melakukan hal berikut secara offline: 1.git checkout -b foobar
2. hack-hack-hack 3git commit -m "Done foobar"
.. Dan ketika online dorong perubahan ini dengan melakukan 1.git svn branch foobar
2.git branch --set-upstream foobar remotes/foobar
3git svn dcommit
..git checkout -b foobar-new remotes/foobar
. 3.git checkout foobar
4.git rebase foobar-new
5. Untuk menguji untuk memastikan cabang sekarang berkomitmen untuk cabang svn.git svn dcommit --dry-run
6. Akhirnya benar-benar melakukangit svn dcommit
7. Hapus cabang tempgit branch -D foobar-new
pada git v1.6.1,
git svn branch
tersedia.Dari git docs:
Versi git sebelumnya tidak menyediakan cara untuk membuat cabang svn.
sumber
@kch Saya baru saja (7 Desember 2008) mengkompilasi tag git v1.6.1-rc1 dan berisi perintah cabang git svn dan dokumentasi untuknya. Jadi rilis v1.6.1 dari git seharusnya (semoga) berisi perintah ini.
sumber