# How to undo changes?

2 messages from 2010-04-29 to 2010-04-29. Participants: Lin Mac, Erik Faye-Lund.
Thread: https://gitlist.dev/t/23634

## Lin Mac, 2010-04-29 01:08

Subject: How to undo changes?
Message-ID: <l2l10d816431004281808s79a559e6p308052c788c9a4ca@mail.gmail.com>
URL: https://gitlist.dev/e/l2l10d816431004281808s79a559e6p308052c788c9a4ca%40mail.gmail.com

```
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, 2010-04-29 01:29

Subject: Re: How to undo changes?
Message-ID: <g2z40aa078e1004281829o446bce44r165aa59c98969043@mail.gmail.com>
URL: https://gitlist.dev/e/g2z40aa078e1004281829o446bce44r165aa59c98969043%40mail.gmail.com
In-Reply-To: <l2l10d816431004281808s79a559e6p308052c788c9a4ca@mail.gmail.com>

```
On Thu, Apr 29, 2010 at 3:08 AM, Lin Mac <mkl0301@gmail.com> wrote:
> 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>

>
> 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

```
