41

I've got Git for Windows running, I'm not sure if it's supposed to function as a text editor though?

I think I installed it with the Vim editor, but in a Git Bash shell how do I create a file, such as webpage.html?

$ git add webpage.html

comes back as

fatal: pathspec 'webpage.html' did not match any files

because it tries to track a non-existing file.

I understand I can create a new file on the github.com interface, that's easy enough, I'm wondering if I can create a new file (like echo in cmd) and whether this file will actually be blank (echo in cmd creates non-blank files) and how I can write into that file from the git bash shell?

If not, I'm guessing I should just create a new file in windows explorer? Is that the norm...?

Edit

Wow, I was new to all this when I asked the above. No, Git Bash isn't a text editor, it's a Windows version of the git facility on Unix, and only handles the file versioning. git add, git rm, and other git commands just handle how the version control file manager handles the files and folders, and the only things it changes as a result are in a hidden folder named .git. Sorry if this has confused anyone.

I was confused at the time because, as the name suggests, Git Bash has bash shell commands shipped with it, not just git - e.g. ls (list files), mkdir (make new folder), and -- what I was looking for -- touch (make a new file or update timestamp on existing file), and echo (print text to the command line, or direct that text to a file).

I could have made my new file webpage.html with:

touch webpage.html

Then written to it with:

echo "<!DOCTYPE html>" > webpage.html

Then appended lines to it with:

echo "<html" >> webpage.html
echo "<head>" >> webpage.html

and so on - but I don't think there's any text editor (according to this list of commands). See this thread for details of setting up a text editor with Git on Windows.

Community
  • 1
  • 1
Louis Maddox
  • 4,311
  • 5
  • 28
  • 59

3 Answers3

55

If you are using the Git Bash shell, you can use the following trick:

> webpage.html

This is actually the same as:

echo "" > webpage.html

Then, you can use git add webpage.html to stage the file.

dparpyani
  • 2,329
  • 2
  • 12
  • 16
9

This is a very simple to create file in git bash at first write touch then file name with extension

for example

touch filename.extension
MD SHAYON
  • 2,833
  • 21
  • 18
0

Yes, it is. Just create files in the windows explorer and git automatically detects these files as currently untracked. Then add it with the command you already mentioned.

git add does not create any files. See also http://gitref.org/basic/#add

Github probably creates the file with touch and adds the file for tracking automatically. You can do this on the bash as well.

Denis Loh
  • 2,052
  • 2
  • 22
  • 35
  • So you mean I can create a file with "$ git touch webpage.html" ? – Louis Maddox Sep 21 '13 at 11:58
  • 1
    Well, yes and no. `git touch` is no official command, however you can create an alias for the two bash commands `touch $1 && git add $1`. `touch` is a bash command. See https://git.wiki.kernel.org/index.php/Aliases. You could also have a look on these git extras: https://github.com/visionmedia/git-extras which contain `git touch` already – Denis Loh Sep 21 '13 at 12:32