I need to add some rules to my .gitignore file. However, I can't find it in my project folder. Isn't it created automatically by Xcode? If not, what command allows me to create one?
42 Answers
If you're using Windows, it will not let you create a file without a filename in Windows Explorer. It will give you the error "You must type a file name" if you try to rename a text file as .gitignore

To get around this, I used the following steps.
- Create the text file gitignore.txt
- Open it in a text editor and add your rules, then save and close
- Hold Shift, right click the folder you're in, and then select Open command window here
- Then rename the file in the command line, with
ren gitignore.txt .gitignore
Alternatively, HenningCash suggests in the comments:
You can get around this Windows Explorer error by appending a dot to the filename without an extension:
.gitignore.. It will be automatically changed to.gitignore.
19 Comments
.gitignore. will be automatically changed to .gitignore (Win7 x64)As simple as things can (sometimes) be: Just add the following into your preferred command-line interface (GNU Bash, Git Bash, etc.)
touch .gitignore As War pointed out in the comments, touch works on Windows as well as long as you provide the full path. This might also explain why it does not work for some users on Windows: The touch command seems to not be in the $PATH on some Windows versions by default.
C:\> "c:\program files (x86)\git\bin\touch.exe" .gitignore Note: The path might differ, depending on your setup and installation path.
11 Comments
cmd and powershell in Windows 7 without a problem. Then tried it again on the 8.1 machine of a colleague and can confirm that (the Cmdlet isn't present). You will have to search up the problem for that as this will bite you anyway with other things as well. In short: I'm sorry for you :/The easiest way to create the .gitignore file in Windows Explorer is to create a new file named .gitignore..
This will skip the validation of having a file extension, since it actually has an empty file extension.
8 Comments
.gitignore has the skill to open a text-editor and create a .gitignore file without extra risky hacks.The .gitignore file is not added to a repository by default. Use your favorite text editor to create the .gitignore file, then issue a git add .gitignore followed by git commit -m "message" .gitignore. For example:
vi .gitignore git add .gitignore git commit -m 'Added Git-ignore rules' .gitignore 5 Comments
git add .gitignore, i got this message: fatal: pathspec '.gitignore' did not match any files , although, i make sure the .gitignore file does exist on my project folder, am i wrong ?ls -la. Add to the question what you did (details) if you're still strugglingZ:\pristine-vagrant>ren "New folder" .sshOn Windows, you can use cmd:
echo "" >.gitignore
Or use Git Bash cmd:
touch .gitignore,
This useful for a Linux and Mac system.
3 Comments
macOS and Linux one-liner
An easy way to get a default Git ignore without messing about with create/copy/paste is to use the curl command from the terminal. First cd into your projects root directory and then run the command by replacing MY_API_NAME with your API name from one of the following two sources:
gitignore.io
curl -o .gitignore https://www.toptal.com/developers/gitignore/api/MY_API_NAME You can find your API name by searching from the list here and clicking Generate.
Java Example:
curl -o .gitignore https://www.toptal.com/developers/gitignore/api/java GitHub
Alternatively, you can use the ones at GitHub. Find the filename for your API here.
curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/MY_API_NAME.gitignore Java Example:
curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/Java.gitignore Windows
Here are some similar alternatives for Windows.
But honestly setting that up looks like more trouble that it is worth. If I had Windows then I would just create an empty file called .gitignore in my project's root folder and then copy and paste the default text from gitignore.io or GitHub.
1 Comment
I want my contribution as well. This time, animated one :)
Vim (mini tutorial):
i - start editing ESC - get back to normal mode :w - save :q - quit Comments
Using the Git Bash console.
- Navigate to your project
- Type "touch .gitignore"
The .gitignore file will be created for you.
Comments
My contribution is aimed at those on a Mac, and it can be applied to not only those working on an iOS project (as implied by the question mentioning Xcode), but any type of project.
The easy way that I do it is to go into the terminal and run vim .gitignore and then add the files. Usually you can just copy what you need from one of the templates on GitHub at https://github.com/github/gitignore.
Step 1
While in your project, type the following command
vim .gitignore 
Step 2
You now have your file open with Vim.

Press i to insert text. You will see that the file is ready when you see the --INSERT-- at the bottom.

Step 3 (option 1)
For Objective-C projects, you can copy from https://raw.githubusercontent.com/github/gitignore/master/Objective-C.gitignore and paste it into your .gitignore file:

