How do I recover a file deleted from git using filter branch and pushed to remote?









up vote
0
down vote

favorite












I recently cleaned out several files from my repository using git filter branch. These are the instructions I followed : https://help.github.com/articles/removing-sensitive-data-from-a-repository/. After that I rebased my development branch so that new commits on that branch would not reintroduce any of the history. But in the process, I forgot that I had made changes to a file on this branch which I deleted on the filtered branch. So when I rebased the dev branch, that file disappeared. Is it possible to recover this file?



So far I have tried doing a git reflog to see which commit I could go back to that would have this file. When I used git reset --hard using an old commit hash, I get this error:



fatal: ambiguous argument '07a8efd': unknown revision or path not in the working tree


I believe this error could be because I had performed a filter branch and force pushed the filtered history back to remote. The cleanup instructions also had a



git reflog expire --expire=now --all


which also explains why that particular commit cannot be found.
Is there anything I can do in this situation to recover this file?



EDIT: Since the rebase, I have made several more changes to the dev branch, so it would be very helpful to find an option that doesn't involve letting go of all this work.










share|improve this question























  • I guess you could always check the original revisions (they should still be on reflog, right?)
    – eftshift0
    Nov 8 at 20:02










  • Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present?
    – eftshift0
    Nov 8 at 20:03










  • @eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing.
    – NSM
    Nov 8 at 20:05










  • @eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch
    – NSM
    Nov 8 at 20:06














up vote
0
down vote

favorite












I recently cleaned out several files from my repository using git filter branch. These are the instructions I followed : https://help.github.com/articles/removing-sensitive-data-from-a-repository/. After that I rebased my development branch so that new commits on that branch would not reintroduce any of the history. But in the process, I forgot that I had made changes to a file on this branch which I deleted on the filtered branch. So when I rebased the dev branch, that file disappeared. Is it possible to recover this file?



So far I have tried doing a git reflog to see which commit I could go back to that would have this file. When I used git reset --hard using an old commit hash, I get this error:



fatal: ambiguous argument '07a8efd': unknown revision or path not in the working tree


I believe this error could be because I had performed a filter branch and force pushed the filtered history back to remote. The cleanup instructions also had a



git reflog expire --expire=now --all


which also explains why that particular commit cannot be found.
Is there anything I can do in this situation to recover this file?



EDIT: Since the rebase, I have made several more changes to the dev branch, so it would be very helpful to find an option that doesn't involve letting go of all this work.










share|improve this question























  • I guess you could always check the original revisions (they should still be on reflog, right?)
    – eftshift0
    Nov 8 at 20:02










  • Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present?
    – eftshift0
    Nov 8 at 20:03










  • @eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing.
    – NSM
    Nov 8 at 20:05










  • @eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch
    – NSM
    Nov 8 at 20:06












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I recently cleaned out several files from my repository using git filter branch. These are the instructions I followed : https://help.github.com/articles/removing-sensitive-data-from-a-repository/. After that I rebased my development branch so that new commits on that branch would not reintroduce any of the history. But in the process, I forgot that I had made changes to a file on this branch which I deleted on the filtered branch. So when I rebased the dev branch, that file disappeared. Is it possible to recover this file?



So far I have tried doing a git reflog to see which commit I could go back to that would have this file. When I used git reset --hard using an old commit hash, I get this error:



fatal: ambiguous argument '07a8efd': unknown revision or path not in the working tree


I believe this error could be because I had performed a filter branch and force pushed the filtered history back to remote. The cleanup instructions also had a



git reflog expire --expire=now --all


which also explains why that particular commit cannot be found.
Is there anything I can do in this situation to recover this file?



EDIT: Since the rebase, I have made several more changes to the dev branch, so it would be very helpful to find an option that doesn't involve letting go of all this work.










share|improve this question















I recently cleaned out several files from my repository using git filter branch. These are the instructions I followed : https://help.github.com/articles/removing-sensitive-data-from-a-repository/. After that I rebased my development branch so that new commits on that branch would not reintroduce any of the history. But in the process, I forgot that I had made changes to a file on this branch which I deleted on the filtered branch. So when I rebased the dev branch, that file disappeared. Is it possible to recover this file?



So far I have tried doing a git reflog to see which commit I could go back to that would have this file. When I used git reset --hard using an old commit hash, I get this error:



fatal: ambiguous argument '07a8efd': unknown revision or path not in the working tree


I believe this error could be because I had performed a filter branch and force pushed the filtered history back to remote. The cleanup instructions also had a



git reflog expire --expire=now --all


which also explains why that particular commit cannot be found.
Is there anything I can do in this situation to recover this file?



EDIT: Since the rebase, I have made several more changes to the dev branch, so it would be very helpful to find an option that doesn't involve letting go of all this work.







git github git-filter-branch git-reset git-reflog






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 20:15

























asked Nov 8 at 19:58









NSM

11




11











  • I guess you could always check the original revisions (they should still be on reflog, right?)
    – eftshift0
    Nov 8 at 20:02










  • Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present?
    – eftshift0
    Nov 8 at 20:03










  • @eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing.
    – NSM
    Nov 8 at 20:05










  • @eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch
    – NSM
    Nov 8 at 20:06
















  • I guess you could always check the original revisions (they should still be on reflog, right?)
    – eftshift0
    Nov 8 at 20:02










  • Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present?
    – eftshift0
    Nov 8 at 20:03










  • @eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing.
    – NSM
    Nov 8 at 20:05










  • @eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch
    – NSM
    Nov 8 at 20:06















I guess you could always check the original revisions (they should still be on reflog, right?)
– eftshift0
Nov 8 at 20:02




I guess you could always check the original revisions (they should still be on reflog, right?)
– eftshift0
Nov 8 at 20:02












Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present?
– eftshift0
Nov 8 at 20:03




Oh! You cleaned your reflog. That's sad. Do you have a remote where the old branches could be present?
– eftshift0
Nov 8 at 20:03












@eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing.
– NSM
Nov 8 at 20:05




@eftshift0 : I think the git reflog expire command got rid of the original revisions. if I look in ./git/refs/original/refs/remotes/origin, there is nothing.
– NSM
Nov 8 at 20:05












@eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch
– NSM
Nov 8 at 20:06




@eftshift0 : I can get a super old version of my file, but that's not helpful for me because I made a bunch of changes to it on my dev branch
– NSM
Nov 8 at 20:06

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53215245%2fhow-do-i-recover-a-file-deleted-from-git-using-filter-branch-and-pushed-to-remot%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53215245%2fhow-do-i-recover-a-file-deleted-from-git-using-filter-branch-and-pushed-to-remot%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)