The fastest counting lead times will almost certainly be with transplants and filter-branch , although you could be faster with the adjusted commit-tree rev-list sequence.
Rebase is designed to apply changes to other content. What you are doing here is preserving the contents and intentionally playing back the history of changes that created them, so almost all the rebases of the most tedious and slow work are lost.
The payload here, working with your photo,
echo `git rev-parse H; git rev-parse A` > .git/info/grafts git filter-branch -- --all
Documentation for git rev-parse and git filter-branch .sub>
The filter branch is very careful that it can be restored after a failure at any time, which is certainly safe .... but it is really useful when restoring by simply updating it again will not be faster and easier if everything goes south you. Failures that happen rarely and restart, usually cheap, the thing is to do a “safe”, but very fast operation, which will almost certainly work. For this, it's best to do it on tmpfs (the closest equivalent I know on Windows would be ramdisk, like ImDisk ), which will flash quickly and won't touch your main repo until you make sure you have results that are Do you want to.
So, on Windows, let's say T:\wip is in ramdisk, and note that the clone is not copying anything here. Also, after reading the git clone --shared , look at the insides of the clone to see the real effect, it's very simple.
There are enough possible options for what you might want to do, and what could be in your repo that could be useful for almost any of the options for these commands. The above testing will do what it says, but it may not be exactly what you want.
jthill
source share