Artikel ini mencakup ini dengan relatif baik:
https://github.com/rrrene/gitscm-next/blob/master/app/views/blog/progit/2010-04-11-environment.markdown
Pada dasarnya jika Anda bekerja dari baris perintah, ini lebih sederhana dari yang Anda duga. Misalkan Anda menginginkan 2 git repo:
.gitone
.gittwo
Anda dapat mengaturnya seperti ini:
git init .
mv .git .gitone
git init .
mv .git .gittwo
Anda dapat menambahkan file dan melakukan itu hanya ke satu file seperti ini:
git --git-dir=.gitone add test.txt
git --git-dir=.gitone commit -m "Test"
Jadi opsi untuk git muncul terlebih dahulu, lalu perintahnya, lalu opsi perintah git. Anda dapat dengan mudah menggunakan perintah git alias:
#!/bin/sh
alias gitone='git --git-dir=.gitone'
alias gittwo='git --git-dir=.gittwo'
Jadi, Anda dapat berkomitmen pada salah satunya dengan sedikit mengetik, seperti gitone commit -m "blah"
.
Apa yang tampak lebih rumit adalah pengabaian. Karena .gitignore biasanya berada di root proyek, Anda harus menemukan cara untuk mengalihkannya juga tanpa mengalihkan seluruh root. Atau, Anda dapat menggunakan .git / info / exclude, tetapi semua pengabaian yang Anda lakukan tidak akan dilakukan atau didorong - yang dapat mengacaukan pengguna lain. Orang lain yang menggunakan repo mungkin mendorong .gitignore, yang dapat menyebabkan konflik. Tidak jelas bagi saya cara terbaik untuk menyelesaikan masalah ini.
Jika Anda lebih suka alat GUI seperti TortoiseGit, Anda juga akan menghadapi beberapa tantangan. Anda dapat menulis skrip kecil yang mengganti nama .gitone atau .gittwo menjadi .git untuk sementara agar asumsi alat ini terpenuhi.
git subtree
akan menyelesaikan pekerjaan.