6

I'm trying to add a specific file to .gitignore directly from git shell. File to ignore is token.mat

If I type:

touch .gitignore

and then manually open .gitignore with a text editor and add

token.mat

save and close, it works, git ignores it (when I type git status at the git shell I no longer see token.mat)

However at the git shell if I type:

touch .gitignore
echo 'token.mat' >> .gitignore

then git does not ignore token.mat, when I type git status I still see it. However when I open .gitignore with a text edit I see token.mat listed and it looks exactly the same as when I add it manually.

Does anyone know why this is, or how I can add files to .gitignore directly from the git shell?

Thanks for any help in advance!!

Other details:

  • Windows 7 Professional, service pack 1
  • git version: 2.5.3.windows.1
  • text editor: Notepad ++
sjp working
  • 63
  • 1
  • 5

2 Answers2

5

Make sure your echo did not add a trailing space:

echo 'token.mat'>>.gitignore

That way, the .gitignore should work.

>> is for appending to the .gitignore file, while a single > would have overwritten it completely.

Also, 2.5 is ancient: unzip the latest Git, as in PortableGit-2.14.1-64-bit.7z.exe, anywhere you want, add it to your %PATH%, and check again.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Thanks VonC! There was no trailing space, but moving up to Git 2.14 did the trick. One other note, to others trying this solution, I also changed from Git Shell to Git Bash with the upgrade. – sjp working Sep 26 '17 at 00:15
  • Would like to add that a single '>' overwrites existing data, a double '>>' updates file. – afrologicinsect Jul 04 '22 at 05:07
  • @afrologicinsect good point. I have included that in the answer. – VonC Jul 04 '22 at 05:10
2

The accepted answer is totally correct, but would be incomplete in day to day scenarios as it only add one file to .gitignore , to add more than one files to your .gitignore

Use the following command :

echo -e 'file1 \n file2 \n file3 \n' >> .gitignore

You can use the above command without touch this will automatically create a .gitignore and add all the files. Make sure that you include -e and >>.

Here -e serves as the flag so the newline character \n is interpreted properly and >> appends the content in the .gitignore file.

If you need to override an already existing .gitignore use > instead of >>

You can learn more about echo by following this link.

StabCode
  • 106
  • 1
  • 6