আপনি যদি বিদ্যমান শাখাগুলি সংরক্ষণ এবং ইতিহাস প্রতিশ্রুতিবদ্ধ হতে সন্ধান করেন তবে আমার পক্ষে কাজ করার একটি উপায় এখানে।
git clone --mirror https://github.com/account/repo.git cloned-repo
cd cloned-repo
git push --mirror {URL of new (empty) repo}
# at this point only remote cloned-repo is correct, local has auto-generated repo structure with folders such as "branches" or "refs"
cd ..
rm -rf cloned-repo
git clone {URL of new (empty) repo}
# only now will you see the expected user-generated contents in local cloned-repo folder
# note: all non-master branches are avaialable, but git branch will not show them until you git checkout each of them
# to automatically checkout all remote branches use this loop:
for b in `git branch -r | grep -v -- '->'`; do git branch --track ${b##origin/} $b; done
এখন, ধরুন আপনি কিছু সময়ের জন্য উত্স এবং গন্তব্য রেপগুলি সিঙ্কে রাখতে চান। উদাহরণস্বরূপ, বর্তমান রিমোট রেপোর মধ্যে এখনও ক্রিয়াকলাপ রয়েছে যা আপনি নতুন / প্রতিস্থাপন রেপোতে আনতে চান।
git clone -o old https://github.com/account/repo.git my-repo
cd my-repo
git remote add new {URL of new repo}
সর্বশেষ আপডেটগুলি টেনে আনার জন্য (ধরে নেওয়া যাক আপনার কোনও স্থানীয় পরিবর্তন নেই):
git checkout {branch(es) of interest}
git pull old
git push --all new
এনবি: আমার কাছে এখনও সাবমডিউল ব্যবহার করা হয়নি, তাই আপনার কাছে যদি আরও কোন পদক্ষেপের প্রয়োজন হয় তবে আমি জানি না I