2016-03-22 25 views
2

Aynı üst klasörde, üst klasörde birleştirmek istediğim iki dosya var ve mümkünse geçmişi minimum düzeyde tutmadan koru.Üst klasörde iki git reposunu bir repoda nasıl birleştirilir?

parent/ 
--code1/.git 
--code2/.git 

isterim:

parent/.git 
--code1 
--code2 

bunu yapmak ve her ikisi için geçmişini tutmak mümkün mü? Ya da en azından kod1 klasörü? Ne yazık ki, her iki tablodaki bazı aynı adlandırılmış dalları vardır. İdeal olan şey, her iki tarihin de .git tarihine sahip olması, ama kolay bir çözüm bulamamıştım (bir komplikasyon, gitmv'nin tüm dosyaların değişmesiyle birlikte önce/sonra farklılıkları göstermesidir, ancak bununla yaşayabiliriz.).

Yeni git depo oluşturmak ve bir başlangıç ​​yapmak taahhüt:

mkdir newRepository 
git init 
touch .gitignore 
git add .gitignore 
git commit .gitignore -m 'init' 

Fetch hem git geçmişini tutarken

cevap

0

Sadece bir yenisini iki farklı depo (birinci ve ikinci) birleştirmek istediğiniz ikinci

git remote add first pathTo/first 
git fetch first 
git merge first/master 

Getir ve birleştirme: ve birinci birleştirme

git remote add second pathTo/second 
git fetch second 
git merge second/master 
0

git pull yöntemini kullanabilmeniz gerekir.

Şunu yapın:

$ git init 
$ git pull code1 
$ git pull code2 

Bu .. (çatışmaları varsa düzeltmek) ..

ebeveyn git repo içine dalları çekin birleştirme Kabul birleştirme oluşturmalı, yapabileceğiniz aşağıdaki:

$ git checkout -b branchName 
$ git pull code1 branchName 

DÜZENLEME: halatutmak isteyen ile rol kaçırmıştıve code2 klasörler. Bu, iki havuzu birleştirdiğinizde gerçekten mümkün değildir: diyor ki, bunları bir araya getirerek, ana klasöre birleştirin. Kaynak dosyaları daha sonra code1 ve code2 numaralarına aktarmanız ve daha fazla taahhütte bulunmanız gerekir.

İlgili konular