peterchen
peterchen

Reputation: 41116

Git: hide/remove files never to be versioned

I'm trying to get started using Git and TortoiseGit.

Is there a way to hide files that should never be tracked completely? Currently, all temporary build files are in the same "Not Versioned" list as new files when I commit a change.

Upvotes: 11

Views: 19737

Answers (5)

linquize
linquize

Reputation: 20396

TortoiseGit can add files to the ignore list with many options.

Right click on a file in a repository → TortoiseGitAdd to ignore list → by filename / by extension

A dialog shows to choose options:

Ignore type

This file only (match absolute name),

Recursive (match same name)

Ignore file

.gitignore in root directory (need to commit)

.gitignore in included directory (need to commit)

.git/info/exclude (like a configuration file, stored locally)

See also: Manual entry, Chapter 2. TortoiseGit Daily Use Guide, Ignoring Files And Directories.

Upvotes: 9

StuartLC
StuartLC

Reputation: 107387

Since one of the benefits of TortoiseGit is to use the UI, especially if you have used other products like TortoiseSVN and TortoiseHg, here are some UI ways to achieve this:

File not already added

An easy way to add files to the .gitignore exclusions is when you are selecting files to be staged when you do a git commit through Tortoise - Tortoise will list all non-ignored files which aren't currently in your repository under the Not Versioned Files box at the bottom of the commit screen:

Adding file exclusions to .gitignore during commit

Unwanted file already added by mistake

If you've already committed or pushed the undesirable file, another way in newer (circa 1.8.14) versions of TortoiseGit to remove an existing file from your repository branch and add it to one of the .gitignores is hidden under the right mouse function Delete and add to ignore list:

Removing versioned file from repository and adding to GitIgnore

You then have several .gitignore options to elect, either on whether to add just this file or wildcard matches, and to which .gitignore to add it to - local folder, repository root, or your `.git/info/exclude'.

However, right at the last minute, you are given the opportunity to keep the local copy of the file:

Deleted from the repository, but kept locally

Upvotes: 5

Alexey Vassiliev
Alexey Vassiliev

Reputation: 2435

In case you have files already added to the repository, but need to remove/ignore them, follow these steps:

  1. Move those files somewhere out of the repository.
  2. Make a commit, which would delete those files from the repository
  3. Move those files back to the repository to the place where they have been
  4. Make a commit, but now instead of adding those files to the repository, right click on those files. Select Add to ignore listBy file name. The option to which .gitignore you add those is irrelevant, but you can look up the difference on the Internet.

Upvotes: 5

lemonad
lemonad

Reputation: 4208

Create a text file called .gitignore in your root folder and add lines like the following to exclude files:

*.obj
test.c

Then add .gitignore to your Git repository and commit:

$ git add .gitignore
$ git commit .gitignore

Upvotes: 25

CB Bailey
CB Bailey

Reputation: 793109

You need to investigate .gitignore files.

git help gitignore

Upvotes: 10

Related Questions