threads / discuss / 23634

How to undo changes?

Subject: How to undo changes?

## tl;dr

2 messages between Apr 29, 2010 and Apr 29, 2010.

replies: 1people: 2as markdown or json

Lin Mac· Apr 29, 2010, 01:08 UTC · lore
Hi,

1. I have multiple files modified, but would like to undo the changes in one of the changed files. "git reset --hard" do not accept single files. So I used to use "git diff <file> | patch -p X", but X cannot be know until I checked the patch and know the path relationship. Is there other way to do it?

2. Sometimes I delete old unused branches with "git branch -D <branch>", but I just realized theren't a reflog log for such operation. If the branch is the only reference to the logs, deleting the branch makes the commits become dangling commits. How could I recover those commit?

I run into situation 1 from time to time. Luckily I have never ran into situation 2, but would like to know the recovery ways. Thanks in advance.

Best Regards, Mac Lin

Erik Faye-Lund· Apr 29, 2010, 01:29 UTC · re: Lin Mac · lore

Re: How to undo changes?

On Thu, Apr 29, 2010 at 3:08 AM, Lin Mac <mkl0301@gmail.com> wrote:
Show 8 quoted lines
> Hi,
>
> 1.
> I have multiple files modified, but would like to undo the changes in
> one of the changed files.
> "git reset --hard" do not accept single files. So I used to use "git
> diff <file> | patch -p X", but X cannot be know until I checked the
> patch and know the path relationship. Is there other way to do it?
git checkout -- <file>
Show 8 quoted lines
>
> 2.
> Sometimes I delete old unused branches with "git branch -D <branch>",
> but I just realized theren't a reflog log for such operation. If the
> branch is the only reference to the logs, deleting the branch makes
> the commits become dangling commits.  How could I recover those
> commit?
>
Run "git fsck --lost-found" to list the SHA-1s of all dangling objects.

But make sure you've taken a backup of the repo first, just in case something gets messed up further ;)

-- 
Erik "kusma" Faye-Lund

← back to recent threads