Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git, don't show me *.pyc in the list of untracked files!

When doing:

>git status 

It shows a big list of .pyc files under "untracked files". I don't want it to show these, as it adds noise.

In other words, how do I make git ignore .pyc files all the time and for all projects?

EDIT

I'm not asking for a way to spread my ignored files to other people, I really just mean "for all projects", meaning I don't want to configure each new project to ignore .pyc files.

UPDATE

I should add that I'm working on windows, and my git is msysgit

Patterns which a user wants git to ignore in all situations (e.g., backup or temporary files generated by the user's editor of choice) generally go into a file specified by core.excludesfile in the user's ~/.gitconfig.

Is .gitconfig a file or a folder? I don't have such a thing in my home directory (C:\users\<myusername>\)

UPDATE2

Thanks everybody for the responses,

I solved the issues by using:

>git config --global core.excludesfile c:\git\ignore_files.txt 

and putting *.pyc in c:\git\ignore_files.txt

like image 995
hasen Avatar asked Mar 12 '09 20:03

hasen


People also ask

Why is Gitignore showing up in untracked files?

gitignore file is showing up on the status, because it's untracked, and git sees it as a tasty new file to eat! Since . gitignore is an untracked file however, it is a candidate to be ignored by git when you put it in . gitignore!

How do I add untracked files git?

The easiest way to add all files to your Git repository is to use the “git add” command followed by the “-A” option for “all”. In this case, the new (or untracked), deleted and modified files will be added to your Git staging area. We also say that they will be staged.


2 Answers

As mentioned in gitignore, git has 3 ignore files:

  • Patterns which should be version-controlled and distributed to other repositories via clone (i.e., files that all developers will want to ignore) should go into a .gitignore file.

(that takes care of all time: if one clones your repo, it will get the .gitignore file)

  • Patterns which are specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user's workflow) should go into the $GIT_DIR/info/exclude file.

(not interesting in your case)

  • Patterns which a user wants git to ignore in all situations (e.g., backup or temporary files generated by the user's editor of choice) generally go into a file specified by core.excludesfile in the user's ~/.gitconfig.

(takes cares of all projects, but not all time since it is not replicated when one clones your repo.)

"All time for all projects" would means for instance a custom shell for creating new git projects, with a custom .gitignore as first file part of the first commit...

like image 92
VonC Avatar answered Oct 08 '22 00:10

VonC


Put in the file ~/.gitignore:

*.pyc 

Run:

git config --global core.excludesfile ~/.gitignore 

I agree with @David Wolever this option should be used with caution if ever.

The ~/.gitignore ("%HOME%\.gitignore" on Windows) is just a convention you can use any filename you like e.g., "c:\docs\gitignore.txt".

like image 27
jfs Avatar answered Oct 08 '22 02:10

jfs