Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
We've seen how we can tell Git which files that auto ignore inside of our working directory, and we did that by putting a gitignore file in the root of our working directory and even storing and committing that to our repository. But what if we find ourselves ignoring the same files over and over and all of our different projects in each of our different Git repositories? Or as we saw in the last movie some of the files that we want to ignore are operating specific files, we want to ignore them all the time, because they are just generally the kind of thing that we don't want to track.
Well, to do this, we're going to configure Git to globally ignore some files. That means if we ignore those files in all repositories, not just in any one specific repository, and the settings for this global ignore are not going to be inside the repository, they're going to live outside of it, right? It's part of our git configuration, not our project configuration, but our git configuration. So what that means is it's not going to be stored in the repository. People who use our repositories, if someone downloads it and starts working with it, they're not going to get it, and so we've traded repository specific ignores for user specific ignores. They exist only on my machine. Now that's good because it means that I can configure exactly the way I like it, I can ignore the files that I want to ignore, and then we don't have to worry about what someone else wants to ignore, okay? I can just ignore my preferences.
Now that can be good, for example, if I'm working on a Mac and someone else using their repository is working on Windows, then we can each have our own gitignore files that are specific to our operating system. We don't have to share those. But on the other hand, if I've told it to ignore all log files, files ending in .log, and that's in my global config but not the project config, and then someone else starts using the repository, then they're going to always be prompted by Git to try and track the log file, that is unless they also ignore the log file.
You just want to keep in mind the difference and consider whether you want an ignored file to be listed in your user-specific ignores or your repository-specific ignores. Okay, so how to actually do the ignoring? Well, we do that using git config. We saw this back when we were setting up Git at the beginning. We do git config with the global option and then core.excludesfile, and we tell it where the file is. So the file can be named anything we want, we can locate it wherever we want, we just have to tell Git in its config file, hey, this is the file you should use for globally ignoring things. Let's try creating one.
So right now I'm inside my explore_ california directory, where I'm going to put my global ignore is in my user directory, right here. That's where my git config was before, if you remember ls -la and inside Users/kevinskoglund, you'll see that's where I've got my global gitconfig file. So I'm going to put the gitignore file right alongside it. You can create a number of different ways, you can use a Text Editor. I'm going to use the nano Text Editor that's in Mac OS X and in Unix--it's just a real simple Text Editor--and tell it that it ought to go to Users/kevinskoglund and create a file called .gitignore_global.
Now again, you can call it anything you want, so we'll be just call it gitignore. I'm going to call it gitignore_global, so it is very clear that it's a global file. So inside that file then we can put whatever things we want to ignore. Because I'm on a Mac, the things that I want to ignore most often are .DS_Store and .Trashes and .Spotlight-V100, those are just a couple of things that often pop up that need to get ignored, and there are files that the operating system is using to keep track of various things.
So I'm just going to go ahead and close that now, say yes, and let's save it to that file name that I gave it. And now if we check again la / Users/kevinskoglund, there we are. Now you can see that that file is there, and then the last thing I need to do is tell git config about that file, so git config --global core.excludesfile and then the path to the file. Let me just clear the screen, so it's clear. The short version in Unix, it just uses this Tilde that represents your user directory so you could say ~/.gitignore _global, that's what I would probably do, but you can also do it with a full path, which is what you would do on Windows, and we'll put in the full thing, kevingskoglund, that's the full path to get there.
So when we hit Return it'll add to our config file. If we take a look at that config file cat /Users/kevinskoglund/.gitconfig, we can say that it added that excludes file right here. So, now that's the file that we'll be using for global gitignores, so I'll ignore those files in every repository on my machine.
Get unlimited access to all courses for just $25/month.Become a member
82 Video lessons · 98389 Viewers
61 Video lessons · 85679 Viewers
71 Video lessons · 69607 Viewers
56 Video lessons · 101932 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.
Your file was successfully uploaded.