On Wednesday, March 20, 2013 7:34:18 PM UTC+1, Ashutosh Kumar wrote:
> I am working on removing big file from my git repo and its history as
> well. But i am facing one issue ..
> here is my scenario
> 1. Create a repo
> 2. Commit and push a big file
> 3. Clone the repo in to test_clone1
> 4. Clone the repo in to test_clone2
> 5. Remove the big file’s history (commit and push) in test_clone1
I'm guessing you do this with filter-branch right?
> 6. Commit and push a test file in test_clone2
Here is the problem. Before you could push with test_clone2 you probably
had to pull first. Because the latest commit ID's did not match (because of
filter-branch), the 2 commits are merged together. And presto, the big-file
is merged back. Now push, and the big-file is back in the upstream branch.
This can be avoided, but you have to do that manually in every repo that
has the big file cloned. Do as follows:
Fetch the upstream changes (git fetch) (so you get the upstream branch
without the big file)
Reset the current branch to the upstream branch (git reset --hard
When there were already changes made that needed to be pushed, you have to
cherry-pick those changes. The easyest way to do this is via the gui.
Right-click a change to be cherry-picked, and select cherry-pick.
When done, you can push again. And repeat the steps for every clone.
7. Clone the repo in to test_clone3 — I believe the big file’s history will
> have come back.
Yep, its been merged in by test_clone2
> Do you have any idea, what we can do to neglect this issue if that git
> repo is using by many users?
For many users you have to tell them what to do to get rid of the big file.
Or hand them a script that could do it for them.
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/groups/opt_out.