Tag Archives: vmsoft

Moving Files from one Git Repository to Another, Preserving History

Once upon a time all my Android apps and VMSoft related stuff were part of one big BitBucket git repository along with an issue tracker. This was a good idea when being an Android dev was just a hobby for the weekends and not my primary job.

Enough rambling 🙂 , this blog post is about moving files from one git repository to another and preserving your history.

Our goal is to move a single directory from one big Git repository to it’s own repository, we would like to preserve the commits history for that specific directory also.

In this example our big repo will  be called A and our new repo that will host it’s own subset of files will be called B

First filter the files from the big repo (A) by leaving only the ones you need:

git clone < repo A url >
cd < repo A directory >

Remove the “origin”

git remote rm origin

and filter A by < directory_to_move >. This action will go trough all the history and files and remove anything that’s not in < directory_to_move >.
More info on the inner workings of git filter-branch here.

git filter-branch --subdirectory-filter <directory_to_move> -- --all

filter-branch will leave you with the contents of < directory_to_move > in the root of repository A. Commit the changes and we can continue with the next step.

git add .
git commit

Moving to the new repository

Link repo A with repo B. The command below will make repository A branch of repository B.

git remote add repo-A-branch <git repository A directory>

Pull from the branch allowing unrelated histories

git pull repo-A-branch master --allow-unrelated-histories

and finally remove repo-A-branch

git remote rm repo-A-branch

That’s it, you now have your files in a new repository while preserving commits history.

I brought myself a Christmas present

After being upgraded to June 2017 iMac 27″ 5k Retina at work, and using it for a week, I decided it’s about time to purchase myself an iMac. My first impression with this machine is fantastic, everything just works (fast and smooth) and the 5K Retina is amazing.

Today (after being financially stable, after some time 🙂 ) I ordered 27″ iMac 5K Retina equipped with 4.2GHz Quad-Core Intel Core i7, 16GB 2400MHz DDR4 (will be upgraded to 32 or 64 GB later), 2TB Fusion Drive and Radeon Pro 580 with 8GB VRAM.

It will arrive around 20 Jan 2018. It will be a nice time to start developing apps for iOS and bring VMSoft to the app store as well. Also a lot of my clients were asking me when will I start developing for iOS.