Bagaimana cara mentransfer repositori SVN dengan histori ke repositori Git yang baru?

Saya membaca tutorial Git, FAQ, Git - kursus kilat SVN, dll, dan mereka semua menjelaskannya dan ini, tetapi di mana pun Anda tidak dapat menemukan instruksi sederhana seperti:

Repositori SVN di: svn://myserver/path/to/svn/repos

Git repositori di: git://myserver/path/to/git/repos

 git-do-the-magic-svn-import-with-history \ svn://myserver/path/to/svn/repos \ git://myserver/path/to/git/repos 

Saya tidak berharap sesederhana itu, dan saya tidak berharap itu menjadi satu tim. Tapi saya berharap dia tidak akan mencoba menjelaskan apa pun, saya hanya akan mengatakan >

1312
17 сент. ditetapkan oleh Milan Babuškov 17 sept. 2008-09-17 05:04 '08 pada 5:04 2008-09-17 05:04
@ 30 jawaban

Keajaiban:

 $ git svn clone http://svn/repo/here/trunk 

Git dan SVN bekerja secara berbeda. Anda perlu mempelajari Git, dan jika Anda ingin melacak perubahan dari SVN ke atas, Anda perlu mempelajari git-svn . Ada contoh yang bagus di halaman manual git-svn :

 $ git svn --help 
465
17 сент. jawabannya diberikan jfm3 17 sept . 2008-09-17 05:08 '08 pada jam 5:08 2008-09-17 05:08

Buat file pengguna (mis. users.txt ) untuk memetakan pengguna SVN ke Git:

 user1 = First Last Name <email@address.com> user2 = First Last Name <email@address.com> ... 

Anda dapat menggunakan font satu baris ini untuk membuat templat dari repositori SVN yang ada:

 svn log --xml | grep "<author>" | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /' | tee users.txt 

SVN akan berhenti jika menemukan pengguna SVN yang hi>

Sekarang hapus data SVN dari repositori:

 git svn clone --stdlayout --no-metadata --authors-file=users.txt svn://hostname/path dest_dir-tmp 

Perintah ini akan membuat repositori Git baru di dest_dir-tmp dan mulai menarik keluar repositori SVN. Harap perhatikan bahwa bendera "--stdlayout" berarti Anda memiliki tag SVN / tata letak, cabang /, / SVN yang umum. Jika tata letak Anda berbeda, periksa opsi - --tags , - --branches , - --trunk (secara umum, git svn help ).

Semua protokol umum diizinkan: svn:// , http:// , https:// . URL harus menargetkan repositori dasar, misalnya http://svn.mycompany.com/myrepo/repository . Ini tidak termasuk /trunk , /tag atau /branches .

Catatan: setelah menjalankan perintah ini, sangat sering terlihat seperti operasi "membeku / membeku", dan cukup normal bahwa ia dapat macet lama setelah inisialisasi dari repositori baru. Pada akhirnya Anda akan melihat pesan log yang menunjukkan bahwa itu sedang dimigrasi.

