Git 2.5+ (Q2 2015) akan secara resmi mendukung ini dengan perintah baru git checkout --to=<path>. Lihat jawaban saya di bawah ini .
VonC
2
Sebenarnya, perintahnya adalah git worktree add <path> [<branch>](Git 2.5 rc2)
VonC
Jawaban:
156
Git 2.5+ (Q2 2015) mendukung fitur ini!
Jika Anda memiliki repo git cool-app, cd to root ( cd cool-app), jalankan git worktree add ../cool-app-feature-A feature/A. Ini memeriksa cabang feature/Adi direktori khusus baru itu sendiri cool-app-feature-A,.
Itu menggantikan skrip yang lebih lama contrib/workdir/git-new-workdir, dengan mekanisme yang lebih kuat di mana pohon-pohon yang bekerja "terhubung" sebenarnya direkam dalam $GIT_DIR/worktreesfolder baru repo utama (sehingga bekerja pada OS apa pun, termasuk Windows).
Sekali lagi, setelah Anda mengkloning repo (dalam folder seperti /path/to/myrepo), Anda dapat menambahkan worktrees untuk cabang yang berbeda di jalur independen yang berbeda ( /path/to/br1, /path/to/br2), sambil menghubungkan pohon-pohon yang bekerja dengan sejarah repo utama (tidak perlu menggunakan --git-diropsi lagi)
skrip sederhana untuk membuat direktori kerja yang menggunakan symlink untuk menunjuk ke repositori yang ada. Hal ini memungkinkan memiliki cabang yang berbeda di direktori kerja yang berbeda tetapi semua dari repositori yang sama.
Ini akan melakukan git clone dan mengganti config (untuk "melihat" pada repo asli, jadi pull / push akan masuk ke repo "utama") pada dasarnya, tetapi itu cukup sederhana untuk menyajikan abstraksi dari bootstrap aktual.
Sampai sekarang, jawaban ini tidak benar. Harap perbarui jawabannya.
narendra-choudhary
-2
Tidak juga karena Git hanya mendukung memiliki satu salinan data repositori yang berfungsi dalam direktori repositori.
Jika Anda ingin komit / tarik ke repositori yang sama dengan dua copy pekerjaan yang berbeda, Anda bisa membuat repositori kosong dan mengkloningnya ke dua salinan yang berfungsi .
Setiap kali Anda menyelesaikan sesuatu, Anda cukup mendorong ke repositori telanjang "utama" .
git checkout --to=<path>
. Lihat jawaban saya di bawah ini .git worktree add <path> [<branch>]
(Git 2.5 rc2)Jawaban:
Git 2.5+ (Q2 2015) mendukung fitur ini!
Jika Anda memiliki repo git
cool-app
, cd to root (cd cool-app
), jalankangit worktree add ../cool-app-feature-A feature/A
. Ini memeriksa cabangfeature/A
di direktori khusus baru itu sendiricool-app-feature-A
,.Itu menggantikan skrip yang lebih lama
contrib/workdir/git-new-workdir
, dengan mekanisme yang lebih kuat di mana pohon-pohon yang bekerja "terhubung" sebenarnya direkam dalam$GIT_DIR/worktrees
folder baru repo utama (sehingga bekerja pada OS apa pun, termasuk Windows).Sekali lagi, setelah Anda mengkloning repo (dalam folder seperti
/path/to/myrepo
), Anda dapat menambahkan worktrees untuk cabang yang berbeda di jalur independen yang berbeda (/path/to/br1
,/path/to/br2
), sambil menghubungkan pohon-pohon yang bekerja dengan sejarah repo utama (tidak perlu menggunakan--git-dir
opsi lagi)Lihat lebih banyak di " Beberapa direktori kerja dengan Git? ".
Dan setelah Anda membuat worktree, Anda dapat memindahkan atau menghapusnya (dengan Git 2.17+, Q2 2018).
sumber
Lihatlah $ GIT_SRC_DIR / contrib / workdir / git-new-workdir .
sumber
Saya sarankan skrip kecil saya http://www.redhotchilipython.com/en_posts/2013-02-01-clone-per-feature.html
Ini akan melakukan git clone dan mengganti config (untuk "melihat" pada repo asli, jadi pull / push akan masuk ke repo "utama") pada dasarnya, tetapi itu cukup sederhana untuk menyajikan abstraksi dari bootstrap aktual.
sumber
Seperti kata teman kami, VonC lima bulan lalu, sekarang ada fitur baru sejak versi 2.5.x yang berfungsi. git worktree .
sumber
Git mendukung beberapa worktree secara bersamaan. Untuk informasi lebih lanjut, lihat:
Namun sangat sulit untuk mendukung beberapa worktree dengan ID. Misalnya, ini permintaan tambahan di JGet (eclipse ID) untuk mendukung worktree.
Jadi, Anda harus mengelola proyek secara manual (command line) dengan banyak masalah atau bekerja dengan satu meja kerja dalam sebuah IDE.
sumber
Tidak juga karena Git hanya mendukung memiliki satu salinan data repositori yang berfungsi dalam direktori repositori.
Jika Anda ingin komit / tarik ke repositori yang sama dengan dua copy pekerjaan yang berbeda, Anda bisa membuat repositori kosong dan mengkloningnya ke dua salinan yang berfungsi .
Setiap kali Anda menyelesaikan sesuatu, Anda cukup mendorong ke repositori telanjang "utama" .
Beberapa petunjuk:
man git-clone
git clone --bare
sumber
git-new-workdir
.