Basit git komutlarıyla manuel adımlar
Plan, tek tek dizinleri kendi depolarına ayırmak ve sonra birleştirmektir. Aşağıdaki manuel adımlar, geek-to-scriptleri değil, anlaşılması kolay komutları kullanmıştır ve ekstra N alt klasörlerinin başka bir tek depoda birleştirilmesine yardımcı olabilir.
bölmek
Orijinal deponuzun: orijinal_popo olduğunu varsayalım.
1 - Bölünmüş uygulamalar:
git clone original_repo apps-repo
cd apps-repo
git filter-branch --prune-empty --subdirectory-filter apps master
2 - Split libs
git clone original_repo libs-repo
cd libs-repo
git filter-branch --prune-empty --subdirectory-filter libs master
2'den fazla klasörünüz varsa devam edin. Şimdi iki yeni ve geçici git deponuz olacak.
Fethet birleştirme uygulamalar ve kütüphanelerini tarafından
3 - Yepyeni bir repo hazırlayın:
mkdir my-desired-repo
cd my-desired-repo
git init
Ve en az bir taahhütte bulunmanız gerekecek. Aşağıdaki üç satır atlanırsa, ilk repo, deponuzun kökünün hemen altında görünecektir:
touch a_file_and_make_a_commit # see user's feedback
git add a_file_and_make_a_commit
git commit -am "at least one commit is needed for it to work"
Geçici dosya işlendiğinde, merge
sonraki bölümdeki komut beklendiği gibi duracaktır.
Kullanıcının geri bildirimlerini alarak, gibi rastgele bir dosya eklemek yerine, a_file_and_make_a_commit
a .gitignore
veya README.md
benzeri eklemeyi seçebilirsiniz .
4 - Önce uygulama deposunu birleştir:
git remote add apps-repo ../apps-repo
git fetch apps-repo
git merge -s ours --no-commit apps-repo/master # see below note.
git read-tree --prefix=apps -u apps-repo/master
git commit -m "import apps"
Şimdi yeni deponuzda uygulamalar dizinini görmelisiniz . git log
tüm ilgili tarihsel taahhüt mesajlarını göstermelidir.
Not: Chris Git yeni sürümü (> = 2.9) için yapılan yorumlar, aşağıda belirtildiği gibi, belirtmeniz gerekir --allow-unrelated-histories
ilegit merge
5 - Sonraki libs repo'yu aynı şekilde birleştirin:
git remote add libs-repo ../libs-repo
git fetch libs-repo
git merge -s ours --no-commit libs-repo/master # see above note.
git read-tree --prefix=libs -u libs-repo/master
git commit -m "import libs"
Birleştirilecek 2'den fazla deponuz varsa devam edin.
Başvuru: Başka bir deponun alt dizinini git ile birleştir