threads / discuss / 25080

Making Git untrack few folders

Subject: Making Git untrack few folders

## tl;dr

3 messages between Sep 12, 2010 and Sep 12, 2010.

replies: 2people: 2as markdown or json

Parag Kalra· Sep 12, 2010, 10:22 UTC · lore
Hi All,
I have couple of interconnected questions:
1. Is there a way I can make Git not track a particular folder in my
working code base directory. For example, I have a tmp folder in my
local code base and I don't want Git to track whats going on inside
that directory.
2. Accidently I have added this folder, committed and pushed it to
origin master. Is there a way I can remove this tmp folder from git
revision history and at the same time keeping it intact in my local
code base directory.

Cheers, Parag

Ramkumar Ramachandra· Sep 12, 2010, 10:37 UTC · re: Parag Kalra · lore

Re: Making Git untrack few folders

Hi Parag,
Parag Kalra writes:
> 1. Is there a way I can make Git not track a particular folder in my
> working code base directory. For example, I have a tmp folder in my
> local code base and I don't want Git to track whats going on inside
> that directory.
Yes. See gitignore (5).
> 2. Accidently I have added this folder, committed and pushed it to
> origin master. Is there a way I can remove this tmp folder from git
> revision history and at the same time keeping it intact in my local
> code base directory.

Yes. Simply `rm --cached` the folder, and amemd your previous commit using `commit --amend`, and perform a non-ff push using the `+` syntax. For example, to perform a non-ff push to remote branch `foo` whose local name is `foo`, invoke `push +foo:foo`. Note that other users who have already pulled the bad commit will have to forget about it explicitly too.

If the folder tracking information is a few revision deep, consider using `rebase -i` to manually overwrite those commits to exclude that folder. If the folder was too many revisions earlier, use a `filter-branch` index filter to make Git completely forget that folder.

-- Ram
Parag Kalra· Sep 12, 2010, 20:00 UTC · re: Ramkumar Ramachandra · lore

Re: Making Git untrack few folders

Thanks Ram.
git rm --cached was precisely what I was looking for.
Also .gitignore file worked without any issues.

Cheers, Parag

On Sun, Sep 12, 2010 at 3:37 AM, Ramkumar Ramachandra <artagnon@gmail.com> wrote:

Show 30 quoted lines
> Hi Parag,
>
> Parag Kalra writes:
>> 1. Is there a way I can make Git not track a particular folder in my
>> working code base directory. For example, I have a tmp folder in my
>> local code base and I don't want Git to track whats going on inside
>> that directory.
>
> Yes. See gitignore (5).
>
>> 2. Accidently I have added this folder, committed and pushed it to
>> origin master. Is there a way I can remove this tmp folder from git
>> revision history and at the same time keeping it intact in my local
>> code base directory.
>
> Yes. Simply `rm --cached` the folder, and amemd your previous commit
> using `commit --amend`, and perform a non-ff push using the `+`
> syntax. For example, to perform a non-ff push to remote branch `foo`
> whose local name is `foo`, invoke `push +foo:foo`. Note that other
> users who have already pulled the bad commit will have to forget about
> it explicitly too.
>
> If the folder tracking information is a few revision deep, consider
> using `rebase -i` to manually overwrite those commits to exclude that
> folder. If the folder was too many revisions earlier, use a
> `filter-branch` index filter to make Git completely forget that
> folder.
>
> -- Ram
>

← back to recent threads