gitfaq(7)
=========
NAME
----
gitfaq - Frequently asked questions about using Git
SYNOPSIS
--------
gitfaq
DESCRIPTION
-----------
The examples in this FAQ assume a standard POSIX shell, like `bash` or `dash`,
and a user, A U Thor, who has the account `author` on the hosting provider
`git.example.org`.
Configuration
-------------
[[user-name]]
What should I put in `user.name`?::
You should put your personal name, generally a form using a given name
and family name. For example, the current maintainer of Git uses "Junio
C Hamano". This will be the name portion that is stored in every commit
you make.
+
This configuration doesn't have any effect on authenticating to remote services;
for that, see `credential.username` in linkgit:git-config[1].
[[http-postbuffer]]
What does `http.postBuffer` really do?::
This option changes the size of the buffer that Git uses when pushing
data to a remote over HTTP or HTTPS. If the data is larger than this
size, libcurl, which handles the HTTP support for Git, will use chunked
transfer encoding since it isn't known ahead of time what the size of
the pushed data will be.
+
Leaving this value at the default size is fine unless you know that either the
remote server or a proxy in the middle doesn't support HTTP/1.1 (which
introduced the chunked transfer encoding) or is known to be broken with chunked
data. This is often (erroneously) suggested as a solution for generic push
problems, but since almost every server and proxy supports at least HTTP/1.1,
raising this value usually doesn't solve most push problems. A server or proxy
that didn't correctly support HTTP/1.1 and chunked transfer encoding wouldn't be
that useful on the Internet today, since it would break lots of traffic.
+
Note that increasing this value will increase the memory used on every relevant
push that Git does over HTTP or HTTPS, since the entire buffer is allocated
regardless of whether or not it is all used. Thus, it's best to leave it at the
default unless you are sure you need a different value.
[[configure-editor]]
How do I configure a different editor?::
If you haven't specified an editor specifically for Git, it will by default
use the editor you've configured using the `VISUAL` or `EDITOR` environment
variables, or if neither is specified, the system default (which is usually
`vi`). Since some people find `vi` difficult to use or prefer a different
editor, it may be desirable to change the editor used.
+
If you want to configure a general editor for most programs which need one, you
can edit your shell configuration (e.g., `~/.bashrc` or `~/.zshenv`) to contain
a line setting the `EDITOR` or `VISUAL` environment variable to an appropriate
value. For example, if you prefer the editor `nano`, then you could write the
following:
+
----
export VISUAL=nano
----
+
If you want to configure an editor specifically for Git, you can either set the
`core.editor` configuration value or the `GIT_EDITOR` environment variable. You
can see linkgit:git-var[1] for details on the order in which these options are
consulted.
+
Note that in all cases, the editor value will be passed to the shell, so any
arguments containing spaces should be appropriately quoted. Additionally, if
your editor normally detaches from the terminal when invoked, you should specify
it with an argument that makes it not do that, or else Git will not see any
changes. An example of a configuration addressing both of these issues on
Windows would be the configuration `"C:\Program Files\Vim\gvim.exe" --nofork`,
which quotes the filename with spaces and specifies the `--nofork` option to
avoid backgrounding the process.
Credentials
-----------
[[http-credentials]]
How do I specify my credentials when pushing over HTTP?::
The easiest way to do this is to use a credential helper via the
`credential.helper` configuration. Most systems provide a standard
choice to integrate with the system credential manager. For example,
Git for Windows provides