Perhatikan juga bahwa jika Anda menghi>--no-metadata , Git akan menambahkan informasi tentang versi SVN yang sesuai ke pesan commit (mis. git-svn-id: svn://svn.mycompany.com/myrepo/<branchname/trunk>@<RevisionNumber> <Repository UUID> )

Jika nama pengguna tidak ditemukan, perbarui file users.txt , dan kemudian:

 cd dest_dir-tmp git svn fetch 

Anda mungkin harus mengu>

 git svn fetch 

Setelah selesai, Git akan memeriksa trunk SVN ke cabang baru. Cabang lain dikonfigurasikan sebagai remote control. Anda dapat melihat cabang SVN lainnya:

 git branch -r 

Jika Anda ingin menyimpan cabang jarak jauh lain di repositori Anda, Anda ingin membuat cabang lokal untuk masing-masing secara manual. (Lewati trunk / master.) Jika Anda tidak melakukan ini, cabang tidak akan dikloning pada >

 git checkout -b local_branch remote_branch # It OK if local_branch and remote_branch are the same name 

Tag diimpor sebagai cabang. Anda harus membuat cabang lokal, membuat tag dan menghapus cabang untuk menjadikannya sebagai tag di Git. Lakukan ini dengan tag "v1":

 git checkout -b tag_v1 remotes/tags/v1 git checkout master git tag v1 tag_v1 git branch -D tag_v1 

Salin repositori GIT -SVN ke repositori Git yang bersih:

 git clone dest_dir-tmp dest_dir rm -rf dest_dir-tmp cd dest_dir 

Cabang lokal yang dibuat sebelumnya dari cabang jarak jauh hanya akan disalin sebagai cabang jarak jauh ke repositori hasil kloning baru. (Lewati trunk / master.) Untuk setiap cabang yang ingin Anda pertahankan:

 git checkout -b local_branch origin/remote_branch 

Terakhir, hapus Git yang dihapus dari repositori bersih Anda, yang mengarah ke repositori sementara yang sekarang dihapus:

 git remote rm origin 
1383
19 окт. Jawabannya diberikan oleh cmcginty 19 Oktober. 2010-10-19 22:45 '10 jam 10:45 malam 2010-10-19 22:45

Pindahkan repositori Subversion ke repositori Git . Pertama, Anda perlu membuat file yang cocok dengan nama-nama penulis transaksi Subversion dengan anggota Git, katakan ~/authors.txt :

 jmaddox = Jon Maddox <jon@gmail.com> bigpappa = Brian Biggs <bigpappa@gmail.com> 

Kemudian Anda dapat mengunggah data Subversion ke repositori Git:

 mkdir repo  cd repo git svn init http://subversion/repo --no-metadata git config svn.authorsfile ~/authors.txt git svn fetch 

Jika Anda menggunakan Mac, Anda bisa mendapatkan git-svn dari MacPorts dengan menginstal git-core +svn .

Jika repositori subversi Anda berada di komputer yang sama dengan repositori Git yang Anda inginkan, maka Anda dapat menggunakan sintaks ini untuk >

 git svn init file:///home/user/repoName --no-metadata 
172
17 сент. jawabannya diberikan oleh Eugene Yokota 17 September. 2008-09-17 05:10 '08 pada 5:10 2008-09-17 05:10

Saya menggunakan skrip svn2git dan berfungsi seperti pesona! https://github.com/nirvdrum/svn2git

64
01 февр. Jawabannya diberikan oleh Thiago Leão Moreira 01 Feb. 2011-02-01 10:53 '11 pada 10:53 2011-02-01 10:53

Saya sarankan Anda bekerja dengan nyaman dengan Git sebelum mencoba menggunakan git -svn sepanjang waktu, yaitu. simpan SVN sebagai repo pusat dan gunakan Git secara lokal.

Namun, untuk migrasi sederhana dengan keseluruhan cerita, berikut adalah beberapa >

Inisialisasi repo lokal:

 mkdir project cd project git svn init http://svn.url 

Tandai seberapa jauh Anda ingin mulai mengimpor versi:

 git svn fetch -r42 

(atau hanya "git svn fetch" untuk semua revolusi)

Sebenarnya mengambil semuanya sejak:

 git svn rebase 

Anda dapat memeriksa hasil impor dengan Gitk. Saya tidak yakin itu berfungsi di Windows, ini berfungsi di OSX dan Linux:

 gitk 

Jika Anda memiliki repositori SVN yang dikloning secara lokal, Anda dapat mengklik repo Git tersentralisasi untuk menyederhanakan kolaborasi.

Pertama buat repo jarak jauh yang kosong (mungkin di GitHub ?):

 git remote add origin git@github.com:user/project-name.git 

Kemudian, secara opsional, sinkronkan cabang utama Anda sehingga operasi tarikan secara otomatis menghubungkan master jarak jauh dengan master lokal Anda ketika keduanya berisi materi baru:

 git config branch.master.remote origin git config branch.master.merge refs/heads/master 

Setelah itu, Anda mungkin tertarik untuk mencoba alat git_remote_branch Anda sendiri yang membantu Anda bekerja dengan cabang jarak jauh:

Posting penjelasan pertama: Git cabang jarak jauh

Pekerjaan lebih lanjut untuk versi terbaru: " Waktu git, bekerja dengan git_remote_branch "

54
17 сент. jawabannya diberikan webmat 17 September . 2008-09-17 21:20 '08 pada jam 9.20 malam 2008-09-17 21:20

Ada solusi baru untuk kelancaran migrasi dari Subversion ke Git (atau untuk penggunaan simultan): SubGit ( http://subgit.com/ ).

Saya sendiri sedang mengerjakan proyek ini. Kami menggunakan SubGit dalam repositori kami - beberapa rekan tim saya menggunakan Git dan beberapa Subversi, dan sejauh ini ini berfungsi dengan sangat baik.

Untuk beralih dari Subversion ke Git menggunakan SubGit, Anda perlu menjalankan:

 $ subgit install svn_repos ... TRANSLATION SUCCESSFUL 

Setelah itu, Anda akan mendapatkan repositori Git di svn_repos / .git dan Anda dapat mengkloningnya atau terus menggunakan Subversion dan repositori Git baru ini bersama-sama: SubGit akan memastikan bahwa keduanya selalu disinkronkan.

Jika repositori Subversion Anda berisi beberapa proyek, maka beberapa repositori Git akan dibuat di direktori svn_repos / git. Untuk mengatur siaran sebelum peluncuran, lakukan hal berikut:

 $ subgit configure svn_repos $ edit svn_repos/conf/subgit.conf (change mapping, add authors mapping, etc) $ subgit install svn_repos 

Dengan SubGit, Anda dapat beralih ke Git murni (bukan git -svn) dan mulai menggunakannya sambil mempertahankan Subversi sebanyak yang Anda perlukan (misalnya untuk alat bangunan yang sudah dikonfigurasi, misalnya).

Semoga ini bisa membantu!

26
24 нояб. Jawaban diberikan oleh Alexander Kitaev pada 24 November. 2011-11-24 23:12 '11 jam 11:12 malam 2011-11-24 23:12

Lihat manual git -svn resmi. Secara khusus, lihat di bagian "Contoh dasar":

Melacak dan berkontribusi ke seluruh proyek yang dikelola oleh Subversion (lengkap dengan trunk, tag, dan cabang):

 # Clone a repo (like git clone): git svn clone http://svn.foo.org/project -T trunk -b branches -t tags 
15
17 сент. Jawabannya diberikan oleh EfForEffort pada 17 September . 2008-09-17 20:09 '08 pukul 8:09 malam 2008-09-17 20:09
13
12 февр. Jawabannya diberikan kdahlhaus 12 Feb. 2011-02-12 00:17 '11 pada 0:17 2011-02-12 00:17

SubGit (melawan layar biru kematian)

 subgit import --svn-url url://svn.serv/Bla/Bla directory/path/Local.git.Repo 

Semua

+ Untuk memperbarui dari SVN, repositori Git dibuat oleh perintah pertama.

 subgit import directory/path/Local.git.Repo 

Saya menggunakan cara untuk > Tentu saja, Anda perlu pelatihan.
Tetapi Anda tidak pernah bisa menghentikan proses pengembangan.

Ini jalan saya.

Solusi saya terlihat seperti ini:

  • Migrasikan repositori SVN ke Git
  • Perbarui repositori git Anda sebelum memindahkan perintah ke .

Migrasi membutuhkan banyak waktu untuk repositori SVN yang besar.
Tetapi memperbarui migrasi yang telah selesai hanya beberapa detik.

Tentu saja, saya menggunakan SubGit , bu. git -svn membuat saya layar biru kematian . Terus-menerus. Dan git -svn membuatku bosan dengan kesalahan fatal git " filename too ".

>

1. Unduh SubGit

2. Siapkan perintah transfer dan perbarui.

Katakanlah kita melakukan ini untuk Windows (ini sepele untuk port Linux).
Dalam direktori bin SubGit (subgit-2.XX \ bin), buat dua file .bat.

Isi file / perintah untuk transfer:

 start subgit import --svn-url url://svn.serv/Bla/Bla directory/path/Local.git.Repo 

Perintah "mulai" adalah opsional di sini (Windows). Ini akan memungkinkan Anda untuk melihat kesalahan pada startup dan membiarkan shell terbuka setelah selesainya SubGit.

Anda dapat menambahkan parameter tambahan di sini , mirip dengan git -svn . Saya hanya menggunakan - domain-default myCompanyDomain.com untuk memperbaiki domain dari alamat email penulis SVN.
Saya memiliki struktur repositori SVN standar (trunk / branch / tag), dan kami tidak punya masalah dengan "pemetaan". Karena itu, saya tidak melakukan apa-apa lagi.

(Jika Anda ingin mentransfer tag, misalnya, cabang, atau SVN Anda untuk memiliki beberapa folder cabang / tag, Anda dapat menggunakan pendekatan Subgit yang lebih rinci)

Kiat 1 . Gunakan --minimal-revisi YourSvnRevNumber untuk cepat melihat bagaimana keadaannya (semacam debugging). Sangat berguna untuk melihat nama atau email penulis yang resmi.
Atau batasi kedalaman riwayat migrasi.

Kiat 2 . Migrasi dapat terganggu ( Ctrl + C ) dan dikembalikan dengan menjalankan file perintah / pembaruan berikut.
Saya tidak menyarankan melakukan ini untuk repositori besar. Saya mendapat "Pengecualian Java + Windows".

Kiat 3 . Lebih baik membuat salinan repositori Anda tanpa hasil.

Isi file / perintah untuk memperbarui:

 start subgit import directory/path/Local.git.Repo 

Anda dapat menjalankannya beberapa kali saat Anda menginginkan perintah terakhir untuk melakukan repositori git Anda.

Peringatan! Jangan sentuh gudang kosong Anda (misalnya, membuat cabang).
Anda akan mendapatkan kesalahan fatal berikut:

Kesalahan yang tidak dapat dipulihkan: tidak disinkronkan dan tidak dapat disinkronkan ... Terjemahan versi Subversion di Git membuat ...

3. Jalankan perintah / file pertama. Diperlukan waktu penyimpanan yang besar. 30 jam untuk penyimpanan sederhana saya.

Semua
Anda dapat memperbarui repositori Git dari SVN kapan saja, berapa kali dengan menjalankan file / perintah kedua. Dan sebelum Anda beralih tim pengembangan Anda ke git.
Butuh beberapa detik.



Ada tugas lain yang bermanfaat.

Klik repositori Git lokal ke repositori jarak jauh Git

Apakah ini kasusmu? Kami melanjutkan.

  • Kustomisasi konsol Anda

Jalankan:

 $ git remote add origin url://your/repo.git 
  1. Bersiaplah untuk awalnya mengirim repositori Git lokal besar Anda ke repositori jarak jauh.

Secara default, git Anda tidak dapat mengirim potongan besar. fatal: ujung jauh tiba-tiba menutup telepon

Jalankan untuk ini:

 git config --global http.postBuffer 1073741824 

524288000 - 500 MB 1073741824 - 1 GB, dll.

Perbaiki masalah sertifikat lokal. Jika server git Anda menggunakan sertifikat yang rusak.

Saya telah menonaktifkan sertifikat .

Selain itu, server Git Anda mungkin memiliki batasan jumlah permintaan yang perlu diperbaiki .

  1. Klik semua migrasi ke repositori jarak jauh Git.

Jalankan dengan git lokal:

 git push origin --mirror 

(git push origin '*: *' untuk versi git yang lebih lama)

Jika Anda mendapatkan yang berikut: kesalahan: Git tidak dapat muncul: tidak ada file atau direktori seperti itu ... Bagi saya, pemulihan penuh penyimpanan saya menyelesaikan kesalahan ini (30 jam). Anda dapat mencoba perintah berikut

 git push origin --all git push origin --tags 

Atau coba instal u> ( tidak berguna bagi saya ). Atau Anda dapat membuat cabang dari semua tag Anda dan mengkliknya. Atau, atau, atau ...

06 февр. jawabannya diberikan it3xl 06 Feb. 2015-02-06 14:12 '15 pada 14:12 2015-02-06 14:12

reposurgeon

Untuk kasus-kasus rumit, repositori Eric S. Raymond adalah alat pilihan. Selain SVN, ia mendukung banyak sistem kontrol versi lain melalui format fast-export , serta CVS . Penulis melaporkan konversi yang berhasil ke repositori kuno seperti Emacs dan FreeBSD .

Alat ini tampaknya menargetkan konversi yang hampir sempurna (misalnya, mengonversi SVN svn:ignore properti menjadi file .gitignore ) bahkan untuk tata letak repositori yang kompleks dengan riwayat yang panjang. Untuk banyak kasus, alat lain mungkin lebih mudah digunakan.

Sebelum mempelajari reposurgeon baris perintah reposurgeon , pastikan untuk membaca Panduan Migrasi DVCS yang sangat baik, yang akan membawa Anda melalui proses konversi >

7
20 марта '15 в 21:20 2015-03-20 21:20 jawabannya diberikan krlmlr 20 Maret '15 pukul 21.20 2015-03-20 21:20

Manual atlassian ini adalah salah satu yang terbaik yang saya temukan:

https://www.atlassian.com/git/migration

Alat ini - https://bitbucket.org/atlassian/svn-migration-scripts - juga sangat berguna untuk membuat author.txt Anda di antara hal-hal lain.

7
13 марта '14 в 16:58 2014-03-13 16:58 jawabannya diberikan oleh Andrew B pada 13 Maret '14 pukul 16:58 2014-03-13 16:58

Beberapa jawaban diperluas hanya menggunakan git, svn dan bash. Ini termasuk >

Pertama, gunakan skrip bash ini untuk memindai repo SVN Anda untuk orang yang berbeda yang berkontribusi membuat templat untuk file pemetaan:

 #!/usr/bin/env bash authors=$(svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq) for author in ${authors}; do echo "${author} = NAME <USER@DOMAIN>"; done 

Gunakan ini untuk membuat file authors di mana Anda mengasosiasikan nama pengguna svn dengan nama pengguna dan email yang ditetapkan oleh pengembang Anda, menggunakan properti git config user.name dan user.email (perhatikan bahwa untuk layanan seperti GitHub, ketersediaan surat yang sesuai).

Kemudian git svn klon repositori svn ke dalam repositori git, ceritakan tentang pertandingan:

git svn clone --authors-file=authors --stdlayout svn://example.org/Folder/projectroot

Ini bisa memakan waktu yang sangat lama, karena git svn secara individual akan memeriksa setiap revisi untuk setiap tag atau cabang yang ada. (perhatikan bahwa tag di SVN benar-benar cabang, sehingga berakhir seperti itu di Git). Anda dapat mempercepatnya dengan menghapus tag dan cabang lama di SVN yang tidak Anda butuhkan.

Melakukan ini di server di jaringan yang sama atau di server yang sama juga dapat mempercepatnya. Selain itu, jika karena alasan apa pun proses ini terganggu, Anda dapat melanjutkan menggunakannya

git svn rebase --continue

Dalam banyak kasus Anda ada di sini. Tetapi jika repo SVN Anda memiliki tata letak yang tidak konvensional, di mana Anda hanya memiliki direktori di SVN yang ingin Anda masukkan ke dalam cabang git, Anda dapat mengambil beberapa >

Yang paling sederhana adalah dengan hanya membuat repo baru pada SVN di server Anda yang sesuai dengan perjanjian, dan gunakan svn copy untuk menempatkan direktori Anda di tu>git svn hanya menolak untuk memeriksa.

Anda juga dapat melakukan ini menggunakan git. Untuk git svn clone cukup gunakan direktori yang ingin Anda masukkan ke dalam cabang git.

Setelah diluncurkan

 git branch --set-upstream master git-svn git svn rebase 

Harap dicatat bahwa ini membutuhkan git 1.7 atau lebih tinggi.

6
25 сент. Jawabannya diberikan kepada penganut aliran politik 25 Sep 2013-09-25 12:23 '13 pada 12:23 siang 2013-09-25 12:23

Anda perlu menginstal

 git git-svn 

Disalin dari tautan ini http://john.albin.net/git/convert-subversion-to-git .

1. Dapatkan daftar semua pengalih Subversion

Subversi cukup mencantumkan nama pengguna untuk setiap komit. Komit Git memiliki banyak data yang lebih kaya, tetapi untuk pembuat fiksasinya yang paling sederhana, Anda harus menentukan nama dan alamat email. Secara default, alat git -svn hanya akan mencantumkan nama pengguna SVN di bidang penulis dan surel. Tetapi dengan sedikit kerja, Anda dapat membuat daftar semua pengguna SVN dan apa yang cocok dengan nama dan alamat Git mereka. Daftar ini dapat digunakan oleh git -svn untuk mengonversi nama svn sederhana menjadi commiter Git yang sesuai.

Dari akar pengujian Subversion lokal Anda, jalankan perintah berikut:

 svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt 

Ini akan menangkap semua pesan log, merebut nama pengguna, menghi>

 jwilkins = jwilkins <jwilkins> 

dalam hal ini:

 jwilkins = John Albin Wilkins <johnalbin@example.com> 

2. Klon repositori Subversion dengan git -svn

 git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt --stdlayout ~/temp 

Ini akan menjadi transformasi git -svn standar (menggunakan file author-transform.txt yang dibuat pada >

3. Konversi svn: abaikan properti sebelum .gitignore

Jika repo svn Anda menggunakan svn: abaikan properti, Anda dapat dengan mudah mengubahnya menjadi file .gitignore menggunakan:

 cd ~/temp git svn show-ignore > .gitignore git add .gitignore git commit -m 'Convert svn:ignore properties to .gitignore.' 

4. Dorong repositori ke Git repositori kosong

Pertama, buat repositori kosong dan buat cabang respons defaultnya yaitu "trunk".

 git init --bare ~/new-bare.git cd ~/new-bare.git git symbolic-ref HEAD refs/heads/trunk 

Kemudian pindahkan repositori temp ke repositori terbuka baru.

 cd ~/temp git remote add bare ~/new-bare.git git config remote.bare.push 'refs/remotes/*:refs/heads/*' git push bare 

Sekarang Anda dapat menghapus repositori ~ / temp dengan aman.

5. Ganti nama cabang "trunk" menjadi "master"

Cabang pengembangan utama Anda akan disebut "trunk", yang sesuai dengan nama yang ada di Subversion. Anda ingin mengganti nama ke cabang standar Git menggunakan:

 cd ~/new-bare.git git branch -m trunk master 

6. Membersihkan Cabang dan Tag

git -svn membuat semua tag Subversi menjadi cabang Git yang sangat singkat dalam bentuk "tag / nama". Anda ingin mengubah semua cabang ini menjadi tag Git yang sebenarnya menggunakan:

 cd ~/new-bare.git git for-each-ref --format='%(refname)' refs/heads/tags | cut -d / -f 4 | while read ref do git tag "$ref" "refs/heads/tags/$ref"; git branch -D "tags/$ref"; done 

>

6
22 июля '14 в 7:36 2014-07-22 07:36 jawabannya diberikan oleh Valarpirai pada 22 Juli '14 jam 7:36 2014-07-22 07:36

Sekarang GitHub memiliki fungsi impor dari repositori SVN . Saya tidak pernah mencobanya.

5
21 сент. jawabannya diberikan webmat 21 september . 2008-09-21 05:15 '08 pada 5:15 pagi 2008-09-21 05:15

Kita dapat menggunakan perintah git svn clone seperti yang ditunjukkan di bawah ini.

  • svn log -q <SVN_URL> | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors.txt

Tim Di Atas akan membuat file penulis dari komitmen SVN.

  • svn log --stop-on-copy <SVN_URL>

Perintah di atas akan memberi Anda nomor versi pertama ketika proyek SVN Anda dibuat.

  • git svn clone -r<SVN_REV_NO>:HEAD --no-minimize-url --stdlayout --no-metadata --authors-file authors.txt <SVN_URL>

Perintah di atas akan membuat repositori Git dalam mode lokal.

Masalahnya adalah itu tidak akan mengkonversi cabang dan tag untuk push. Anda harus melakukannya secara manual. Misalnya, di bawah ini untuk cabang:

 $ git remote add origin https://github.com/pankaj0323/JDProjects.git $ git branch -a * master remotes/origin/MyDevBranch remotes/origin/tags/MyDevBranch-1.0 remotes/origin/trunk $$ git checkout -b MyDevBranch origin/MyDevBranch Branch MyDevBranch set up to track remote branch MyDevBranch from origin. Switched to a new branch 'MyDevBranch' $ git branch -a * MyDevBranch master remotes/origin/MyDevBranch remotes/origin/tags/MyDevBranch-1.0 remotes/origin/trunk $