Press Esc, type in :wq, and press Return. Which saves the file.
Step 3 (option 2)
Add whatever files apply to your project.
If you are not sure what to add, the best keywords to use in your search engine would be to include your project type and text editor. For example, if you use Sublime Text you would want to add
*.sublime-workspace And if you are working with a Cordova project in Dreamweaver you would want to add
_notes dwsync.xml Comments
Here a nice tip under Windows:
- Right click in Windows Explorer, New > Text Document
- Name it .gitignore. (with a trailing dot - that is the tip)
- You end up with a .gitignore file :)
Tested under Windows 7 and 8.
This tip assumes that your Windows Explorer displays the file extensions.

1 Comment
Create a .gitignore file in include all files and directories that you don't want to commit.
Example:
################# ## Eclipse ################# *.pydevproject .project .metadata .gradle bin/ tmp/ target/ *.tmp *.bak *.swp *~.nib local.properties .classpath .settings/ .loadpath # External tool builders .externalToolBuilders/ # Locally stored "Eclipse launch configurations" *.launch # CDT-specific .cproject # PDT-specific .buildpath ################# ## Visual Studio ################# ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. # User-specific files *.suo *.user *.sln.docstates # Build results [Dd]ebug/ [Rr]elease/ x64/ build/ [Bb]in/ [Oo]bj/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* *_i.c *_p.c *.ilk *.meta *.obj *.pch *.pdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *.log *.vspscc *.vssscc .builds *.pidb *.log *.scc # Visual C++ cache files ipch/ *.aps *.ncb *.opensdf *.sdf *.cachefile # Visual Studio profiler *.psess *.vsp *.vspx # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # NCrunch *.ncrunch* .*crunch*.local.xml # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.Publish.xml *.pubxml # NuGet Packages Directory ## TODO: If you have NuGet Package Restore enabled, uncomment the next line #packages/ # Windows Azure Build Output csx *.build.csdef # Windows Store app package directory AppPackages/ # Others sql/ *.Cache ClientBin/ [Ss]tyle[Cc]op.* ~$* *~ *.dbmdl *.[Pp]ublish.xml *.pfx *.publishsettings 1 Comment
http://gitignore.io is an open source utility that can help you create useful .gitignore files for your project. There is also a command line API that you can access via a gi command: http://gitignore.io/cli
Install
gicommand for OS X:$ echo "function gi() { curl http://gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profileView .gitignore file contents (Output: http://gitignore.io/api/xcode,osx):
$ gi xcode,osxYou should see output on the terminal, if you want to append the results to a new .gitignore file.
$ gi xcode,osx >> .gitignore
Comments
I have another simple idea.
Let's use the echo command in cmd,
echo ./idea > .gitignore
This will create the .gitignore file having text content "./idea".
You may now manually change data from the file using a text editor.
Or simply
Console:
echo .gitignore notepad.exe to instantly edit gitignore.
If you don’t know which files are should be gitignored for your IDE or operating system just go to www.gitignore.io.
Comments
You can go to Create Useful .gitignore Files For Your Project.
Select the IDE, operating systems or programming language. It will automatically generate one for you.
1 Comment
Here's my personal favorite, http://help.github.com/ignore-files/
Also just in case you wanted to ignore Xcode files, refer to an answer to Git ignore file for Xcode projects.
1 Comment
The following works in PowerShell and a command prompt (CMD):
echo '*.ignore_me' > .gitignore I ran into a weird issue where Git effectively wouldn't read the .gitignore file. I then deleted the .gitignore file and created one using Vim which worked fine.
To add additional files to ignore, just call the following command:
echo 'another_file_to_ignore' >> .gitignore It will append further files to the existing .gitignore file.
1 Comment
If you don't want to have your .gitignore file interfere with anyone else's repository, you can also use .git/info/exclude (see http://help.github.com/ignore-files/).
Comments
A few ways to create file .gitignore using cmd:
With the copy con command:
open cmd and type
cdto your Git repositoryType
copy con .gitignoreand press Ctrl + Z.
With the start notepad .gitignore command
Open cmd and type
cdto your Git repositoryType
start notepad .gitignoreand press the Yes button in the opened Notepad dialog box.
With the edit .gitignore command (Windows x86 only)
- Open cmd and type
cdto your Git repository - Type
edit .gitignoreand close the opened 'edit' editor.
Comments
- To create a .gitignore file, you just create a .txt file and change the extension as in the following:

Then you have to change the name, writing the following line on the cmd:
rename git.txt .gitignore where git.txt is the name of the file you've just created.
Then you can open the file and write all the files you don’t want to add on the repository. For example, mine looks like this:
# OS junk files [Tt]humbs.db *.DS_Store # Visual Studio files *.[Oo]bj *.user *.aps *.pch *.vspscc *.vssscc *_i.c *_p.c *.ncb *.suo *.tlb *.tlh *.bak *.[Cc]ache *.ilk *.log *.lib *.sbr *.sdf *.pyc *.xml ipch/ obj/ [Bb]in [Dd]ebug*/ [Rr]elease*/ Ankh.NoLoad # Tooling _ReSharper*/ *.resharper [Tt]est[Rr]esult* # Project files [Bb]uild/ # Subversion files .svn # Office Temp Files ~$* Once you have this, you need to add it to your Git repository. You have to save the file where your repository is.
Then in your Git Bash, you have to write the following line:

If the repository already exists, you have to do the following:
git rm -r --cached .git add .git commit -m ".gitignore is now working"
If step 2 doesn’t work then you should write the whole route of the files that you would like to add.
1 Comment
Do:
- Open a Git terminal
- Go to the Git repository of the project
- Create a .gitignore file by touch .gitignore command
- Use git add .gitignore command to add the ignore file
- Set ignore rules in the ignore file
- Run the command cat .gitignore
By running the command in step 3, you will get the .gitignore file in the project directory.
Comments
You can directly create an empty .gitignore file. Open cmd in the location you need to add this file to, and type this command:
copy con .gitignore Press Enter. We are now in edit mode of the newly created file, but we do not need to add anything now. Just press F6 and then press Enter.
Now you have an empty .gitignore file. Edit your file in whatever editor you have.
3 Comments
copy nul .gitignore is betterTo add .gitignore file to your not application you can use the
> npx add-gitignore Now you can type "node" and use user space bar to choose it and Enter. That will add the node .gitignore to the project.
2 Comments
Windows:
On the command line:
.>.gitignore This will show an error, but it will work.
4 Comments
Without using the command line (on Windows)
- Open any texteditor (e.g. Notepad) and add your rules.
- Click menu File → Save As
- Save it as ".gitignore" (include the quotations)
1 Comment
Have you see this article?
Easy to create .gitignore for the dotnet developers
It mentions:
Starting from .Net Core 3.0, you can take advantage of the build in the .Net framework
gitignorefile template just by typingdotnet new gitignorein your terminal.
I just tried it and this is the file it created:
## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Mono auto generated files mono_crash.* # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ [Ll]ogs/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUnit *.VisualState.xml TestResult.xml nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET project.lock.json project.fragment.lock.json artifacts/ # Tye .tye/ # ASP.NET Scaffolding ScaffoldingReadMe.txt # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Coverlet is a free, cross platform Code Coverage Tool coverage*.json coverage*.xml coverage*.info # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx *.appxbundle *.appxupload # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser *- [Bb]ackup.rdl *- [Bb]ackup ([0-9]).rdl *- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # BeatPulse healthcheck temp database healthchecksdb # Backup folder for Package Reference Convert tool in Visual Studio 2017 MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ # Fody - auto-generated XML schema FodyWeavers.xsd ## ## Visual studio for Mac ## # globs Makefile.in *.userprefs *.usertasks config.make config.status aclocal.m4 install-sh autom4te.cache/ *.tar.gz tarballs/ test-results/ # Mac bundle stuff *.dmg *.app # content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore # Windows thumbnail cache files Thumbs.db ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk # JetBrains Rider .idea/ *.sln.iml ## ## Visual Studio Code ## .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json Comments
To add any file in Xcode, go to the menu and navigate to menu File → New → File...
For a .gitignore file choose Other → Empty and click on Next. Type in the name (.gitignore) into the Save As field and click Create.
For files starting with a dot (".") a warning message will pop up, telling you that the file will be hidden. Just click on Use "." to proceed...
That's all.
To fill your brand new .gitignore you can find an example for ignoring Xcode file here: Git ignore file for Xcode projects
Comments
If you use Sublime Text as your IDE, you can create a new file and save it as .gitignore. Simply using Ctrl + N for the new file, and Ctrl + S to save as ".gitignore".





.gitignorefile from one of your existing projects.