Merge branch 'mm/readme-markdown' into maint

* 'mm/readme-markdown':
  git.spec.in: use README.md, not README
diff --git a/.travis.yml b/.travis.yml
index f8b73ec..78e433b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,12 +21,12 @@
 
 env:
   global:
+    - DEVELOPER=1
     - P4_VERSION="15.2"
     - GIT_LFS_VERSION="1.1.0"
     - DEFAULT_TEST_TARGET=prove
     - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
     - GIT_TEST_OPTS="--verbose --tee"
-    - CFLAGS="-g -O2 -Wall -Werror"
     - GIT_TEST_CLONE_2GB=YesPlease
     # t9810 occasionally fails on Travis CI OS X
     # t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index c6e536f..0ddd368 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -171,6 +171,11 @@
 
  - We try to keep to at most 80 characters per line.
 
+ - As a Git developer we assume you have a reasonably modern compiler
+   and we recommend you to enable the DEVELOPER makefile knob to
+   ensure your patch is clear of all compiler warnings we care about,
+   by e.g. "echo DEVELOPER=1 >>config.mak".
+
  - We try to support a wide range of C compilers to compile Git with,
    including old ones. That means that you should not use C99
    initializers, even if a lot of compilers grok it.
diff --git a/Documentation/RelNotes/2.4.11.txt b/Documentation/RelNotes/2.4.11.txt
new file mode 100644
index 0000000..7233602
--- /dev/null
+++ b/Documentation/RelNotes/2.4.11.txt
@@ -0,0 +1,11 @@
+Git v2.4.11 Release Notes
+=========================
+
+Fixes since v2.4.10
+-------------------
+
+ * Bugfix patches were backported from the 'master' front to plug heap
+   corruption holes, to catch integer overflow in the computation of
+   pathname lengths, and to get rid of the name_path API.  Both of
+   these would have resulted in writing over an under-allocated buffer
+   when formulating pathnames while tree traversal.
diff --git a/Documentation/RelNotes/2.5.5.txt b/Documentation/RelNotes/2.5.5.txt
new file mode 100644
index 0000000..37eae9a
--- /dev/null
+++ b/Documentation/RelNotes/2.5.5.txt
@@ -0,0 +1,11 @@
+Git v2.5.5 Release Notes
+========================
+
+Fixes since v2.5.4
+------------------
+
+ * Bugfix patches were backported from the 'master' front to plug heap
+   corruption holes, to catch integer overflow in the computation of
+   pathname lengths, and to get rid of the name_path API.  Both of
+   these would have resulted in writing over an under-allocated buffer
+   when formulating pathnames while tree traversal.
diff --git a/Documentation/RelNotes/2.6.6.txt b/Documentation/RelNotes/2.6.6.txt
new file mode 100644
index 0000000..023ad85
--- /dev/null
+++ b/Documentation/RelNotes/2.6.6.txt
@@ -0,0 +1,11 @@
+Git v2.6.6 Release Notes
+========================
+
+Fixes since v2.6.5
+------------------
+
+ * Bugfix patches were backported from the 'master' front to plug heap
+   corruption holes, to catch integer overflow in the computation of
+   pathname lengths, and to get rid of the name_path API.  Both of
+   these would have resulted in writing over an under-allocated buffer
+   when formulating pathnames while tree traversal.
diff --git a/Documentation/RelNotes/2.7.3.txt b/Documentation/RelNotes/2.7.3.txt
new file mode 100644
index 0000000..6adf038
--- /dev/null
+++ b/Documentation/RelNotes/2.7.3.txt
@@ -0,0 +1,62 @@
+Git v2.7.3 Release Notes
+========================
+
+Fixes since v2.7.2
+------------------
+
+ * Traditionally, the tests that try commands that work on the
+   contents in the working tree were named with "worktree" in their
+   filenames, but with the recent addition of "git worktree"
+   subcommand, whose tests are also named similarly, it has become
+   harder to tell them apart.  The traditional tests have been renamed
+   to use "work-tree" instead in an attempt to differentiate them.
+
+ * Many codepaths forget to check return value from git_config_set();
+   the function is made to die() to make sure we do not proceed when
+   setting a configuration variable failed.
+
+ * Handling of errors while writing into our internal asynchronous
+   process has been made more robust, which reduces flakiness in our
+   tests.
+
+ * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
+   rev, i.e. the object named by the the pathname with wildcard
+   characters in a tree object.
+
+ * "git rev-parse --git-common-dir" used in the worktree feature
+   misbehaved when run from a subdirectory.
+
+ * The "v(iew)" subcommand of the interactive "git am -i" command was
+   broken in 2.6.0 timeframe when the command was rewritten in C.
+
+ * "git merge-tree" used to mishandle "both sides added" conflict with
+   its own "create a fake ancestor file that has the common parts of
+   what both sides have added and do a 3-way merge" logic; this has
+   been updated to use the usual "3-way merge with an empty blob as
+   the fake common ancestor file" approach used in the rest of the
+   system.
+
+ * The memory ownership rule of fill_textconv() API, which was a bit
+   tricky, has been documented a bit better.
+
+ * The documentation did not clearly state that the 'simple' mode is
+   now the default for "git push" when push.default configuration is
+   not set.
+
+ * Recent versions of GNU grep are pickier when their input contains
+   arbitrary binary data, which some of our tests uses.  Rewrite the
+   tests to sidestep the problem.
+
+ * A helper function "git submodule" uses since v2.7.0 to list the
+   modules that match the pathspec argument given to its subcommands
+   (e.g. "submodule add <repo> <path>") has been fixed.
+
+ * "git config section.var value" to set a value in per-repository
+   configuration file failed when it was run outside any repository,
+   but didn't say the reason correctly.
+
+ * The code to read the pack data using the offsets stored in the pack
+   idx file has been made more carefully check the validity of the
+   data in the idx.
+
+Also includes documentation and test updates.
diff --git a/Documentation/RelNotes/2.7.4.txt b/Documentation/RelNotes/2.7.4.txt
new file mode 100644
index 0000000..883ae89
--- /dev/null
+++ b/Documentation/RelNotes/2.7.4.txt
@@ -0,0 +1,11 @@
+Git v2.7.4 Release Notes
+========================
+
+Fixes since v2.7.3
+------------------
+
+ * Bugfix patches were backported from the 'master' front to plug heap
+   corruption holes, to catch integer overflow in the computation of
+   pathname lengths, and to get rid of the name_path API.  Both of
+   these would have resulted in writing over an under-allocated buffer
+   when formulating pathnames while tree traversal.
diff --git a/Documentation/RelNotes/2.8.0.txt b/Documentation/RelNotes/2.8.0.txt
index dd540d0..2507971 100644
--- a/Documentation/RelNotes/2.8.0.txt
+++ b/Documentation/RelNotes/2.8.0.txt
@@ -16,7 +16,9 @@
    the source repository has packed references for a long time, and
    nobody noticed nor complained about it.
 
- * "branch --delete" has "branch -d" but "push --delete" does not.
+ * "push" learned that its "--delete" option can be shortened to
+   "-d", just like "branch --delete" and "branch -d" are the same
+   thing.
 
  * "git blame" learned to produce the progress eye-candy when it takes
    too much time before emitting the first line of the result.
@@ -32,7 +34,7 @@
    have a place to store the updated notes tree, iow, a ref).
 
  * "git grep" by default does not fall back to its "--no-index"
-   behaviour outside a directory under Git's control (otherwise the
+   behavior outside a directory under Git's control (otherwise the
    user may by mistake end up running a huge recursive search); with a
    new configuration (set in $HOME/.gitconfig--by definition this
    cannot be set in the config file per project), this safety can be
@@ -53,7 +55,7 @@
 
  * Many commands that read files that are expected to contain text
    that is generated (or can be edited) by the end user to control
-   their behaviour (e.g. "git grep -f <filename>") have been updated
+   their behavior (e.g. "git grep -f <filename>") have been updated
    to be more tolerant to lines that are terminated with CRLF (they
    used to treat such a line to contain payload that ends with CR,
    which is usually not what the users expect).
@@ -98,14 +100,53 @@
    variables, serving as a reminder for those who work on multiple
    projects and do not want to put these in their $HOME/.gitconfig.
 
+ * "git fetch" and friends that make network connections can now be
+   told to only use ipv4 (or ipv6).
+
+ * Some authentication methods do not need username or password, but
+   libcurl needs some hint that it needs to perform authentication.
+   Supplying an empty username and password string is a valid way to
+   do so, but you can set the http.[<url>.]emptyAuth configuration
+   variable to achieve the same, if you find it cleaner.
+
+ * You can now set http.[<url>.]pinnedpubkey to specify the pinned
+   public key when building with recent enough versions of libcURL.
+
+ * The configuration system has been taught to phrase where it found a
+   bad configuration variable in a better way in its error messages.
+   "git config" learnt a new "--show-origin" option to indicate where
+   the values come from.
+
+ * The "credential-cache" daemon process used to run in whatever
+   directory it happened to start in, but this made umount(2)ing the
+   filesystem that houses the repository harder; now the process
+   chdir()s to the directory that house its own socket on startup.
+
+ * When "git submodule update" did not result in fetching the commit
+   object in the submodule that is referenced by the superproject, the
+   command learned to retry another fetch, specifically asking for
+   that commit that may not be connected to the refs it usually
+   fetches.
+
+ * "git merge-recursive" learned "--no-renames" option to disable its
+   rename detection logic.
+
+ * Across the transition at around Git version 2.0, the user used to
+   get a pretty loud warning when running "git push" without setting
+   push.default configuration variable.  We no longer warn because the
+   transition was completed a long time ago.
+
+ * README has been renamed to README.md and its contents got tweaked
+   slightly to make it easier on the eyes.
+
 
 Performance, Internal Implementation, Development Support etc.
 
  * Add a framework to spawn a group of processes in parallel, and use
    it to run "git fetch --recurse-submodules" in parallel.
 
- * A slight update to the Makefile to mark "phoney" targets
-   as such correctly.
+ * A slight update to the Makefile to mark ".PHONY" targets as such
+   correctly.
 
  * In-core storage of the reverse index for .pack files (which lets
    you go from a pack offset to an object name) has been streamlined.
@@ -146,16 +187,72 @@
    with expectations that are not satisfiable on Git for Windows.
 
  * Some calls to strcpy(3) triggers a false warning from static
-   analysers that are less intelligent than humans, and reducing the
+   analyzers that are less intelligent than humans, and reducing the
    number of these false hits helps us notice real issues.  A few
-   calls to strcpy(3) in test-path-utils that are already safe has
-   been rewritten to avoid false wanings.
+   calls to strcpy(3) in a couple of protrams that are already safe
+   has been rewritten to avoid false warnings.
 
- * Some calls to strcpy(3) triggers a false warning from static
-   analysers that are less intelligent than humans, and reducing the
-   number of these false hits helps us notice real issues.  A few
-   calls to strcpy(3) in "git rerere" that are already safe has been
-   rewritten to avoid false wanings.
+ * The "name_path" API was an attempt to reduce the need to construct
+   the full path out of a series of path components while walking a
+   tree hierarchy, but over time made less efficient because the path
+   needs to be flattened, e.g. to be compared with another path that
+   is already flat.  The API has been removed and its users have been
+   rewritten to simplify the overall code complexity.
+
+ * Help those who debug http(s) part of the system.
+   (merge 0054045 sp/remote-curl-ssl-strerror later to maint).
+
+ * The internal API to interact with "remote.*" configuration
+   variables has been streamlined.
+
+ * The ref-filter's format-parsing code has been refactored, in
+   preparation for "branch --format" and friends.
+
+ * Traditionally, the tests that try commands that work on the
+   contents in the working tree were named with "worktree" in their
+   filenames, but with the recent addition of "git worktree"
+   subcommand, whose tests are also named similarly, it has become
+   harder to tell them apart.  The traditional tests have been renamed
+   to use "work-tree" instead in an attempt to differentiate them.
+   (merge 5549029 mg/work-tree-tests later to maint).
+
+ * Many codepaths forget to check return value from git_config_set();
+   the function is made to die() to make sure we do not proceed when
+   setting a configuration variable failed.
+   (merge 3d18064 ps/config-error later to maint).
+
+ * Handling of errors while writing into our internal asynchronous
+   process has been made more robust, which reduces flakiness in our
+   tests.
+   (merge 43f3afc jk/epipe-in-async later to maint).
+
+ * There is a new DEVELOPER knob that enables many compiler warning
+   options in the Makefile.
+
+ * The way the test scripts configure the Apache web server has been
+   updated to work also for Apache 2.4 running on RedHat derived
+   distros.
+
+ * Out of maintenance gcc on OSX 10.6 fails to compile the code in
+   'master'; work it around by using clang by default on the platform.
+
+ * The "name_path" API was an attempt to reduce the need to construct
+   the full path out of a series of path components while walking a
+   tree hierarchy, but over time made less efficient because the path
+   needs to be flattened, e.g. to be compared with another path that
+   is already flat, in many cases.  The API has been removed and its
+   users have been rewritten to simplify the overall code complexity.
+   This incidentally also closes some heap-corruption holes.
+
+ * Recent versions of GNU grep is pickier than before to decide if a
+   file is "binary" and refuse to give line-oriented hits when we
+   expect it to, unless explicitly told with "-a" option.  As our
+   scripted Porcelains use sane_grep wrapper for line-oriented data,
+   even when the line may contain non-ASCII payload we took from
+   end-user data, use "grep -a" to implement sane_grep wrapper when
+   using an implementation of "grep" that takes the "-a" option.
+
+
 
 Also contains various documentation updates and code clean-ups.
 
@@ -171,39 +268,31 @@
    exporting GIT_WORK_TREE to point at the root of the working tree,
    interfering when they tried to use a different working tree without
    setting GIT_WORK_TREE environment themselves.
-   (merge df1e6ea nd/stop-setenv-work-tree later to maint).
 
  * The "exclude_list" structure has the usual "alloc, nr" pair of
    fields to be used by ALLOC_GROW(), but clear_exclude_list() forgot
    to reset 'alloc' to 0 when it cleared 'nr' to discard the managed
    array.
-   (merge 2653a8c nd/dir-exclude-cleanup later to maint).
 
  * Paths that have been told the index about with "add -N" are not
    quite yet in the index, but a few commands behaved as if they
    already are in a harmful way.
-   (merge 4d55200 nd/ita-cleanup later to maint).
 
  * "git send-email" was confused by escaped quotes stored in the alias
    files saved by "mutt", which has been corrected.
-   (merge 2c510f2 ew/send-email-mutt-alias-fix later to maint).
 
- * A few unportable C construct have been spotted by clang compiler
+ * A few non-portable C construct have been spotted by clang compiler
    and have been fixed.
-   (merge a0df2e5 jk/clang-pedantic later to maint).
 
  * The documentation has been updated to hint the connection between
    the '--signoff' option and DCO.
-   (merge b2c150d dw/signoff-doc later to maint).
 
  * "git reflog" incorrectly assumed that all objects that used to be
    at the tip of a ref must be commits, which caused it to segfault.
-   (merge aecad37 dk/reflog-walk-with-non-commit later to maint).
 
  * The ignore mechanism saw a few regressions around untracked file
    listing and sparse checkout selection areas in 2.7.0; the change
    that is responsible for the regression has been reverted.
-   (merge 8c72236 nd/exclusion-regression-fix later to maint).
 
  * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
    (e.g. COMMIT_EDITMSG) that is meant to be left after the command is
@@ -211,7 +300,6 @@
    be shared with core.sharedRepository and the umask of the previous
    user is tighter.  They have been made to work better by calling
    unlink(2) and retrying after fopen(3) fails with EPERM.
-   (merge ea56518 js/fopen-harder later to maint).
 
  * Asking gitweb for a nonexistent commit left a warning in the server
    log.
@@ -219,100 +307,133 @@
    Somebody may want to follow this up with an additional test, perhaps?
    IIRC, we do test that no Perl warnings are given to the server log,
    so this should have been caught if our test coverage were good.
-   (merge a9eb90a ho/gitweb-squelch-undef-warning later to maint).
 
  * "git rebase", unlike all other callers of "gc --auto", did not
    ignore the exit code from "gc --auto".
-   (merge 8c24f5b jk/ok-to-fail-gc-auto-in-rebase later to maint).
 
  * Many codepaths that run "gc --auto" before exiting kept packfiles
    mapped and left the file descriptors to them open, which was not
    friendly to systems that cannot remove files that are open.  They
    now close the packs before doing so.
-   (merge d562102 js/close-packs-before-gc later to maint).
 
  * A recent optimization to filter-branch in v2.7.0 introduced a
    regression when --prune-empty filter is used, which has been
    corrected.
-   (merge 1dc413e jk/filter-branch-no-index later to maint).
 
  * The description for SANITY prerequisite the test suite uses has
    been clarified both in the comment and in the implementation.
-   (merge 719c3da jk/sanity later to maint).
 
  * "git tag" started listing a tag "foo" as "tags/foo" when a branch
    named "foo" exists in the same repository; remove this unnecessary
    disambiguation, which is a regression introduced in v2.7.0.
-   (merge 0571979 jk/list-tag-2.7-regression later to maint).
 
  * The way "git svn" uses auth parameter was broken by Subversion
    1.9.0 and later.
-   (merge 0b66415 ew/svn-1.9.0-auth later to maint).
 
  * The "split" subcommand of "git subtree" (in contrib/) incorrectly
    skipped merges when it shouldn't, which was corrected.
-   (merge 933cfeb dw/subtree-split-do-not-drop-merge later to maint).
 
  * A few options of "git diff" did not work well when the command was
    run from a subdirectory.
-   (merge a97262c nd/diff-with-path-params later to maint).
 
  * The command line completion learned a handful of additional options
    and command specific syntax.
-   (merge fa4b5e3 jk/completion-rebase later to maint).
-   (merge f7c2e1a pw/completion-show-branch later to maint).
-   (merge d7d4ca8 pw/completion-stash later to maint).
-   (merge e6414b4 tb/complete-word-diff-regex later to maint).
 
  * dirname() emulation has been added, as Msys2 lacks it.
-   (merge e7d5ce8 js/dirname-basename later to maint).
 
  * The underlying machinery used by "ls-files -o" and other commands
-   have been taught not to create empty submodule ref cache for a
+   has been taught not to create empty submodule ref cache for a
    directory that is not a submodule.  This removes a ton of wasted
    CPU cycles.
-   (merge a2d5156 jk/ref-cache-non-repository-optim later to maint).
 
  * "git worktree" had a broken code that attempted to auto-fix
    possible inconsistency that results from end-users moving a
    worktree to different places without telling Git (the original
-   repository needs to maintain backpointers to its worktrees, but
-   "mv" run by end-users who are not familiar with that fact will
-   obviously not adjust them), which actually made things worse
-   when triggered.
-   (merge 618244e nd/do-not-move-worktree-manually later to maint).
+   repository needs to maintain back-pointers to its worktrees,
+   but "mv" run by end-users who are not familiar with that fact
+   will obviously not adjust them), which actually made things
+   worse when triggered.
 
  * The low-level merge machinery has been taught to use CRLF line
    termination when inserting conflict markers to merged contents that
    are themselves CRLF line-terminated.
-   (merge 15980de js/xmerge-marker-eol later to maint).
 
  * "git push --force-with-lease" has been taught to report if the push
    needed to force (or fast-forwarded).
-   (merge b2e93f8 aw/push-force-with-lease-reporting later to maint).
 
  * The emulated "yes" command used in our test scripts has been
    tweaked not to spend too much time generating unnecessary output
    that is not used, to help those who test on Windows where it would
    not stop until it fills the pipe buffer due to lack of SIGPIPE.
-   (merge 6129c93 js/test-lib-windows-emulated-yes later to maint).
 
  * The documentation for "git clean" has been corrected; it mentioned
    that .git/modules/* are removed by giving two "-f", which has never
    been the case.
-   (merge 31e3c2d mm/clean-doc-fix later to maint).
 
  * The vimdiff backend for "git mergetool" has been tweaked to arrange
    and number buffers in the order that would match the expectation of
    majority of people who read left to right, then top down and assign
    buffers 1 2 3 4 "mentally" to local base remote merge windows based
    on that order.
-   (merge 2300328 dw/mergetool-vim-window-shuffle later to maint).
+
+ * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a
+   rev, i.e. the object named by the the pathname with wildcard
+   characters in a tree object.
+   (merge aac4fac nd/dwim-wildcards-as-pathspecs later to maint).
+
+ * "git rev-parse --git-common-dir" used in the worktree feature
+   misbehaved when run from a subdirectory.
+   (merge 17f1365 nd/git-common-dir-fix later to maint).
+
+ * "git worktree add -B <branchname>" did not work.
+
+ * The "v(iew)" subcommand of the interactive "git am -i" command was
+   broken in 2.6.0 timeframe when the command was rewritten in C.
+   (merge 708b8cc jc/am-i-v-fix later to maint).
+
+ * "git merge-tree" used to mishandle "both sides added" conflict with
+   its own "create a fake ancestor file that has the common parts of
+   what both sides have added and do a 3-way merge" logic; this has
+   been updated to use the usual "3-way merge with an empty blob as
+   the fake common ancestor file" approach used in the rest of the
+   system.
+   (merge 907681e jk/no-diff-emit-common later to maint).
+
+ * The memory ownership rule of fill_textconv() API, which was a bit
+   tricky, has been documented a bit better.
+   (merge a64e6a4 jk/more-comments-on-textconv later to maint).
+
+ * Update various codepaths to avoid manually-counted malloc().
+   (merge 08c95df jk/tighten-alloc later to maint).
+
+ * The documentation did not clearly state that the 'simple' mode is
+   now the default for "git push" when push.default configuration is
+   not set.
+   (merge f6b1fb3 mm/push-simple-doc later to maint).
+
+ * Recent versions of GNU grep are pickier when their input contains
+   arbitrary binary data, which some of our tests uses.  Rewrite the
+   tests to sidestep the problem.
+   (merge 3b1442d jk/grep-binary-workaround-in-test later to maint).
+
+ * A helper function "git submodule" uses since v2.7.0 to list the
+   modules that match the pathspec argument given to its subcommands
+   (e.g. "submodule add <repo> <path>") has been fixed.
+   (merge 2b56bb7 sb/submodule-module-list-fix later to maint).
+
+ * "git config section.var value" to set a value in per-repository
+   configuration file failed when it was run outside any repository,
+   but didn't say the reason correctly.
+   (merge 638fa62 js/config-set-in-non-repository later to maint).
+
+ * The code to read the pack data using the offsets stored in the pack
+   idx file has been made more carefully check the validity of the
+   data in the idx.
+   (merge 7465feb jk/pack-idx-corruption-safety later to maint).
 
  * Other minor clean-ups and documentation updates
-   (merge 99487cf ss/user-manual later to maint).
-   (merge e914ef0 ew/for-each-ref-doc later to maint).
-   (merge 36fc7d8 sg/t6050-failing-editor-test-fix later to maint).
-   (merge 60253a6 ss/clone-depth-single-doc later to maint).
-   (merge bd02e97 lv/add-doc-working-tree later to maint).
-   (merge f562d7d ah/stripspace-optstring later to maint).
+   (merge f459823 ak/extract-argv0-last-dir-sep later to maint).
+   (merge 63ca1c0 ak/git-strip-extension-from-dashed-command later to maint).
+   (merge 4867f11 ps/plug-xdl-merge-leak later to maint).
+   (merge 4938686 dt/initial-ref-xn-commit-doc later to maint).
+   (merge 9537f21 ma/update-hooks-sample-typofix later to maint).
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 01cca0a..2cd6bdd 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1648,6 +1648,12 @@
 * `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)
 --
 
+http.emptyAuth::
+	Attempt authentication without seeking a username or password.  This
+	can be used to attempt GSS-Negotiate authentication without specifying
+	a username in the URL, as libcurl normally requires a username for
+	authentication.
+
 http.cookieFile::
 	File containing previously stored cookie lines which should be used
 	in the Git http session, if they match the server. The file format
@@ -1727,6 +1733,14 @@
 	with when fetching or pushing over HTTPS. Can be overridden
 	by the 'GIT_SSL_CAPATH' environment variable.
 
+http.pinnedpubkey::
+	Public key of the https service. It may either be the filename of
+	a PEM or DER encoded public key file or a string starting with
+	'sha256//' followed by the base64 encoded sha256 hash of the
+	public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will
+	exit with an error if this option is set but not supported by
+	cURL.
+
 http.sslTry::
 	Attempt to use AUTH SSL/TLS and encrypted data transfers
 	when connecting via regular FTP protocol. This might be needed
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index 952dfdf..036edfb 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -158,3 +158,11 @@
 	by default when it is attached to a terminal, unless -q
 	is specified. This flag forces progress status even if the
 	standard error stream is not directed to a terminal.
+
+-4::
+--ipv4::
+	Use IPv4 addresses only, ignoring IPv6 addresses.
+
+-6::
+--ipv6::
+	Use IPv6 addresses only, ignoring IPv4 addresses.
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt
index 242fa5d..153b2d8 100644
--- a/Documentation/git-config.txt
+++ b/Documentation/git-config.txt
@@ -9,18 +9,18 @@
 SYNOPSIS
 --------
 [verse]
-'git config' [<file-option>] [type] [-z|--null] name [value [value_regex]]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]
 'git config' [<file-option>] [type] --add name value
 'git config' [<file-option>] [type] --replace-all name value [value_regex]
-'git config' [<file-option>] [type] [-z|--null] --get name [value_regex]
-'git config' [<file-option>] [type] [-z|--null] --get-all name [value_regex]
-'git config' [<file-option>] [type] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]
+'git config' [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
 'git config' [<file-option>] [type] [-z|--null] --get-urlmatch name URL
 'git config' [<file-option>] --unset name [value_regex]
 'git config' [<file-option>] --unset-all name [value_regex]
 'git config' [<file-option>] --rename-section old_name new_name
 'git config' [<file-option>] --remove-section name
-'git config' [<file-option>] [-z|--null] [--name-only] -l | --list
+'git config' [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
 'git config' [<file-option>] --get-color name [default]
 'git config' [<file-option>] --get-colorbool name [stdout-is-tty]
 'git config' [<file-option>] -e | --edit
@@ -194,6 +194,12 @@
 	Output only the names of config variables for `--list` or
 	`--get-regexp`.
 
+--show-origin::
+	Augment the output of all queried config options with the
+	origin type (file, standard input, blob, command line) and
+	the actual origin (config file path, ref, or blob id if
+	applicable).
+
 --get-colorbool name [stdout-is-tty]::
 
 	Find the color setting for `name` (e.g. `color.diff`) and output
diff --git a/Documentation/git-credential-cache.txt b/Documentation/git-credential-cache.txt
index 89b7306..96208f8 100644
--- a/Documentation/git-credential-cache.txt
+++ b/Documentation/git-credential-cache.txt
@@ -36,7 +36,7 @@
 	cache daemon if one is not started). Defaults to
 	`~/.git-credential-cache/socket`. If your home directory is on a
 	network-mounted filesystem, you may need to change this to a
-	local filesystem.
+	local filesystem. You must specify an absolute path.
 
 CONTROLLING THE DAEMON
 ----------------------
diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt
index 2e3e96f..012e8f9 100644
--- a/Documentation/git-for-each-ref.txt
+++ b/Documentation/git-for-each-ref.txt
@@ -133,14 +133,18 @@
 
 align::
 	Left-, middle-, or right-align the content between
-	%(align:...) and %(end). The "align:" is followed by `<width>`
-	and `<position>` in any order separated by a comma, where the
-	`<position>` is either left, right or middle, default being
-	left and `<width>` is the total length of the content with
-	alignment. If the contents length is more than the width then
-	no alignment is performed. If used with '--quote' everything
-	in between %(align:...) and %(end) is quoted, but if nested
-	then only the topmost level performs quoting.
+	%(align:...) and %(end). The "align:" is followed by
+	`width=<width>` and `position=<position>` in any order
+	separated by a comma, where the `<position>` is either left,
+	right or middle, default being left and `<width>` is the total
+	length of the content with alignment. For brevity, the
+	"width=" and/or "position=" prefixes may be omitted, and bare
+	<width> and <position> used instead.  For instance,
+	`%(align:<width>,<position>)`. If the contents length is more
+	than the width then no alignment is performed. If used with
+	'--quote' everything in between %(align:...) and %(end) is
+	quoted, but if nested then only the topmost level performs
+	quoting.
 
 In addition to the above, for commit and tag objects, the header
 field names (`tree`, `parent`, `object`, `type`, and `tag`) can
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 0e08f56..75c3f41 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -155,7 +155,7 @@
 	<eolinfo> is either "-text", "none", "lf", "crlf", "mixed" or "".
 +
 "" means the file is not a regular file, it is not in the index or
-not accessable in the working tree.
+not accessible in the working tree.
 +
 <eolattr> is the attribute that is used when checking out or committing,
 it is either "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf".
diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt
index 738cfde..35e3170 100644
--- a/Documentation/git-p4.txt
+++ b/Documentation/git-p4.txt
@@ -515,20 +515,18 @@
 	Git expects paths encoded as UTF-8. Use this config to tell git-p4
 	what encoding Perforce had used for the paths. This encoding is used
 	to transcode the paths to UTF-8. As an example, Perforce on Windows
-	often uses “cp1252” to encode path names.
+	often uses "cp1252" to encode path names.
 
 git-p4.largeFileSystem::
 	Specify the system that is used for large (binary) files. Please note
 	that large file systems do not support the 'git p4 submit' command.
-	Only Git LFS [1] is implemented right now. Download
-	and install the Git LFS command line extension to use this option
-	and configure it like this:
+	Only Git LFS is implemented right now (see https://git-lfs.github.com/
+	for more information). Download and install the Git LFS command line
+	extension to use this option and configure it like this:
 +
 -------------
 git config       git-p4.largeFileSystem GitLFS
 -------------
-+
-	[1] https://git-lfs.github.com/
 
 git-p4.largeFileExtensions::
 	All files matching a file extension in the list will be processed
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index 32482ce..cf6ee4a 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -37,6 +37,13 @@
 and if it is not found, honors `push.default` configuration to decide
 what to push (See linkgit:git-config[1] for the meaning of `push.default`).
 
+When neither the command-line nor the configuration specify what to
+push, the default behavior is used, which corresponds to the `simple`
+value for `push.default`: the current branch is pushed to the
+corresponding upstream branch, but as a safety measure, the push is
+aborted if the upstream branch does not have the same name as the
+local one.
+
 
 OPTIONS[[OPTIONS]]
 ------------------
@@ -277,6 +284,13 @@
 	default is --verify, giving the hook a chance to prevent the
 	push.  With --no-verify, the hook is bypassed completely.
 
+-4::
+--ipv4::
+	Use IPv4 addresses only, ignoring IPv6 addresses.
+
+-6::
+--ipv6::
+	Use IPv6 addresses only, ignoring IPv4 addresses.
 
 include::urls-remotes.txt[]
 
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 6cca8bb..6ed610a 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -3,7 +3,7 @@
 
 NAME
 ----
-git-rebase - Forward-port local commits to the updated upstream head
+git-rebase - Reapply commits on top of another base tip
 
 SYNOPSIS
 --------
diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 0c0f60b..fb23a98 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -1034,6 +1034,8 @@
 	url = http://server.org/svn
 	fetch = trunk/project-a:refs/remotes/project-a/trunk
 	branches = branches/*/project-a:refs/remotes/project-a/branches/*
+	branches = branches/release_*:refs/remotes/project-a/branches/release_*
+	branches = branches/re*se:refs/remotes/project-a/branches/*
 	tags = tags/*/project-a:refs/remotes/project-a/tags/*
 ------------------------------------------------------------------------
 
@@ -1044,6 +1046,16 @@
 type of configuration is not automatically created by 'init' and
 should be manually entered with a text-editor or using 'git config'.
 
+Also note that only one asterisk is allowed per word. For example:
+
+	branches = branches/re*se:refs/remotes/project-a/branches/*
+
+will match branches 'release', 'rese', 're123se', however
+
+	branches = branches/re*s*e:refs/remotes/project-a/branches/*
+
+will produce an error.
+
 It is also possible to fetch a subset of branches or tags by using a
 comma-separated list of names within braces. For example:
 
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 9dffb4c..adc940b 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -43,16 +43,23 @@
 branch of the `git.git` repository.
 Documentation for older releases are available here:
 
-* link:v2.7.2/git.html[documentation for release 2.7.2]
+* link:v2.8.0/git.html[documentation for release 2.8]
 
 * release notes for
+  link:RelNotes/2.8.0.txt[2.8].
+
+* link:v2.7.3/git.html[documentation for release 2.7.3]
+
+* release notes for
+  link:RelNotes/2.7.3.txt[2.7.3],
   link:RelNotes/2.7.2.txt[2.7.2],
   link:RelNotes/2.7.1.txt[2.7.1],
   link:RelNotes/2.7.0.txt[2.7].
 
-* link:v2.6.5/git.html[documentation for release 2.6.5]
+* link:v2.6.6/git.html[documentation for release 2.6.6]
 
 * release notes for
+  link:RelNotes/2.6.6.txt[2.6.6],
   link:RelNotes/2.6.5.txt[2.6.5],
   link:RelNotes/2.6.4.txt[2.6.4],
   link:RelNotes/2.6.3.txt[2.6.3],
@@ -60,18 +67,20 @@
   link:RelNotes/2.6.1.txt[2.6.1],
   link:RelNotes/2.6.0.txt[2.6].
 
-* link:v2.5.4/git.html[documentation for release 2.5.4]
+* link:v2.5.5/git.html[documentation for release 2.5.5]
 
 * release notes for
+  link:RelNotes/2.5.5.txt[2.5.5],
   link:RelNotes/2.5.4.txt[2.5.4],
   link:RelNotes/2.5.3.txt[2.5.3],
   link:RelNotes/2.5.2.txt[2.5.2],
   link:RelNotes/2.5.1.txt[2.5.1],
   link:RelNotes/2.5.0.txt[2.5].
 
-* link:v2.4.10/git.html[documentation for release 2.4.10]
+* link:v2.4.11/git.html[documentation for release 2.4.11]
 
 * release notes for
+  link:RelNotes/2.4.11.txt[2.4.11],
   link:RelNotes/2.4.10.txt[2.4.10],
   link:RelNotes/2.4.9.txt[2.4.9],
   link:RelNotes/2.4.8.txt[2.4.8],
@@ -1123,7 +1132,7 @@
 	    connection (or proxy, if configured)
 
 	  - `ssh`: git over ssh (including `host:path` syntax,
-	    `git+ssh://`, etc).
+	    `ssh://`, etc).
 
 	  - `http`: git over http, both "smart http" and "dumb http".
 	    Note that this does _not_ include `https`; if you want both,
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 7ba0ac9..a2f59b1 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -397,7 +397,7 @@
 'extra-info'.
 
 The hook always runs after the automatic note copying (see
-"notes.rewrite.<command>" in linkgit:git-config.txt[1]) has happened, and
+"notes.rewrite.<command>" in linkgit:git-config[1]) has happened, and
 thus has access to these notes.
 
 The following command-specific comments apply:
diff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt
index 7bbd19b..2eb92b9 100644
--- a/Documentation/merge-strategies.txt
+++ b/Documentation/merge-strategies.txt
@@ -81,9 +81,17 @@
 	Disables the `renormalize` option.  This overrides the
 	`merge.renormalize` configuration variable.
 
+no-renames;;
+	Turn off rename detection.
+	See also linkgit:git-diff[1] `--no-renames`.
+
+find-renames[=<n>];;
+	Turn on rename detection, optionally setting the similarity
+	threshold.  This is the default.
+	See also linkgit:git-diff[1] `--find-renames`.
+
 rename-threshold=<n>;;
-	Controls the similarity threshold used for rename detection.
-	See also linkgit:git-diff[1] `-M`.
+	Deprecated synonym for `find-renames=<n>`.
 
 subtree[=<path>];;
 	This option is a more advanced form of 'subtree' strategy, where
diff --git a/Documentation/technical/api-argv-array.txt b/Documentation/technical/api-argv-array.txt
index 8076172..cfc0630 100644
--- a/Documentation/technical/api-argv-array.txt
+++ b/Documentation/technical/api-argv-array.txt
@@ -56,3 +56,10 @@
 `argv_array_clear`::
 	Free all memory associated with the array and return it to the
 	initial, empty state.
+
+`argv_array_detach`::
+	Disconnect the `argv` member from the `argv_array` struct and
+	return it. The caller is responsible for freeing the memory used
+	by the array, and by the strings it references. After detaching,
+	the `argv_array` is in a reinitialized state and can be pushed
+	into again.
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index ec6bacf..5e07454 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -2134,7 +2134,7 @@
 instaweb is lighttpd.
 
 See the file gitweb/INSTALL in the Git source tree and
-linkgit:gitweb[1] for instructions on details setting up a permament
+linkgit:gitweb[1] for instructions on details setting up a permanent
 installation with a CGI or Perl capable server.
 
 [[how-to-get-a-git-repository-with-minimal-history]]
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 5873f16..4e9450b 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=GIT-VERSION-FILE
-DEF_VER=v2.7.0.GIT
+DEF_VER=v2.8.0
 
 LF='
 '
diff --git a/Makefile b/Makefile
index 10566d6..2742a69 100644
--- a/Makefile
+++ b/Makefile
@@ -264,6 +264,9 @@
 #
 # Define NO_TCLTK if you do not want Tcl/Tk GUI.
 #
+# Define SANE_TEXT_GREP to "-a" if you use recent versions of GNU grep
+# and egrep that are pickier when their input contains non-ASCII data.
+#
 # The TCL_PATH variable governs the location of the Tcl interpreter
 # used to optimize git-gui for your system.  Only used if NO_TCLTK
 # is not set.  Defaults to the bare 'tclsh'.
@@ -380,6 +383,18 @@
 ALL_LDFLAGS = $(LDFLAGS)
 STRIP ?= strip
 
+ifdef DEVELOPER
+CFLAGS += -Werror \
+	-Wdeclaration-after-statement \
+	-Wno-format-zero-length \
+	-Wold-style-definition \
+	-Woverflow \
+	-Wpointer-arith \
+	-Wstrict-prototypes \
+	-Wunused \
+	-Wvla
+endif
+
 # Create as necessary, replace existing, make ranlib unneeded.
 ARFLAGS = rcs
 
@@ -1728,7 +1743,7 @@
 
 SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
 	$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
-	$(gitwebdir_SQ):$(PERL_PATH_SQ)
+	$(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP)
 define cmd_munge_script
 $(RM) $@ $@+ && \
 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@ -1740,6 +1755,7 @@
     -e $(BROKEN_PATH_FIX) \
     -e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \
     -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
+    -e 's|@@SANE_TEXT_GREP@@|$(SANE_TEXT_GREP)|g' \
     $@.sh >$@+
 endef
 
diff --git a/alias.c b/alias.c
index a11229d..3b90397 100644
--- a/alias.c
+++ b/alias.c
@@ -23,7 +23,7 @@
 	int src, dst, count = 0, size = 16;
 	char quoted = 0;
 
-	*argv = xmalloc(sizeof(**argv) * size);
+	ALLOC_ARRAY(*argv, size);
 
 	/* split alias_string */
 	(*argv)[count++] = cmdline;
diff --git a/archive.c b/archive.c
index 0687afa..5d735ae 100644
--- a/archive.c
+++ b/archive.c
@@ -171,8 +171,8 @@
 		unsigned mode, int stage, struct archiver_context *c)
 {
 	struct directory *d;
-	size_t len = base->len + 1 + strlen(filename) + 1;
-	d = xmalloc(sizeof(*d) + len);
+	size_t len = st_add4(base->len, 1, strlen(filename), 1);
+	d = xmalloc(st_add(sizeof(*d), len));
 	d->up	   = c->bottom;
 	d->baselen = base->len;
 	d->mode	   = mode;
diff --git a/argv-array.c b/argv-array.c
index eaed477..5d370fa 100644
--- a/argv-array.c
+++ b/argv-array.c
@@ -74,3 +74,14 @@
 	}
 	argv_array_init(array);
 }
+
+const char **argv_array_detach(struct argv_array *array)
+{
+	if (array->argv == empty_argv)
+		return xcalloc(1, sizeof(const char *));
+	else {
+		const char **ret = array->argv;
+		argv_array_init(array);
+		return ret;
+	}
+}
diff --git a/argv-array.h b/argv-array.h
index a2fa0aa..29056e4 100644
--- a/argv-array.h
+++ b/argv-array.h
@@ -20,5 +20,6 @@
 void argv_array_pushv(struct argv_array *, const char **);
 void argv_array_pop(struct argv_array *);
 void argv_array_clear(struct argv_array *);
+const char **argv_array_detach(struct argv_array *);
 
 #endif /* ARGV_ARRAY_H */
diff --git a/attr.c b/attr.c
index 086c08d..6537a43 100644
--- a/attr.c
+++ b/attr.c
@@ -93,9 +93,7 @@
 	if (invalid_attr_name(name, len))
 		return NULL;
 
-	a = xmalloc(sizeof(*a) + len + 1);
-	memcpy(a->name, name, len);
-	a->name[len] = 0;
+	FLEX_ALLOC_MEM(a, name, name, len);
 	a->h = hval;
 	a->next = git_attr_hash[pos];
 	a->attr_nr = attr_nr++;
@@ -799,7 +797,7 @@
 			++count;
 	}
 	*num = count;
-	*check = xmalloc(sizeof(**check) * count);
+	ALLOC_ARRAY(*check, count);
 	j = 0;
 	for (i = 0; i < attr_nr; i++) {
 		const char *value = check_all_attr[i].value;
diff --git a/bisect.c b/bisect.c
index 06ec54e..7996c29 100644
--- a/bisect.c
+++ b/bisect.c
@@ -708,10 +708,10 @@
 
 static struct commit **get_bad_and_good_commits(int *rev_nr)
 {
-	int len = 1 + good_revs.nr;
-	struct commit **rev = xmalloc(len * sizeof(*rev));
+	struct commit **rev;
 	int i, n = 0;
 
+	ALLOC_ARRAY(rev, 1 + good_revs.nr);
 	rev[n++] = get_commit_reference(current_bad_oid->hash);
 	for (i = 0; i < good_revs.nr; i++)
 		rev[n++] = get_commit_reference(good_revs.sha1[i]);
diff --git a/branch.c b/branch.c
index 7ff3f20..c50ea42 100644
--- a/branch.c
+++ b/branch.c
@@ -49,7 +49,13 @@
 	return 0;
 }
 
-void install_branch_config(int flag, const char *local, const char *origin, const char *remote)
+static const char tracking_advice[] =
+N_("\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\".");
+
+int install_branch_config(int flag, const char *local, const char *origin, const char *remote)
 {
 	const char *shortname = NULL;
 	struct strbuf key = STRBUF_INIT;
@@ -60,20 +66,23 @@
 	    && !origin) {
 		warning(_("Not setting branch %s as its own upstream."),
 			local);
-		return;
+		return 0;
 	}
 
 	strbuf_addf(&key, "branch.%s.remote", local);
-	git_config_set(key.buf, origin ? origin : ".");
+	if (git_config_set_gently(key.buf, origin ? origin : ".") < 0)
+		goto out_err;
 
 	strbuf_reset(&key);
 	strbuf_addf(&key, "branch.%s.merge", local);
-	git_config_set(key.buf, remote);
+	if (git_config_set_gently(key.buf, remote) < 0)
+		goto out_err;
 
 	if (rebasing) {
 		strbuf_reset(&key);
 		strbuf_addf(&key, "branch.%s.rebase", local);
-		git_config_set(key.buf, "true");
+		if (git_config_set_gently(key.buf, "true") < 0)
+			goto out_err;
 	}
 	strbuf_release(&key);
 
@@ -102,6 +111,19 @@
 					  local, remote);
 		}
 	}
+
+	return 0;
+
+out_err:
+	strbuf_release(&key);
+	error(_("Unable to write upstream branch configuration"));
+
+	advise(_(tracking_advice),
+	       origin ? origin : "",
+	       origin ? "/" : "",
+	       shortname ? shortname : remote);
+
+	return -1;
 }
 
 /*
@@ -109,8 +131,8 @@
  * to infer the settings for branch.<new_ref>.{remote,merge} from the
  * config.
  */
-static int setup_tracking(const char *new_ref, const char *orig_ref,
-			  enum branch_track track, int quiet)
+static void setup_tracking(const char *new_ref, const char *orig_ref,
+			   enum branch_track track, int quiet)
 {
 	struct tracking tracking;
 	int config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;
@@ -118,7 +140,7 @@
 	memset(&tracking, 0, sizeof(tracking));
 	tracking.spec.dst = (char *)orig_ref;
 	if (for_each_remote(find_tracked_branch, &tracking))
-		return 1;
+		return;
 
 	if (!tracking.matches)
 		switch (track) {
@@ -127,18 +149,18 @@
 		case BRANCH_TRACK_OVERRIDE:
 			break;
 		default:
-			return 1;
+			return;
 		}
 
 	if (tracking.matches > 1)
-		return error(_("Not tracking: ambiguous information for ref %s"),
-				orig_ref);
+		die(_("Not tracking: ambiguous information for ref %s"),
+		    orig_ref);
 
-	install_branch_config(config_flags, new_ref, tracking.remote,
-			      tracking.src ? tracking.src : orig_ref);
+	if (install_branch_config(config_flags, new_ref, tracking.remote,
+			      tracking.src ? tracking.src : orig_ref) < 0)
+		exit(-1);
 
 	free(tracking.src);
-	return 0;
 }
 
 int read_branch_desc(struct strbuf *buf, const char *branch_name)
diff --git a/branch.h b/branch.h
index 58aa45f..78ad438 100644
--- a/branch.h
+++ b/branch.h
@@ -43,9 +43,10 @@
 /*
  * Configure local branch "local" as downstream to branch "remote"
  * from remote "origin".  Used by git branch --set-upstream.
+ * Returns 0 on success.
  */
 #define BRANCH_CONFIG_VERBOSE 01
-extern void install_branch_config(int flag, const char *local, const char *origin, const char *remote);
+extern int install_branch_config(int flag, const char *local, const char *origin, const char *remote);
 
 /*
  * Read branch description
diff --git a/builtin/am.c b/builtin/am.c
index 259dc1c..d003939 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1806,7 +1806,7 @@
 
 			if (!pager)
 				pager = "cat";
-			argv_array_push(&cp.args, pager);
+			prepare_pager_args(&cp, pager);
 			argv_array_push(&cp.args, am_path(state, "patch"));
 			run_command(&cp);
 		}
diff --git a/builtin/apply.c b/builtin/apply.c
index d61ac65..42c610e 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -2632,7 +2632,7 @@
 	insert_count = postimage->len;
 
 	/* Adjust the contents */
-	result = xmalloc(img->len + insert_count - remove_count + 1);
+	result = xmalloc(st_add3(st_sub(img->len, remove_count), insert_count, 1));
 	memcpy(result, img->buf, applied_at);
 	memcpy(result + applied_at, postimage->buf, postimage->len);
 	memcpy(result + applied_at + postimage->len,
diff --git a/builtin/blame.c b/builtin/blame.c
index 55bf5fa..e982fb8 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -466,13 +466,11 @@
 static struct origin *make_origin(struct commit *commit, const char *path)
 {
 	struct origin *o;
-	size_t pathlen = strlen(path) + 1;
-	o = xcalloc(1, sizeof(*o) + pathlen);
+	FLEX_ALLOC_STR(o, path, path);
 	o->commit = commit;
 	o->refcnt = 1;
 	o->next = commit->util;
 	commit->util = o;
-	memcpy(o->path, path, pathlen); /* includes NUL */
 	return o;
 }
 
@@ -2059,7 +2057,8 @@
 	for (p = buf; p < end; p = get_next_line(p, end))
 		num++;
 
-	sb->lineno = lineno = xmalloc(sizeof(*sb->lineno) * (num + 1));
+	ALLOC_ARRAY(sb->lineno, num + 1);
+	lineno = sb->lineno;
 
 	for (p = buf; p < end; p = get_next_line(p, end))
 		*lineno++ = p - buf;
diff --git a/builtin/branch.c b/builtin/branch.c
index 3f6c825..7b45b6b 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -570,7 +570,6 @@
 
 static int edit_branch_description(const char *branch_name)
 {
-	int status;
 	struct strbuf buf = STRBUF_INIT;
 	struct strbuf name = STRBUF_INIT;
 
@@ -595,11 +594,11 @@
 	strbuf_stripspace(&buf, 1);
 
 	strbuf_addf(&name, "branch.%s.description", branch_name);
-	status = git_config_set(name.buf, buf.len ? buf.buf : NULL);
+	git_config_set(name.buf, buf.len ? buf.buf : NULL);
 	strbuf_release(&name);
 	strbuf_release(&buf);
 
-	return status;
+	return 0;
 }
 
 int cmd_branch(int argc, const char **argv, const char *prefix)
diff --git a/builtin/check-ref-format.c b/builtin/check-ref-format.c
index fd915d5..eac4994 100644
--- a/builtin/check-ref-format.c
+++ b/builtin/check-ref-format.c
@@ -20,7 +20,7 @@
  */
 static char *collapse_slashes(const char *refname)
 {
-	char *ret = xmalloc(strlen(refname) + 1);
+	char *ret = xmallocz(strlen(refname));
 	char ch;
 	char prev = '/';
 	char *cp = ret;
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 5af84a3..efcbd8f 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -662,7 +662,7 @@
 		}
 	} else if (new->path) {	/* Switch branches. */
 		if (create_symref("HEAD", new->path, msg.buf) < 0)
-			die("unable to update HEAD");
+			die(_("unable to update HEAD"));
 		if (!opts->quiet) {
 			if (old->path && !strcmp(new->path, old->path)) {
 				if (opts->new_branch_force)
@@ -982,7 +982,8 @@
 		 */
 		int recover_with_dwim = dwim_new_local_branch_ok;
 
-		if (check_filename(NULL, arg) && !has_dash_dash)
+		if (!has_dash_dash &&
+		    (check_filename(NULL, arg) || !no_wildcard(arg)))
 			recover_with_dwim = 0;
 		/*
 		 * Accept "git checkout foo" and "git checkout foo --"
diff --git a/builtin/clean.c b/builtin/clean.c
index 7b08237..0371010 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -543,7 +543,7 @@
 	int eof = 0;
 	int i;
 
-	chosen = xmalloc(sizeof(int) * stuff->nr);
+	ALLOC_ARRAY(chosen, stuff->nr);
 	/* set chosen as uninitialized */
 	for (i = 0; i < stuff->nr; i++)
 		chosen[i] = -1;
@@ -615,7 +615,7 @@
 				nr += chosen[i];
 		}
 
-		result = xcalloc(nr + 1, sizeof(int));
+		result = xcalloc(st_add(nr, 1), sizeof(int));
 		for (i = 0; i < stuff->nr && j < nr; i++) {
 			if (chosen[i])
 				result[j++] = i;
diff --git a/builtin/clone.c b/builtin/clone.c
index bcba080..6616392 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -47,6 +47,7 @@
 static char *option_upload_pack = "git-upload-pack";
 static int option_verbosity;
 static int option_progress = -1;
+static enum transport_family family;
 static struct string_list option_config;
 static struct string_list option_reference;
 static int option_dissociate;
@@ -92,6 +93,10 @@
 		   N_("separate git dir from working tree")),
 	OPT_STRING_LIST('c', "config", &option_config, N_("key=value"),
 			N_("set config inside the new repository")),
+	OPT_SET_INT('4', "ipv4", &family, N_("use IPv4 addresses only"),
+			TRANSPORT_FAMILY_IPV4),
+	OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
+			TRANSPORT_FAMILY_IPV6),
 	OPT_END()
 };
 
@@ -231,8 +236,8 @@
 	strip_suffix_mem(start, &len, is_bundle ? ".bundle" : ".git");
 
 	if (!len || (len == 1 && *start == '/'))
-	    die("No directory name could be guessed.\n"
-		"Please specify a directory on the command line");
+		die(_("No directory name could be guessed.\n"
+		      "Please specify a directory on the command line"));
 
 	if (is_bare)
 		dir = xstrfmt("%.*s.git", (int)len, start);
@@ -639,7 +644,7 @@
 		if (create_symref(head_ref.buf,
 				  remote_head_points_at->peer_ref->name,
 				  msg) < 0)
-			die("unable to update %s", head_ref.buf);
+			die(_("unable to update %s"), head_ref.buf);
 		strbuf_release(&head_ref);
 	}
 }
@@ -651,7 +656,7 @@
 	if (our && skip_prefix(our->name, "refs/heads/", &head)) {
 		/* Local default branch link */
 		if (create_symref("HEAD", our->name, NULL) < 0)
-			die("unable to update HEAD");
+			die(_("unable to update HEAD"));
 		if (!option_bare) {
 			update_ref(msg, "HEAD", our->old_oid.hash, NULL, 0,
 				   UPDATE_REFS_DIE_ON_ERR);
@@ -735,7 +740,7 @@
 
 static int write_one_config(const char *key, const char *value, void *data)
 {
-	return git_config_set_multivar(key, value ? value : "true", "^$", 0);
+	return git_config_set_multivar_gently(key, value ? value : "true", "^$", 0);
 }
 
 static void write_config(struct string_list *config)
@@ -745,7 +750,7 @@
 	for (i = 0; i < config->nr; i++) {
 		if (git_config_parse_parameter(config->items[i].string,
 					       write_one_config, NULL) < 0)
-			die("unable to write parameters to config file");
+			die(_("unable to write parameters to config file"));
 	}
 }
 
@@ -970,6 +975,7 @@
 	remote = remote_get(option_origin);
 	transport = transport_get(remote, remote->url[0]);
 	transport_set_verbosity(transport, option_verbosity, option_progress);
+	transport->family = family;
 
 	path = get_repo_path(remote->url[0], &is_bundle);
 	is_local = option_local != 0 && path && !is_bundle;
diff --git a/builtin/config.c b/builtin/config.c
index adc7727..ca9f834 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -3,6 +3,7 @@
 #include "color.h"
 #include "parse-options.h"
 #include "urlmatch.h"
+#include "quote.h"
 
 static const char *const builtin_config_usage[] = {
 	N_("git config [<options>]"),
@@ -27,6 +28,7 @@
 static const char *get_color_slot, *get_colorbool_slot;
 static int end_null;
 static int respect_includes = -1;
+static int show_origin;
 
 #define ACTION_GET (1<<0)
 #define ACTION_GET_ALL (1<<1)
@@ -81,6 +83,7 @@
 	OPT_BOOL('z', "null", &end_null, N_("terminate values with NUL byte")),
 	OPT_BOOL(0, "name-only", &omit_values, N_("show variable names only")),
 	OPT_BOOL(0, "includes", &respect_includes, N_("respect include directives on lookup")),
+	OPT_BOOL(0, "show-origin", &show_origin, N_("show origin of config (file, standard input, blob, command line)")),
 	OPT_END(),
 };
 
@@ -91,8 +94,28 @@
 	usage_with_options(builtin_config_usage, builtin_config_options);
 }
 
+static void show_config_origin(struct strbuf *buf)
+{
+	const char term = end_null ? '\0' : '\t';
+
+	strbuf_addstr(buf, current_config_origin_type());
+	strbuf_addch(buf, ':');
+	if (end_null)
+		strbuf_addstr(buf, current_config_name());
+	else
+		quote_c_style(current_config_name(), buf, NULL, 0);
+	strbuf_addch(buf, term);
+}
+
 static int show_all_config(const char *key_, const char *value_, void *cb)
 {
+	if (show_origin) {
+		struct strbuf buf = STRBUF_INIT;
+		show_config_origin(&buf);
+		/* Use fwrite as "buf" can contain \0's if "end_null" is set. */
+		fwrite(buf.buf, 1, buf.len, stdout);
+		strbuf_release(&buf);
+	}
 	if (!omit_values && value_)
 		printf("%s%c%s%c", key_, delim, value_, term);
 	else
@@ -108,6 +131,8 @@
 
 static int format_config(struct strbuf *buf, const char *key_, const char *value_)
 {
+	if (show_origin)
+		show_config_origin(buf);
 	if (show_keys)
 		strbuf_addstr(buf, key_);
 	if (!omit_values) {
@@ -352,6 +377,9 @@
 
 static void check_write(void)
 {
+	if (!given_config_source.file && !startup_info->have_repository)
+		die("not in a git directory");
+
 	if (given_config_source.use_stdin)
 		die("writing to stdin is not supported");
 
@@ -538,6 +566,14 @@
 		error("--name-only is only applicable to --list or --get-regexp");
 		usage_with_options(builtin_config_usage, builtin_config_options);
 	}
+
+	if (show_origin && !(actions &
+		(ACTION_GET|ACTION_GET_ALL|ACTION_GET_REGEXP|ACTION_LIST))) {
+		error("--show-origin is only applicable to --get, --get-all, "
+			  "--get-regexp, and --list.");
+		usage_with_options(builtin_config_usage, builtin_config_options);
+	}
+
 	if (actions == ACTION_LIST) {
 		check_argc(argc, 0, 0);
 		if (git_config_with_options(show_all_config, NULL,
@@ -582,7 +618,7 @@
 		check_write();
 		check_argc(argc, 2, 2);
 		value = normalize_value(argv[0], argv[1]);
-		ret = git_config_set_in_file(given_config_source.file, argv[0], value);
+		ret = git_config_set_in_file_gently(given_config_source.file, argv[0], value);
 		if (ret == CONFIG_NOTHING_SET)
 			error("cannot overwrite multiple values with a single value\n"
 			"       Use a regexp, --add or --replace-all to change %s.", argv[0]);
@@ -592,23 +628,23 @@
 		check_write();
 		check_argc(argc, 2, 3);
 		value = normalize_value(argv[0], argv[1]);
-		return git_config_set_multivar_in_file(given_config_source.file,
-						       argv[0], value, argv[2], 0);
+		return git_config_set_multivar_in_file_gently(given_config_source.file,
+							      argv[0], value, argv[2], 0);
 	}
 	else if (actions == ACTION_ADD) {
 		check_write();
 		check_argc(argc, 2, 2);
 		value = normalize_value(argv[0], argv[1]);
-		return git_config_set_multivar_in_file(given_config_source.file,
-						       argv[0], value,
-						       CONFIG_REGEX_NONE, 0);
+		return git_config_set_multivar_in_file_gently(given_config_source.file,
+							      argv[0], value,
+							      CONFIG_REGEX_NONE, 0);
 	}
 	else if (actions == ACTION_REPLACE_ALL) {
 		check_write();
 		check_argc(argc, 2, 3);
 		value = normalize_value(argv[0], argv[1]);
-		return git_config_set_multivar_in_file(given_config_source.file,
-						       argv[0], value, argv[2], 1);
+		return git_config_set_multivar_in_file_gently(given_config_source.file,
+							      argv[0], value, argv[2], 1);
 	}
 	else if (actions == ACTION_GET) {
 		check_argc(argc, 1, 2);
@@ -634,17 +670,17 @@
 		check_write();
 		check_argc(argc, 1, 2);
 		if (argc == 2)
-			return git_config_set_multivar_in_file(given_config_source.file,
-							       argv[0], NULL, argv[1], 0);
+			return git_config_set_multivar_in_file_gently(given_config_source.file,
+								      argv[0], NULL, argv[1], 0);
 		else
-			return git_config_set_in_file(given_config_source.file,
-						      argv[0], NULL);
+			return git_config_set_in_file_gently(given_config_source.file,
+							     argv[0], NULL);
 	}
 	else if (actions == ACTION_UNSET_ALL) {
 		check_write();
 		check_argc(argc, 1, 2);
-		return git_config_set_multivar_in_file(given_config_source.file,
-						       argv[0], NULL, argv[1], 1);
+		return git_config_set_multivar_in_file_gently(given_config_source.file,
+							      argv[0], NULL, argv[1], 1);
 	}
 	else if (actions == ACTION_RENAME_SECTION) {
 		int ret;
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 2471297..8164b58 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -1021,7 +1021,7 @@
 		const char **refspecs_str;
 		int i;
 
-		refspecs_str = xmalloc(sizeof(*refspecs_str) * refspecs_list.nr);
+		ALLOC_ARRAY(refspecs_str, refspecs_list.nr);
 		for (i = 0; i < refspecs_list.nr; i++)
 			refspecs_str[i] = refspecs_list.items[i].string;
 
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index 9b2a514..79a611f 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -10,33 +10,24 @@
 "[--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] "
 "[--no-progress] [--diag-url] [-v] [<host>:]<directory> [<refs>...]";
 
-static void add_sought_entry_mem(struct ref ***sought, int *nr, int *alloc,
-				 const char *name, int namelen)
+static void add_sought_entry(struct ref ***sought, int *nr, int *alloc,
+			     const char *name)
 {
-	struct ref *ref = xcalloc(1, sizeof(*ref) + namelen + 1);
+	struct ref *ref;
 	struct object_id oid;
-	const int chunksz = GIT_SHA1_HEXSZ + 1;
 
-	if (namelen > chunksz && name[chunksz - 1] == ' ' &&
-		!get_oid_hex(name, &oid)) {
-		oidcpy(&ref->old_oid, &oid);
-		name += chunksz;
-		namelen -= chunksz;
-	}
+	if (!get_oid_hex(name, &oid) && name[GIT_SHA1_HEXSZ] == ' ')
+		name += GIT_SHA1_HEXSZ + 1;
+	else
+		oidclr(&oid);
 
-	memcpy(ref->name, name, namelen);
-	ref->name[namelen] = '\0';
+	ref = alloc_ref(name);
+	oidcpy(&ref->old_oid, &oid);
 	(*nr)++;
 	ALLOC_GROW(*sought, *nr, *alloc);
 	(*sought)[*nr - 1] = ref;
 }
 
-static void add_sought_entry(struct ref ***sought, int *nr, int *alloc,
-			     const char *string)
-{
-	add_sought_entry_mem(sought, nr, alloc, string, strlen(string));
-}
-
 int cmd_fetch_pack(int argc, const char **argv, const char *prefix)
 {
 	int i, ret;
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 8e74213..e4639d8 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -38,6 +38,7 @@
 static int progress = -1, recurse_submodules = RECURSE_SUBMODULES_DEFAULT;
 static int tags = TAGS_DEFAULT, unshallow, update_shallow;
 static int max_children = 1;
+static enum transport_family family;
 static const char *depth;
 static const char *upload_pack;
 static struct strbuf default_rla = STRBUF_INIT;
@@ -127,6 +128,10 @@
 		 N_("accept refs that update .git/shallow")),
 	{ OPTION_CALLBACK, 0, "refmap", NULL, N_("refmap"),
 	  N_("specify fetch refmap"), PARSE_OPT_NONEG, parse_refmap_arg },
+	OPT_SET_INT('4', "ipv4", &family, N_("use IPv4 addresses only"),
+			TRANSPORT_FAMILY_IPV4),
+	OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
+			TRANSPORT_FAMILY_IPV6),
 	OPT_END()
 };
 
@@ -864,6 +869,7 @@
 	struct transport *transport;
 	transport = transport_get(remote, NULL);
 	transport_set_verbosity(transport, verbosity, progress);
+	transport->family = family;
 	if (upload_pack)
 		set_option(transport, TRANS_OPT_UPLOADPACK, upload_pack);
 	if (keep)
@@ -1016,10 +1022,9 @@
 
 	git_config(get_remote_group, &g);
 	if (list->nr == prev_nr) {
-		struct remote *remote;
-		if (!remote_is_configured(name))
+		struct remote *remote = remote_get(name);
+		if (!remote_is_configured(remote))
 			return 0;
-		remote = remote_get(name);
 		string_list_append(list, remote->name);
 	}
 	return 1;
@@ -1110,7 +1115,7 @@
 	if (argc > 0) {
 		int j = 0;
 		int i;
-		refs = xcalloc(argc + 1, sizeof(const char *));
+		refs = xcalloc(st_add(argc, 1), sizeof(const char *));
 		for (i = 0; i < argc; i++) {
 			if (!strcmp(argv[i], "tag")) {
 				i++;
diff --git a/builtin/grep.c b/builtin/grep.c
index 8c516a9..aa7435f 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -365,17 +365,17 @@
 static void run_pager(struct grep_opt *opt, const char *prefix)
 {
 	struct string_list *path_list = opt->output_priv;
-	const char **argv = xmalloc(sizeof(const char *) * (path_list->nr + 1));
+	struct child_process child = CHILD_PROCESS_INIT;
 	int i, status;
 
 	for (i = 0; i < path_list->nr; i++)
-		argv[i] = path_list->items[i].string;
-	argv[path_list->nr] = NULL;
+		argv_array_push(&child.args, path_list->items[i].string);
+	child.dir = prefix;
+	child.use_shell = 1;
 
-	status = run_command_v_opt_cd_env(argv, RUN_USING_SHELL, prefix, NULL);
+	status = run_command(&child);
 	if (status)
 		exit(status);
-	free(argv);
 }
 
 static int grep_cache(struct grep_opt *opt, const struct pathspec *pathspec, int cached)
diff --git a/builtin/help.c b/builtin/help.c
index 1cd0c1e..3c55ce4 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -171,12 +171,10 @@
 static void add_man_viewer(const char *name)
 {
 	struct man_viewer_list **p = &man_viewer_list;
-	size_t len = strlen(name);
 
 	while (*p)
 		p = &((*p)->next);
-	*p = xcalloc(1, (sizeof(**p) + len + 1));
-	memcpy((*p)->name, name, len); /* NUL-terminated by xcalloc */
+	FLEX_ALLOC_STR(*p, name, name);
 }
 
 static int supported_man_viewer(const char *name, size_t len)
@@ -190,9 +188,8 @@
 				   size_t len,
 				   const char *value)
 {
-	struct man_viewer_info_list *new = xcalloc(1, sizeof(*new) + len + 1);
-
-	memcpy(new->name, name, len); /* NUL-terminated by xcalloc */
+	struct man_viewer_info_list *new;
+	FLEX_ALLOC_MEM(new, name, name, len);
 	new->info = xstrdup(value);
 	new->next = man_viewer_info_list;
 	man_viewer_info_list = new;
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 6a01509..4524519 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -1346,7 +1346,7 @@
 	 * before deltas depending on them, a good heuristic is to start
 	 * resolving deltas in the same order as their position in the pack.
 	 */
-	sorted_by_pos = xmalloc(nr_ref_deltas * sizeof(*sorted_by_pos));
+	ALLOC_ARRAY(sorted_by_pos, nr_ref_deltas);
 	for (i = 0; i < nr_ref_deltas; i++)
 		sorted_by_pos[i] = &ref_deltas[i];
 	qsort(sorted_by_pos, nr_ref_deltas, sizeof(*sorted_by_pos), delta_pos_compare);
@@ -1514,6 +1514,7 @@
 		if (!(off & 0x80000000))
 			continue;
 		off = off & 0x7fffffff;
+		check_pack_index_ptr(p, &idx2[off * 2]);
 		if (idx2[off * 2])
 			continue;
 		/*
@@ -1744,9 +1745,9 @@
 
 	curr_pack = open_pack_file(pack_name);
 	parse_pack_header();
-	objects = xcalloc(nr_objects + 1, sizeof(struct object_entry));
+	objects = xcalloc(st_add(nr_objects, 1), sizeof(struct object_entry));
 	if (show_stat)
-		obj_stat = xcalloc(nr_objects + 1, sizeof(struct object_stat));
+		obj_stat = xcalloc(st_add(nr_objects, 1), sizeof(struct object_stat));
 	ofs_deltas = xcalloc(nr_objects, sizeof(struct ofs_delta_entry));
 	parse_pack_objects(pack_sha1);
 	resolve_deltas();
@@ -1759,7 +1760,7 @@
 	if (show_stat)
 		show_pack_info(stat_only);
 
-	idx_objects = xmalloc((nr_objects) * sizeof(struct pack_idx_entry *));
+	ALLOC_ARRAY(idx_objects, nr_objects);
 	for (i = 0; i < nr_objects; i++)
 		idx_objects[i] = &objects[i].idx;
 	curr_index = write_idx_file(index_name, idx_objects, nr_objects, &opts, pack_sha1);
diff --git a/builtin/init-db.c b/builtin/init-db.c
index 07229d6..6223b7d 100644
--- a/builtin/init-db.c
+++ b/builtin/init-db.c
@@ -250,7 +250,7 @@
 		git_config_set("core.bare", "false");
 		/* allow template config file to override the default */
 		if (log_all_ref_updates == -1)
-		    git_config_set("core.logallrefupdates", "true");
+			git_config_set("core.logallrefupdates", "true");
 		if (needs_work_tree_config(get_git_dir(), work_tree))
 			git_config_set("core.worktree", work_tree);
 	}
diff --git a/builtin/merge-base.c b/builtin/merge-base.c
index a891162..c0d1822 100644
--- a/builtin/merge-base.c
+++ b/builtin/merge-base.c
@@ -252,7 +252,7 @@
 	if (argc < 2)
 		usage_with_options(merge_base_usage, options);
 
-	rev = xmalloc(argc * sizeof(*rev));
+	ALLOC_ARRAY(rev, argc);
 	while (argc-- > 0)
 		rev[rev_nr++] = get_commit_reference(*argv++);
 	return show_merge_base(rev, rev_nr, show_all);
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index d4f0cbd..ca57004 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -174,7 +174,7 @@
 
 static char *traverse_path(const struct traverse_info *info, const struct name_entry *n)
 {
-	char *path = xmalloc(traverse_path_len(info, n) + 1);
+	char *path = xmallocz(traverse_path_len(info, n));
 	return make_traverse_path(path, info, n);
 }
 
diff --git a/builtin/merge.c b/builtin/merge.c
index b98a348..101ffef 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -939,7 +939,7 @@
 	if (!branch->merge_nr)
 		die(_("No default upstream defined for the current branch."));
 
-	args = xcalloc(branch->merge_nr + 1, sizeof(char *));
+	args = xcalloc(st_add(branch->merge_nr, 1), sizeof(char *));
 	for (i = 0; i < branch->merge_nr; i++) {
 		if (!branch->merge[i]->dst)
 			die(_("No remote-tracking branch for %s from %s"),
diff --git a/builtin/mktree.c b/builtin/mktree.c
index a237caa..4282b62 100644
--- a/builtin/mktree.c
+++ b/builtin/mktree.c
@@ -19,16 +19,17 @@
 static void append_to_tree(unsigned mode, unsigned char *sha1, char *path)
 {
 	struct treeent *ent;
-	int len = strlen(path);
+	size_t len = strlen(path);
 	if (strchr(path, '/'))
 		die("path %s contains slash", path);
 
-	ALLOC_GROW(entries, used + 1, alloc);
-	ent = entries[used++] = xmalloc(sizeof(**entries) + len + 1);
+	FLEX_ALLOC_MEM(ent, name, path, len);
 	ent->mode = mode;
 	ent->len = len;
 	hashcpy(ent->sha1, sha1);
-	memcpy(ent->name, path, len+1);
+
+	ALLOC_GROW(entries, used + 1, alloc);
+	entries[used++] = ent;
 }
 
 static int ent_compare(const void *a_, const void *b_)
diff --git a/builtin/mv.c b/builtin/mv.c
index d1d4316..aeae855 100644
--- a/builtin/mv.c
+++ b/builtin/mv.c
@@ -24,7 +24,8 @@
 					   int count, unsigned flags)
 {
 	int i;
-	const char **result = xmalloc((count + 1) * sizeof(const char *));
+	const char **result;
+	ALLOC_ARRAY(result, count + 1);
 	memcpy(result, pathspec, count * sizeof(const char *));
 	result[count] = NULL;
 	for (i = 0; i < count; i++) {
@@ -47,9 +48,9 @@
 
 static const char *add_slash(const char *path)
 {
-	int len = strlen(path);
+	size_t len = strlen(path);
 	if (path[len - 1] != '/') {
-		char *with_slash = xmalloc(len + 2);
+		char *with_slash = xmalloc(st_add(len, 2));
 		memcpy(with_slash, path, len);
 		with_slash[len++] = '/';
 		with_slash[len] = 0;
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 4dae5b1..a27de5b 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -624,7 +624,7 @@
 {
 	unsigned int i, wo_end, last_untagged;
 
-	struct object_entry **wo = xmalloc(to_pack.nr_objects * sizeof(*wo));
+	struct object_entry **wo;
 	struct object_entry *objects = to_pack.objects;
 
 	for (i = 0; i < to_pack.nr_objects; i++) {
@@ -657,6 +657,7 @@
 	 * Give the objects in the original recency order until
 	 * we see a tagged tip.
 	 */
+	ALLOC_ARRAY(wo, to_pack.nr_objects);
 	for (i = wo_end = 0; i < to_pack.nr_objects; i++) {
 		if (objects[i].tagged)
 			break;
@@ -769,7 +770,7 @@
 
 	if (progress > pack_to_stdout)
 		progress_state = start_progress(_("Writing objects"), nr_result);
-	written_list = xmalloc(to_pack.nr_objects * sizeof(*written_list));
+	ALLOC_ARRAY(written_list, to_pack.nr_objects);
 	write_order = compute_write_order();
 
 	do {
@@ -2129,7 +2130,7 @@
 	if (!to_pack.nr_objects || !window || !depth)
 		return;
 
-	delta_list = xmalloc(to_pack.nr_objects * sizeof(*delta_list));
+	ALLOC_ARRAY(delta_list, to_pack.nr_objects);
 	nr_deltas = n = 0;
 
 	for (i = 0; i < to_pack.nr_objects; i++) {
@@ -2284,21 +2285,11 @@
 		index_commit_for_bitmap(commit);
 }
 
-static void show_object(struct object *obj,
-			const struct name_path *path, const char *last,
-			void *data)
+static void show_object(struct object *obj, const char *name, void *data)
 {
-	char *name = path_name(path, last);
-
 	add_preferred_base_object(name);
 	add_object_entry(obj->oid.hash, obj->type, name, 0);
 	obj->flags |= OBJECT_ADDED;
-
-	/*
-	 * We will have generated the hash from the name,
-	 * but not saved a pointer to it - we can free it
-	 */
-	free((char *)name);
 }
 
 static void show_edge(struct commit *commit)
@@ -2480,8 +2471,7 @@
 }
 
 static void record_recent_object(struct object *obj,
-				 const struct name_path *path,
-				 const char *last,
+				 const char *name,
 				 void *data)
 {
 	sha1_array_append(&recent_objects, obj->oid.hash);
diff --git a/builtin/pack-redundant.c b/builtin/pack-redundant.c
index d0532f6..72c8158 100644
--- a/builtin/pack-redundant.c
+++ b/builtin/pack-redundant.c
@@ -53,7 +53,7 @@
 		free_nodes = free_nodes->next;
 	} else {
 		int i = 1;
-		new = xmalloc(sizeof(struct llist_item) * BLKSIZE);
+		ALLOC_ARRAY(new, BLKSIZE);
 		for (; i < BLKSIZE; i++)
 			llist_item_put(&new[i]);
 	}
diff --git a/builtin/push.c b/builtin/push.c
index 960ffc3..4e9e4db 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -23,6 +23,7 @@
 static int verbosity;
 static int progress = -1;
 static int recurse_submodules = RECURSE_SUBMODULES_DEFAULT;
+static enum transport_family family;
 
 static struct push_cas_option cas;
 
@@ -204,37 +205,6 @@
 	add_refspec(branch->name);
 }
 
-static char warn_unspecified_push_default_msg[] =
-N_("push.default is unset; its implicit value has changed in\n"
-   "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-   "and maintain the traditional behavior, use:\n"
-   "\n"
-   "  git config --global push.default matching\n"
-   "\n"
-   "To squelch this message and adopt the new behavior now, use:\n"
-   "\n"
-   "  git config --global push.default simple\n"
-   "\n"
-   "When push.default is set to 'matching', git will push local branches\n"
-   "to the remote branches that already exist with the same name.\n"
-   "\n"
-   "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-   "behavior, which only pushes the current branch to the corresponding\n"
-   "remote branch that 'git pull' uses to update the current branch.\n"
-   "\n"
-   "See 'git help config' and search for 'push.default' for further information.\n"
-   "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-   "'current' instead of 'simple' if you sometimes use older versions of Git)");
-
-static void warn_unspecified_push_default_configuration(void)
-{
-	static int warn_once;
-
-	if (warn_once++)
-		return;
-	warning("%s\n", _(warn_unspecified_push_default_msg));
-}
-
 static int is_workflow_triangular(struct remote *remote)
 {
 	struct remote *fetch_remote = remote_get(NULL);
@@ -253,9 +223,6 @@
 		break;
 
 	case PUSH_DEFAULT_UNSPECIFIED:
-		warn_unspecified_push_default_configuration();
-		/* fallthru */
-
 	case PUSH_DEFAULT_SIMPLE:
 		if (triangular)
 			setup_push_current(remote, branch);
@@ -346,6 +313,7 @@
 	unsigned int reject_reasons;
 
 	transport_set_verbosity(transport, verbosity, progress);
+	transport->family = family;
 
 	if (receivepack)
 		transport_set_option(transport,
@@ -565,6 +533,10 @@
 		  0, "signed", &push_cert, "yes|no|if-asked", N_("GPG sign the push"),
 		  PARSE_OPT_OPTARG, option_parse_push_signed },
 		OPT_BIT(0, "atomic", &flags, N_("request atomic transaction on remote side"), TRANSPORT_PUSH_ATOMIC),
+		OPT_SET_INT('4', "ipv4", &family, N_("use IPv4 addresses only"),
+				TRANSPORT_FAMILY_IPV4),
+		OPT_SET_INT('6', "ipv6", &family, N_("use IPv6 addresses only"),
+				TRANSPORT_FAMILY_IPV6),
 		OPT_END()
 	};
 
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index f2d6761..c8e32b2 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -1031,7 +1031,6 @@
 {
 	struct command *cmd;
 	int argc;
-	const char **argv;
 	struct child_process proc = CHILD_PROCESS_INIT;
 	const char *hook;
 
@@ -1044,21 +1043,16 @@
 	if (!argc || !hook)
 		return;
 
-	argv = xmalloc(sizeof(*argv) * (2 + argc));
-	argv[0] = hook;
-
-	for (argc = 1, cmd = commands; cmd; cmd = cmd->next) {
+	argv_array_push(&proc.args, hook);
+	for (cmd = commands; cmd; cmd = cmd->next) {
 		if (cmd->error_string || cmd->did_not_exist)
 			continue;
-		argv[argc] = xstrdup(cmd->ref_name);
-		argc++;
+		argv_array_push(&proc.args, cmd->ref_name);
 	}
-	argv[argc] = NULL;
 
 	proc.no_stdin = 1;
 	proc.stdout_to_stderr = 1;
 	proc.err = use_sideband ? -1 : 0;
-	proc.argv = argv;
 
 	if (!start_command(&proc)) {
 		if (use_sideband)
@@ -1378,7 +1372,7 @@
 
 	refname = line + 82;
 	reflen = linelen - 82;
-	cmd = xcalloc(1, sizeof(struct command) + reflen + 1);
+	cmd = xcalloc(1, st_add3(sizeof(struct command), reflen, 1));
 	hashcpy(cmd->old_sha1, old_sha1);
 	hashcpy(cmd->new_sha1, new_sha1);
 	memcpy(cmd->ref_name, refname, reflen);
@@ -1597,8 +1591,7 @@
 {
 	int i, j, k, bitmap_size = (si->ref->nr + 31) / 32;
 
-	si->used_shallow = xmalloc(sizeof(*si->used_shallow) *
-				   si->shallow->nr);
+	ALLOC_ARRAY(si->used_shallow, si->shallow->nr);
 	assign_shallow_commits_to_refs(si, si->used_shallow, NULL);
 
 	si->need_reachability_test =
@@ -1664,7 +1657,7 @@
 		return;
 	}
 
-	ref_status = xmalloc(sizeof(*ref_status) * ref->nr);
+	ALLOC_ARRAY(ref_status, ref->nr);
 	assign_shallow_commits_to_refs(si, NULL, ref_status);
 	for (cmd = commands; cmd; cmd = cmd->next) {
 		if (is_null_sha1(cmd->new_sha1))
diff --git a/builtin/reflog.c b/builtin/reflog.c
index f39960e..2d46b64 100644
--- a/builtin/reflog.c
+++ b/builtin/reflog.c
@@ -382,11 +382,9 @@
 {
 	struct collected_reflog *e;
 	struct collect_reflog_cb *cb = cb_data;
-	size_t namelen = strlen(ref);
 
-	e = xmalloc(sizeof(*e) + namelen + 1);
+	FLEX_ALLOC_STR(e, reflog, ref);
 	hashcpy(e->sha1, oid->hash);
-	memcpy(e->reflog, ref, namelen + 1);
 	ALLOC_GROW(cb->e, cb->nr + 1, cb->alloc);
 	cb->e[cb->nr++] = e;
 	return 0;
@@ -396,7 +394,6 @@
 	struct reflog_expire_cfg *next;
 	unsigned long expire_total;
 	unsigned long expire_unreachable;
-	size_t len;
 	char pattern[FLEX_ARRAY];
 } *reflog_expire_cfg, **reflog_expire_cfg_tail;
 
@@ -408,13 +405,11 @@
 		reflog_expire_cfg_tail = &reflog_expire_cfg;
 
 	for (ent = reflog_expire_cfg; ent; ent = ent->next)
-		if (ent->len == len &&
-		    !memcmp(ent->pattern, pattern, len))
+		if (!strncmp(ent->pattern, pattern, len) &&
+		    ent->pattern[len] == '\0')
 			return ent;
 
-	ent = xcalloc(1, (sizeof(*ent) + len));
-	memcpy(ent->pattern, pattern, len);
-	ent->len = len;
+	FLEX_ALLOC_MEM(ent, pattern, pattern, len);
 	*reflog_expire_cfg_tail = ent;
 	reflog_expire_cfg_tail = &(ent->next);
 	return ent;
diff --git a/builtin/remote-ext.c b/builtin/remote-ext.c
index e3cd25d..7457c74 100644
--- a/builtin/remote-ext.c
+++ b/builtin/remote-ext.c
@@ -114,30 +114,14 @@
 	}
 }
 
-/* Should be enough... */
-#define MAXARGUMENTS 256
-
-static const char **parse_argv(const char *arg, const char *service)
+static void parse_argv(struct argv_array *out, const char *arg, const char *service)
 {
-	int arguments = 0;
-	int i;
-	const char **ret;
-	char *temparray[MAXARGUMENTS + 1];
-
 	while (*arg) {
-		char *expanded;
-		if (arguments == MAXARGUMENTS)
-			die("remote-ext command has too many arguments");
-		expanded = strip_escapes(arg, service, &arg);
+		char *expanded = strip_escapes(arg, service, &arg);
 		if (expanded)
-			temparray[arguments++] = expanded;
+			argv_array_push(out, expanded);
+		free(expanded);
 	}
-
-	ret = xmalloc((arguments + 1) * sizeof(char *));
-	for (i = 0; i < arguments; i++)
-		ret[i] = temparray[i];
-	ret[arguments] = NULL;
-	return ret;
 }
 
 static void send_git_request(int stdin_fd, const char *serv, const char *repo,
@@ -158,7 +142,7 @@
 	child.in = -1;
 	child.out = -1;
 	child.err = 0;
-	child.argv = parse_argv(arg, service);
+	parse_argv(&child.args, arg, service);
 
 	if (start_command(&child) < 0)
 		die("Can't run specified command");
diff --git a/builtin/remote.c b/builtin/remote.c
index 2b2ff9b..fda5c2e 100644
--- a/builtin/remote.c
+++ b/builtin/remote.c
@@ -108,8 +108,8 @@
 #define MIRROR_PUSH 2
 #define MIRROR_BOTH (MIRROR_FETCH|MIRROR_PUSH)
 
-static int add_branch(const char *key, const char *branchname,
-		const char *remotename, int mirror, struct strbuf *tmp)
+static void add_branch(const char *key, const char *branchname,
+		       const char *remotename, int mirror, struct strbuf *tmp)
 {
 	strbuf_reset(tmp);
 	strbuf_addch(tmp, '+');
@@ -119,7 +119,7 @@
 	else
 		strbuf_addf(tmp, "refs/heads/%s:refs/remotes/%s/%s",
 				branchname, remotename, branchname);
-	return git_config_set_multivar(key, tmp->buf, "^$", 0);
+	git_config_set_multivar(key, tmp->buf, "^$", 0);
 }
 
 static const char mirror_advice[] =
@@ -186,10 +186,7 @@
 	url = argv[1];
 
 	remote = remote_get(name);
-	if (remote && (remote->url_nr > 1 ||
-			(strcmp(name, remote->url[0]) &&
-				strcmp(url, remote->url[0])) ||
-			remote->fetch_refspec_nr))
+	if (remote_is_configured(remote))
 		die(_("remote %s already exists."), name);
 
 	strbuf_addf(&buf2, "refs/heads/test:refs/remotes/%s/test", name);
@@ -197,8 +194,7 @@
 		die(_("'%s' is not a valid remote name"), name);
 
 	strbuf_addf(&buf, "remote.%s.url", name);
-	if (git_config_set(buf.buf, url))
-		return 1;
+	git_config_set(buf.buf, url);
 
 	if (!mirror || mirror & MIRROR_FETCH) {
 		strbuf_reset(&buf);
@@ -206,25 +202,22 @@
 		if (track.nr == 0)
 			string_list_append(&track, "*");
 		for (i = 0; i < track.nr; i++) {
-			if (add_branch(buf.buf, track.items[i].string,
-				       name, mirror, &buf2))
-				return 1;
+			add_branch(buf.buf, track.items[i].string,
+				   name, mirror, &buf2);
 		}
 	}
 
 	if (mirror & MIRROR_PUSH) {
 		strbuf_reset(&buf);
 		strbuf_addf(&buf, "remote.%s.mirror", name);
-		if (git_config_set(buf.buf, "true"))
-			return 1;
+		git_config_set(buf.buf, "true");
 	}
 
 	if (fetch_tags != TAGS_DEFAULT) {
 		strbuf_reset(&buf);
 		strbuf_addf(&buf, "remote.%s.tagopt", name);
-		if (git_config_set(buf.buf,
-			fetch_tags == TAGS_SET ? "--tags" : "--no-tags"))
-			return 1;
+		git_config_set(buf.buf,
+			       fetch_tags == TAGS_SET ? "--tags" : "--no-tags");
 	}
 
 	if (fetch && fetch_remote(name))
@@ -592,25 +585,20 @@
 
 	strbuf_addf(&buf, "remote.%s.url", remote->name);
 	for (i = 0; i < remote->url_nr; i++)
-		if (git_config_set_multivar(buf.buf, remote->url[i], "^$", 0))
-			return error(_("Could not append '%s' to '%s'"),
-					remote->url[i], buf.buf);
+		git_config_set_multivar(buf.buf, remote->url[i], "^$", 0);
 	strbuf_reset(&buf);
 	strbuf_addf(&buf, "remote.%s.push", remote->name);
 	for (i = 0; i < remote->push_refspec_nr; i++)
-		if (git_config_set_multivar(buf.buf, remote->push_refspec[i], "^$", 0))
-			return error(_("Could not append '%s' to '%s'"),
-					remote->push_refspec[i], buf.buf);
+		git_config_set_multivar(buf.buf, remote->push_refspec[i], "^$", 0);
 	strbuf_reset(&buf);
 	strbuf_addf(&buf, "remote.%s.fetch", remote->name);
 	for (i = 0; i < remote->fetch_refspec_nr; i++)
-		if (git_config_set_multivar(buf.buf, remote->fetch_refspec[i], "^$", 0))
-			return error(_("Could not append '%s' to '%s'"),
-					remote->fetch_refspec[i], buf.buf);
+		git_config_set_multivar(buf.buf, remote->fetch_refspec[i], "^$", 0);
 	if (remote->origin == REMOTE_REMOTES)
 		unlink_or_warn(git_path("remotes/%s", remote->name));
 	else if (remote->origin == REMOTE_BRANCHES)
 		unlink_or_warn(git_path("branches/%s", remote->name));
+
 	return 0;
 }
 
@@ -634,14 +622,14 @@
 	rename.remote_branches = &remote_branches;
 
 	oldremote = remote_get(rename.old);
-	if (!oldremote)
+	if (!remote_is_configured(oldremote))
 		die(_("No such remote: %s"), rename.old);
 
 	if (!strcmp(rename.old, rename.new) && oldremote->origin != REMOTE_CONFIG)
 		return migrate_file(oldremote);
 
 	newremote = remote_get(rename.new);
-	if (newremote && (newremote->url_nr > 1 || newremote->fetch_refspec_nr))
+	if (remote_is_configured(newremote))
 		die(_("remote %s already exists."), rename.new);
 
 	strbuf_addf(&buf, "refs/heads/test:refs/remotes/%s/test", rename.new);
@@ -657,8 +645,7 @@
 
 	strbuf_reset(&buf);
 	strbuf_addf(&buf, "remote.%s.fetch", rename.new);
-	if (git_config_set_multivar(buf.buf, NULL, NULL, 1))
-		return error(_("Could not remove config section '%s'"), buf.buf);
+	git_config_set_multivar(buf.buf, NULL, NULL, 1);
 	strbuf_addf(&old_remote_context, ":refs/remotes/%s/", rename.old);
 	for (i = 0; i < oldremote->fetch_refspec_nr; i++) {
 		char *ptr;
@@ -678,8 +665,7 @@
 				  "\tPlease update the configuration manually if necessary."),
 				buf2.buf);
 
-		if (git_config_set_multivar(buf.buf, buf2.buf, "^$", 0))
-			return error(_("Could not append '%s'"), buf.buf);
+		git_config_set_multivar(buf.buf, buf2.buf, "^$", 0);
 	}
 
 	read_branches();
@@ -689,9 +675,7 @@
 		if (info->remote_name && !strcmp(info->remote_name, rename.old)) {
 			strbuf_reset(&buf);
 			strbuf_addf(&buf, "branch.%s.remote", item->string);
-			if (git_config_set(buf.buf, rename.new)) {
-				return error(_("Could not set '%s'"), buf.buf);
-			}
+			git_config_set(buf.buf, rename.new);
 		}
 	}
 
@@ -773,7 +757,7 @@
 		usage_with_options(builtin_remote_rm_usage, options);
 
 	remote = remote_get(argv[1]);
-	if (!remote)
+	if (!remote_is_configured(remote))
 		die(_("No such remote: %s"), argv[1]);
 
 	known_remotes.to_delete = remote;
@@ -789,10 +773,7 @@
 				strbuf_reset(&buf);
 				strbuf_addf(&buf, "branch.%s.%s",
 						item->string, *k);
-				if (git_config_set(buf.buf, NULL)) {
-					strbuf_release(&buf);
-					return -1;
-				}
+				git_config_set(buf.buf, NULL);
 			}
 		}
 	}
@@ -1413,24 +1394,20 @@
 
 static int remove_all_fetch_refspecs(const char *remote, const char *key)
 {
-	return git_config_set_multivar(key, NULL, NULL, 1);
+	return git_config_set_multivar_gently(key, NULL, NULL, 1);
 }
 
-static int add_branches(struct remote *remote, const char **branches,
-			const char *key)
+static void add_branches(struct remote *remote, const char **branches,
+			 const char *key)
 {
 	const char *remotename = remote->name;
 	int mirror = remote->mirror;
 	struct strbuf refspec = STRBUF_INIT;
 
 	for (; *branches; branches++)
-		if (add_branch(key, *branches, remotename, mirror, &refspec)) {
-			strbuf_release(&refspec);
-			return 1;
-		}
+		add_branch(key, *branches, remotename, mirror, &refspec);
 
 	strbuf_release(&refspec);
-	return 0;
 }
 
 static int set_remote_branches(const char *remotename, const char **branches,
@@ -1441,18 +1418,15 @@
 
 	strbuf_addf(&key, "remote.%s.fetch", remotename);
 
-	if (!remote_is_configured(remotename))
-		die(_("No such remote '%s'"), remotename);
 	remote = remote_get(remotename);
+	if (!remote_is_configured(remote))
+		die(_("No such remote '%s'"), remotename);
 
 	if (!add_mode && remove_all_fetch_refspecs(remotename, key.buf)) {
 		strbuf_release(&key);
 		return 1;
 	}
-	if (add_branches(remote, branches, key.buf)) {
-		strbuf_release(&key);
-		return 1;
-	}
+	add_branches(remote, branches, key.buf);
 
 	strbuf_release(&key);
 	return 0;
@@ -1498,9 +1472,9 @@
 
 	remotename = argv[0];
 
-	if (!remote_is_configured(remotename))
-		die(_("No such remote '%s'"), remotename);
 	remote = remote_get(remotename);
+	if (!remote_is_configured(remote))
+		die(_("No such remote '%s'"), remotename);
 
 	url_nr = 0;
 	if (push_mode) {
@@ -1566,9 +1540,9 @@
 	if (delete_mode)
 		oldurl = newurl;
 
-	if (!remote_is_configured(remotename))
-		die(_("No such remote '%s'"), remotename);
 	remote = remote_get(remotename);
+	if (!remote_is_configured(remote))
+		die(_("No such remote '%s'"), remotename);
 
 	if (push_mode) {
 		strbuf_addf(&name_buf, "remote.%s.pushurl", remotename);
@@ -1584,10 +1558,11 @@
 	if ((!oldurl && !delete_mode) || add_mode) {
 		if (add_mode)
 			git_config_set_multivar(name_buf.buf, newurl,
-				"^$", 0);
+						       "^$", 0);
 		else
 			git_config_set(name_buf.buf, newurl);
 		strbuf_release(&name_buf);
+
 		return 0;
 	}
 
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index 3aa89a1..275da0d 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -177,9 +177,7 @@
 	free_commit_buffer(commit);
 }
 
-static void finish_object(struct object *obj,
-			  const struct name_path *path, const char *name,
-			  void *cb_data)
+static void finish_object(struct object *obj, const char *name, void *cb_data)
 {
 	struct rev_list_info *info = cb_data;
 	if (obj->type == OBJ_BLOB && !has_object_file(&obj->oid))
@@ -188,15 +186,13 @@
 		parse_object(obj->oid.hash);
 }
 
-static void show_object(struct object *obj,
-			const struct name_path *path, const char *component,
-			void *cb_data)
+static void show_object(struct object *obj, const char *name, void *cb_data)
 {
 	struct rev_list_info *info = cb_data;
-	finish_object(obj, path, component, cb_data);
+	finish_object(obj, name, cb_data);
 	if (info->flags & REV_LIST_QUIET)
 		return;
-	show_object_with_name(stdout, obj, path, component);
+	show_object_with_name(stdout, obj, name);
 }
 
 static void show_edge(struct commit *commit)
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index bd16876..cf8487b 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -763,7 +763,8 @@
 				continue;
 			}
 			if (!strcmp(arg, "--git-common-dir")) {
-				puts(get_git_common_dir());
+				const char *pfx = prefix ? prefix : "";
+				puts(prefix_filename(pfx, strlen(pfx), get_git_common_dir()));
 				continue;
 			}
 			if (!strcmp(arg, "--resolve-git-dir")) {
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index f4c3eff..5295b72 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -22,17 +22,12 @@
 			       struct module_list *list)
 {
 	int i, result = 0;
-	char *max_prefix, *ps_matched = NULL;
-	int max_prefix_len;
+	char *ps_matched = NULL;
 	parse_pathspec(pathspec, 0,
 		       PATHSPEC_PREFER_FULL |
 		       PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP,
 		       prefix, argv);
 
-	/* Find common prefix for all pathspec's */
-	max_prefix = common_prefix(pathspec);
-	max_prefix_len = max_prefix ? strlen(max_prefix) : 0;
-
 	if (pathspec->nr)
 		ps_matched = xcalloc(pathspec->nr, 1);
 
@@ -42,9 +37,9 @@
 	for (i = 0; i < active_nr; i++) {
 		const struct cache_entry *ce = active_cache[i];
 
-		if (!S_ISGITLINK(ce->ce_mode) ||
-		    !match_pathspec(pathspec, ce->name, ce_namelen(ce),
-				    max_prefix_len, ps_matched, 1))
+		if (!match_pathspec(pathspec, ce->name, ce_namelen(ce),
+				    0, ps_matched, 1) ||
+		    !S_ISGITLINK(ce->ce_mode))
 			continue;
 
 		ALLOC_GROW(list->entries, list->nr + 1, list->alloc);
@@ -57,7 +52,6 @@
 			 */
 			i++;
 	}
-	free(max_prefix);
 
 	if (ps_matched && report_path_error(ps_matched, pathspec, prefix))
 		result = -1;
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 475b958..38b5609 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -52,7 +52,7 @@
 		return 1;
 	}
 	len = st.st_size;
-	path = xmalloc(len + 1);
+	path = xmallocz(len);
 	read_in_full(fd, path, len);
 	close(fd);
 	while (len && (path[len - 1] == '\n' || path[len - 1] == '\r'))
@@ -201,9 +201,7 @@
 		die(_("'%s' already exists"), path);
 
 	/* is 'refname' a branch or commit? */
-	if (opts->force_new_branch) /* definitely a branch */
-		;
-	else if (!opts->detach && !strbuf_check_branch_ref(&symref, refname) &&
+	if (!opts->detach && !strbuf_check_branch_ref(&symref, refname) &&
 		 ref_exists(symref.buf)) { /* it's a branch */
 		if (!opts->force)
 			die_if_checked_out(symref.buf);
@@ -336,9 +334,18 @@
 	branch = ac < 2 ? "HEAD" : av[1];
 
 	opts.force_new_branch = !!new_branch_force;
-	if (opts.force_new_branch)
+	if (opts.force_new_branch) {
+		struct strbuf symref = STRBUF_INIT;
+
 		opts.new_branch = new_branch_force;
 
+		if (!opts.force &&
+		    !strbuf_check_branch_ref(&symref, opts.new_branch) &&
+		    ref_exists(symref.buf))
+			die_if_checked_out(symref.buf);
+		strbuf_release(&symref);
+	}
+
 	if (ac < 2 && !opts.new_branch && !opts.detach) {
 		int n;
 		const char *s = worktree_basename(path, &n);
diff --git a/cache-tree.c b/cache-tree.c
index 20ee7b5..3ebf9c3 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -79,11 +79,9 @@
 	ALLOC_GROW(it->down, it->subtree_nr + 1, it->subtree_alloc);
 	it->subtree_nr++;
 
-	down = xmalloc(sizeof(*down) + pathlen + 1);
+	FLEX_ALLOC_MEM(down, name, path, pathlen);
 	down->cache_tree = NULL;
 	down->namelen = pathlen;
-	memcpy(down->name, path, pathlen);
-	down->name[pathlen] = 0;
 
 	if (pos < it->subtree_nr)
 		memmove(it->down + pos + 1,
diff --git a/cache.h b/cache.h
index 26640b4..b829410 100644
--- a/cache.h
+++ b/cache.h
@@ -229,7 +229,9 @@
 #error "CE_EXTENDED_FLAGS out of range"
 #endif
 
+/* Forward structure decls */
 struct pathspec;
+struct child_process;
 
 /*
  * Copy the sha1 and stat state of a cache entry from one to
@@ -1368,6 +1370,16 @@
 extern struct packed_git *add_packed_git(const char *path, size_t path_len, int local);
 
 /*
+ * Make sure that a pointer access into an mmap'd index file is within bounds,
+ * and can provide at least 8 bytes of data.
+ *
+ * Note that this is only necessary for variable-length segments of the file
+ * (like the 64-bit extended offset table), as we compare the size to the
+ * fixed-length parts when we open the file.
+ */
+extern void check_pack_index_ptr(const struct packed_git *p, const void *ptr);
+
+/*
  * Return the SHA-1 of the nth object within the specified packfile.
  * Open the index if it is not already open.  The return value points
  * at the SHA-1 within the mmapped index.  Return NULL if there is an
@@ -1487,7 +1499,7 @@
 /* git_config_parse_key() returns these negated: */
 #define CONFIG_INVALID_KEY 1
 #define CONFIG_NO_SECTION_OR_NAME 2
-/* git_config_set(), git_config_set_multivar() return the above or these: */
+/* git_config_set_gently(), git_config_set_multivar_gently() return the above or these: */
 #define CONFIG_NO_LOCK -1
 #define CONFIG_INVALID_FILE 3
 #define CONFIG_NO_WRITE 4
@@ -1506,8 +1518,8 @@
 typedef int (*config_fn_t)(const char *, const char *, void *);
 extern int git_default_config(const char *, const char *, void *);
 extern int git_config_from_file(config_fn_t fn, const char *, void *);
-extern int git_config_from_buf(config_fn_t fn, const char *name,
-			       const char *buf, size_t len, void *data);
+extern int git_config_from_mem(config_fn_t fn, const char *origin_type,
+					const char *name, const char *buf, size_t len, void *data);
 extern void git_config_push_parameter(const char *text);
 extern int git_config_from_parameters(config_fn_t fn, void *data);
 extern void git_config(config_fn_t fn, void *);
@@ -1525,12 +1537,16 @@
 extern int git_config_maybe_bool(const char *, const char *);
 extern int git_config_string(const char **, const char *, const char *);
 extern int git_config_pathname(const char **, const char *, const char *);
-extern int git_config_set_in_file(const char *, const char *, const char *);
-extern int git_config_set(const char *, const char *);
+extern int git_config_set_in_file_gently(const char *, const char *, const char *);
+extern void git_config_set_in_file(const char *, const char *, const char *);
+extern int git_config_set_gently(const char *, const char *);
+extern void git_config_set(const char *, const char *);
 extern int git_config_parse_key(const char *, char **, int *);
 extern int git_config_key_is_valid(const char *key);
-extern int git_config_set_multivar(const char *, const char *, const char *, int);
-extern int git_config_set_multivar_in_file(const char *, const char *, const char *, const char *, int);
+extern int git_config_set_multivar_gently(const char *, const char *, const char *, int);
+extern void git_config_set_multivar(const char *, const char *, const char *, int);
+extern int git_config_set_multivar_in_file_gently(const char *, const char *, const char *, const char *, int);
+extern void git_config_set_multivar_in_file(const char *, const char *, const char *, const char *, int);
 extern int git_config_rename_section(const char *, const char *);
 extern int git_config_rename_section_in_file(const char *, const char *, const char *);
 extern const char *git_etc_gitconfig(void);
@@ -1546,6 +1562,8 @@
 extern const char *get_commit_output_encoding(void);
 
 extern int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
+extern const char *current_config_origin_type(void);
+extern const char *current_config_name(void);
 
 struct config_include_data {
 	int depth;
@@ -1685,6 +1703,7 @@
 extern int term_columns(void);
 extern int decimal_width(uintmax_t);
 extern int check_pager_config(const char *cmd);
+extern void prepare_pager_args(struct child_process *, const char *pager);
 
 extern const char *editor_program;
 extern const char *askpass_program;
diff --git a/column.c b/column.c
index 786abe6..d55ead1 100644
--- a/column.c
+++ b/column.c
@@ -164,7 +164,7 @@
 	data.colopts = colopts;
 	data.opts = *opts;
 
-	data.len = xmalloc(sizeof(*data.len) * list->nr);
+	ALLOC_ARRAY(data.len, list->nr);
 	for (i = 0; i < list->nr; i++)
 		data.len[i] = item_length(colopts, list->items[i].string);
 
@@ -173,9 +173,8 @@
 	if (colopts & COL_DENSE)
 		shrink_columns(&data);
 
-	empty_cell = xmalloc(initial_width + 1);
+	empty_cell = xmallocz(initial_width);
 	memset(empty_cell, ' ', initial_width);
-	empty_cell[initial_width] = '\0';
 	for (y = 0; y < data.rows; y++) {
 		for (x = 0; x < data.cols; x++)
 			if (display_cell(&data, initial_width, empty_cell, x, y))
diff --git a/combine-diff.c b/combine-diff.c
index 5571304..0e1d4b0 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -189,11 +189,11 @@
 	 *   - Else if we have NEW, insert newend lline into base and
 	 *   consume newend
 	 */
-	lcs = xcalloc(origbaselen + 1, sizeof(int*));
-	directions = xcalloc(origbaselen + 1, sizeof(enum coalesce_direction*));
+	lcs = xcalloc(st_add(origbaselen, 1), sizeof(int*));
+	directions = xcalloc(st_add(origbaselen, 1), sizeof(enum coalesce_direction*));
 	for (i = 0; i < origbaselen + 1; i++) {
-		lcs[i] = xcalloc(lennew + 1, sizeof(int));
-		directions[i] = xcalloc(lennew + 1, sizeof(enum coalesce_direction));
+		lcs[i] = xcalloc(st_add(lennew, 1), sizeof(int));
+		directions[i] = xcalloc(st_add(lennew, 1), sizeof(enum coalesce_direction));
 		directions[i][0] = BASE;
 	}
 	for (j = 1; j < lennew + 1; j++)
@@ -319,7 +319,7 @@
 	if (line[len-1] == '\n')
 		len--;
 
-	lline = xmalloc(sizeof(*lline) + len + 1);
+	FLEX_ALLOC_MEM(lline, line, line, len);
 	lline->len = len;
 	lline->next = NULL;
 	lline->prev = sline->plost.lost_tail;
@@ -330,8 +330,6 @@
 	sline->plost.lost_tail = lline;
 	sline->plost.len++;
 	lline->parent_map = this_mask;
-	memcpy(lline->line, line, len);
-	lline->line[len] = 0;
 }
 
 struct combine_diff_state {
@@ -1043,7 +1041,7 @@
 				elem->mode = canon_mode(S_IFLNK);
 
 			result_size = len;
-			result = xmalloc(len + 1);
+			result = xmallocz(len);
 
 			done = read_in_full(fd, result, len);
 			if (done < 0)
@@ -1051,8 +1049,6 @@
 			else if (done < len)
 				die("early EOF '%s'", elem->path);
 
-			result[len] = 0;
-
 			/* If not a fake symlink, apply filters, e.g. autocrlf */
 			if (is_file) {
 				struct strbuf buf = STRBUF_INIT;
@@ -1115,7 +1111,7 @@
 	if (result_size && result[result_size-1] != '\n')
 		cnt++; /* incomplete line */
 
-	sline = xcalloc(cnt+2, sizeof(*sline));
+	sline = xcalloc(st_add(cnt, 2), sizeof(*sline));
 	sline[0].bol = result;
 	for (lno = 0, cp = result; cp < result + result_size; cp++) {
 		if (*cp == '\n') {
@@ -1134,7 +1130,7 @@
 	/* Even p_lno[cnt+1] is valid -- that is for the end line number
 	 * for deletion hunk at the end.
 	 */
-	sline[0].p_lno = xcalloc((cnt+2) * num_parent, sizeof(unsigned long));
+	sline[0].p_lno = xcalloc(st_mult(st_add(cnt, 2), num_parent), sizeof(unsigned long));
 	for (lno = 0; lno <= cnt; lno++)
 		sline[lno+1].p_lno = sline[lno].p_lno + num_parent;
 
@@ -1266,7 +1262,7 @@
 	struct diff_filespec *pool;
 
 	pair = xmalloc(sizeof(*pair));
-	pool = xcalloc(num_parent + 1, sizeof(struct diff_filespec));
+	pool = xcalloc(st_add(num_parent, 1), sizeof(struct diff_filespec));
 	pair->one = pool + 1;
 	pair->two = pool;
 
@@ -1372,7 +1368,7 @@
 	struct combine_diff_path paths_head;
 	struct strbuf base;
 
-	parents_sha1 = xmalloc(nparent * sizeof(parents_sha1[0]));
+	ALLOC_ARRAY(parents_sha1, nparent);
 	for (i = 0; i < nparent; i++)
 		parents_sha1[i] = parents->sha1[i];
 
@@ -1483,7 +1479,7 @@
 	if (opt->orderfile && num_paths) {
 		struct obj_order *o;
 
-		o = xmalloc(sizeof(*o) * num_paths);
+		ALLOC_ARRAY(o, num_paths);
 		for (i = 0, p = paths; p; p = p->next, i++)
 			o[i].obj = p;
 		order_objects(opt->orderfile, path_path, o, num_paths);
diff --git a/commit.c b/commit.c
index 40388d7..3f4f371 100644
--- a/commit.c
+++ b/commit.c
@@ -147,7 +147,7 @@
 	if ((len + 1) % entry_size)
 		goto bad_graft_data;
 	i = (len + 1) / entry_size - 1;
-	graft = xmalloc(sizeof(*graft) + GIT_SHA1_RAWSZ * i);
+	graft = xmalloc(st_add(sizeof(*graft), st_mult(GIT_SHA1_RAWSZ, i)));
 	graft->nr_parent = i;
 	if (get_oid_hex(buf, &graft->oid))
 		goto bad_graft_data;
@@ -903,7 +903,7 @@
 
 	work = xcalloc(cnt, sizeof(*work));
 	redundant = xcalloc(cnt, 1);
-	filled_index = xmalloc(sizeof(*filled_index) * (cnt - 1));
+	ALLOC_ARRAY(filled_index, cnt - 1);
 
 	for (i = 0; i < cnt; i++)
 		parse_commit(array[i]);
diff --git a/compat/mingw.c b/compat/mingw.c
index fbe69b8..54c82ec 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -810,7 +810,7 @@
 		return arg;
 
 	/* insert \ where necessary */
-	d = q = xmalloc(len+n+3);
+	d = q = xmalloc(st_add3(len, n, 3));
 	*d++ = '"';
 	while (*arg) {
 		if (*arg == '"')
@@ -893,7 +893,7 @@
 	if (!n)
 		return NULL;
 
-	path = xmalloc((n+1)*sizeof(char *));
+	ALLOC_ARRAY(path, n + 1);
 	p = envpath;
 	i = 0;
 	do {
@@ -978,7 +978,7 @@
 		i++;
 
 	/* copy the environment, leaving space for changes */
-	tmpenv = xmalloc((size + i) * sizeof(char*));
+	ALLOC_ARRAY(tmpenv, size + i);
 	memcpy(tmpenv, environ, size * sizeof(char*));
 
 	/* merge supplied environment changes into the temporary environment */
@@ -1069,7 +1069,7 @@
 			free(quoted);
 	}
 
-	wargs = xmalloc((2 * args.len + 1) * sizeof(wchar_t));
+	ALLOC_ARRAY(wargs, st_add(st_mult(2, args.len), 1));
 	xutftowcs(wargs, args.buf, 2 * args.len + 1);
 	strbuf_release(&args);
 
@@ -1168,7 +1168,7 @@
 		int argc = 0;
 		const char **argv2;
 		while (argv[argc]) argc++;
-		argv2 = xmalloc(sizeof(*argv) * (argc+1));
+		ALLOC_ARRAY(argv2, argc + 1);
 		argv2[0] = (char *)cmd;	/* full path to the script file */
 		memcpy(&argv2[1], &argv[1], sizeof(*argv) * argc);
 		pid = mingw_spawnv(prog, argv2, 1);
diff --git a/compat/mingw.h b/compat/mingw.h
index 8c5bf50..c008694 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -396,6 +396,12 @@
 			ret = (char *)path;
 	return ret;
 }
+static inline void convert_slashes(char *path)
+{
+	for (; *path; path++)
+		if (*path == '\\')
+			*path = '/';
+}
 #define find_last_dir_sep mingw_find_last_dir_sep
 int mingw_offset_1st_component(const char *path);
 #define offset_1st_component mingw_offset_1st_component
diff --git a/compat/precompose_utf8.c b/compat/precompose_utf8.c
index 079070f..dfbe6d8 100644
--- a/compat/precompose_utf8.c
+++ b/compat/precompose_utf8.c
@@ -50,7 +50,8 @@
 		close(output_fd);
 		git_path_buf(&path, "%s", auml_nfd);
 		precomposed_unicode = access(path.buf, R_OK) ? 0 : 1;
-		git_config_set("core.precomposeunicode", precomposed_unicode ? "true" : "false");
+		git_config_set("core.precomposeunicode",
+			       precomposed_unicode ? "true" : "false");
 		git_path_buf(&path, "%s", auml_nfc);
 		if (unlink(path.buf))
 			die_errno(_("failed to unlink '%s'"), path.buf);
diff --git a/compat/qsort.c b/compat/qsort.c
index 9574d53..7d071af 100644
--- a/compat/qsort.c
+++ b/compat/qsort.c
@@ -47,7 +47,7 @@
 void git_qsort(void *b, size_t n, size_t s,
 	       int (*cmp)(const void *, const void *))
 {
-	const size_t size = n * s;
+	const size_t size = st_mult(n, s);
 	char buf[1024];
 
 	if (size < sizeof(buf)) {
diff --git a/compat/setenv.c b/compat/setenv.c
index fc1439a..7849f25 100644
--- a/compat/setenv.c
+++ b/compat/setenv.c
@@ -18,7 +18,7 @@
 
 	namelen = strlen(name);
 	valuelen = strlen(value);
-	envstr = malloc((namelen + valuelen + 2));
+	envstr = malloc(st_add3(namelen, valuelen, 2));
 	if (!envstr) {
 		errno = ENOMEM;
 		return -1;
diff --git a/compat/win32/pthread.h b/compat/win32/pthread.h
index 20b35a2..b6ed9e7 100644
--- a/compat/win32/pthread.h
+++ b/compat/win32/pthread.h
@@ -78,7 +78,7 @@
 #define pthread_equal(t1, t2) ((t1).tid == (t2).tid)
 extern pthread_t pthread_self(void);
 
-static inline int pthread_exit(void *ret)
+static inline void NORETURN pthread_exit(void *ret)
 {
 	ExitThread((DWORD)(intptr_t)ret);
 }
diff --git a/compat/win32/syslog.c b/compat/win32/syslog.c
index d015e43..b905aea 100644
--- a/compat/win32/syslog.c
+++ b/compat/win32/syslog.c
@@ -32,7 +32,7 @@
 		return;
 	}
 
-	str = malloc(str_len + 1);
+	str = malloc(st_add(str_len, 1));
 	if (!str) {
 		warning("malloc failed: '%s'", strerror(errno));
 		return;
@@ -43,7 +43,7 @@
 	va_end(ap);
 
 	while ((pos = strstr(str, "%1")) != NULL) {
-		str = realloc(str, ++str_len + 1);
+		str = realloc(str, st_add(++str_len, 1));
 		if (!str) {
 			warning("realloc failed: '%s'", strerror(errno));
 			return;
diff --git a/config.c b/config.c
index b95ac3a..9ba40bc 100644
--- a/config.c
+++ b/config.c
@@ -24,6 +24,7 @@
 			size_t pos;
 		} buf;
 	} u;
+	const char *origin_type;
 	const char *name;
 	const char *path;
 	int die_on_error;
@@ -471,9 +472,9 @@
 			break;
 	}
 	if (cf->die_on_error)
-		die(_("bad config file line %d in %s"), cf->linenr, cf->name);
+		die(_("bad config line %d in %s %s"), cf->linenr, cf->origin_type, cf->name);
 	else
-		return error(_("bad config file line %d in %s"), cf->linenr, cf->name);
+		return error(_("bad config line %d in %s %s"), cf->linenr, cf->origin_type, cf->name);
 }
 
 static int parse_unit_factor(const char *end, uintmax_t *val)
@@ -588,9 +589,9 @@
 	if (!value)
 		value = "";
 
-	if (cf && cf->name)
-		die(_("bad numeric config value '%s' for '%s' in %s: %s"),
-		    value, name, cf->name, reason);
+	if (cf && cf->origin_type && cf->name)
+		die(_("bad numeric config value '%s' for '%s' in %s %s: %s"),
+		    value, name, cf->origin_type, cf->name, reason);
 	die(_("bad numeric config value '%s' for '%s': %s"), value, name, reason);
 }
 
@@ -1061,11 +1062,13 @@
 }
 
 static int do_config_from_file(config_fn_t fn,
-		const char *name, const char *path, FILE *f, void *data)
+		const char *origin_type, const char *name, const char *path, FILE *f,
+		void *data)
 {
 	struct config_source top;
 
 	top.u.file = f;
+	top.origin_type = origin_type;
 	top.name = name;
 	top.path = path;
 	top.die_on_error = 1;
@@ -1078,7 +1081,7 @@
 
 static int git_config_from_stdin(config_fn_t fn, void *data)
 {
-	return do_config_from_file(fn, "<stdin>", NULL, stdin, data);
+	return do_config_from_file(fn, "standard input", "", NULL, stdin, data);
 }
 
 int git_config_from_file(config_fn_t fn, const char *filename, void *data)
@@ -1089,21 +1092,22 @@
 	f = fopen(filename, "r");
 	if (f) {
 		flockfile(f);
-		ret = do_config_from_file(fn, filename, filename, f, data);
+		ret = do_config_from_file(fn, "file", filename, filename, f, data);
 		funlockfile(f);
 		fclose(f);
 	}
 	return ret;
 }
 
-int git_config_from_buf(config_fn_t fn, const char *name, const char *buf,
-			size_t len, void *data)
+int git_config_from_mem(config_fn_t fn, const char *origin_type,
+			const char *name, const char *buf, size_t len, void *data)
 {
 	struct config_source top;
 
 	top.u.buf.buf = buf;
 	top.u.buf.len = len;
 	top.u.buf.pos = 0;
+	top.origin_type = origin_type;
 	top.name = name;
 	top.path = NULL;
 	top.die_on_error = 0;
@@ -1132,7 +1136,7 @@
 		return error("reference '%s' does not point to a blob", name);
 	}
 
-	ret = git_config_from_buf(fn, name, buf, size, data);
+	ret = git_config_from_mem(fn, "blob", name, buf, size, data);
 	free(buf);
 
 	return ret;
@@ -1849,15 +1853,26 @@
 	return offset;
 }
 
-int git_config_set_in_file(const char *config_filename,
-			const char *key, const char *value)
+int git_config_set_in_file_gently(const char *config_filename,
+				  const char *key, const char *value)
 {
-	return git_config_set_multivar_in_file(config_filename, key, value, NULL, 0);
+	return git_config_set_multivar_in_file_gently(config_filename, key, value, NULL, 0);
 }
 
-int git_config_set(const char *key, const char *value)
+void git_config_set_in_file(const char *config_filename,
+			    const char *key, const char *value)
 {
-	return git_config_set_multivar(key, value, NULL, 0);
+	git_config_set_multivar_in_file(config_filename, key, value, NULL, 0);
+}
+
+int git_config_set_gently(const char *key, const char *value)
+{
+	return git_config_set_multivar_gently(key, value, NULL, 0);
+}
+
+void git_config_set(const char *key, const char *value)
+{
+	git_config_set_multivar(key, value, NULL, 0);
 }
 
 /*
@@ -1902,7 +1917,7 @@
 	 * Validate the key and while at it, lower case it for matching.
 	 */
 	if (store_key)
-		*store_key = xmalloc(strlen(key) + 1);
+		*store_key = xmallocz(strlen(key));
 
 	dot = 0;
 	for (i = 0; key[i]; i++) {
@@ -1926,8 +1941,6 @@
 		if (store_key)
 			(*store_key)[i] = c;
 	}
-	if (store_key)
-		(*store_key)[i] = 0;
 
 	return 0;
 
@@ -1974,9 +1987,10 @@
  * - the config file is removed and the lock file rename()d to it.
  *
  */
-int git_config_set_multivar_in_file(const char *config_filename,
-				const char *key, const char *value,
-				const char *value_regex, int multi_replace)
+int git_config_set_multivar_in_file_gently(const char *config_filename,
+					   const char *key, const char *value,
+					   const char *value_regex,
+					   int multi_replace)
 {
 	int fd = -1, in_fd = -1;
 	int ret;
@@ -2203,11 +2217,27 @@
 
 }
 
-int git_config_set_multivar(const char *key, const char *value,
-			const char *value_regex, int multi_replace)
+void git_config_set_multivar_in_file(const char *config_filename,
+				     const char *key, const char *value,
+				     const char *value_regex, int multi_replace)
 {
-	return git_config_set_multivar_in_file(NULL, key, value, value_regex,
-					       multi_replace);
+	if (git_config_set_multivar_in_file_gently(config_filename, key, value,
+						   value_regex, multi_replace) < 0)
+		die(_("Could not set '%s' to '%s'"), key, value);
+}
+
+int git_config_set_multivar_gently(const char *key, const char *value,
+				   const char *value_regex, int multi_replace)
+{
+	return git_config_set_multivar_in_file_gently(NULL, key, value, value_regex,
+						      multi_replace);
+}
+
+void git_config_set_multivar(const char *key, const char *value,
+			     const char *value_regex, int multi_replace)
+{
+	git_config_set_multivar_in_file(NULL, key, value, value_regex,
+					multi_replace);
 }
 
 static int section_name_match (const char *buf, const char *name)
@@ -2409,3 +2439,13 @@
 
 	return 0;
 }
+
+const char *current_config_origin_type(void)
+{
+	return cf && cf->origin_type ? cf->origin_type : "command line";
+}
+
+const char *current_config_name(void)
+{
+	return cf && cf->name ? cf->name : "";
+}
diff --git a/config.mak.uname b/config.mak.uname
index d6f7980..fe8096f 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -37,6 +37,7 @@
 	HAVE_CLOCK_GETTIME = YesPlease
 	HAVE_CLOCK_MONOTONIC = YesPlease
 	HAVE_GETDELIM = YesPlease
+	SANE_TEXT_GREP=-a
 endif
 ifeq ($(uname_S),GNU/kFreeBSD)
 	HAVE_ALLOCA_H = YesPlease
diff --git a/configure.ac b/configure.ac
index 89e2590..0cd9f46 100644
--- a/configure.ac
+++ b/configure.ac
@@ -471,6 +471,13 @@
 	esac
 fi
 
+if grep -a ascii configure.ac >/dev/null; then
+  AC_MSG_RESULT([Using 'grep -a' for sane_grep])
+  SANE_TEXT_GREP=-a
+else
+  SANE_TEXT_GREP=
+fi
+GIT_CONF_SUBST([SANE_TEXT_GREP])
 
 ## Checks for libraries.
 AC_MSG_NOTICE([CHECKS for libraries])
diff --git a/connect.c b/connect.c
index fd7ffe1..c53f3f1 100644
--- a/connect.c
+++ b/connect.c
@@ -267,9 +267,9 @@
 		return PROTO_SSH;
 	if (!strcmp(name, "git"))
 		return PROTO_GIT;
-	if (!strcmp(name, "git+ssh"))
+	if (!strcmp(name, "git+ssh")) /* deprecated - do not use */
 		return PROTO_SSH;
-	if (!strcmp(name, "ssh+git"))
+	if (!strcmp(name, "ssh+git")) /* deprecated - do not use */
 		return PROTO_SSH;
 	if (!strcmp(name, "file"))
 		return PROTO_FILE;
@@ -357,6 +357,10 @@
 		port = "<none>";
 
 	memset(&hints, 0, sizeof(hints));
+	if (flags & CONNECT_IPV4)
+		hints.ai_family = AF_INET;
+	else if (flags & CONNECT_IPV6)
+		hints.ai_family = AF_INET6;
 	hints.ai_socktype = SOCK_STREAM;
 	hints.ai_protocol = IPPROTO_TCP;
 
@@ -783,6 +787,10 @@
 			}
 
 			argv_array_push(&conn->args, ssh);
+			if (flags & CONNECT_IPV4)
+				argv_array_push(&conn->args, "-4");
+			else if (flags & CONNECT_IPV6)
+				argv_array_push(&conn->args, "-6");
 			if (tortoiseplink)
 				argv_array_push(&conn->args, "-batch");
 			if (port) {
diff --git a/connect.h b/connect.h
index c41a685..01f14cd 100644
--- a/connect.h
+++ b/connect.h
@@ -3,6 +3,8 @@
 
 #define CONNECT_VERBOSE       (1u << 0)
 #define CONNECT_DIAG_URL      (1u << 1)
+#define CONNECT_IPV4          (1u << 2)
+#define CONNECT_IPV6          (1u << 3)
 extern struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
 extern int finish_connect(struct child_process *conn);
 extern int git_connection_is_socket(struct child_process *conn);
diff --git a/convert.c b/convert.c
index 8cd6222..f524b8d 100644
--- a/convert.c
+++ b/convert.c
@@ -19,17 +19,19 @@
 #define CONVERT_STAT_BITS_BIN       0x4
 
 enum crlf_action {
-	CRLF_GUESS = -1,
-	CRLF_BINARY = 0,
+	CRLF_UNDEFINED,
+	CRLF_BINARY,
 	CRLF_TEXT,
-	CRLF_INPUT,
-	CRLF_CRLF,
-	CRLF_AUTO
+	CRLF_TEXT_INPUT,
+	CRLF_TEXT_CRLF,
+	CRLF_AUTO,
+	CRLF_AUTO_INPUT,
+	CRLF_AUTO_CRLF
 };
 
 struct text_stat {
 	/* NUL, CR, LF and CRLF counts */
-	unsigned nul, cr, lf, crlf;
+	unsigned nul, lonecr, lonelf, crlf;
 
 	/* These are just approximations! */
 	unsigned printable, nonprintable;
@@ -44,13 +46,15 @@
 	for (i = 0; i < size; i++) {
 		unsigned char c = buf[i];
 		if (c == '\r') {
-			stats->cr++;
-			if (i+1 < size && buf[i+1] == '\n')
+			if (i+1 < size && buf[i+1] == '\n') {
 				stats->crlf++;
+				i++;
+			} else
+				stats->lonecr++;
 			continue;
 		}
 		if (c == '\n') {
-			stats->lf++;
+			stats->lonelf++;
 			continue;
 		}
 		if (c == 127)
@@ -84,7 +88,7 @@
  */
 static int convert_is_binary(unsigned long size, const struct text_stat *stats)
 {
-	if (stats->cr != stats->crlf)
+	if (stats->lonecr)
 		return 1;
 	if (stats->nul)
 		return 1;
@@ -96,19 +100,18 @@
 static unsigned int gather_convert_stats(const char *data, unsigned long size)
 {
 	struct text_stat stats;
+	int ret = 0;
 	if (!data || !size)
 		return 0;
 	gather_stats(data, size, &stats);
 	if (convert_is_binary(size, &stats))
-		return CONVERT_STAT_BITS_BIN;
-	else if (stats.crlf && stats.crlf == stats.lf)
-		return CONVERT_STAT_BITS_TXT_CRLF;
-	else if (stats.crlf && stats.lf)
-		return CONVERT_STAT_BITS_TXT_CRLF | CONVERT_STAT_BITS_TXT_LF;
-	else if (stats.lf)
-		return CONVERT_STAT_BITS_TXT_LF;
-	else
-		return 0;
+		ret |= CONVERT_STAT_BITS_BIN;
+	if (stats.crlf)
+		ret |= CONVERT_STAT_BITS_TXT_CRLF;
+	if (stats.lonelf)
+		ret |=  CONVERT_STAT_BITS_TXT_LF;
+
+	return ret;
 }
 
 static const char *gather_convert_stats_ascii(const char *data, unsigned long size)
@@ -149,28 +152,37 @@
 	return ret;
 }
 
+static int text_eol_is_crlf(void)
+{
+	if (auto_crlf == AUTO_CRLF_TRUE)
+		return 1;
+	else if (auto_crlf == AUTO_CRLF_INPUT)
+		return 0;
+	if (core_eol == EOL_CRLF)
+		return 1;
+	if (core_eol == EOL_UNSET && EOL_NATIVE == EOL_CRLF)
+		return 1;
+	return 0;
+}
+
 static enum eol output_eol(enum crlf_action crlf_action)
 {
 	switch (crlf_action) {
 	case CRLF_BINARY:
 		return EOL_UNSET;
-	case CRLF_CRLF:
+	case CRLF_TEXT_CRLF:
 		return EOL_CRLF;
-	case CRLF_INPUT:
+	case CRLF_TEXT_INPUT:
 		return EOL_LF;
-	case CRLF_GUESS:
-		if (!auto_crlf)
-			return EOL_UNSET;
-		/* fall through */
+	case CRLF_UNDEFINED:
+	case CRLF_AUTO_CRLF:
+	case CRLF_AUTO_INPUT:
 	case CRLF_TEXT:
 	case CRLF_AUTO:
-		if (auto_crlf == AUTO_CRLF_TRUE)
-			return EOL_CRLF;
-		else if (auto_crlf == AUTO_CRLF_INPUT)
-			return EOL_LF;
-		else if (core_eol == EOL_UNSET)
-			return EOL_NATIVE;
+		/* fall through */
+		return text_eol_is_crlf() ? EOL_CRLF : EOL_LF;
 	}
+	warning("Illegal crlf_action %d\n", (int)crlf_action);
 	return core_eol;
 }
 
@@ -196,7 +208,7 @@
 		 * CRLFs would be added by checkout:
 		 * check if we have "naked" LFs
 		 */
-		if (stats->lf != stats->crlf) {
+		if (stats->lonelf) {
 			if (checksafe == SAFE_CRLF_WARN)
 				warning("LF will be replaced by CRLF in %s.\nThe file will have its original line endings in your working directory.", path);
 			else /* i.e. SAFE_CRLF_FAIL */
@@ -227,7 +239,6 @@
 	char *dst;
 
 	if (crlf_action == CRLF_BINARY ||
-	    (crlf_action == CRLF_GUESS && auto_crlf == AUTO_CRLF_FALSE) ||
 	    (src && !len))
 		return 0;
 
@@ -240,11 +251,11 @@
 
 	gather_stats(src, len, &stats);
 
-	if (crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS) {
+	if (crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
 		if (convert_is_binary(len, &stats))
 			return 0;
 
-		if (crlf_action == CRLF_GUESS) {
+		if (crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
 			/*
 			 * If the file in the index has any CR in it, do not convert.
 			 * This is the new safer autocrlf handling.
@@ -256,8 +267,8 @@
 
 	check_safe_crlf(path, crlf_action, &stats, checksafe);
 
-	/* Optimization: No CR? Nothing to convert, regardless. */
-	if (!stats.cr)
+	/* Optimization: No CRLF? Nothing to convert, regardless. */
+	if (!stats.crlf)
 		return 0;
 
 	/*
@@ -271,7 +282,7 @@
 	if (strbuf_avail(buf) + buf->len < len)
 		strbuf_grow(buf, len - buf->len);
 	dst = buf->buf;
-	if (crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS) {
+	if (crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
 		/*
 		 * If we guessed, we already know we rejected a file with
 		 * lone CR, and we can strip a CR without looking at what
@@ -304,19 +315,15 @@
 
 	gather_stats(src, len, &stats);
 
-	/* No LF? Nothing to convert, regardless. */
-	if (!stats.lf)
+	/* No "naked" LF? Nothing to convert, regardless. */
+	if (!stats.lonelf)
 		return 0;
 
-	/* Was it already in CRLF format? */
-	if (stats.lf == stats.crlf)
-		return 0;
-
-	if (crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS) {
-		if (crlf_action == CRLF_GUESS) {
+	if (crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
+		if (crlf_action == CRLF_AUTO_INPUT || crlf_action == CRLF_AUTO_CRLF) {
 			/* If we have any CR or CRLF line endings, we do not touch it */
 			/* This is the new safer autocrlf-handling */
-			if (stats.cr > 0 || stats.crlf > 0)
+			if (stats.lonecr || stats.crlf )
 				return 0;
 		}
 
@@ -328,7 +335,7 @@
 	if (src == buf->buf)
 		to_free = strbuf_detach(buf, NULL);
 
-	strbuf_grow(buf, len + stats.lf - stats.crlf);
+	strbuf_grow(buf, len + stats.lonelf);
 	for (;;) {
 		const char *nl = memchr(src, '\n', len);
 		if (!nl)
@@ -696,7 +703,7 @@
 	return 1;
 }
 
-static enum crlf_action git_path_check_crlf(const char *path, struct git_attr_check *check)
+static enum crlf_action git_path_check_crlf(struct git_attr_check *check)
 {
 	const char *value = check->value;
 
@@ -707,13 +714,13 @@
 	else if (ATTR_UNSET(value))
 		;
 	else if (!strcmp(value, "input"))
-		return CRLF_INPUT;
+		return CRLF_TEXT_INPUT;
 	else if (!strcmp(value, "auto"))
 		return CRLF_AUTO;
-	return CRLF_GUESS;
+	return CRLF_UNDEFINED;
 }
 
-static enum eol git_path_check_eol(const char *path, struct git_attr_check *check)
+static enum eol git_path_check_eol(struct git_attr_check *check)
 {
 	const char *value = check->value;
 
@@ -726,8 +733,7 @@
 	return EOL_UNSET;
 }
 
-static struct convert_driver *git_path_check_convert(const char *path,
-					     struct git_attr_check *check)
+static struct convert_driver *git_path_check_convert(struct git_attr_check *check)
 {
 	const char *value = check->value;
 	struct convert_driver *drv;
@@ -740,28 +746,17 @@
 	return NULL;
 }
 
-static int git_path_check_ident(const char *path, struct git_attr_check *check)
+static int git_path_check_ident(struct git_attr_check *check)
 {
 	const char *value = check->value;
 
 	return !!ATTR_TRUE(value);
 }
 
-static enum crlf_action input_crlf_action(enum crlf_action text_attr, enum eol eol_attr)
-{
-	if (text_attr == CRLF_BINARY)
-		return CRLF_BINARY;
-	if (eol_attr == EOL_LF)
-		return CRLF_INPUT;
-	if (eol_attr == EOL_CRLF)
-		return CRLF_CRLF;
-	return text_attr;
-}
-
 struct conv_attrs {
 	struct convert_driver *drv;
-	enum crlf_action crlf_action;
-	enum eol eol_attr;
+	enum crlf_action attr_action; /* What attr says */
+	enum crlf_action crlf_action; /* When no attr is set, use core.autocrlf */
 	int ident;
 };
 
@@ -783,18 +778,33 @@
 	}
 
 	if (!git_check_attr(path, NUM_CONV_ATTRS, ccheck)) {
-		ca->crlf_action = git_path_check_crlf(path, ccheck + 4);
-		if (ca->crlf_action == CRLF_GUESS)
-			ca->crlf_action = git_path_check_crlf(path, ccheck + 0);
-		ca->ident = git_path_check_ident(path, ccheck + 1);
-		ca->drv = git_path_check_convert(path, ccheck + 2);
-		ca->eol_attr = git_path_check_eol(path, ccheck + 3);
+		ca->crlf_action = git_path_check_crlf(ccheck + 4);
+		if (ca->crlf_action == CRLF_UNDEFINED)
+			ca->crlf_action = git_path_check_crlf(ccheck + 0);
+		ca->attr_action = ca->crlf_action;
+		ca->ident = git_path_check_ident(ccheck + 1);
+		ca->drv = git_path_check_convert(ccheck + 2);
+		if (ca->crlf_action != CRLF_BINARY) {
+			enum eol eol_attr = git_path_check_eol(ccheck + 3);
+			if (eol_attr == EOL_LF)
+				ca->crlf_action = CRLF_TEXT_INPUT;
+			else if (eol_attr == EOL_CRLF)
+				ca->crlf_action = CRLF_TEXT_CRLF;
+		}
+		ca->attr_action = ca->crlf_action;
 	} else {
 		ca->drv = NULL;
-		ca->crlf_action = CRLF_GUESS;
-		ca->eol_attr = EOL_UNSET;
+		ca->crlf_action = CRLF_UNDEFINED;
 		ca->ident = 0;
 	}
+	if (ca->crlf_action == CRLF_TEXT)
+		ca->crlf_action = text_eol_is_crlf() ? CRLF_TEXT_CRLF : CRLF_TEXT_INPUT;
+	if (ca->crlf_action == CRLF_UNDEFINED && auto_crlf == AUTO_CRLF_FALSE)
+		ca->crlf_action = CRLF_BINARY;
+	if (ca->crlf_action == CRLF_UNDEFINED && auto_crlf == AUTO_CRLF_TRUE)
+		ca->crlf_action = CRLF_AUTO_CRLF;
+	if (ca->crlf_action == CRLF_UNDEFINED && auto_crlf == AUTO_CRLF_INPUT)
+		ca->crlf_action = CRLF_AUTO_INPUT;
 }
 
 int would_convert_to_git_filter_fd(const char *path)
@@ -819,23 +829,25 @@
 const char *get_convert_attr_ascii(const char *path)
 {
 	struct conv_attrs ca;
-	enum crlf_action crlf_action;
 
 	convert_attrs(&ca, path);
-	crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
-	switch (crlf_action) {
-	case CRLF_GUESS:
+	switch (ca.attr_action) {
+	case CRLF_UNDEFINED:
 		return "";
 	case CRLF_BINARY:
 		return "-text";
 	case CRLF_TEXT:
 		return "text";
-	case CRLF_INPUT:
+	case CRLF_TEXT_INPUT:
 		return "text eol=lf";
-	case CRLF_CRLF:
-		return "text=auto eol=crlf";
+	case CRLF_TEXT_CRLF:
+		return "text eol=crlf";
 	case CRLF_AUTO:
 		return "text=auto";
+	case CRLF_AUTO_CRLF:
+		return "text=auto eol=crlf"; /* This is not supported yet */
+	case CRLF_AUTO_INPUT:
+		return "text=auto eol=lf"; /* This is not supported yet */
 	}
 	return "";
 }
@@ -862,7 +874,6 @@
 		src = dst->buf;
 		len = dst->len;
 	}
-	ca.crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
 	ret |= crlf_to_git(path, src, len, dst, ca.crlf_action, checksafe);
 	if (ret && dst) {
 		src = dst->buf;
@@ -883,7 +894,6 @@
 	if (!apply_filter(path, NULL, 0, fd, dst, ca.drv->clean))
 		die("%s: clean filter '%s' failed", path, ca.drv->name);
 
-	ca.crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
 	crlf_to_git(path, dst->buf, dst->len, dst, ca.crlf_action, checksafe);
 	ident_to_git(path, dst->buf, dst->len, dst, ca.ident);
 }
@@ -913,7 +923,6 @@
 	 * is a smudge filter.  The filter might expect CRLFs.
 	 */
 	if (filter || !normalizing) {
-		ca.crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
 		ret |= crlf_to_worktree(path, src, len, dst, ca.crlf_action);
 		if (ret) {
 			src = dst->buf;
@@ -1382,14 +1391,15 @@
 	if (ca.ident)
 		filter = ident_filter(sha1);
 
-	crlf_action = input_crlf_action(ca.crlf_action, ca.eol_attr);
+	crlf_action = ca.crlf_action;
 
-	if ((crlf_action == CRLF_BINARY) || (crlf_action == CRLF_INPUT) ||
-	    (crlf_action == CRLF_GUESS && auto_crlf == AUTO_CRLF_FALSE))
+	if ((crlf_action == CRLF_BINARY) ||
+			crlf_action == CRLF_AUTO_INPUT ||
+			(crlf_action == CRLF_TEXT_INPUT))
 		filter = cascade_filter(filter, &null_filter_singleton);
 
 	else if (output_eol(crlf_action) == EOL_CRLF &&
-		 !(crlf_action == CRLF_AUTO || crlf_action == CRLF_GUESS))
+		 !(crlf_action == CRLF_AUTO || crlf_action == CRLF_AUTO_CRLF))
 		filter = cascade_filter(filter, lf_to_crlf_filter());
 
 	return filter;
diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c
index cc65a9c..caef21e 100644
--- a/credential-cache--daemon.c
+++ b/credential-cache--daemon.c
@@ -215,7 +215,7 @@
 "users may be able to read your cached credentials. Consider running:\n"
 "\n"
 "	chmod 0700 %s";
-static void check_socket_directory(const char *path)
+static void init_socket_directory(const char *path)
 {
 	struct stat st;
 	char *path_copy = xstrdup(path);
@@ -224,20 +224,27 @@
 	if (!stat(dir, &st)) {
 		if (st.st_mode & 077)
 			die(permissions_advice, dir);
-		free(path_copy);
-		return;
+	} else {
+		/*
+		 * We must be sure to create the directory with the correct mode,
+		 * not just chmod it after the fact; otherwise, there is a race
+		 * condition in which somebody can chdir to it, sleep, then try to open
+		 * our protected socket.
+		 */
+		if (safe_create_leading_directories_const(dir) < 0)
+			die_errno("unable to create directories for '%s'", dir);
+		if (mkdir(dir, 0700) < 0)
+			die_errno("unable to mkdir '%s'", dir);
 	}
 
-	/*
-	 * We must be sure to create the directory with the correct mode,
-	 * not just chmod it after the fact; otherwise, there is a race
-	 * condition in which somebody can chdir to it, sleep, then try to open
-	 * our protected socket.
-	 */
-	if (safe_create_leading_directories_const(dir) < 0)
-		die_errno("unable to create directories for '%s'", dir);
-	if (mkdir(dir, 0700) < 0)
-		die_errno("unable to mkdir '%s'", dir);
+	if (chdir(dir))
+		/*
+		 * We don't actually care what our cwd is; we chdir here just to
+		 * be a friendly daemon and avoid tying up our original cwd.
+		 * If this fails, it's OK to just continue without that benefit.
+		 */
+		;
+
 	free(path_copy);
 }
 
@@ -264,7 +271,10 @@
 	if (!socket_path)
 		usage_with_options(usage, options);
 
-	check_socket_directory(socket_path);
+	if (!is_absolute_path(socket_path))
+		die("socket directory must be an absolute path");
+
+	init_socket_directory(socket_path);
 	register_tempfile(&socket_file, socket_path);
 
 	if (ignore_sighup)
diff --git a/daemon.c b/daemon.c
index 46b411c..8d45c33 100644
--- a/daemon.c
+++ b/daemon.c
@@ -808,7 +808,7 @@
 			cradle = &blanket->next;
 }
 
-static char **cld_argv;
+static struct argv_array cld_argv = ARGV_ARRAY_INIT;
 static void handle(int incoming, struct sockaddr *addr, socklen_t addrlen)
 {
 	struct child_process cld = CHILD_PROCESS_INIT;
@@ -842,7 +842,7 @@
 #endif
 	}
 
-	cld.argv = (const char **)cld_argv;
+	cld.argv = cld_argv.argv;
 	cld.in = incoming;
 	cld.out = dup(incoming);
 
@@ -1374,12 +1374,10 @@
 		write_file(pid_file, "%"PRIuMAX, (uintmax_t) getpid());
 
 	/* prepare argv for serving-processes */
-	cld_argv = xmalloc(sizeof (char *) * (argc + 2));
-	cld_argv[0] = argv[0];	/* git-daemon */
-	cld_argv[1] = "--serve";
+	argv_array_push(&cld_argv, argv[0]); /* git-daemon */
+	argv_array_push(&cld_argv, "--serve");
 	for (i = 1; i < argc; ++i)
-		cld_argv[i+1] = argv[i];
-	cld_argv[argc+1] = NULL;
+		argv_array_push(&cld_argv, argv[i]);
 
 	return serve(&listen_addr, listen_port, cred);
 }
diff --git a/diff.c b/diff.c
index 2136b69..059123c 100644
--- a/diff.c
+++ b/diff.c
@@ -2607,12 +2607,9 @@
 
 struct diff_filespec *alloc_filespec(const char *path)
 {
-	int namelen = strlen(path);
-	struct diff_filespec *spec = xmalloc(sizeof(*spec) + namelen + 1);
+	struct diff_filespec *spec;
 
-	memset(spec, 0, sizeof(*spec));
-	spec->path = (char *)(spec + 1);
-	memcpy(spec->path, path, namelen+1);
+	FLEXPTR_ALLOC_STR(spec, path, path);
 	spec->count = 1;
 	spec->is_binary = -1;
 	return spec;
@@ -2707,21 +2704,21 @@
 
 static int diff_populate_gitlink(struct diff_filespec *s, int size_only)
 {
-	int len;
-	char *data = xmalloc(100), *dirty = "";
+	struct strbuf buf = STRBUF_INIT;
+	char *dirty = "";
 
 	/* Are we looking at the work tree? */
 	if (s->dirty_submodule)
 		dirty = "-dirty";
 
-	len = snprintf(data, 100,
-		       "Subproject commit %s%s\n", sha1_to_hex(s->sha1), dirty);
-	s->data = data;
-	s->size = len;
-	s->should_free = 1;
+	strbuf_addf(&buf, "Subproject commit %s%s\n", sha1_to_hex(s->sha1), dirty);
+	s->size = buf.len;
 	if (size_only) {
 		s->data = NULL;
-		free(data);
+		strbuf_release(&buf);
+	} else {
+		s->data = strbuf_detach(&buf, NULL);
+		s->should_free = 1;
 	}
 	return 0;
 }
@@ -5085,7 +5082,7 @@
 {
 	size_t size;
 
-	if (!driver || !driver->textconv) {
+	if (!driver) {
 		if (!DIFF_FILE_VALID(df)) {
 			*outbuf = "";
 			return 0;
@@ -5096,6 +5093,9 @@
 		return df->size;
 	}
 
+	if (!driver->textconv)
+		die("BUG: fill_textconv called with non-textconv driver");
+
 	if (driver->textconv_cache && df->sha1_valid) {
 		*outbuf = notes_cache_get(driver->textconv_cache, df->sha1,
 					  &size);
diff --git a/diff.h b/diff.h
index 70b2d70..e7d68ed 100644
--- a/diff.h
+++ b/diff.h
@@ -222,8 +222,8 @@
 	} parent[FLEX_ARRAY];
 };
 #define combine_diff_path_size(n, l) \
-	(sizeof(struct combine_diff_path) + \
-	 sizeof(struct combine_diff_parent) * (n) + (l) + 1)
+	st_add4(sizeof(struct combine_diff_path), (l), 1, \
+		st_mult(sizeof(struct combine_diff_parent), (n)))
 
 extern void show_combined_diff(struct combine_diff_path *elem, int num_parent,
 			      int dense, struct rev_info *);
@@ -349,10 +349,26 @@
 
 extern int index_differs_from(const char *def, int diff_flags);
 
+/*
+ * Fill the contents of the filespec "df", respecting any textconv defined by
+ * its userdiff driver.  The "driver" parameter must come from a
+ * previous call to get_textconv(), and therefore should either be NULL or have
+ * textconv enabled.
+ *
+ * Note that the memory ownership of the resulting buffer depends on whether
+ * the driver field is NULL. If it is, then the memory belongs to the filespec
+ * struct. If it is non-NULL, then "outbuf" points to a newly allocated buffer
+ * that should be freed by the caller.
+ */
 extern size_t fill_textconv(struct userdiff_driver *driver,
 			    struct diff_filespec *df,
 			    char **outbuf);
 
+/*
+ * Look up the userdiff driver for the given filespec, and return it if
+ * and only if it has textconv enabled (otherwise return NULL). The result
+ * can be passed to fill_textconv().
+ */
 extern struct userdiff_driver *get_textconv(struct diff_filespec *one);
 
 extern int parse_rename_score(const char **cp_p);
diff --git a/diffcore-delta.c b/diffcore-delta.c
index 7cf431d2..4159748 100644
--- a/diffcore-delta.c
+++ b/diffcore-delta.c
@@ -53,7 +53,8 @@
 	int osz = 1 << orig->alloc_log2;
 	int sz = osz << 1;
 
-	new = xmalloc(sizeof(*orig) + sizeof(struct spanhash) * sz);
+	new = xmalloc(st_add(sizeof(*orig),
+			     st_mult(sizeof(struct spanhash), sz)));
 	new->alloc_log2 = orig->alloc_log2 + 1;
 	new->free = INITIAL_FREE(new->alloc_log2);
 	memset(new->data, 0, sizeof(struct spanhash) * sz);
@@ -130,7 +131,8 @@
 	int is_text = !diff_filespec_is_binary(one);
 
 	i = INITIAL_HASH_SIZE;
-	hash = xmalloc(sizeof(*hash) + sizeof(struct spanhash) * (1<<i));
+	hash = xmalloc(st_add(sizeof(*hash),
+			      st_mult(sizeof(struct spanhash), 1<<i)));
 	hash->alloc_log2 = i;
 	hash->free = INITIAL_FREE(i);
 	memset(hash->data, 0, sizeof(struct spanhash) * (1<<i));
diff --git a/diffcore-order.c b/diffcore-order.c
index 97dd3d0..69d41f7 100644
--- a/diffcore-order.c
+++ b/diffcore-order.c
@@ -52,7 +52,7 @@
 		}
 		if (pass == 0) {
 			order_cnt = cnt;
-			order = xmalloc(sizeof(*order) * cnt);
+			ALLOC_ARRAY(order, cnt);
 		}
 	}
 }
@@ -120,7 +120,7 @@
 	if (!q->nr)
 		return;
 
-	o = xmalloc(sizeof(*o) * q->nr);
+	ALLOC_ARRAY(o, q->nr);
 	for (i = 0; i < q->nr; i++)
 		o[i].obj = q->queue[i];
 	order_objects(orderfile, pair_pathtwo, o, q->nr);
diff --git a/diffcore-rename.c b/diffcore-rename.c
index af1fe08..3b3c1ed 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -537,7 +537,7 @@
 				rename_dst_nr * rename_src_nr, 50, 1);
 	}
 
-	mx = xcalloc(num_create * NUM_CANDIDATE_PER_DST, sizeof(*mx));
+	mx = xcalloc(st_mult(num_create, NUM_CANDIDATE_PER_DST), sizeof(*mx));
 	for (dst_cnt = i = 0; i < rename_dst_nr; i++) {
 		struct diff_filespec *two = rename_dst[i].two;
 		struct diff_score *m;
diff --git a/dir.c b/dir.c
index f0b6d0a..a4a9d9f 100644
--- a/dir.c
+++ b/dir.c
@@ -503,12 +503,7 @@
 
 	parse_exclude_pattern(&string, &patternlen, &flags, &nowildcardlen);
 	if (flags & EXC_FLAG_MUSTBEDIR) {
-		char *s;
-		x = xmalloc(sizeof(*x) + patternlen + 1);
-		s = (char *)(x+1);
-		memcpy(s, string, patternlen);
-		s[patternlen] = '\0';
-		x->pattern = s;
+		FLEXPTR_ALLOC_MEM(x, pattern, string, patternlen);
 	} else {
 		x = xmalloc(sizeof(*x));
 		x->pattern = string;
@@ -625,10 +620,7 @@
 	}
 
 	uc->dir_created++;
-	d = xmalloc(sizeof(*d) + len + 1);
-	memset(d, 0, sizeof(*d));
-	memcpy(d->name, name, len);
-	d->name[len] = '\0';
+	FLEX_ALLOC_MEM(d, name, name, len);
 
 	ALLOC_GROW(dir->dirs, dir->dirs_nr + 1, dir->dirs_alloc);
 	memmove(dir->dirs + first + 1, dir->dirs + first,
@@ -697,7 +689,7 @@
 			return 0;
 		}
 		if (buf[size-1] != '\n') {
-			buf = xrealloc(buf, size+1);
+			buf = xrealloc(buf, st_add(size, 1));
 			buf[size++] = '\n';
 		}
 	} else {
@@ -711,7 +703,7 @@
 			close(fd);
 			return 0;
 		}
-		buf = xmalloc(size+1);
+		buf = xmallocz(size);
 		if (read_in_full(fd, buf, size) != size) {
 			free(buf);
 			close(fd);
@@ -1167,10 +1159,8 @@
 {
 	struct dir_entry *ent;
 
-	ent = xmalloc(sizeof(*ent) + len + 1);
+	FLEX_ALLOC_MEM(ent, name, pathname, len);
 	ent->len = len;
-	memcpy(ent->name, pathname, len);
-	ent->name[len] = 0;
 	return ent;
 }
 
@@ -2370,16 +2360,15 @@
 	struct ondisk_untracked_cache *ouc;
 	struct write_data wd;
 	unsigned char varbuf[16];
-	int len = 0, varint_len;
-	if (untracked->exclude_per_dir)
-		len = strlen(untracked->exclude_per_dir);
-	ouc = xmalloc(sizeof(*ouc) + len + 1);
+	int varint_len;
+	size_t len = strlen(untracked->exclude_per_dir);
+
+	FLEX_ALLOC_MEM(ouc, exclude_per_dir, untracked->exclude_per_dir, len);
 	stat_data_to_disk(&ouc->info_exclude_stat, &untracked->ss_info_exclude.stat);
 	stat_data_to_disk(&ouc->excludes_file_stat, &untracked->ss_excludes_file.stat);
 	hashcpy(ouc->info_exclude_sha1, untracked->ss_info_exclude.sha1);
 	hashcpy(ouc->excludes_file_sha1, untracked->ss_excludes_file.sha1);
 	ouc->dir_flags = htonl(untracked->dir_flags);
-	memcpy(ouc->exclude_per_dir, untracked->exclude_per_dir, len + 1);
 
 	varint_len = encode_varint(untracked->ident.len, varbuf);
 	strbuf_add(out, varbuf, varint_len);
@@ -2484,21 +2473,21 @@
 	ud.untracked_alloc = value;
 	ud.untracked_nr	   = value;
 	if (ud.untracked_nr)
-		ud.untracked = xmalloc(sizeof(*ud.untracked) * ud.untracked_nr);
+		ALLOC_ARRAY(ud.untracked, ud.untracked_nr);
 	data = next;
 
 	next = data;
 	ud.dirs_alloc = ud.dirs_nr = decode_varint(&next);
 	if (next > end)
 		return -1;
-	ud.dirs = xmalloc(sizeof(*ud.dirs) * ud.dirs_nr);
+	ALLOC_ARRAY(ud.dirs, ud.dirs_nr);
 	data = next;
 
 	len = strlen((const char *)data);
 	next = data + len + 1;
 	if (next > rd->end)
 		return -1;
-	*untracked_ = untracked = xmalloc(sizeof(*untracked) + len);
+	*untracked_ = untracked = xmalloc(st_add(sizeof(*untracked), len));
 	memcpy(untracked, &ud, sizeof(ud));
 	memcpy(untracked->name, data, len + 1);
 	data = next;
@@ -2611,7 +2600,7 @@
 	rd.data	      = next;
 	rd.end	      = end;
 	rd.index      = 0;
-	rd.ucd        = xmalloc(sizeof(*rd.ucd) * len);
+	ALLOC_ARRAY(rd.ucd, len);
 
 	if (read_one_dir(&uc->root, &rd) || rd.index != len)
 		goto done;
diff --git a/entry.c b/entry.c
index 582c400..a410957 100644
--- a/entry.c
+++ b/entry.c
@@ -6,7 +6,7 @@
 static void create_directories(const char *path, int path_len,
 			       const struct checkout *state)
 {
-	char *buf = xmalloc(path_len + 1);
+	char *buf = xmallocz(path_len);
 	int len = 0;
 
 	while (len < path_len) {
diff --git a/ewah/bitmap.c b/ewah/bitmap.c
index 47ad674..7103cee 100644
--- a/ewah/bitmap.c
+++ b/ewah/bitmap.c
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-#include "git-compat-util.h"
+#include "cache.h"
 #include "ewok.h"
 
 #define EWAH_MASK(x) ((eword_t)1 << (x % BITS_IN_EWORD))
@@ -25,8 +25,8 @@
 
 struct bitmap *bitmap_new(void)
 {
-	struct bitmap *bitmap = ewah_malloc(sizeof(struct bitmap));
-	bitmap->words = ewah_calloc(32, sizeof(eword_t));
+	struct bitmap *bitmap = xmalloc(sizeof(struct bitmap));
+	bitmap->words = xcalloc(32, sizeof(eword_t));
 	bitmap->word_alloc = 32;
 	return bitmap;
 }
@@ -38,9 +38,7 @@
 	if (block >= self->word_alloc) {
 		size_t old_size = self->word_alloc;
 		self->word_alloc = block * 2;
-		self->words = ewah_realloc(self->words,
-			self->word_alloc * sizeof(eword_t));
-
+		REALLOC_ARRAY(self->words, self->word_alloc);
 		memset(self->words + old_size, 0x0,
 			(self->word_alloc - old_size) * sizeof(eword_t));
 	}
@@ -100,12 +98,7 @@
 	ewah_iterator_init(&it, ewah);
 
 	while (ewah_iterator_next(&blowup, &it)) {
-		if (i >= bitmap->word_alloc) {
-			bitmap->word_alloc *= 1.5;
-			bitmap->words = ewah_realloc(
-				bitmap->words, bitmap->word_alloc * sizeof(eword_t));
-		}
-
+		ALLOC_GROW(bitmap->words, i + 1, bitmap->word_alloc);
 		bitmap->words[i++] = blowup;
 	}
 
@@ -134,8 +127,7 @@
 
 	if (self->word_alloc < other_final) {
 		self->word_alloc = other_final;
-		self->words = ewah_realloc(self->words,
-			self->word_alloc * sizeof(eword_t));
+		REALLOC_ARRAY(self->words, self->word_alloc);
 		memset(self->words + original_size, 0x0,
 			(self->word_alloc - original_size) * sizeof(eword_t));
 	}
diff --git a/ewah/ewah_bitmap.c b/ewah/ewah_bitmap.c
index b522437..2dc9c82 100644
--- a/ewah/ewah_bitmap.c
+++ b/ewah/ewah_bitmap.c
@@ -39,8 +39,7 @@
 		return;
 
 	self->alloc_size = new_size;
-	self->buffer = ewah_realloc(self->buffer,
-		self->alloc_size * sizeof(eword_t));
+	REALLOC_ARRAY(self->buffer, self->alloc_size);
 	self->rlw = self->buffer + (rlw_offset / sizeof(eword_t));
 }
 
@@ -282,12 +281,9 @@
 {
 	struct ewah_bitmap *self;
 
-	self = ewah_malloc(sizeof(struct ewah_bitmap));
-	if (self == NULL)
-		return NULL;
-
-	self->buffer = ewah_malloc(32 * sizeof(eword_t));
+	self = xmalloc(sizeof(struct ewah_bitmap));
 	self->alloc_size = 32;
+	ALLOC_ARRAY(self->buffer, self->alloc_size);
 
 	ewah_clear(self);
 	return self;
diff --git a/ewah/ewah_io.c b/ewah/ewah_io.c
index 43481b9..61f6a43 100644
--- a/ewah/ewah_io.c
+++ b/ewah/ewah_io.c
@@ -134,11 +134,7 @@
 	self->buffer_size = self->alloc_size = get_be32(ptr);
 	ptr += sizeof(uint32_t);
 
-	self->buffer = ewah_realloc(self->buffer,
-		self->alloc_size * sizeof(eword_t));
-
-	if (!self->buffer)
-		return -1;
+	REALLOC_ARRAY(self->buffer, self->alloc_size);
 
 	/*
 	 * Copy the raw data for the bitmap as a whole chunk;
@@ -180,11 +176,7 @@
 		return -1;
 
 	self->buffer_size = self->alloc_size = (size_t)ntohl(word_count);
-	self->buffer = ewah_realloc(self->buffer,
-		self->alloc_size * sizeof(eword_t));
-
-	if (!self->buffer)
-		return -1;
+	REALLOC_ARRAY(self->buffer, self->alloc_size);
 
 	/** 64 bit x N -- compressed words */
 	buffer = self->buffer;
diff --git a/ewah/ewok.h b/ewah/ewok.h
index 6e2c5e1..269a1a8 100644
--- a/ewah/ewok.h
+++ b/ewah/ewok.h
@@ -20,16 +20,6 @@
 #ifndef __EWOK_BITMAP_H__
 #define __EWOK_BITMAP_H__
 
-#ifndef ewah_malloc
-#	define ewah_malloc xmalloc
-#endif
-#ifndef ewah_realloc
-#	define ewah_realloc xrealloc
-#endif
-#ifndef ewah_calloc
-#	define ewah_calloc xcalloc
-#endif
-
 struct strbuf;
 typedef uint64_t eword_t;
 #define BITS_IN_EWORD (sizeof(eword_t) * 8)
diff --git a/exec_cmd.c b/exec_cmd.c
index e85f0fd..9d5703a 100644
--- a/exec_cmd.c
+++ b/exec_cmd.c
@@ -1,6 +1,7 @@
 #include "cache.h"
 #include "exec_cmd.h"
 #include "quote.h"
+#include "argv-array.h"
 #define MAX_ARGS	32
 
 static const char *argv_exec_path;
@@ -43,12 +44,10 @@
 
 	if (!argv0 || !*argv0)
 		return NULL;
-	slash = argv0 + strlen(argv0);
 
-	while (argv0 <= slash && !is_dir_sep(*slash))
-		slash--;
+	slash = find_last_dir_sep(argv0);
 
-	if (slash >= argv0) {
+	if (slash) {
 		argv0_path = xstrndup(argv0, slash - argv0);
 		return slash + 1;
 	}
@@ -107,32 +106,25 @@
 	strbuf_release(&new_path);
 }
 
-const char **prepare_git_cmd(const char **argv)
+const char **prepare_git_cmd(struct argv_array *out, const char **argv)
 {
-	int argc;
-	const char **nargv;
-
-	for (argc = 0; argv[argc]; argc++)
-		; /* just counting */
-	nargv = xmalloc(sizeof(*nargv) * (argc + 2));
-
-	nargv[0] = "git";
-	for (argc = 0; argv[argc]; argc++)
-		nargv[argc + 1] = argv[argc];
-	nargv[argc + 1] = NULL;
-	return nargv;
+	argv_array_push(out, "git");
+	argv_array_pushv(out, argv);
+	return out->argv;
 }
 
 int execv_git_cmd(const char **argv) {
-	const char **nargv = prepare_git_cmd(argv);
-	trace_argv_printf(nargv, "trace: exec:");
+	struct argv_array nargv = ARGV_ARRAY_INIT;
+
+	prepare_git_cmd(&nargv, argv);
+	trace_argv_printf(nargv.argv, "trace: exec:");
 
 	/* execvp() can only ever return if it fails */
-	sane_execvp("git", (char **)nargv);
+	sane_execvp("git", (char **)nargv.argv);
 
 	trace_printf("trace: exec failed: %s\n", strerror(errno));
 
-	free(nargv);
+	argv_array_clear(&nargv);
 	return -1;
 }
 
diff --git a/exec_cmd.h b/exec_cmd.h
index 93b0c02..1f6b433 100644
--- a/exec_cmd.h
+++ b/exec_cmd.h
@@ -1,11 +1,13 @@
 #ifndef GIT_EXEC_CMD_H
 #define GIT_EXEC_CMD_H
 
+struct argv_array;
+
 extern void git_set_argv_exec_path(const char *exec_path);
 extern const char *git_extract_argv0_path(const char *path);
 extern const char *git_exec_path(void);
 extern void setup_path(void);
-extern const char **prepare_git_cmd(const char **argv);
+extern const char **prepare_git_cmd(struct argv_array *out, const char **argv);
 extern int execv_git_cmd(const char **argv); /* NULL terminated */
 LAST_ARG_MUST_BE_NULL
 extern int execl_git_cmd(const char *cmd, ...);
diff --git a/fast-import.c b/fast-import.c
index bf01b34..9fc7093 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -622,7 +622,7 @@
 			return xmalloc(len);
 		}
 		total_allocd += sizeof(struct mem_pool) + mem_pool_alloc;
-		p = xmalloc(sizeof(struct mem_pool) + mem_pool_alloc);
+		p = xmalloc(st_add(sizeof(struct mem_pool), mem_pool_alloc));
 		p->next_pool = mem_pool;
 		p->next_free = (char *) p->space;
 		p->end = p->next_free + mem_pool_alloc;
@@ -814,7 +814,8 @@
 	if (!avail_tree_entry) {
 		unsigned int n = tree_entry_alloc;
 		total_allocd += n * sizeof(struct tree_entry);
-		avail_tree_entry = e = xmalloc(n * sizeof(struct tree_entry));
+		ALLOC_ARRAY(e, n);
+		avail_tree_entry = e;
 		while (n-- > 1) {
 			*((void**)e) = e + 1;
 			e++;
@@ -864,15 +865,12 @@
 {
 	static char tmp_file[PATH_MAX];
 	struct packed_git *p;
-	int namelen;
 	struct pack_header hdr;
 	int pack_fd;
 
 	pack_fd = odb_mkstemp(tmp_file, sizeof(tmp_file),
 			      "pack/tmp_pack_XXXXXX");
-	namelen = strlen(tmp_file) + 2;
-	p = xcalloc(1, sizeof(*p) + namelen);
-	xsnprintf(p->pack_name, namelen, "%s", tmp_file);
+	FLEX_ALLOC_STR(p, pack_name, tmp_file);
 	p->pack_fd = pack_fd;
 	p->do_not_close = 1;
 	pack_file = sha1fd(pack_fd, p->pack_name);
@@ -898,7 +896,7 @@
 	struct object_entry_pool *o;
 
 	/* Build the table of object IDs. */
-	idx = xmalloc(object_count * sizeof(*idx));
+	ALLOC_ARRAY(idx, object_count);
 	c = idx;
 	for (o = blocks; o; o = o->next_pool)
 		for (e = o->next_free; e-- != o->entries;)
diff --git a/fetch-pack.c b/fetch-pack.c
index 01e34b6..f96f6df 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -15,6 +15,7 @@
 #include "version.h"
 #include "prio-queue.h"
 #include "sha1-array.h"
+#include "sigchain.h"
 
 static int transfer_unpack_limit = -1;
 static int fetch_unpack_limit = -1;
@@ -671,9 +672,12 @@
 static int sideband_demux(int in, int out, void *data)
 {
 	int *xd = data;
+	int ret;
 
-	int ret = recv_sideband("fetch-pack", xd[0], out);
+	sigchain_push(SIGPIPE, SIG_IGN);
+	ret = recv_sideband("fetch-pack", xd[0], out);
 	close(out);
+	sigchain_pop(SIGPIPE);
 	return ret;
 }
 
diff --git a/fsck.c b/fsck.c
index c637f66..ca4c685 100644
--- a/fsck.c
+++ b/fsck.c
@@ -199,7 +199,8 @@
 
 	if (!options->msg_type) {
 		int i;
-		int *msg_type = xmalloc(sizeof(int) * FSCK_MSG_MAX);
+		int *msg_type;
+		ALLOC_ARRAY(msg_type, FSCK_MSG_MAX);
 		for (i = 0; i < FSCK_MSG_MAX; i++)
 			msg_type[i] = fsck_msg_type(i, options);
 		options->msg_type = msg_type;
diff --git a/git-compat-util.h b/git-compat-util.h
index 693a336..4743954 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -96,6 +96,14 @@
 #define unsigned_add_overflows(a, b) \
     ((b) > maximum_unsigned_value_of_type(a) - (a))
 
+/*
+ * Returns true if the multiplication of "a" and "b" will
+ * overflow. The types of "a" and "b" must match and must be unsigned.
+ * Note that this macro evaluates "a" twice!
+ */
+#define unsigned_mult_overflows(a, b) \
+    ((a) && (b) > maximum_unsigned_value_of_type(a) / (a))
+
 #ifdef __GNUC__
 #define TYPEOF(x) (__typeof__(x))
 #else
@@ -325,10 +333,6 @@
 #define _PATH_DEFPATH "/usr/local/bin:/usr/bin:/bin"
 #endif
 
-#ifndef STRIP_EXTENSION
-#define STRIP_EXTENSION ""
-#endif
-
 #ifndef has_dos_drive_prefix
 static inline int git_has_dos_drive_prefix(const char *path)
 {
@@ -673,7 +677,6 @@
 #ifdef __GLIBC_PREREQ
 #if __GLIBC_PREREQ(2, 1)
 #define HAVE_STRCHRNUL
-#define HAVE_MEMPCPY
 #endif
 #endif
 
@@ -687,14 +690,6 @@
 }
 #endif
 
-#ifndef HAVE_MEMPCPY
-#define mempcpy gitmempcpy
-static inline void *gitmempcpy(void *dest, const void *src, size_t n)
-{
-	return (char *)memcpy(dest, src, n) + n;
-}
-#endif
-
 #ifdef NO_INET_PTON
 int inet_pton(int af, const char *src, void *dst);
 #endif
@@ -713,6 +708,32 @@
 typedef void (*try_to_free_t)(size_t);
 extern try_to_free_t set_try_to_free_routine(try_to_free_t);
 
+static inline size_t st_add(size_t a, size_t b)
+{
+	if (unsigned_add_overflows(a, b))
+		die("size_t overflow: %"PRIuMAX" + %"PRIuMAX,
+		    (uintmax_t)a, (uintmax_t)b);
+	return a + b;
+}
+#define st_add3(a,b,c)   st_add(st_add((a),(b)),(c))
+#define st_add4(a,b,c,d) st_add(st_add3((a),(b),(c)),(d))
+
+static inline size_t st_mult(size_t a, size_t b)
+{
+	if (unsigned_mult_overflows(a, b))
+		die("size_t overflow: %"PRIuMAX" * %"PRIuMAX,
+		    (uintmax_t)a, (uintmax_t)b);
+	return a * b;
+}
+
+static inline size_t st_sub(size_t a, size_t b)
+{
+	if (a < b)
+		die("size_t underflow: %"PRIuMAX" - %"PRIuMAX,
+		    (uintmax_t)a, (uintmax_t)b);
+	return a - b;
+}
+
 #ifdef HAVE_ALLOCA_H
 # include <alloca.h>
 # define xalloca(size)      (alloca(size))
@@ -745,7 +766,70 @@
 extern char *xgetcwd(void);
 extern FILE *fopen_for_writing(const char *path);
 
-#define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), (alloc) * sizeof(*(x)))
+#define ALLOC_ARRAY(x, alloc) (x) = xmalloc(st_mult(sizeof(*(x)), (alloc)))
+#define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), st_mult(sizeof(*(x)), (alloc)))
+
+/*
+ * These functions help you allocate structs with flex arrays, and copy
+ * the data directly into the array. For example, if you had:
+ *
+ *   struct foo {
+ *     int bar;
+ *     char name[FLEX_ARRAY];
+ *   };
+ *
+ * you can do:
+ *
+ *   struct foo *f;
+ *   FLEX_ALLOC_MEM(f, name, src, len);
+ *
+ * to allocate a "foo" with the contents of "src" in the "name" field.
+ * The resulting struct is automatically zero'd, and the flex-array field
+ * is NUL-terminated (whether the incoming src buffer was or not).
+ *
+ * The FLEXPTR_* variants operate on structs that don't use flex-arrays,
+ * but do want to store a pointer to some extra data in the same allocated
+ * block. For example, if you have:
+ *
+ *   struct foo {
+ *     char *name;
+ *     int bar;
+ *   };
+ *
+ * you can do:
+ *
+ *   struct foo *f;
+ *   FLEX_ALLOC_STR(f, name, src);
+ *
+ * and "name" will point to a block of memory after the struct, which will be
+ * freed along with the struct (but the pointer can be repointed anywhere).
+ *
+ * The *_STR variants accept a string parameter rather than a ptr/len
+ * combination.
+ *
+ * Note that these macros will evaluate the first parameter multiple
+ * times, and it must be assignable as an lvalue.
+ */
+#define FLEX_ALLOC_MEM(x, flexname, buf, len) do { \
+	(x) = NULL; /* silence -Wuninitialized for offset calculation */ \
+	(x) = xalloc_flex(sizeof(*(x)), (char *)(&((x)->flexname)) - (char *)(x), (buf), (len)); \
+} while (0)
+#define FLEXPTR_ALLOC_MEM(x, ptrname, buf, len) do { \
+	(x) = xalloc_flex(sizeof(*(x)), sizeof(*(x)), (buf), (len)); \
+	(x)->ptrname = (void *)((x)+1); \
+} while(0)
+#define FLEX_ALLOC_STR(x, flexname, str) \
+	FLEX_ALLOC_MEM((x), flexname, (str), strlen(str))
+#define FLEXPTR_ALLOC_STR(x, ptrname, str) \
+	FLEXPTR_ALLOC_MEM((x), ptrname, (str), strlen(str))
+
+static inline void *xalloc_flex(size_t base_len, size_t offset,
+				const void *src, size_t src_len)
+{
+	unsigned char *ret = xcalloc(1, st_add3(base_len, src_len, 1));
+	memcpy(ret + offset, src, src_len);
+	return ret;
+}
 
 static inline char *xstrdup_or_null(const char *str)
 {
diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh
index cdc02af..424b034 100755
--- a/git-merge-one-file.sh
+++ b/git-merge-one-file.sh
@@ -120,8 +120,7 @@
 	case "$1" in
 	'')
 		echo "Added $4 in both, but differently."
-		orig=$(git-unpack-file $2)
-		create_virtual_base "$orig" "$src2"
+		orig=$(git-unpack-file e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
 		;;
 	*)
 		echo "Auto-merging $4"
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index c0cfe88..4cde685 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -1233,7 +1233,8 @@
 	git rev-list $revisions |
 	while read rev
 	do
-		if test -f "$rewritten"/$rev && test "$(sane_grep "$rev" "$state_dir"/not-cherry-picks)" = ""
+		if test -f "$rewritten"/$rev &&
+		   ! sane_grep "$rev" "$state_dir"/not-cherry-picks >/dev/null
 		then
 			# Use -f2 because if rev-list is telling us this commit is
 			# not worthwhile, we don't want to track its multiple heads,
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 4691fbc..c48139a 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -168,11 +168,11 @@
 }
 
 sane_grep () {
-	GREP_OPTIONS= LC_ALL=C grep "$@"
+	GREP_OPTIONS= LC_ALL=C grep @@SANE_TEXT_GREP@@ "$@"
 }
 
 sane_egrep () {
-	GREP_OPTIONS= LC_ALL=C egrep "$@"
+	GREP_OPTIONS= LC_ALL=C egrep @@SANE_TEXT_GREP@@ "$@"
 }
 
 is_bare_repository () {
diff --git a/git-submodule.sh b/git-submodule.sh
index 9bc5c5f..43c68de 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -591,6 +591,24 @@
 	done
 }
 
+is_tip_reachable () (
+	clear_local_git_env
+	cd "$1" &&
+	rev=$(git rev-list -n 1 "$2" --not --all 2>/dev/null) &&
+	test -z "$rev"
+)
+
+fetch_in_submodule () (
+	clear_local_git_env
+	cd "$1" &&
+	case "$2" in
+	'')
+		git fetch ;;
+	*)
+		git fetch $(get_default_remote) "$2" ;;
+	esac
+)
+
 #
 # Update each submodule path to correct revision, using clone and checkout as needed
 #
@@ -745,10 +763,15 @@
 			then
 				# Run fetch only if $sha1 isn't present or it
 				# is not reachable from a ref.
-				(clear_local_git_env; cd "$sm_path" &&
-					( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) &&
-					 test -z "$rev") || git-fetch)) ||
+				is_tip_reachable "$sm_path" "$sha1" ||
+				fetch_in_submodule "$sm_path" ||
 				die "$(eval_gettext "Unable to fetch in submodule path '\$displaypath'")"
+
+				# Now we tried the usual fetch, but $sha1 may
+				# not be reachable from any of the refs
+				is_tip_reachable "$sm_path" "$sha1" ||
+				fetch_in_submodule "$sm_path" "$sha1" ||
+				die "$(eval_gettext "Fetched in submodule path '\$displaypath', but it did not contain $sha1. Direct fetching of that commit failed.")"
 			fi
 
 			# Is this something we just cloned?
diff --git a/git-svn.perl b/git-svn.perl
index fa5f253..05eced0 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1745,11 +1745,12 @@
 
 sub complete_svn_url {
 	my ($url, $path) = @_;
-	$path = canonicalize_path($path);
 
-	# If the path is not a URL...
-	if ($path !~ m#^[a-z\+]+://#) {
-		if (!defined $url || $url !~ m#^[a-z\+]+://#) {
+	if ($path =~ m#^[a-z\+]+://#i) { # path is a URL
+		$path = canonicalize_url($path);
+	} else {
+		$path = canonicalize_path($path);
+		if (!defined $url || $url !~ m#^[a-z\+]+://#i) {
 			fatal("E: '$path' is not a complete URL ",
 			      "and a separate URL is not specified");
 		}
@@ -1764,11 +1765,12 @@
 		print STDERR "W: $switch not specified\n";
 		return;
 	}
-	$repo_path = canonicalize_path($repo_path);
-	if ($repo_path =~ m#^[a-z\+]+://#) {
+	if ($repo_path =~ m#^[a-z\+]+://#i) {
+		$repo_path = canonicalize_url($repo_path);
 		$ra = Git::SVN::Ra->new($repo_path);
 		$repo_path = '';
 	} else {
+		$repo_path = canonicalize_path($repo_path);
 		$repo_path =~ s#^/+##;
 		unless ($ra) {
 			fatal("E: '$repo_path' is not a complete URL ",
diff --git a/git.c b/git.c
index 6c64c94..6cc0c07 100644
--- a/git.c
+++ b/git.c
@@ -247,20 +247,16 @@
 	alias_string = alias_lookup(alias_command);
 	if (alias_string) {
 		if (alias_string[0] == '!') {
-			const char **alias_argv;
-			int argc = *argcp, i;
+			struct child_process child = CHILD_PROCESS_INIT;
 
 			commit_pager_choice();
 			restore_env(1);
 
-			/* build alias_argv */
-			alias_argv = xmalloc(sizeof(*alias_argv) * (argc + 1));
-			alias_argv[0] = alias_string + 1;
-			for (i = 1; i < argc; ++i)
-				alias_argv[i] = (*argv)[i];
-			alias_argv[argc] = NULL;
+			child.use_shell = 1;
+			argv_array_push(&child.args, alias_string + 1);
+			argv_array_pushv(&child.args, (*argv) + 1);
 
-			ret = run_command_v_opt(alias_argv, RUN_USING_SHELL);
+			ret = run_command(&child);
 			if (ret >= 0)   /* normal exit */
 				exit(ret);
 
@@ -513,21 +509,25 @@
 	return !!get_builtin(s);
 }
 
+#ifdef STRIP_EXTENSION
+static void strip_extension(const char **argv)
+{
+	size_t len;
+
+	if (strip_suffix(argv[0], STRIP_EXTENSION, &len))
+		argv[0] = xmemdupz(argv[0], len);
+}
+#else
+#define strip_extension(cmd)
+#endif
+
 static void handle_builtin(int argc, const char **argv)
 {
-	const char *cmd = argv[0];
-	int i;
-	static const char ext[] = STRIP_EXTENSION;
+	const char *cmd;
 	struct cmd_struct *builtin;
 
-	if (sizeof(ext) > 1) {
-		i = strlen(argv[0]) - strlen(ext);
-		if (i > 0 && !strcmp(argv[0] + i, ext)) {
-			char *argv0 = xstrdup(argv[0]);
-			argv[0] = cmd = argv0;
-			argv0[i] = '\0';
-		}
-	}
+	strip_extension(argv);
+	cmd = argv[0];
 
 	/* Turn "git cmd --help" into "git help cmd" */
 	if (argc > 1 && !strcmp(argv[1], "--help")) {
diff --git a/gitk-git/gitk b/gitk-git/gitk
index 5f1255c..805a1c7 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -3021,7 +3021,7 @@
 }
 
 proc about {} {
-    global uifont NS
+    global bgcolor NS
     set w .about
     if {[winfo exists $w]} {
 	raise $w
@@ -3036,7 +3036,7 @@
 Copyright \u00a9 2005-2014 Paul Mackerras
 
 Use and redistribute under the terms of the GNU General Public License"] \
-	    -justify center -aspect 400 -border 2 -bg white -relief groove
+	    -justify center -aspect 400 -border 2 -bg $bgcolor -relief groove
     pack $w.m -side top -fill x -padx 2 -pady 2
     ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active
     pack $w.ok -side bottom
@@ -3047,7 +3047,7 @@
 }
 
 proc keys {} {
-    global NS
+    global bgcolor NS
     set w .keys
     if {[winfo exists $w]} {
 	raise $w
@@ -3103,7 +3103,7 @@
 [mc "<%s-minus>	Decrease font size" $M1T]
 [mc "<F5>		Update"]
 " \
-	    -justify left -bg white -border 2 -relief groove
+	    -justify left -bg $bgcolor -border 2 -relief groove
     pack $w.m -side top -fill both -padx 2 -pady 2
     ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active
     bind $w <Key-Escape> [list destroy $w]
diff --git a/gitk-git/po/bg.po b/gitk-git/po/bg.po
index 909a564..99aa77a 100644
--- a/gitk-git/po/bg.po
+++ b/gitk-git/po/bg.po
@@ -8,8 +8,8 @@
 msgstr ""
 "Project-Id-Version: gitk master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-06-27 20:44+0300\n"
-"PO-Revision-Date: 2015-06-27 20:46+0300\n"
+"POT-Creation-Date: 2015-12-19 11:48+0200\n"
+"PO-Revision-Date: 2015-12-19 11:49+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
 "Language: bg\n"
@@ -22,11 +22,11 @@
 msgid "Couldn't get list of unmerged files:"
 msgstr "Списъкът с неслети файлове не може да бъде получен:"
 
-#: gitk:212 gitk:2381
+#: gitk:212 gitk:2399
 msgid "Color words"
 msgstr "Оцветяване на думите"
 
-#: gitk:217 gitk:2381 gitk:8220 gitk:8253
+#: gitk:217 gitk:2399 gitk:8239 gitk:8272
 msgid "Markup words"
 msgstr "Отбелязване на думите"
 
@@ -59,15 +59,15 @@
 msgid "Reading"
 msgstr "Прочитане"
 
-#: gitk:496 gitk:4525
+#: gitk:496 gitk:4544
 msgid "Reading commits..."
 msgstr "Прочитане на подаванията…"
 
-#: gitk:499 gitk:1637 gitk:4528
+#: gitk:499 gitk:1637 gitk:4547
 msgid "No commits selected"
 msgstr "Не са избрани подавания"
 
-#: gitk:1445 gitk:4045 gitk:12432
+#: gitk:1445 gitk:4064 gitk:12469
 msgid "Command line"
 msgstr "Команден ред"
 
@@ -79,286 +79,294 @@
 msgid "No commit information available"
 msgstr "Липсва информация за подавания"
 
-#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521
+#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554
 msgid "OK"
 msgstr "Добре"
 
-#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671
-#: gitk:11242 gitk:11522
+#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704
+#: gitk:11275 gitk:11555
 msgid "Cancel"
 msgstr "Отказ"
 
-#: gitk:2069
+#: gitk:2083
 msgid "&Update"
-msgstr "Обновяване"
-
-#: gitk:2070
-msgid "&Reload"
-msgstr "Презареждане"
-
-#: gitk:2071
-msgid "Reread re&ferences"
-msgstr "Наново прочитане на настройките"
-
-#: gitk:2072
-msgid "&List references"
-msgstr "Изброяване на указателите"
-
-#: gitk:2074
-msgid "Start git &gui"
-msgstr "Стартиране на „git gui“"
-
-#: gitk:2076
-msgid "&Quit"
-msgstr "Спиране на програмата"
-
-#: gitk:2068
-msgid "&File"
-msgstr "Файл"
-
-#: gitk:2080
-msgid "&Preferences"
-msgstr "Настройки"
-
-#: gitk:2079
-msgid "&Edit"
-msgstr "Редактиране"
+msgstr "&Обновяване"
 
 #: gitk:2084
-msgid "&New view..."
-msgstr "Нов изглед…"
+msgid "&Reload"
+msgstr "&Презареждане"
 
 #: gitk:2085
-msgid "&Edit view..."
-msgstr "Редактиране на изгледа…"
+msgid "Reread re&ferences"
+msgstr "&Наново прочитане на настройките"
 
 #: gitk:2086
+msgid "&List references"
+msgstr "&Изброяване на указателите"
+
+#: gitk:2088
+msgid "Start git &gui"
+msgstr "&Стартиране на „git gui“"
+
+#: gitk:2090
+msgid "&Quit"
+msgstr "&Спиране на програмата"
+
+#: gitk:2082
+msgid "&File"
+msgstr "&Файл"
+
+#: gitk:2094
+msgid "&Preferences"
+msgstr "&Настройки"
+
+#: gitk:2093
+msgid "&Edit"
+msgstr "&Редактиране"
+
+#: gitk:2098
+msgid "&New view..."
+msgstr "&Нов изглед…"
+
+#: gitk:2099
+msgid "&Edit view..."
+msgstr "&Редактиране на изгледа…"
+
+#: gitk:2100
 msgid "&Delete view"
-msgstr "Изтриване на изгледа"
+msgstr "&Изтриване на изгледа"
 
-#: gitk:2088 gitk:4043
+#: gitk:2102
 msgid "&All files"
-msgstr "Всички файлове"
+msgstr "&Всички файлове"
 
-#: gitk:2083 gitk:4067
+#: gitk:2097
 msgid "&View"
-msgstr "Изглед"
+msgstr "&Изглед"
 
-#: gitk:2093 gitk:2103 gitk:3012
+#: gitk:2107 gitk:2117
 msgid "&About gitk"
-msgstr "Относно gitk"
+msgstr "&Относно gitk"
 
-#: gitk:2094 gitk:2108
+#: gitk:2108 gitk:2122
 msgid "&Key bindings"
-msgstr "Клавишни комбинации"
+msgstr "&Клавишни комбинации"
 
-#: gitk:2092 gitk:2107
+#: gitk:2106 gitk:2121
 msgid "&Help"
-msgstr "Помощ"
+msgstr "Помо&щ"
 
-#: gitk:2185 gitk:8652
+#: gitk:2199 gitk:8671
 msgid "SHA1 ID:"
 msgstr "SHA1:"
 
-#: gitk:2229
+#: gitk:2243
 msgid "Row"
 msgstr "Ред"
 
-#: gitk:2267
+#: gitk:2281
 msgid "Find"
 msgstr "Търсене"
 
-#: gitk:2295
+#: gitk:2309
 msgid "commit"
 msgstr "подаване"
 
-#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827
-#: gitk:6912
+#: gitk:2313 gitk:2315 gitk:4706 gitk:4729 gitk:4753 gitk:6774 gitk:6846
+#: gitk:6931
 msgid "containing:"
 msgstr "съдържащо:"
 
-#: gitk:2302 gitk:3526 gitk:3531 gitk:4763
+#: gitk:2316 gitk:3545 gitk:3550 gitk:4782
 msgid "touching paths:"
 msgstr "засягащо пътищата:"
 
-#: gitk:2303 gitk:4777
+#: gitk:2317 gitk:4796
 msgid "adding/removing string:"
 msgstr "добавящо/премахващо низ"
 
-#: gitk:2304 gitk:4779
+#: gitk:2318 gitk:4798
 msgid "changing lines matching:"
 msgstr "променящо редове напасващи:"
 
-#: gitk:2313 gitk:2315 gitk:4766
+#: gitk:2327 gitk:2329 gitk:4785
 msgid "Exact"
 msgstr "Точно"
 
-#: gitk:2315 gitk:4854 gitk:6723
+#: gitk:2329 gitk:4873 gitk:6742
 msgid "IgnCase"
 msgstr "Без регистър"
 
-#: gitk:2315 gitk:4736 gitk:4852 gitk:6719
+#: gitk:2329 gitk:4755 gitk:4871 gitk:6738
 msgid "Regexp"
 msgstr "Рег. израз"
 
-#: gitk:2317 gitk:2318 gitk:4874 gitk:4904 gitk:4911 gitk:6848 gitk:6916
+#: gitk:2331 gitk:2332 gitk:4893 gitk:4923 gitk:4930 gitk:6867 gitk:6935
 msgid "All fields"
 msgstr "Всички полета"
 
-#: gitk:2318 gitk:4871 gitk:4904 gitk:6786
+#: gitk:2332 gitk:4890 gitk:4923 gitk:6805
 msgid "Headline"
 msgstr "Първи ред"
 
-#: gitk:2319 gitk:4871 gitk:6786 gitk:6916 gitk:7389
+#: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408
 msgid "Comments"
 msgstr "Коментари"
 
-#: gitk:2319 gitk:4871 gitk:4876 gitk:4911 gitk:6786 gitk:7324 gitk:8830
-#: gitk:8845
+#: gitk:2333 gitk:4890 gitk:4895 gitk:4930 gitk:6805 gitk:7343 gitk:8849
+#: gitk:8864
 msgid "Author"
 msgstr "Автор"
 
-#: gitk:2319 gitk:4871 gitk:6786 gitk:7326
+#: gitk:2333 gitk:4890 gitk:6805 gitk:7345
 msgid "Committer"
 msgstr "Подаващ"
 
-#: gitk:2350
+#: gitk:2367
 msgid "Search"
 msgstr "Търсене"
 
-#: gitk:2358
+#: gitk:2375
 msgid "Diff"
 msgstr "Разлики"
 
-#: gitk:2360
+#: gitk:2377
 msgid "Old version"
 msgstr "Стара версия"
 
-#: gitk:2362
+#: gitk:2379
 msgid "New version"
 msgstr "Нова версия"
 
-#: gitk:2364
+#: gitk:2382
 msgid "Lines of context"
 msgstr "Контекст в редове"
 
-#: gitk:2374
+#: gitk:2392
 msgid "Ignore space change"
 msgstr "Празните знаци без значение"
 
-#: gitk:2378 gitk:2380 gitk:7959 gitk:8206
+#: gitk:2396 gitk:2398 gitk:7978 gitk:8225
 msgid "Line diff"
 msgstr "Поредови разлики"
 
-#: gitk:2445
+#: gitk:2463
 msgid "Patch"
 msgstr "Кръпка"
 
-#: gitk:2447
+#: gitk:2465
 msgid "Tree"
 msgstr "Дърво"
 
-#: gitk:2617 gitk:2637
+#: gitk:2635 gitk:2656
 msgid "Diff this -> selected"
 msgstr "Разлики между това и избраното"
 
-#: gitk:2618 gitk:2638
+#: gitk:2636 gitk:2657
 msgid "Diff selected -> this"
 msgstr "Разлики между избраното и това"
 
-#: gitk:2619 gitk:2639
+#: gitk:2637 gitk:2658
 msgid "Make patch"
 msgstr "Създаване на кръпка"
 
-#: gitk:2620 gitk:9254
+#: gitk:2638 gitk:9273
 msgid "Create tag"
 msgstr "Създаване на етикет"
 
-#: gitk:2621 gitk:9371
+#: gitk:2639
+msgid "Copy commit summary"
+msgstr "Копиране на информацията за подаване"
+
+#: gitk:2640 gitk:9404
 msgid "Write commit to file"
 msgstr "Запазване на подаването във файл"
 
-#: gitk:2622 gitk:9428
+#: gitk:2641 gitk:9461
 msgid "Create new branch"
 msgstr "Създаване на нов клон"
 
-#: gitk:2623
+#: gitk:2642
 msgid "Cherry-pick this commit"
 msgstr "Отбиране на това подаване"
 
-#: gitk:2624
+#: gitk:2643
 msgid "Reset HEAD branch to here"
 msgstr "Привеждане на върха на клона към текущото подаване"
 
-#: gitk:2625
+#: gitk:2644
 msgid "Mark this commit"
 msgstr "Отбелязване на това подаване"
 
-#: gitk:2626
+#: gitk:2645
 msgid "Return to mark"
 msgstr "Връщане към отбелязаното подаване"
 
-#: gitk:2627
+#: gitk:2646
 msgid "Find descendant of this and mark"
 msgstr "Откриване и отбелязване на наследниците"
 
-#: gitk:2628
+#: gitk:2647
 msgid "Compare with marked commit"
 msgstr "Сравнение с отбелязаното подаване"
 
-#: gitk:2629 gitk:2640
+#: gitk:2648 gitk:2659
 msgid "Diff this -> marked commit"
 msgstr "Разлики между това и отбелязаното"
 
-#: gitk:2630 gitk:2641
+#: gitk:2649 gitk:2660
 msgid "Diff marked commit -> this"
 msgstr "Разлики между отбелязаното и това"
 
-#: gitk:2631
+#: gitk:2650
 msgid "Revert this commit"
 msgstr "Отмяна на това подаване"
 
-#: gitk:2647
+#: gitk:2666
 msgid "Check out this branch"
 msgstr "Изтегляне на този клон"
 
-#: gitk:2648
+#: gitk:2667
 msgid "Remove this branch"
 msgstr "Изтриване на този клон"
 
-#: gitk:2649
+#: gitk:2668
 msgid "Copy branch name"
 msgstr "Копиране на името на клона"
 
-#: gitk:2656
+#: gitk:2675
 msgid "Highlight this too"
 msgstr "Отбелязване и на това"
 
-#: gitk:2657
+#: gitk:2676
 msgid "Highlight this only"
 msgstr "Отбелязване само на това"
 
-#: gitk:2658
+#: gitk:2677
 msgid "External diff"
 msgstr "Външна програма за разлики"
 
-#: gitk:2659
+#: gitk:2678
 msgid "Blame parent commit"
 msgstr "Анотиране на родителското подаване"
 
-#: gitk:2660
+#: gitk:2679
 msgid "Copy path"
 msgstr "Копиране на пътя"
 
-#: gitk:2667
+#: gitk:2686
 msgid "Show origin of this line"
 msgstr "Показване на произхода на този ред"
 
-#: gitk:2668
+#: gitk:2687
 msgid "Run git gui blame on this line"
 msgstr "Изпълнение на „git gui blame“ върху този ред"
 
-#: gitk:3014
+#: gitk:3031
+msgid "About gitk"
+msgstr "Относно gitk"
+
+#: gitk:3033
 msgid ""
 "\n"
 "Gitk - a commit viewer for git\n"
@@ -374,316 +382,324 @@
 "\n"
 "Използвайте и разпространявайте при условията на ОПЛ на ГНУ"
 
-#: gitk:3022 gitk:3089 gitk:9857
+#: gitk:3041 gitk:3108 gitk:9890
 msgid "Close"
 msgstr "Затваряне"
 
-#: gitk:3043
+#: gitk:3062
 msgid "Gitk key bindings"
 msgstr "Клавишни комбинации"
 
-#: gitk:3046
+#: gitk:3065
 msgid "Gitk key bindings:"
 msgstr "Клавишни комбинации:"
 
-#: gitk:3048
+#: gitk:3067
 #, tcl-format
 msgid "<%s-Q>\t\tQuit"
 msgstr "<%s-Q>\t\tСпиране на програмата"
 
-#: gitk:3049
+#: gitk:3068
 #, tcl-format
 msgid "<%s-W>\t\tClose window"
 msgstr "<%s-W>\t\tЗатваряне на прозореца"
 
-#: gitk:3050
+#: gitk:3069
 msgid "<Home>\t\tMove to first commit"
 msgstr "<Home>\t\tКъм първото подаване"
 
-#: gitk:3051
+#: gitk:3070
 msgid "<End>\t\tMove to last commit"
 msgstr "<End>\t\tКъм последното подаване"
 
-#: gitk:3052
+#: gitk:3071
 msgid "<Up>, p, k\tMove up one commit"
 msgstr "<Up>, p, k\tЕдно подаване нагоре"
 
-#: gitk:3053
+#: gitk:3072
 msgid "<Down>, n, j\tMove down one commit"
 msgstr "<Down>, n, j\tЕдно подаване надолу"
 
-#: gitk:3054
+#: gitk:3073
 msgid "<Left>, z, h\tGo back in history list"
 msgstr "<Left>, z, h\tНазад в историята"
 
-#: gitk:3055
+#: gitk:3074
 msgid "<Right>, x, l\tGo forward in history list"
 msgstr "<Right>, x, l\tНапред в историята"
 
-#: gitk:3056
+#: gitk:3075
 #, tcl-format
 msgid "<%s-n>\tGo to n-th parent of current commit in history list"
 msgstr "<%s-n>\tКъм n-тия родител на текущото подаване в историята"
 
-#: gitk:3057
+#: gitk:3076
 msgid "<PageUp>\tMove up one page in commit list"
 msgstr "<PageUp>\tСтраница нагоре в списъка с подаванията"
 
-#: gitk:3058
+#: gitk:3077
 msgid "<PageDown>\tMove down one page in commit list"
 msgstr "<PageDown>\tСтраница надолу в списъка с подаванията"
 
-#: gitk:3059
+#: gitk:3078
 #, tcl-format
 msgid "<%s-Home>\tScroll to top of commit list"
 msgstr "<%s-Home>\tКъм началото на списъка с подаванията"
 
-#: gitk:3060
+#: gitk:3079
 #, tcl-format
 msgid "<%s-End>\tScroll to bottom of commit list"
 msgstr "<%s-End>\tКъм края на списъка с подаванията"
 
-#: gitk:3061
+#: gitk:3080
 #, tcl-format
 msgid "<%s-Up>\tScroll commit list up one line"
 msgstr "<%s-Up>\tРед нагоре в списъка с подавания"
 
-#: gitk:3062
+#: gitk:3081
 #, tcl-format
 msgid "<%s-Down>\tScroll commit list down one line"
 msgstr "<%s-Down>\tРед надолу в списъка с подавания"
 
-#: gitk:3063
+#: gitk:3082
 #, tcl-format
 msgid "<%s-PageUp>\tScroll commit list up one page"
 msgstr "<%s-PageUp>\tСтраница нагоре в списъка с подавания"
 
-#: gitk:3064
+#: gitk:3083
 #, tcl-format
 msgid "<%s-PageDown>\tScroll commit list down one page"
 msgstr "<%s-PageDown>\tСтраница надолу в списъка с подавания"
 
-#: gitk:3065
+#: gitk:3084
 msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
 msgstr "<Shift-Up>\tТърсене назад (визуално нагоре, исторически — последващи)"
 
-#: gitk:3066
+#: gitk:3085
 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
 msgstr ""
 "<Shift-Down>\tТърсене напред (визуално надолу, исторически — предхождащи)"
 
-#: gitk:3067
+#: gitk:3086
 msgid "<Delete>, b\tScroll diff view up one page"
 msgstr "<Delete>, b\tСтраница нагоре в изгледа за разлики"
 
-#: gitk:3068
+#: gitk:3087
 msgid "<Backspace>\tScroll diff view up one page"
 msgstr "<Backspace>\tСтраница надолу в изгледа за разлики"
 
-#: gitk:3069
+#: gitk:3088
 msgid "<Space>\t\tScroll diff view down one page"
 msgstr "<Space>\t\tСтраница надолу в изгледа за разлики"
 
-#: gitk:3070
+#: gitk:3089
 msgid "u\t\tScroll diff view up 18 lines"
 msgstr "u\t\t18 реда нагоре в изгледа за разлики"
 
-#: gitk:3071
+#: gitk:3090
 msgid "d\t\tScroll diff view down 18 lines"
 msgstr "d\t\t18 реда надолу в изгледа за разлики"
 
-#: gitk:3072
+#: gitk:3091
 #, tcl-format
 msgid "<%s-F>\t\tFind"
 msgstr "<%s-F>\t\tТърсене"
 
-#: gitk:3073
+#: gitk:3092
 #, tcl-format
 msgid "<%s-G>\t\tMove to next find hit"
 msgstr "<%s-G>\t\tКъм следващата поява"
 
-#: gitk:3074
+#: gitk:3093
 msgid "<Return>\tMove to next find hit"
 msgstr "<Return>\tКъм следващата поява"
 
-#: gitk:3075
+#: gitk:3094
 msgid "g\t\tGo to commit"
 msgstr "g\t\tКъм последното подаване"
 
-#: gitk:3076
+#: gitk:3095
 msgid "/\t\tFocus the search box"
 msgstr "/\t\tФокус върху полето за търсене"
 
-#: gitk:3077
+#: gitk:3096
 msgid "?\t\tMove to previous find hit"
 msgstr "?\t\tКъм предишната поява"
 
-#: gitk:3078
+#: gitk:3097
 msgid "f\t\tScroll diff view to next file"
 msgstr "f\t\tСледващ файл в изгледа за разлики"
 
-#: gitk:3079
+#: gitk:3098
 #, tcl-format
 msgid "<%s-S>\t\tSearch for next hit in diff view"
 msgstr "<%s-S>\t\tТърсене на следващата поява в изгледа за разлики"
 
-#: gitk:3080
+#: gitk:3099
 #, tcl-format
 msgid "<%s-R>\t\tSearch for previous hit in diff view"
 msgstr "<%s-R>\t\tТърсене на предишната поява в изгледа за разлики"
 
-#: gitk:3081
+#: gitk:3100
 #, tcl-format
 msgid "<%s-KP+>\tIncrease font size"
 msgstr "<%s-KP+>\tПо-голям размер на шрифта"
 
-#: gitk:3082
+#: gitk:3101
 #, tcl-format
 msgid "<%s-plus>\tIncrease font size"
 msgstr "<%s-plus>\tПо-голям размер на шрифта"
 
-#: gitk:3083
+#: gitk:3102
 #, tcl-format
 msgid "<%s-KP->\tDecrease font size"
 msgstr "<%s-KP->\tПо-малък размер на шрифта"
 
-#: gitk:3084
+#: gitk:3103
 #, tcl-format
 msgid "<%s-minus>\tDecrease font size"
 msgstr "<%s-minus>\tПо-малък размер на шрифта"
 
-#: gitk:3085
+#: gitk:3104
 msgid "<F5>\t\tUpdate"
 msgstr "<F5>\t\tОбновяване"
 
-#: gitk:3550 gitk:3559
+#: gitk:3569 gitk:3578
 #, tcl-format
 msgid "Error creating temporary directory %s:"
 msgstr "Грешка при създаването на временната директория „%s“:"
 
-#: gitk:3572
+#: gitk:3591
 #, tcl-format
 msgid "Error getting \"%s\" from %s:"
 msgstr "Грешка при получаването на „%s“ от %s:"
 
-#: gitk:3635
+#: gitk:3654
 msgid "command failed:"
 msgstr "неуспешно изпълнение на команда:"
 
-#: gitk:3784
+#: gitk:3803
 msgid "No such commit"
 msgstr "Такова подаване няма"
 
-#: gitk:3798
+#: gitk:3817
 msgid "git gui blame: command failed:"
 msgstr "„git gui blame“: неуспешно изпълнение на команда:"
 
-#: gitk:3829
+#: gitk:3848
 #, tcl-format
 msgid "Couldn't read merge head: %s"
 msgstr "Върхът за сливане не може да бъде прочетен: %s"
 
-#: gitk:3837
+#: gitk:3856
 #, tcl-format
 msgid "Error reading index: %s"
 msgstr "Грешка при прочитане на индекса: %s"
 
-#: gitk:3862
+#: gitk:3881
 #, tcl-format
 msgid "Couldn't start git blame: %s"
 msgstr "Командата „git blame“ не може да бъде стартирана: %s"
 
-#: gitk:3865 gitk:6754
+#: gitk:3884 gitk:6773
 msgid "Searching"
 msgstr "Търсене"
 
-#: gitk:3897
+#: gitk:3916
 #, tcl-format
 msgid "Error running git blame: %s"
 msgstr "Грешка при изпълнението на „git blame“: %s"
 
-#: gitk:3925
+#: gitk:3944
 #, tcl-format
 msgid "That line comes from commit %s,  which is not in this view"
 msgstr "Този ред идва от подаването %s, което не е в изгледа"
 
-#: gitk:3939
+#: gitk:3958
 msgid "External diff viewer failed:"
 msgstr "Неуспешно изпълнение на външната програма за разлики:"
 
-#: gitk:4070
+#: gitk:4062
+msgid "All files"
+msgstr "Всички файлове"
+
+#: gitk:4086
+msgid "View"
+msgstr "Изглед"
+
+#: gitk:4089
 msgid "Gitk view definition"
 msgstr "Дефиниция на изглед в Gitk"
 
-#: gitk:4074
+#: gitk:4093
 msgid "Remember this view"
 msgstr "Запазване на този изглед"
 
-#: gitk:4075
+#: gitk:4094
 msgid "References (space separated list):"
 msgstr "Указатели (списък с разделител интервал):"
 
-#: gitk:4076
+#: gitk:4095
 msgid "Branches & tags:"
 msgstr "Клони и етикети:"
 
-#: gitk:4077
+#: gitk:4096
 msgid "All refs"
 msgstr "Всички указатели"
 
-#: gitk:4078
+#: gitk:4097
 msgid "All (local) branches"
 msgstr "Всички (локални) клони"
 
-#: gitk:4079
+#: gitk:4098
 msgid "All tags"
 msgstr "Всички етикети"
 
-#: gitk:4080
+#: gitk:4099
 msgid "All remote-tracking branches"
 msgstr "Всички следящи клони"
 
-#: gitk:4081
+#: gitk:4100
 msgid "Commit Info (regular expressions):"
 msgstr "Информация за подаване (рег. изр.):"
 
-#: gitk:4082
+#: gitk:4101
 msgid "Author:"
 msgstr "Автор:"
 
-#: gitk:4083
+#: gitk:4102
 msgid "Committer:"
 msgstr "Подал:"
 
-#: gitk:4084
+#: gitk:4103
 msgid "Commit Message:"
 msgstr "Съобщение при подаване:"
 
-#: gitk:4085
+#: gitk:4104
 msgid "Matches all Commit Info criteria"
 msgstr "Съвпадение по всички характеристики на подаването"
 
-#: gitk:4086
+#: gitk:4105
 msgid "Matches no Commit Info criteria"
 msgstr "Не съвпада по никоя от характеристиките на подаването"
 
-#: gitk:4087
+#: gitk:4106
 msgid "Changes to Files:"
 msgstr "Промени по файловете:"
 
-#: gitk:4088
+#: gitk:4107
 msgid "Fixed String"
 msgstr "Дословен низ"
 
-#: gitk:4089
+#: gitk:4108
 msgid "Regular Expression"
 msgstr "Регулярен израз"
 
-#: gitk:4090
+#: gitk:4109
 msgid "Search string:"
 msgstr "Низ за търсене:"
 
-#: gitk:4091
+#: gitk:4110
 msgid ""
 "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 "
 "15:27:38\"):"
@@ -691,204 +707,204 @@
 "Дата на подаване („2 weeks ago“ (преди 2 седмици), „2009-03-17 15:27:38“, "
 "„March 17, 2009 15:27:38“):"
 
-#: gitk:4092
+#: gitk:4111
 msgid "Since:"
 msgstr "От:"
 
-#: gitk:4093
+#: gitk:4112
 msgid "Until:"
 msgstr "До:"
 
-#: gitk:4094
+#: gitk:4113
 msgid "Limit and/or skip a number of revisions (positive integer):"
 msgstr ""
 "Ограничаване и/или прескачане на определен брой версии (неотрицателно цяло "
 "число):"
 
-#: gitk:4095
+#: gitk:4114
 msgid "Number to show:"
 msgstr "Брой показани:"
 
-#: gitk:4096
+#: gitk:4115
 msgid "Number to skip:"
 msgstr "Брой прескочени:"
 
-#: gitk:4097
+#: gitk:4116
 msgid "Miscellaneous options:"
 msgstr "Разни:"
 
-#: gitk:4098
+#: gitk:4117
 msgid "Strictly sort by date"
 msgstr "Подреждане по дата"
 
-#: gitk:4099
+#: gitk:4118
 msgid "Mark branch sides"
 msgstr "Отбелязване на страните по клона"
 
-#: gitk:4100
+#: gitk:4119
 msgid "Limit to first parent"
 msgstr "Само първия родител"
 
-#: gitk:4101
+#: gitk:4120
 msgid "Simple history"
 msgstr "Опростена история"
 
-#: gitk:4102
+#: gitk:4121
 msgid "Additional arguments to git log:"
 msgstr "Допълнителни аргументи към „git log“:"
 
-#: gitk:4103
+#: gitk:4122
 msgid "Enter files and directories to include, one per line:"
 msgstr "Въведете файловете и директориите за включване, по елемент на ред"
 
-#: gitk:4104
+#: gitk:4123
 msgid "Command to generate more commits to include:"
 msgstr ""
 "Команда за генерирането на допълнителни подавания, които да бъдат включени:"
 
-#: gitk:4228
+#: gitk:4247
 msgid "Gitk: edit view"
 msgstr "Gitk: редактиране на изглед"
 
-#: gitk:4236
+#: gitk:4255
 msgid "-- criteria for selecting revisions"
 msgstr "— критерии за избор на версии"
 
-#: gitk:4241
+#: gitk:4260
 msgid "View Name"
 msgstr "Име на изглед"
 
-#: gitk:4316
+#: gitk:4335
 msgid "Apply (F5)"
 msgstr "Прилагане (F5)"
 
-#: gitk:4354
+#: gitk:4373
 msgid "Error in commit selection arguments:"
 msgstr "Грешка в аргументите за избор на подавания:"
 
-#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374
+#: gitk:4428 gitk:4481 gitk:4943 gitk:4957 gitk:6227 gitk:12410 gitk:12411
 msgid "None"
 msgstr "Няма"
 
-#: gitk:5021 gitk:5026
+#: gitk:5040 gitk:5045
 msgid "Descendant"
 msgstr "Наследник"
 
-#: gitk:5022
+#: gitk:5041
 msgid "Not descendant"
 msgstr "Не е наследник"
 
-#: gitk:5029 gitk:5034
+#: gitk:5048 gitk:5053
 msgid "Ancestor"
 msgstr "Предшественик"
 
-#: gitk:5030
+#: gitk:5049
 msgid "Not ancestor"
 msgstr "Не е предшественик"
 
-#: gitk:5324
+#: gitk:5343
 msgid "Local changes checked in to index but not committed"
 msgstr "Локални промени добавени към индекса, но неподадени"
 
-#: gitk:5360
+#: gitk:5379
 msgid "Local uncommitted changes, not checked in to index"
 msgstr "Локални промени извън индекса"
 
-#: gitk:7134
+#: gitk:7153
 msgid "and many more"
 msgstr "и още много"
 
-#: gitk:7137
+#: gitk:7156
 msgid "many"
 msgstr "много"
 
-#: gitk:7328
+#: gitk:7347
 msgid "Tags:"
 msgstr "Етикети:"
 
-#: gitk:7345 gitk:7351 gitk:8825
+#: gitk:7364 gitk:7370 gitk:8844
 msgid "Parent"
 msgstr "Родител"
 
-#: gitk:7356
+#: gitk:7375
 msgid "Child"
 msgstr "Дете"
 
-#: gitk:7365
+#: gitk:7384
 msgid "Branch"
 msgstr "Клон"
 
-#: gitk:7368
+#: gitk:7387
 msgid "Follows"
 msgstr "Следва"
 
-#: gitk:7371
+#: gitk:7390
 msgid "Precedes"
 msgstr "Предшества"
 
-#: gitk:7966
+#: gitk:7985
 #, tcl-format
 msgid "Error getting diffs: %s"
 msgstr "Грешка при получаването на разликите: %s"
 
-#: gitk:8650
+#: gitk:8669
 msgid "Goto:"
 msgstr "Към ред:"
 
-#: gitk:8671
+#: gitk:8690
 #, tcl-format
 msgid "Short SHA1 id %s is ambiguous"
 msgstr "Съкратената сума по SHA1 %s не е еднозначна"
 
-#: gitk:8678
+#: gitk:8697
 #, tcl-format
 msgid "Revision %s is not known"
 msgstr "Непозната версия %s"
 
-#: gitk:8688
+#: gitk:8707
 #, tcl-format
 msgid "SHA1 id %s is not known"
 msgstr "Непозната сума по SHA1 %s"
 
-#: gitk:8690
+#: gitk:8709
 #, tcl-format
 msgid "Revision %s is not in the current view"
 msgstr "Версия %s не е в текущия изглед"
 
-#: gitk:8832 gitk:8847
+#: gitk:8851 gitk:8866
 msgid "Date"
 msgstr "Дата"
 
-#: gitk:8835
+#: gitk:8854
 msgid "Children"
 msgstr "Деца"
 
-#: gitk:8898
+#: gitk:8917
 #, tcl-format
 msgid "Reset %s branch to here"
 msgstr "Зануляване на клона „%s“ към текущото подаване"
 
-#: gitk:8900
+#: gitk:8919
 msgid "Detached head: can't reset"
 msgstr "Несвързан връх: невъзможно зануляване"
 
-#: gitk:9005 gitk:9011
+#: gitk:9024 gitk:9030
 msgid "Skipping merge commit "
 msgstr "Пропускане на подаването на сливането"
 
-#: gitk:9020 gitk:9025
+#: gitk:9039 gitk:9044
 msgid "Error getting patch ID for "
 msgstr "Грешка при получаването на идентификатора на "
 
-#: gitk:9021 gitk:9026
+#: gitk:9040 gitk:9045
 msgid " - stopping\n"
 msgstr " — спиране\n"
 
-#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065
+#: gitk:9050 gitk:9053 gitk:9061 gitk:9075 gitk:9084
 msgid "Commit "
 msgstr "Подаване"
 
-#: gitk:9035
+#: gitk:9054
 msgid ""
 " is the same patch as\n"
 "       "
@@ -896,7 +912,7 @@
 " е същата кръпка като\n"
 "       "
 
-#: gitk:9043
+#: gitk:9062
 msgid ""
 " differs from\n"
 "       "
@@ -904,7 +920,7 @@
 " се различава от\n"
 "       "
 
-#: gitk:9045
+#: gitk:9064
 msgid ""
 "Diff of commits:\n"
 "\n"
@@ -912,130 +928,130 @@
 "Разлика между подаванията:\n"
 "\n"
 
-#: gitk:9057 gitk:9066
+#: gitk:9076 gitk:9085
 #, tcl-format
 msgid " has %s children - stopping\n"
 msgstr " има %s деца — спиране\n"
 
-#: gitk:9085
+#: gitk:9104
 #, tcl-format
 msgid "Error writing commit to file: %s"
 msgstr "Грешка при запазването на подаването във файл: %s"
 
-#: gitk:9091
+#: gitk:9110
 #, tcl-format
 msgid "Error diffing commits: %s"
 msgstr "Грешка при изчисляването на разликите между подаванията: %s"
 
-#: gitk:9137
+#: gitk:9156
 msgid "Top"
 msgstr "Най-горе"
 
-#: gitk:9138
+#: gitk:9157
 msgid "From"
 msgstr "От"
 
-#: gitk:9143
+#: gitk:9162
 msgid "To"
 msgstr "До"
 
-#: gitk:9167
+#: gitk:9186
 msgid "Generate patch"
 msgstr "Генериране на кръпка"
 
-#: gitk:9169
+#: gitk:9188
 msgid "From:"
 msgstr "От:"
 
-#: gitk:9178
+#: gitk:9197
 msgid "To:"
 msgstr "До:"
 
-#: gitk:9187
+#: gitk:9206
 msgid "Reverse"
 msgstr "Обръщане"
 
-#: gitk:9189 gitk:9385
+#: gitk:9208 gitk:9418
 msgid "Output file:"
 msgstr "Запазване във файла:"
 
-#: gitk:9195
+#: gitk:9214
 msgid "Generate"
 msgstr "Генериране"
 
-#: gitk:9233
+#: gitk:9252
 msgid "Error creating patch:"
 msgstr "Грешка при създаването на кръпка:"
 
-#: gitk:9256 gitk:9373 gitk:9430
+#: gitk:9275 gitk:9406 gitk:9463
 msgid "ID:"
 msgstr "Идентификатор:"
 
-#: gitk:9265
+#: gitk:9284
 msgid "Tag name:"
 msgstr "Име на етикет:"
 
-#: gitk:9268
+#: gitk:9287
 msgid "Tag message is optional"
 msgstr "Съобщението за етикет е незадължително"
 
-#: gitk:9270
+#: gitk:9289
 msgid "Tag message:"
 msgstr "Съобщение за етикет:"
 
-#: gitk:9274 gitk:9439
+#: gitk:9293 gitk:9472
 msgid "Create"
 msgstr "Създаване"
 
-#: gitk:9292
+#: gitk:9311
 msgid "No tag name specified"
 msgstr "Липсва име на етикет"
 
-#: gitk:9296
+#: gitk:9315
 #, tcl-format
 msgid "Tag \"%s\" already exists"
 msgstr "Етикетът „%s“ вече съществува"
 
-#: gitk:9306
+#: gitk:9325
 msgid "Error creating tag:"
 msgstr "Грешка при създаването на етикет:"
 
-#: gitk:9382
+#: gitk:9415
 msgid "Command:"
 msgstr "Команда:"
 
-#: gitk:9390
+#: gitk:9423
 msgid "Write"
 msgstr "Запазване"
 
-#: gitk:9408
+#: gitk:9441
 msgid "Error writing commit:"
 msgstr "Грешка при запазването на подаването:"
 
-#: gitk:9435
+#: gitk:9468
 msgid "Name:"
 msgstr "Име:"
 
-#: gitk:9458
+#: gitk:9491
 msgid "Please specify a name for the new branch"
 msgstr "Укажете име за новия клон"
 
-#: gitk:9463
+#: gitk:9496
 #, tcl-format
 msgid "Branch '%s' already exists. Overwrite?"
 msgstr "Клонът „%s“ вече съществува. Да бъде ли презаписан?"
 
-#: gitk:9530
+#: gitk:9563
 #, tcl-format
 msgid "Commit %s is already included in branch %s -- really re-apply it?"
 msgstr ""
 "Подаването „%s“ вече е включено в клона „%s“ — да бъде ли приложено отново?"
 
-#: gitk:9535
+#: gitk:9568
 msgid "Cherry-picking"
 msgstr "Отбиране"
 
-#: gitk:9544
+#: gitk:9577
 #, tcl-format
 msgid ""
 "Cherry-pick failed because of local changes to file '%s'.\n"
@@ -1044,7 +1060,7 @@
 "Неуспешно отбиране, защото във файла „%s“ има локални промени.\n"
 "Подайте, занулете или ги скатайте и пробвайте отново."
 
-#: gitk:9550
+#: gitk:9583
 msgid ""
 "Cherry-pick failed because of merge conflict.\n"
 "Do you wish to run git citool to resolve it?"
@@ -1052,20 +1068,20 @@
 "Неуспешно отбиране поради конфликти при сливане.\n"
 "Искате ли да ги коригирате чрез „git citool“?"
 
-#: gitk:9566 gitk:9624
+#: gitk:9599 gitk:9657
 msgid "No changes committed"
 msgstr "Не са подадени промени"
 
-#: gitk:9593
+#: gitk:9626
 #, tcl-format
 msgid "Commit %s is not included in branch %s -- really revert it?"
 msgstr "Подаването „%s“ не е включено в клона „%s“. Да бъде ли отменено?"
 
-#: gitk:9598
+#: gitk:9631
 msgid "Reverting"
 msgstr "Отмяна"
 
-#: gitk:9606
+#: gitk:9639
 #, tcl-format
 msgid ""
 "Revert failed because of local changes to the following files:%s Please "
@@ -1074,7 +1090,7 @@
 "Неуспешна отмяна, защото във файла „%s“ има локални промени.\n"
 "Подайте, занулете или ги скатайте и пробвайте отново.<"
 
-#: gitk:9610
+#: gitk:9643
 msgid ""
 "Revert failed because of merge conflict.\n"
 " Do you wish to run git citool to resolve it?"
@@ -1082,28 +1098,28 @@
 "Неуспешно отмяна поради конфликти при сливане.\n"
 "Искате ли да ги коригирате чрез „git citool“?"
 
-#: gitk:9653
+#: gitk:9686
 msgid "Confirm reset"
 msgstr "Потвърждаване на зануляването"
 
-#: gitk:9655
+#: gitk:9688
 #, tcl-format
 msgid "Reset branch %s to %s?"
 msgstr "Да се занули ли клонът „%s“ към „%s“?"
 
-#: gitk:9657
+#: gitk:9690
 msgid "Reset type:"
 msgstr "Вид зануляване:"
 
-#: gitk:9660
+#: gitk:9693
 msgid "Soft: Leave working tree and index untouched"
 msgstr "Слабо: работното дърво и индекса остават същите"
 
-#: gitk:9663
+#: gitk:9696
 msgid "Mixed: Leave working tree untouched, reset index"
 msgstr "Смесено: работното дърво остава същото, индексът се занулява"
 
-#: gitk:9666
+#: gitk:9699
 msgid ""
 "Hard: Reset working tree and index\n"
 "(discard ALL local changes)"
@@ -1111,19 +1127,19 @@
 "Силно: зануляване и на работното дърво, и на индекса\n"
 "(*ВСИЧКИ* локални промени ще бъдат безвъзвратно загубени)"
 
-#: gitk:9683
+#: gitk:9716
 msgid "Resetting"
 msgstr "Зануляване"
 
-#: gitk:9743
+#: gitk:9776
 msgid "Checking out"
 msgstr "Изтегляне"
 
-#: gitk:9796
+#: gitk:9829
 msgid "Cannot delete the currently checked-out branch"
 msgstr "Текущо изтегленият клон не може да бъде изтрит"
 
-#: gitk:9802
+#: gitk:9835
 #, tcl-format
 msgid ""
 "The commits on branch %s aren't on any other branch.\n"
@@ -1132,16 +1148,16 @@
 "Подаванията на клона „%s“ не са на никой друг клон.\n"
 "Наистина ли да се изтрие клонът „%s“?"
 
-#: gitk:9833
+#: gitk:9866
 #, tcl-format
 msgid "Tags and heads: %s"
 msgstr "Етикети и върхове: %s"
 
-#: gitk:9850
+#: gitk:9883
 msgid "Filter"
 msgstr "Филтриране"
 
-#: gitk:10146
+#: gitk:10179
 msgid ""
 "Error reading commit topology information; branch and preceding/following "
 "tag information will be incomplete."
@@ -1149,201 +1165,201 @@
 "Грешка при прочитането на топологията на подаванията. Информацията за клона "
 "и предшестващите/следващите етикети ще е непълна."
 
-#: gitk:11123
+#: gitk:11156
 msgid "Tag"
 msgstr "Етикет"
 
-#: gitk:11127
+#: gitk:11160
 msgid "Id"
 msgstr "Идентификатор"
 
-#: gitk:11210
+#: gitk:11243
 msgid "Gitk font chooser"
 msgstr "Избор на шрифт за Gitk"
 
-#: gitk:11227
+#: gitk:11260
 msgid "B"
 msgstr "Ч"
 
-#: gitk:11230
+#: gitk:11263
 msgid "I"
 msgstr "К"
 
-#: gitk:11348
+#: gitk:11381
 msgid "Commit list display options"
 msgstr "Настройки на списъка с подавания"
 
-#: gitk:11351
+#: gitk:11384
 msgid "Maximum graph width (lines)"
 msgstr "Максимална широчина на графа (в редове)"
 
-#: gitk:11355
+#: gitk:11388
 #, no-tcl-format
 msgid "Maximum graph width (% of pane)"
 msgstr "Максимална широчина на графа (% от панела)"
 
-#: gitk:11358
+#: gitk:11391
 msgid "Show local changes"
 msgstr "Показване на локалните промени"
 
-#: gitk:11361
+#: gitk:11394
 msgid "Auto-select SHA1 (length)"
 msgstr "Автоматично избиране на SHA1 (дължина)"
 
-#: gitk:11365
+#: gitk:11398
 msgid "Hide remote refs"
 msgstr "Скриване на отдалечените указатели"
 
-#: gitk:11369
+#: gitk:11402
 msgid "Diff display options"
 msgstr "Настройки на показването на разликите"
 
-#: gitk:11371
+#: gitk:11404
 msgid "Tab spacing"
 msgstr "Широчина на табулатора"
 
-#: gitk:11374
+#: gitk:11407
 msgid "Display nearby tags/heads"
 msgstr "Извеждане на близките етикети и върхове"
 
-#: gitk:11377
+#: gitk:11410
 msgid "Maximum # tags/heads to show"
 msgstr "Максимален брой етикети/върхове за показване"
 
-#: gitk:11380
+#: gitk:11413
 msgid "Limit diffs to listed paths"
 msgstr "Разлика само в избраните пътища"
 
-#: gitk:11383
+#: gitk:11416
 msgid "Support per-file encodings"
 msgstr "Поддръжка на различни кодирания за всеки файл"
 
-#: gitk:11389 gitk:11536
+#: gitk:11422 gitk:11569
 msgid "External diff tool"
 msgstr "Външен инструмент за разлики"
 
-#: gitk:11390
+#: gitk:11423
 msgid "Choose..."
 msgstr "Избор…"
 
-#: gitk:11395
+#: gitk:11428
 msgid "General options"
 msgstr "Общи настройки"
 
-#: gitk:11398
+#: gitk:11431
 msgid "Use themed widgets"
 msgstr "Използване на тема за графичните обекти"
 
-#: gitk:11400
+#: gitk:11433
 msgid "(change requires restart)"
 msgstr "(промяната изисква рестартиране на Gitk)"
 
-#: gitk:11402
+#: gitk:11435
 msgid "(currently unavailable)"
 msgstr "(в момента недостъпно)"
 
-#: gitk:11413
+#: gitk:11446
 msgid "Colors: press to choose"
 msgstr "Цветове: избира се с натискане"
 
-#: gitk:11416
+#: gitk:11449
 msgid "Interface"
 msgstr "Интерфейс"
 
-#: gitk:11417
+#: gitk:11450
 msgid "interface"
 msgstr "интерфейс"
 
-#: gitk:11420
+#: gitk:11453
 msgid "Background"
 msgstr "Фон"
 
-#: gitk:11421 gitk:11451
+#: gitk:11454 gitk:11484
 msgid "background"
 msgstr "фон"
 
-#: gitk:11424
+#: gitk:11457
 msgid "Foreground"
 msgstr "Знаци"
 
-#: gitk:11425
+#: gitk:11458
 msgid "foreground"
 msgstr "знаци"
 
-#: gitk:11428
+#: gitk:11461
 msgid "Diff: old lines"
 msgstr "Разлика: стари редове"
 
-#: gitk:11429
+#: gitk:11462
 msgid "diff old lines"
 msgstr "разлика, стари редове"
 
-#: gitk:11433
+#: gitk:11466
 msgid "Diff: new lines"
 msgstr "Разлика: нови редове"
 
-#: gitk:11434
+#: gitk:11467
 msgid "diff new lines"
 msgstr "разлика, нови редове"
 
-#: gitk:11438
+#: gitk:11471
 msgid "Diff: hunk header"
 msgstr "Разлика: начало на парче"
 
-#: gitk:11440
+#: gitk:11473
 msgid "diff hunk header"
 msgstr "разлика, начало на парче"
 
-#: gitk:11444
+#: gitk:11477
 msgid "Marked line bg"
 msgstr "Фон на отбелязан ред"
 
-#: gitk:11446
+#: gitk:11479
 msgid "marked line background"
 msgstr "фон на отбелязан ред"
 
-#: gitk:11450
+#: gitk:11483
 msgid "Select bg"
 msgstr "Избор на фон"
 
-#: gitk:11459
+#: gitk:11492
 msgid "Fonts: press to choose"
 msgstr "Шрифтове: избира се с натискане"
 
-#: gitk:11461
+#: gitk:11494
 msgid "Main font"
 msgstr "Основен шрифт"
 
-#: gitk:11462
+#: gitk:11495
 msgid "Diff display font"
 msgstr "Шрифт за разликите"
 
-#: gitk:11463
+#: gitk:11496
 msgid "User interface font"
 msgstr "Шрифт на интерфейса"
 
-#: gitk:11485
+#: gitk:11518
 msgid "Gitk preferences"
 msgstr "Настройки на Gitk"
 
-#: gitk:11494
+#: gitk:11527
 msgid "General"
 msgstr "Общи"
 
-#: gitk:11495
+#: gitk:11528
 msgid "Colors"
 msgstr "Цветове"
 
-#: gitk:11496
+#: gitk:11529
 msgid "Fonts"
 msgstr "Шрифтове"
 
-#: gitk:11546
+#: gitk:11579
 #, tcl-format
 msgid "Gitk: choose color for %s"
 msgstr "Gitk: избор на цвят на „%s“"
 
-#: gitk:12059
+#: gitk:12092
 msgid ""
 "Sorry, gitk cannot run with this version of Tcl/Tk.\n"
 " Gitk requires at least Tcl/Tk 8.4."
@@ -1351,15 +1367,15 @@
 "Тази версия на Tcl/Tk не се поддържа от Gitk.\n"
 " Необходима ви е поне Tcl/Tk 8.4."
 
-#: gitk:12269
+#: gitk:12302
 msgid "Cannot find a git repository here."
 msgstr "Тук липсва хранилище на Git."
 
-#: gitk:12316
+#: gitk:12349
 #, tcl-format
 msgid "Ambiguous argument '%s': both revision and filename"
 msgstr "Нееднозначен аргумент „%s“: има и такава версия, и такъв файл"
 
-#: gitk:12328
+#: gitk:12361
 msgid "Bad arguments to gitk:"
 msgstr "Неправилни аргументи на gitk:"
diff --git a/gitk-git/po/de.po b/gitk-git/po/de.po
index d9ba405..bde749e 100644
--- a/gitk-git/po/de.po
+++ b/gitk-git/po/de.po
@@ -23,11 +23,11 @@
 
 #: gitk:212 gitk:2381
 msgid "Color words"
-msgstr ""
+msgstr "Wörter einfärben"
 
 #: gitk:217 gitk:2381 gitk:8220 gitk:8253
 msgid "Markup words"
-msgstr ""
+msgstr "Wörter kennzeichnen"
 
 #: gitk:324
 msgid "Error parsing revisions:"
@@ -187,7 +187,7 @@
 
 #: gitk:2304 gitk:4779
 msgid "changing lines matching:"
-msgstr ""
+msgstr "Geänderte Zeilen entsprechen:"
 
 #: gitk:2313 gitk:2315 gitk:4766
 msgid "Exact"
@@ -248,7 +248,7 @@
 
 #: gitk:2378 gitk:2380 gitk:7959 gitk:8206
 msgid "Line diff"
-msgstr ""
+msgstr "Zeilenunterschied"
 
 #: gitk:2445
 msgid "Patch"
@@ -307,19 +307,16 @@
 msgstr "Mit Lesezeichen vergleichen"
 
 #: gitk:2629 gitk:2640
-#, fuzzy
 msgid "Diff this -> marked commit"
-msgstr "Vergleich: diese -> gewählte"
+msgstr "Vergleich: diese -> gewählte Version"
 
 #: gitk:2630 gitk:2641
-#, fuzzy
 msgid "Diff marked commit -> this"
-msgstr "Vergleich: gewählte -> diese"
+msgstr "Vergleich: gewählte -> diese Version"
 
 #: gitk:2631
-#, fuzzy
 msgid "Revert this commit"
-msgstr "Lesezeichen setzen"
+msgstr "Version umkehren"
 
 #: gitk:2647
 msgid "Check out this branch"
@@ -331,7 +328,7 @@
 
 #: gitk:2649
 msgid "Copy branch name"
-msgstr ""
+msgstr "Zweigname kopieren"
 
 #: gitk:2656
 msgid "Highlight this too"
@@ -351,7 +348,7 @@
 
 #: gitk:2660
 msgid "Copy path"
-msgstr ""
+msgstr "Pfad kopieren"
 
 #: gitk:2667
 msgid "Show origin of this line"
@@ -362,7 +359,6 @@
 msgstr "Diese Zeile annotieren (»git gui blame«)"
 
 #: gitk:3014
-#, fuzzy
 msgid ""
 "\n"
 "Gitk - a commit viewer for git\n"
@@ -374,7 +370,7 @@
 "\n"
 "Gitk - eine Visualisierung der Git-Historie\n"
 "\n"
-"Copyright \\u00a9 2005-2010 Paul Mackerras\n"
+"Copyright \\u00a9 2005-2014 Paul Mackerras\n"
 "\n"
 "Benutzung und Weiterverbreitung gemäß den Bedingungen der GNU General Public "
 "License"
@@ -397,9 +393,9 @@
 msgstr "<%s-Q>\t\tBeenden"
 
 #: gitk:3049
-#, fuzzy, tcl-format
+#, tcl-format
 msgid "<%s-W>\t\tClose window"
-msgstr "<%s-F>\t\tSuchen"
+msgstr "<%s-F>\t\tFenster schließen"
 
 #: gitk:3050
 msgid "<Home>\t\tMove to first commit"
@@ -410,19 +406,16 @@
 msgstr "<Ende>\t\tZur ältesten Version springen"
 
 #: gitk:3052
-#, fuzzy
 msgid "<Up>, p, k\tMove up one commit"
-msgstr "<Hoch>, p, i\tNächste neuere Version"
+msgstr "<Hoch>, p, k\tNächste neuere Version"
 
 #: gitk:3053
-#, fuzzy
 msgid "<Down>, n, j\tMove down one commit"
-msgstr "<Runter>, n, k\tNächste ältere Version"
+msgstr "<Runter>, n, j\tNächste ältere Version"
 
 #: gitk:3054
-#, fuzzy
 msgid "<Left>, z, h\tGo back in history list"
-msgstr "<Links>, z, j\tEine Version zurückgehen"
+msgstr "<Links>, z, h\tEine Version zurückgehen"
 
 #: gitk:3055
 msgid "<Right>, x, l\tGo forward in history list"
@@ -431,7 +424,7 @@
 #: gitk:3056
 #, tcl-format
 msgid "<%s-n>\tGo to n-th parent of current commit in history list"
-msgstr ""
+msgstr "<%s-n>\tZu n-ter Elternversion in Versionshistorie springen"
 
 #: gitk:3057
 msgid "<PageUp>\tMove up one page in commit list"
@@ -514,9 +507,8 @@
 msgstr "<Eingabetaste>\tWeitersuchen"
 
 #: gitk:3075
-#, fuzzy
 msgid "g\t\tGo to commit"
-msgstr "<Ende>\t\tZur ältesten Version springen"
+msgstr "g\t\tZu Version springen"
 
 #: gitk:3076
 msgid "/\t\tFocus the search box"
@@ -673,9 +665,8 @@
 msgstr "Alle Versionsinformationen-Kriterien erfüllen"
 
 #: gitk:4086
-#, fuzzy
 msgid "Matches no Commit Info criteria"
-msgstr "Alle Versionsinformationen-Kriterien erfüllen"
+msgstr "keine Versionsinformationen-Kriterien erfüllen"
 
 #: gitk:4087
 msgid "Changes to Files:"
@@ -802,7 +793,7 @@
 
 #: gitk:7134
 msgid "and many more"
-msgstr ""
+msgstr "und weitere"
 
 #: gitk:7137
 msgid "many"
@@ -1066,34 +1057,31 @@
 msgstr "Keine Änderungen eingetragen"
 
 #: gitk:9593
-#, fuzzy, tcl-format
+#, tcl-format
 msgid "Commit %s is not included in branch %s -- really revert it?"
 msgstr ""
-"Version »%s« ist bereits im Zweig »%s« enthalten -- trotzdem erneut "
-"eintragen?"
+"Version »%s« ist nicht im Zweig »%s« enthalten -- trotzdem umkehren?"
 
 #: gitk:9598
-#, fuzzy
 msgid "Reverting"
-msgstr "Zurücksetzen"
+msgstr "Umkehren"
 
 #: gitk:9606
-#, fuzzy, tcl-format
+#, tcl-format
 msgid ""
 "Revert failed because of local changes to the following files:%s Please "
 "commit, reset or stash  your changes and try again."
 msgstr ""
-"Pflücken fehlgeschlagen, da noch lokale Änderungen in Datei »%s«\n"
+"Umkehren fehlgeschlagen, da noch lokale Änderungen in Datei »%s«\n"
 "vorliegen. Bitte diese Änderungen eintragen, zurücksetzen oder\n"
 "zwischenspeichern (»git stash«) und dann erneut versuchen."
 
 #: gitk:9610
-#, fuzzy
 msgid ""
 "Revert failed because of merge conflict.\n"
 " Do you wish to run git citool to resolve it?"
 msgstr ""
-"Pflücken fehlgeschlagen, da ein Zusammenführungs-Konflikt aufgetreten\n"
+"Umkehren fehlgeschlagen, da ein Zusammenführungs-Konflikt aufgetreten\n"
 "ist. Soll das Zusammenführungs-Werkzeug (»git citool«) aufgerufen\n"
 "werden, um diesen Konflikt aufzulösen?"
 
@@ -1206,9 +1194,8 @@
 msgstr "Lokale Änderungen anzeigen"
 
 #: gitk:11361
-#, fuzzy
 msgid "Auto-select SHA1 (length)"
-msgstr "SHA1-Hashwert automatisch auswählen"
+msgstr "SHA1-Hashwert (Länge) automatisch auswählen"
 
 #: gitk:11365
 msgid "Hide remote refs"
@@ -1223,13 +1210,12 @@
 msgstr "Tabulatorbreite"
 
 #: gitk:11374
-#, fuzzy
 msgid "Display nearby tags/heads"
-msgstr "Naheliegende Markierungen anzeigen"
+msgstr "Naheliegende Markierungen/Zweigspitzen anzeigen"
 
 #: gitk:11377
 msgid "Maximum # tags/heads to show"
-msgstr ""
+msgstr "Maximale Anzahl anzuzeigender Markierungen/Zweigspitzen"
 
 #: gitk:11380
 msgid "Limit diffs to listed paths"
@@ -1348,17 +1334,16 @@
 msgstr "Gitk-Einstellungen"
 
 #: gitk:11494
-#, fuzzy
 msgid "General"
-msgstr "Erzeugen"
+msgstr "Allgemein"
 
 #: gitk:11495
 msgid "Colors"
-msgstr ""
+msgstr "Farben"
 
 #: gitk:11496
 msgid "Fonts"
-msgstr ""
+msgstr "Schriftarten"
 
 #: gitk:11546
 #, tcl-format
@@ -1370,6 +1355,8 @@
 "Sorry, gitk cannot run with this version of Tcl/Tk.\n"
 " Gitk requires at least Tcl/Tk 8.4."
 msgstr ""
+"Entschuldigung, gitk kann nicht mit dieser Tcl/Tk Version ausgeführt werden.\n"
+" Gitk erfordert mindestens Tcl/Tk 8.4."
 
 #: gitk:12269
 msgid "Cannot find a git repository here."
diff --git a/gitk-git/po/fr.po b/gitk-git/po/fr.po
index 80f72fb..c44f994 100644
--- a/gitk-git/po/fr.po
+++ b/gitk-git/po/fr.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the gitk package.
 # Translators:
 # Emmanuel Trillaud <etrillaud@gmail.com>
-#
+# Jean-Noël Avila <jn.avila@free.fr>
 msgid ""
 msgstr ""
 "Project-Id-Version: gitk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2009-11-19 22:13+0100\n"
-"Last-Translator: Emmanuel Trillaud <etrillaud@gmail.com>\n"
+"POT-Creation-Date: 2016-01-22 22:04+0100\n"
+"PO-Revision-Date: 2016-01-22 23:28+0100\n"
+"Last-Translator: Jean-Noël Avila <jn.avila@free.fr>\n"
 "Language-Team: git@vger.kernel.org\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
@@ -23,13 +23,13 @@
 msgid "Couldn't get list of unmerged files:"
 msgstr "Impossible de récupérer la liste des fichiers non fusionnés :"
 
-#: gitk:212 gitk:2381
+#: gitk:212 gitk:2399
 msgid "Color words"
-msgstr ""
+msgstr "Colorier les mots différents"
 
-#: gitk:217 gitk:2381 gitk:8220 gitk:8253
+#: gitk:217 gitk:2399 gitk:8239 gitk:8272
 msgid "Markup words"
-msgstr ""
+msgstr "Marquer les mots différents"
 
 #: gitk:324
 msgid "Error parsing revisions:"
@@ -47,13 +47,10 @@
 
 # FIXME : améliorer la traduction de 'file limite'
 #: gitk:396
-#, fuzzy
 msgid ""
 "No files selected: --merge specified but no unmerged files are within file "
 "limit."
-msgstr ""
-"Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné "
-"n'est dans la limite des fichiers."
+msgstr "Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné n'est dans la limite des fichiers."
 
 #: gitk:418 gitk:566
 msgid "Error executing git log:"
@@ -63,15 +60,15 @@
 msgid "Reading"
 msgstr "Lecture en cours"
 
-#: gitk:496 gitk:4525
+#: gitk:496 gitk:4544
 msgid "Reading commits..."
 msgstr "Lecture des commits..."
 
-#: gitk:499 gitk:1637 gitk:4528
+#: gitk:499 gitk:1637 gitk:4547
 msgid "No commits selected"
 msgstr "Aucun commit sélectionné"
 
-#: gitk:1445 gitk:4045 gitk:12432
+#: gitk:1445 gitk:4064 gitk:12469
 msgid "Command line"
 msgstr "Ligne de commande"
 
@@ -83,290 +80,294 @@
 msgid "No commit information available"
 msgstr "Aucune information disponible sur le commit"
 
-#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521
+#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554
 msgid "OK"
 msgstr "OK"
 
-#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671
-#: gitk:11242 gitk:11522
+#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704
+#: gitk:11275 gitk:11555
 msgid "Cancel"
 msgstr "Annuler"
 
-#: gitk:2069
+#: gitk:2083
 msgid "&Update"
 msgstr "Mise à jour"
 
-#: gitk:2070
+#: gitk:2084
 msgid "&Reload"
-msgstr "Recharger"
+msgstr "&Recharger"
 
-#: gitk:2071
+#: gitk:2085
 msgid "Reread re&ferences"
-msgstr "Relire les références"
+msgstr "Relire les ré&férences"
 
-#: gitk:2072
+#: gitk:2086
 msgid "&List references"
-msgstr "Lister les références"
+msgstr "&Lister les références"
 
-#: gitk:2074
+#: gitk:2088
 msgid "Start git &gui"
-msgstr "Démarrer git gui"
+msgstr "Démarrer git &gui"
 
-#: gitk:2076
+#: gitk:2090
 msgid "&Quit"
-msgstr "Quitter"
+msgstr "&Quitter"
 
-#: gitk:2068
+#: gitk:2082
 msgid "&File"
-msgstr "Fichier"
+msgstr "&Fichier"
 
-#: gitk:2080
+#: gitk:2094
 msgid "&Preferences"
 msgstr "Préférences"
 
-#: gitk:2079
+#: gitk:2093
 msgid "&Edit"
-msgstr "Éditer"
+msgstr "&Éditer"
 
-#: gitk:2084
+#: gitk:2098
 msgid "&New view..."
-msgstr "Nouvelle vue..."
+msgstr "&Nouvelle vue..."
 
-#: gitk:2085
+#: gitk:2099
 msgid "&Edit view..."
-msgstr "Éditer la vue..."
+msgstr "&Éditer la vue..."
 
-#: gitk:2086
+#: gitk:2100
 msgid "&Delete view"
 msgstr "Supprimer la vue"
 
-#: gitk:2088 gitk:4043
+#: gitk:2102
 msgid "&All files"
 msgstr "Tous les fichiers"
 
-#: gitk:2083 gitk:4067
+#: gitk:2097
 msgid "&View"
-msgstr "Vue"
+msgstr "&Vue"
 
-#: gitk:2093 gitk:2103 gitk:3012
+#: gitk:2107 gitk:2117
 msgid "&About gitk"
 msgstr "À propos de gitk"
 
-#: gitk:2094 gitk:2108
+#: gitk:2108 gitk:2122
 msgid "&Key bindings"
 msgstr "Raccourcis clavier"
 
-#: gitk:2092 gitk:2107
+#: gitk:2106 gitk:2121
 msgid "&Help"
 msgstr "Aide"
 
-#: gitk:2185 gitk:8652
+#: gitk:2199 gitk:8671
 msgid "SHA1 ID:"
 msgstr "Id SHA1 :"
 
-#: gitk:2229
+#: gitk:2243
 msgid "Row"
 msgstr "Colonne"
 
-#: gitk:2267
+#: gitk:2281
 msgid "Find"
 msgstr "Recherche"
 
-#: gitk:2295
+#: gitk:2309
 msgid "commit"
 msgstr "commit"
 
-#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827
-#: gitk:6912
+#: gitk:2313 gitk:2315 gitk:4706 gitk:4729 gitk:4753 gitk:6774 gitk:6846
+#: gitk:6931
 msgid "containing:"
 msgstr "contient :"
 
-#: gitk:2302 gitk:3526 gitk:3531 gitk:4763
+#: gitk:2316 gitk:3545 gitk:3550 gitk:4782
 msgid "touching paths:"
 msgstr "chemins modifiés :"
 
-#: gitk:2303 gitk:4777
+#: gitk:2317 gitk:4796
 msgid "adding/removing string:"
 msgstr "ajoute/supprime la chaîne :"
 
-#: gitk:2304 gitk:4779
+#: gitk:2318 gitk:4798
 msgid "changing lines matching:"
-msgstr ""
+msgstr "modifie les lignes vérifiant :"
 
-#: gitk:2313 gitk:2315 gitk:4766
+#: gitk:2327 gitk:2329 gitk:4785
 msgid "Exact"
 msgstr "Exact"
 
-#: gitk:2315 gitk:4854 gitk:6723
+#: gitk:2329 gitk:4873 gitk:6742
 msgid "IgnCase"
 msgstr "Ignorer la casse"
 
-#: gitk:2315 gitk:4736 gitk:4852 gitk:6719
+#: gitk:2329 gitk:4755 gitk:4871 gitk:6738
 msgid "Regexp"
 msgstr "Expression régulière"
 
-#: gitk:2317 gitk:2318 gitk:4874 gitk:4904 gitk:4911 gitk:6848 gitk:6916
+#: gitk:2331 gitk:2332 gitk:4893 gitk:4923 gitk:4930 gitk:6867 gitk:6935
 msgid "All fields"
 msgstr "Tous les champs"
 
-#: gitk:2318 gitk:4871 gitk:4904 gitk:6786
+#: gitk:2332 gitk:4890 gitk:4923 gitk:6805
 msgid "Headline"
-msgstr "Surligner"
+msgstr "Titre"
 
-#: gitk:2319 gitk:4871 gitk:6786 gitk:6916 gitk:7389
+#: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408
 msgid "Comments"
 msgstr "Commentaires"
 
-#: gitk:2319 gitk:4871 gitk:4876 gitk:4911 gitk:6786 gitk:7324 gitk:8830
-#: gitk:8845
+#: gitk:2333 gitk:4890 gitk:4895 gitk:4930 gitk:6805 gitk:7343 gitk:8849
+#: gitk:8864
 msgid "Author"
 msgstr "Auteur"
 
-#: gitk:2319 gitk:4871 gitk:6786 gitk:7326
+#: gitk:2333 gitk:4890 gitk:6805 gitk:7345
 msgid "Committer"
-msgstr "Auteur du commit"
+msgstr "Validateur"
 
-#: gitk:2350
+#: gitk:2367
 msgid "Search"
 msgstr "Rechercher"
 
-#: gitk:2358
+#: gitk:2375
 msgid "Diff"
 msgstr "Diff"
 
-#: gitk:2360
+#: gitk:2377
 msgid "Old version"
 msgstr "Ancienne version"
 
-#: gitk:2362
+#: gitk:2379
 msgid "New version"
 msgstr "Nouvelle version"
 
-#: gitk:2364
+#: gitk:2382
 msgid "Lines of context"
 msgstr "Lignes de contexte"
 
-#: gitk:2374
+#: gitk:2392
 msgid "Ignore space change"
 msgstr "Ignorer les modifications d'espace"
 
-#: gitk:2378 gitk:2380 gitk:7959 gitk:8206
+#: gitk:2396 gitk:2398 gitk:7978 gitk:8225
 msgid "Line diff"
-msgstr ""
+msgstr "différence par ligne"
 
-#: gitk:2445
+#: gitk:2463
 msgid "Patch"
 msgstr "Patch"
 
-#: gitk:2447
+#: gitk:2465
 msgid "Tree"
 msgstr "Arbre"
 
-#: gitk:2617 gitk:2637
+#: gitk:2635 gitk:2656
 msgid "Diff this -> selected"
-msgstr "Diff entre ceci et la sélection"
+msgstr "Diff ceci -> la sélection"
 
-#: gitk:2618 gitk:2638
+#: gitk:2636 gitk:2657
 msgid "Diff selected -> this"
-msgstr "Diff entre sélection et ceci"
+msgstr "Diff sélection -> ceci"
 
-#: gitk:2619 gitk:2639
+#: gitk:2637 gitk:2658
 msgid "Make patch"
 msgstr "Créer patch"
 
-#: gitk:2620 gitk:9254
+#: gitk:2638 gitk:9273
 msgid "Create tag"
-msgstr "Créer tag"
+msgstr "Créer étiquette"
 
-#: gitk:2621 gitk:9371
+#: gitk:2639
+msgid "Copy commit summary"
+msgstr "Copié le résumé du commit"
+
+#: gitk:2640 gitk:9404
 msgid "Write commit to file"
 msgstr "Écrire le commit dans un fichier"
 
-#: gitk:2622 gitk:9428
+#: gitk:2641 gitk:9461
 msgid "Create new branch"
 msgstr "Créer une nouvelle branche"
 
-#: gitk:2623
+#: gitk:2642
 msgid "Cherry-pick this commit"
 msgstr "Cueillir (cherry-pick) ce commit"
 
-#: gitk:2624
+#: gitk:2643
 msgid "Reset HEAD branch to here"
 msgstr "Réinitialiser la branche HEAD vers cet état"
 
-#: gitk:2625
+#: gitk:2644
 msgid "Mark this commit"
 msgstr "Marquer ce commit"
 
-#: gitk:2626
+#: gitk:2645
 msgid "Return to mark"
 msgstr "Retourner à la marque"
 
-#: gitk:2627
+#: gitk:2646
 msgid "Find descendant of this and mark"
 msgstr "Chercher le descendant de ceci et le marquer"
 
-#: gitk:2628
+#: gitk:2647
 msgid "Compare with marked commit"
 msgstr "Comparer avec le commit marqué"
 
-#: gitk:2629 gitk:2640
-#, fuzzy
+#: gitk:2648 gitk:2659
 msgid "Diff this -> marked commit"
-msgstr "Diff entre ceci et la sélection"
+msgstr "Diff ceci -> sélection"
 
-#: gitk:2630 gitk:2641
-#, fuzzy
+#: gitk:2649 gitk:2660
 msgid "Diff marked commit -> this"
-msgstr "Diff entre sélection et ceci"
+msgstr "Diff entre sélection -> ceci"
 
-#: gitk:2631
-#, fuzzy
+#: gitk:2650
 msgid "Revert this commit"
-msgstr "Marquer ce commit"
+msgstr "Défaire ce commit"
 
-#: gitk:2647
+#: gitk:2666
 msgid "Check out this branch"
 msgstr "Récupérer cette branche"
 
-#: gitk:2648
+#: gitk:2667
 msgid "Remove this branch"
 msgstr "Supprimer cette branche"
 
-#: gitk:2649
+#: gitk:2668
 msgid "Copy branch name"
-msgstr ""
+msgstr "Copier la nom de la branche"
 
-#: gitk:2656
+#: gitk:2675
 msgid "Highlight this too"
 msgstr "Surligner également ceci"
 
-#: gitk:2657
+#: gitk:2676
 msgid "Highlight this only"
 msgstr "Surligner seulement ceci"
 
-#: gitk:2658
+#: gitk:2677
 msgid "External diff"
 msgstr "Diff externe"
 
-#: gitk:2659
+#: gitk:2678
 msgid "Blame parent commit"
 msgstr "Blâmer le commit parent"
 
-#: gitk:2660
+#: gitk:2679
 msgid "Copy path"
-msgstr ""
+msgstr "Copier le chemin"
 
-#: gitk:2667
+#: gitk:2686
 msgid "Show origin of this line"
 msgstr "Montrer l'origine de cette ligne"
 
-#: gitk:2668
+#: gitk:2687
 msgid "Run git gui blame on this line"
 msgstr "Exécuter git gui blame sur cette ligne"
 
-#: gitk:3014
-#, fuzzy
+#: gitk:3031
+msgid "About gitk"
+msgstr "À propos de gitk"
+
+#: gitk:3033
 msgid ""
 "\n"
 "Gitk - a commit viewer for git\n"
@@ -378,327 +379,329 @@
 "\n"
 "Gitk - visualisateur de commit pour git\n"
 "\n"
-"Copyright \\u00a9 2005-2010 Paul Mackerras\n"
+"Copyright \\u00a9 2005-2014 Paul Mackerras\n"
 "\n"
-"Utilisation et redistribution soumises aux termes de la GNU General Public "
-"License"
+"Utilisation et redistribution soumises aux termes de la GNU General Public License"
 
-#: gitk:3022 gitk:3089 gitk:9857
+#: gitk:3041 gitk:3108 gitk:9890
 msgid "Close"
 msgstr "Fermer"
 
-#: gitk:3043
+#: gitk:3062
 msgid "Gitk key bindings"
 msgstr "Raccourcis clavier de Gitk"
 
-#: gitk:3046
+#: gitk:3065
 msgid "Gitk key bindings:"
 msgstr "Raccourcis clavier de Gitk :"
 
-#: gitk:3048
+#: gitk:3067
 #, tcl-format
 msgid "<%s-Q>\t\tQuit"
 msgstr "<%s-Q>\t\tQuitter"
 
-#: gitk:3049
-#, fuzzy, tcl-format
+#: gitk:3068
+#, tcl-format
 msgid "<%s-W>\t\tClose window"
-msgstr "<%s-F>\t\tRechercher"
+msgstr "<%s-W>\t\tFermer la fenêtre"
 
-#: gitk:3050
+#: gitk:3069
 msgid "<Home>\t\tMove to first commit"
 msgstr "<Début>\t\tAller au premier commit"
 
-#: gitk:3051
+#: gitk:3070
 msgid "<End>\t\tMove to last commit"
 msgstr "<Fin>\t\tAller au dernier commit"
 
-#: gitk:3052
-#, fuzzy
+#: gitk:3071
 msgid "<Up>, p, k\tMove up one commit"
-msgstr "<Haut>, p, i\t Aller au commit suivant"
+msgstr "<Haut>, p, k\t Aller au commit précédent"
 
-#: gitk:3053
-#, fuzzy
+#: gitk:3072
 msgid "<Down>, n, j\tMove down one commit"
-msgstr "<Bas>, n, k\t Aller au commit précédent"
+msgstr "<Bas>, n, j\t Aller au commit suivant"
 
-#: gitk:3054
-#, fuzzy
+#: gitk:3073
 msgid "<Left>, z, h\tGo back in history list"
-msgstr "<Gauche>, z, j\tReculer dans l'historique"
+msgstr "<Gauche>, z, h\tReculer dans l'historique"
 
-#: gitk:3055
+#: gitk:3074
 msgid "<Right>, x, l\tGo forward in history list"
 msgstr "<Droite>, x, l\tAvancer dans l'historique"
 
-#: gitk:3056
+#: gitk:3075
 #, tcl-format
 msgid "<%s-n>\tGo to n-th parent of current commit in history list"
-msgstr ""
+msgstr "<%s-n>\tAller sur le n-ième parent du commit dans l'historique"
 
-#: gitk:3057
+#: gitk:3076
 msgid "<PageUp>\tMove up one page in commit list"
 msgstr "<PageUp>\tMonter d'une page dans la liste des commits"
 
-#: gitk:3058
+#: gitk:3077
 msgid "<PageDown>\tMove down one page in commit list"
 msgstr "<PageDown>\tDescendre d'une page dans la liste des commits"
 
-#: gitk:3059
+#: gitk:3078
 #, tcl-format
 msgid "<%s-Home>\tScroll to top of commit list"
 msgstr "<%s-Début>\tAller en haut de la liste des commits"
 
-#: gitk:3060
+#: gitk:3079
 #, tcl-format
 msgid "<%s-End>\tScroll to bottom of commit list"
 msgstr "<%s-End>\tAller en bas de la liste des commits"
 
-#: gitk:3061
+#: gitk:3080
 #, tcl-format
 msgid "<%s-Up>\tScroll commit list up one line"
 msgstr "<%s-Up>\tMonter d'une ligne dans la liste des commits"
 
-#: gitk:3062
+#: gitk:3081
 #, tcl-format
 msgid "<%s-Down>\tScroll commit list down one line"
 msgstr "<%s-Down>\tDescendre d'une ligne dans la liste des commits"
 
-#: gitk:3063
+#: gitk:3082
 #, tcl-format
 msgid "<%s-PageUp>\tScroll commit list up one page"
 msgstr "<%s-PageUp>\tMonter d'une page dans la liste des commits"
 
-#: gitk:3064
+#: gitk:3083
 #, tcl-format
 msgid "<%s-PageDown>\tScroll commit list down one page"
 msgstr "<%s-PageDown>\tDescendre d'une page dans la liste des commits"
 
-#: gitk:3065
+#: gitk:3084
 msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
 msgstr ""
 "<Shift-Up>\tRecherche en arrière (vers l'avant, commits les plus anciens)"
 
-#: gitk:3066
+#: gitk:3085
 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
 msgstr ""
 "<Shift-Down>\tRecherche en avant (vers l'arrière, commit les plus récents)"
 
-#: gitk:3067
+#: gitk:3086
 msgid "<Delete>, b\tScroll diff view up one page"
 msgstr "<Supprimer>, b\tMonter d'une page dans la vue des diff"
 
-#: gitk:3068
+#: gitk:3087
 msgid "<Backspace>\tScroll diff view up one page"
 msgstr "<Backspace>\tMonter d'une page dans la vue des diff"
 
-#: gitk:3069
+#: gitk:3088
 msgid "<Space>\t\tScroll diff view down one page"
 msgstr "<Espace>\t\tDescendre d'une page dans la vue des diff"
 
-#: gitk:3070
+#: gitk:3089
 msgid "u\t\tScroll diff view up 18 lines"
 msgstr "u\t\tMonter de 18 lignes dans la vue des diff"
 
-#: gitk:3071
+#: gitk:3090
 msgid "d\t\tScroll diff view down 18 lines"
 msgstr "d\t\tDescendre de 18 lignes dans la vue des diff"
 
-#: gitk:3072
+#: gitk:3091
 #, tcl-format
 msgid "<%s-F>\t\tFind"
 msgstr "<%s-F>\t\tRechercher"
 
-#: gitk:3073
+#: gitk:3092
 #, tcl-format
 msgid "<%s-G>\t\tMove to next find hit"
 msgstr "<%s-G>\t\tAller au résultat de recherche suivant"
 
-#: gitk:3074
+#: gitk:3093
 msgid "<Return>\tMove to next find hit"
 msgstr "<Return>\t\tAller au résultat de recherche suivant"
 
-#: gitk:3075
-#, fuzzy
+#: gitk:3094
 msgid "g\t\tGo to commit"
-msgstr "<Fin>\t\tAller au dernier commit"
+msgstr "g\t\tAller au commit"
 
-#: gitk:3076
+#: gitk:3095
 msgid "/\t\tFocus the search box"
 msgstr "/\t\tFocus sur la zone de recherche"
 
-#: gitk:3077
+#: gitk:3096
 msgid "?\t\tMove to previous find hit"
 msgstr "?\t\tAller au résultat de recherche précédent"
 
-#: gitk:3078
+#: gitk:3097
 msgid "f\t\tScroll diff view to next file"
 msgstr "f\t\tAller au prochain fichier dans la vue des diff"
 
-#: gitk:3079
+#: gitk:3098
 #, tcl-format
 msgid "<%s-S>\t\tSearch for next hit in diff view"
 msgstr "<%s-S>\t\tAller au résultat suivant dans la vue des diff"
 
-#: gitk:3080
+#: gitk:3099
 #, tcl-format
 msgid "<%s-R>\t\tSearch for previous hit in diff view"
 msgstr "<%s-R>\t\tAller au résultat précédent dans la vue des diff"
 
-#: gitk:3081
+#: gitk:3100
 #, tcl-format
 msgid "<%s-KP+>\tIncrease font size"
 msgstr "<%s-KP+>\tAugmenter la taille de la police"
 
-#: gitk:3082
+#: gitk:3101
 #, tcl-format
 msgid "<%s-plus>\tIncrease font size"
 msgstr "<%s-plus>\tAugmenter la taille de la police"
 
-#: gitk:3083
+#: gitk:3102
 #, tcl-format
 msgid "<%s-KP->\tDecrease font size"
 msgstr "<%s-KP->\tDiminuer la taille de la police"
 
-#: gitk:3084
+#: gitk:3103
 #, tcl-format
 msgid "<%s-minus>\tDecrease font size"
 msgstr "<%s-minus>\tDiminuer la taille de la police"
 
-#: gitk:3085
+#: gitk:3104
 msgid "<F5>\t\tUpdate"
 msgstr "<F5>\t\tMise à jour"
 
-#: gitk:3550 gitk:3559
+#: gitk:3569 gitk:3578
 #, tcl-format
 msgid "Error creating temporary directory %s:"
 msgstr "Erreur lors de la création du répertoire temporaire %s :"
 
-#: gitk:3572
+#: gitk:3591
 #, tcl-format
 msgid "Error getting \"%s\" from %s:"
 msgstr "Erreur en obtenant \"%s\" de %s:"
 
-#: gitk:3635
+#: gitk:3654
 msgid "command failed:"
 msgstr "échec de la commande :"
 
-#: gitk:3784
+#: gitk:3803
 msgid "No such commit"
 msgstr "Commit inexistant"
 
-#: gitk:3798
+#: gitk:3817
 msgid "git gui blame: command failed:"
 msgstr "git gui blame : échec de la commande :"
 
-#: gitk:3829
+#: gitk:3848
 #, tcl-format
 msgid "Couldn't read merge head: %s"
 msgstr "Impossible de lire le head de la fusion : %s"
 
-#: gitk:3837
+#: gitk:3856
 #, tcl-format
 msgid "Error reading index: %s"
 msgstr "Erreur à la lecture de l'index : %s"
 
-#: gitk:3862
+#: gitk:3881
 #, tcl-format
 msgid "Couldn't start git blame: %s"
 msgstr "Impossible de démarrer git blame : %s"
 
-#: gitk:3865 gitk:6754
+#: gitk:3884 gitk:6773
 msgid "Searching"
 msgstr "Recherche en cours"
 
-#: gitk:3897
+#: gitk:3916
 #, tcl-format
 msgid "Error running git blame: %s"
 msgstr "Erreur à l'exécution de git blame : %s"
 
-#: gitk:3925
+#: gitk:3944
 #, tcl-format
 msgid "That line comes from commit %s,  which is not in this view"
 msgstr "Cette ligne est issue du commit %s, qui n'est pas dans cette vue"
 
-#: gitk:3939
+#: gitk:3958
 msgid "External diff viewer failed:"
-msgstr "Échec de l'outil externe de visualisation des diff"
+msgstr "Échec de l'outil externe de visualisation des diff :"
 
-#: gitk:4070
+#: gitk:4062
+msgid "All files"
+msgstr "Tous les fichiers"
+
+#: gitk:4086
+msgid "View"
+msgstr "Vue"
+
+#: gitk:4089
 msgid "Gitk view definition"
 msgstr "Définition des vues de Gitk"
 
-#: gitk:4074
+#: gitk:4093
 msgid "Remember this view"
 msgstr "Se souvenir de cette vue"
 
-#: gitk:4075
+#: gitk:4094
 msgid "References (space separated list):"
 msgstr "Références (liste d'éléments séparés par des espaces) :"
 
-#: gitk:4076
+#: gitk:4095
 msgid "Branches & tags:"
-msgstr "Branches & tags :"
+msgstr "Branches & étiquettes :"
 
-#: gitk:4077
+#: gitk:4096
 msgid "All refs"
 msgstr "Toutes les références"
 
-#: gitk:4078
+#: gitk:4097
 msgid "All (local) branches"
 msgstr "Toutes les branches (locales)"
 
-#: gitk:4079
+#: gitk:4098
 msgid "All tags"
-msgstr "Tous les tags"
+msgstr "Toutes les étiquettes"
 
-#: gitk:4080
+#: gitk:4099
 msgid "All remote-tracking branches"
 msgstr "Toutes les branches de suivi à distance"
 
-#: gitk:4081
+#: gitk:4100
 msgid "Commit Info (regular expressions):"
 msgstr "Info sur les commits (expressions régulières) :"
 
-#: gitk:4082
+#: gitk:4101
 msgid "Author:"
 msgstr "Auteur :"
 
-#: gitk:4083
+#: gitk:4102
 msgid "Committer:"
-msgstr "Commiteur :"
+msgstr "Validateur :"
 
-#: gitk:4084
+#: gitk:4103
 msgid "Commit Message:"
 msgstr "Message de commit :"
 
-#: gitk:4085
+#: gitk:4104
 msgid "Matches all Commit Info criteria"
 msgstr "Correspond à tous les critères d'Info sur les commits"
 
-#: gitk:4086
-#, fuzzy
+#: gitk:4105
 msgid "Matches no Commit Info criteria"
-msgstr "Correspond à tous les critères d'Info sur les commits"
+msgstr "Ne correspond à aucun des critères d'Info sur les commits"
 
-#: gitk:4087
+#: gitk:4106
 msgid "Changes to Files:"
 msgstr "Changements des fichiers :"
 
-#: gitk:4088
+#: gitk:4107
 msgid "Fixed String"
 msgstr "Chaîne Figée"
 
-#: gitk:4089
+#: gitk:4108
 msgid "Regular Expression"
 msgstr "Expression Régulière"
 
-#: gitk:4090
+#: gitk:4109
 msgid "Search string:"
 msgstr "Recherche de la chaîne :"
 
-#: gitk:4091
+#: gitk:4110
 msgid ""
 "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 "
 "15:27:38\"):"
@@ -706,204 +709,201 @@
 "Dates des commits (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, "
 "2009 15:27:38\") :"
 
-#: gitk:4092
+#: gitk:4111
 msgid "Since:"
-msgstr "De :"
+msgstr "Depuis :"
 
-#: gitk:4093
+#: gitk:4112
 msgid "Until:"
 msgstr "Jusqu'au :"
 
-#: gitk:4094
+#: gitk:4113
 msgid "Limit and/or skip a number of revisions (positive integer):"
 msgstr "Limiter et/ou sauter un certain nombre (entier positif) de révisions :"
 
-#: gitk:4095
+#: gitk:4114
 msgid "Number to show:"
 msgstr "Nombre à afficher :"
 
-#: gitk:4096
+#: gitk:4115
 msgid "Number to skip:"
 msgstr "Nombre à sauter :"
 
-#: gitk:4097
+#: gitk:4116
 msgid "Miscellaneous options:"
 msgstr "Options diverses :"
 
-#: gitk:4098
+#: gitk:4117
 msgid "Strictly sort by date"
 msgstr "Trier par date"
 
-# FIXME : traduction de "branch sides"
-#: gitk:4099
-#, fuzzy
+#: gitk:4118
 msgid "Mark branch sides"
-msgstr "Marquer les extrémités des branches"
+msgstr "Indiquer les côtés des branches"
 
-#: gitk:4100
+#: gitk:4119
 msgid "Limit to first parent"
 msgstr "Limiter au premier ancêtre"
 
-#: gitk:4101
+#: gitk:4120
 msgid "Simple history"
 msgstr "Historique simple"
 
-#: gitk:4102
+#: gitk:4121
 msgid "Additional arguments to git log:"
 msgstr "Arguments supplémentaires de git log :"
 
-#: gitk:4103
+#: gitk:4122
 msgid "Enter files and directories to include, one per line:"
 msgstr "Saisir les fichiers et répertoires à inclure, un par ligne :"
 
-#: gitk:4104
+#: gitk:4123
 msgid "Command to generate more commits to include:"
 msgstr "Commande pour générer plus de commits à inclure :"
 
-#: gitk:4228
+#: gitk:4247
 msgid "Gitk: edit view"
 msgstr "Gitk : éditer la vue"
 
-#: gitk:4236
+#: gitk:4255
 msgid "-- criteria for selecting revisions"
 msgstr "-- critère pour la sélection des révisions"
 
-#: gitk:4241
-#, fuzzy
+#: gitk:4260
 msgid "View Name"
-msgstr "Nom de la vue :"
+msgstr "Nom de la vue"
 
-#: gitk:4316
+#: gitk:4335
 msgid "Apply (F5)"
 msgstr "Appliquer (F5)"
 
-#: gitk:4354
+#: gitk:4373
 msgid "Error in commit selection arguments:"
 msgstr "Erreur dans les arguments de sélection des commits :"
 
-#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374
+#: gitk:4428 gitk:4481 gitk:4943 gitk:4957 gitk:6227 gitk:12410 gitk:12411
 msgid "None"
 msgstr "Aucun"
 
-#: gitk:5021 gitk:5026
+#: gitk:5040 gitk:5045
 msgid "Descendant"
 msgstr "Descendant"
 
-#: gitk:5022
+#: gitk:5041
 msgid "Not descendant"
 msgstr "Pas un descendant"
 
-#: gitk:5029 gitk:5034
+#: gitk:5048 gitk:5053
 msgid "Ancestor"
 msgstr "Ancêtre"
 
-#: gitk:5030
+#: gitk:5049
 msgid "Not ancestor"
 msgstr "Pas un ancêtre"
 
-#: gitk:5324
+#: gitk:5343
 msgid "Local changes checked in to index but not committed"
-msgstr "Modifications locales enregistrées dans l'index mais non commitées"
+msgstr "Modifications locales enregistrées dans l'index mais non validées"
 
-#: gitk:5360
+#: gitk:5379
 msgid "Local uncommitted changes, not checked in to index"
-msgstr "Modifications locales non enregistrées dans l'index et non commitées"
+msgstr "Modifications locales non enregistrées dans l'index et non validées"
 
-#: gitk:7134
+#: gitk:7153
 msgid "and many more"
-msgstr ""
+msgstr "et beaucoup plus"
 
-#: gitk:7137
+#: gitk:7156
 msgid "many"
 msgstr "nombreux"
 
-#: gitk:7328
+#: gitk:7347
 msgid "Tags:"
-msgstr "Tags :"
+msgstr "Étiquettes :"
 
-#: gitk:7345 gitk:7351 gitk:8825
+#: gitk:7364 gitk:7370 gitk:8844
 msgid "Parent"
 msgstr "Parent"
 
-#: gitk:7356
+#: gitk:7375
 msgid "Child"
 msgstr "Enfant"
 
-#: gitk:7365
+#: gitk:7384
 msgid "Branch"
 msgstr "Branche"
 
-#: gitk:7368
+#: gitk:7387
 msgid "Follows"
 msgstr "Suit"
 
-#: gitk:7371
+#: gitk:7390
 msgid "Precedes"
 msgstr "Précède"
 
-#: gitk:7966
+#: gitk:7985
 #, tcl-format
 msgid "Error getting diffs: %s"
 msgstr "Erreur lors de la récupération des diff : %s"
 
-#: gitk:8650
+#: gitk:8669
 msgid "Goto:"
 msgstr "Aller à :"
 
-#: gitk:8671
+#: gitk:8690
 #, tcl-format
 msgid "Short SHA1 id %s is ambiguous"
-msgstr "Id SHA1 court %s est ambigu"
+msgstr "L'id SHA1 court %s est ambigu"
 
-#: gitk:8678
+#: gitk:8697
 #, tcl-format
 msgid "Revision %s is not known"
-msgstr "Id SHA1 %s est inconnu"
+msgstr "La révision %s est inconnu"
 
-#: gitk:8688
+#: gitk:8707
 #, tcl-format
 msgid "SHA1 id %s is not known"
-msgstr "Id SHA1 %s est inconnu"
+msgstr "L'id SHA1 %s est inconnu"
 
-#: gitk:8690
+#: gitk:8709
 #, tcl-format
 msgid "Revision %s is not in the current view"
 msgstr "La révision %s n'est pas dans la vue courante"
 
-#: gitk:8832 gitk:8847
+#: gitk:8851 gitk:8866
 msgid "Date"
 msgstr "Date"
 
-#: gitk:8835
+#: gitk:8854
 msgid "Children"
 msgstr "Enfants"
 
-#: gitk:8898
+#: gitk:8917
 #, tcl-format
 msgid "Reset %s branch to here"
 msgstr "Réinitialiser la branche %s vers cet état"
 
-#: gitk:8900
+#: gitk:8919
 msgid "Detached head: can't reset"
 msgstr "Head détaché : impossible de réinitialiser"
 
-#: gitk:9005 gitk:9011
+#: gitk:9024 gitk:9030
 msgid "Skipping merge commit "
 msgstr "Éviter le commit de la fusion "
 
-#: gitk:9020 gitk:9025
+#: gitk:9039 gitk:9044
 msgid "Error getting patch ID for "
 msgstr "Erreur à l'obtention de l'ID du patch pour "
 
-#: gitk:9021 gitk:9026
+#: gitk:9040 gitk:9045
 msgid " - stopping\n"
 msgstr " - arrêt en cours\n"
 
-#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065
+#: gitk:9050 gitk:9053 gitk:9061 gitk:9075 gitk:9084
 msgid "Commit "
 msgstr "Commit "
 
-#: gitk:9035
+#: gitk:9054
 msgid ""
 " is the same patch as\n"
 "       "
@@ -911,7 +911,7 @@
 "est le même patch que \n"
 "       "
 
-#: gitk:9043
+#: gitk:9062
 msgid ""
 " differs from\n"
 "       "
@@ -919,240 +919,226 @@
 " diffère de\n"
 "       "
 
-#: gitk:9045
+#: gitk:9064
 msgid ""
 "Diff of commits:\n"
 "\n"
-msgstr ""
+msgstr "Diff des commits :\n\n"
 
-#: gitk:9057 gitk:9066
+#: gitk:9076 gitk:9085
 #, tcl-format
 msgid " has %s children - stopping\n"
-msgstr "a %s enfants - arrêt en cours\n"
+msgstr " a %s enfants - arrêt en cours\n"
 
-#: gitk:9085
-#, fuzzy, tcl-format
+#: gitk:9104
+#, tcl-format
 msgid "Error writing commit to file: %s"
-msgstr "Erreur à l'ecriture du commit :"
+msgstr "Erreur à l'écriture du commit dans le fichier : %s"
 
-#: gitk:9091
-#, fuzzy, tcl-format
+#: gitk:9110
+#, tcl-format
 msgid "Error diffing commits: %s"
-msgstr "Erreur à l'ecriture du commit :"
+msgstr "Erreur à la différence des commits : %s"
 
-#: gitk:9137
+#: gitk:9156
 msgid "Top"
 msgstr "Haut"
 
-#: gitk:9138
+#: gitk:9157
 msgid "From"
 msgstr "De"
 
-#: gitk:9143
+#: gitk:9162
 msgid "To"
 msgstr "À"
 
-#: gitk:9167
+#: gitk:9186
 msgid "Generate patch"
 msgstr "Générer le patch"
 
-#: gitk:9169
+#: gitk:9188
 msgid "From:"
 msgstr "De :"
 
-#: gitk:9178
+#: gitk:9197
 msgid "To:"
 msgstr "À :"
 
-#: gitk:9187
+#: gitk:9206
 msgid "Reverse"
 msgstr "Inverser"
 
-#: gitk:9189 gitk:9385
+#: gitk:9208 gitk:9418
 msgid "Output file:"
 msgstr "Fichier de sortie :"
 
-#: gitk:9195
+#: gitk:9214
 msgid "Generate"
 msgstr "Générer"
 
-#: gitk:9233
+#: gitk:9252
 msgid "Error creating patch:"
 msgstr "Erreur à la création du patch :"
 
-#: gitk:9256 gitk:9373 gitk:9430
+#: gitk:9275 gitk:9406 gitk:9463
 msgid "ID:"
 msgstr "ID :"
 
-#: gitk:9265
+#: gitk:9284
 msgid "Tag name:"
-msgstr "Nom du Tag :"
+msgstr "Nom de l'étiquette :"
 
-#: gitk:9268
+#: gitk:9287
 msgid "Tag message is optional"
-msgstr ""
+msgstr "Le message d'étiquette est optionnel"
 
-#: gitk:9270
-#, fuzzy
+#: gitk:9289
 msgid "Tag message:"
-msgstr "Nom du Tag :"
+msgstr "Message d'étiquette :"
 
-#: gitk:9274 gitk:9439
+#: gitk:9293 gitk:9472
 msgid "Create"
 msgstr "Créer"
 
-#: gitk:9292
+#: gitk:9311
 msgid "No tag name specified"
-msgstr "Aucun nom de tag spécifié"
+msgstr "Aucun nom d'étiquette spécifié"
 
-#: gitk:9296
+#: gitk:9315
 #, tcl-format
 msgid "Tag \"%s\" already exists"
-msgstr "Le tag \"%s\" existe déjà"
+msgstr "L'étiquette \"%s\" existe déjà"
 
-#: gitk:9306
+#: gitk:9325
 msgid "Error creating tag:"
-msgstr "Erreur à la création du tag :"
+msgstr "Erreur à la création de l'étiquette :"
 
-#: gitk:9382
+#: gitk:9415
 msgid "Command:"
 msgstr "Commande :"
 
-#: gitk:9390
+#: gitk:9423
 msgid "Write"
 msgstr "Écrire"
 
-#: gitk:9408
+#: gitk:9441
 msgid "Error writing commit:"
 msgstr "Erreur à l'ecriture du commit :"
 
-#: gitk:9435
+#: gitk:9468
 msgid "Name:"
 msgstr "Nom :"
 
-#: gitk:9458
+#: gitk:9491
 msgid "Please specify a name for the new branch"
 msgstr "Veuillez spécifier un nom pour la nouvelle branche"
 
-#: gitk:9463
+#: gitk:9496
 #, tcl-format
 msgid "Branch '%s' already exists. Overwrite?"
 msgstr "La branche '%s' existe déjà. Écraser?"
 
-#: gitk:9530
+#: gitk:9563
 #, tcl-format
 msgid "Commit %s is already included in branch %s -- really re-apply it?"
 msgstr ""
 "Le Commit %s est déjà inclus dans la branche %s -- le ré-appliquer malgré "
 "tout?"
 
-#: gitk:9535
+#: gitk:9568
 msgid "Cherry-picking"
-msgstr "Cueillir (Cherry-picking)"
+msgstr "Picorer (Cherry-picking)"
 
-#: gitk:9544
+#: gitk:9577
 #, tcl-format
 msgid ""
 "Cherry-pick failed because of local changes to file '%s'.\n"
 "Please commit, reset or stash your changes and try again."
 msgstr ""
-"La cueillette (cherry-pick) a échouée à cause de modifications locales du "
-"fichier '%s'.\n"
-"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de "
-"nouveau."
+"Le picorage (cherry-pick) a échouée à cause de modifications locales du fichier '%s'.\n"
+"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de nouveau."
 
-#: gitk:9550
+#: gitk:9583
 msgid ""
 "Cherry-pick failed because of merge conflict.\n"
 "Do you wish to run git citool to resolve it?"
 msgstr ""
-"La cueillette (cherry-pick) a échouée à cause d'un conflit lors d'une "
-"fusion.\n"
+"Le picorage (cherry-pick) a échouée à cause d'un conflit lors d'une fusion.\n"
 "Souhaitez-vous exécuter git citool pour le résoudre ?"
 
-#: gitk:9566 gitk:9624
+#: gitk:9599 gitk:9657
 msgid "No changes committed"
-msgstr "Aucun changement commité"
+msgstr "Aucune modification validée"
 
-#: gitk:9593
-#, fuzzy, tcl-format
+#: gitk:9626
+#, tcl-format
 msgid "Commit %s is not included in branch %s -- really revert it?"
-msgstr ""
-"Le Commit %s est déjà inclus dans la branche %s -- le ré-appliquer malgré "
-"tout?"
+msgstr "Le Commit %s n'est pas inclus dans la branche %s -- le défaire malgré tout?"
 
-#: gitk:9598
-#, fuzzy
+#: gitk:9631
 msgid "Reverting"
-msgstr "Réinitialisation"
+msgstr "Commit défait"
 
-#: gitk:9606
-#, fuzzy, tcl-format
+#: gitk:9639
+#, tcl-format
 msgid ""
 "Revert failed because of local changes to the following files:%s Please "
 "commit, reset or stash  your changes and try again."
-msgstr ""
-"La cueillette (cherry-pick) a échouée à cause de modifications locales du "
-"fichier '%s'.\n"
-"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de "
-"nouveau."
+msgstr "Échec en tentant de défaire le commit à cause de modifications locales des fichiers : %s. Veuillez valider, réinitialiser ou remiser vos modifications et essayer de nouveau."
 
-#: gitk:9610
-#, fuzzy
+#: gitk:9643
 msgid ""
 "Revert failed because of merge conflict.\n"
 " Do you wish to run git citool to resolve it?"
 msgstr ""
-"La cueillette (cherry-pick) a échouée à cause d'un conflit lors d'une "
-"fusion.\n"
+"Échec en tentant de défaire à cause d'un conflit de fusion.\n"
 "Souhaitez-vous exécuter git citool pour le résoudre ?"
 
-#: gitk:9653
+#: gitk:9686
 msgid "Confirm reset"
 msgstr "Confirmer la réinitialisation"
 
-#: gitk:9655
+#: gitk:9688
 #, tcl-format
 msgid "Reset branch %s to %s?"
 msgstr "Réinitialiser la branche %s à %s?"
 
-#: gitk:9657
+#: gitk:9690
 msgid "Reset type:"
 msgstr "Type de réinitialisation :"
 
-#: gitk:9660
+#: gitk:9693
 msgid "Soft: Leave working tree and index untouched"
 msgstr "Douce : Laisse le répertoire de travail et l'index intacts"
 
-#: gitk:9663
+#: gitk:9696
 msgid "Mixed: Leave working tree untouched, reset index"
 msgstr ""
 "Hybride : Laisse le répertoire de travail dans son état courant, "
 "réinitialise l'index"
 
-#: gitk:9666
+#: gitk:9699
 msgid ""
 "Hard: Reset working tree and index\n"
 "(discard ALL local changes)"
 msgstr ""
 "Dure : Réinitialise le répertoire de travail et l'index\n"
-"(abandonne TOUS les changements locaux)"
+"(abandonne TOUTES les modifications locale)"
 
-#: gitk:9683
+#: gitk:9716
 msgid "Resetting"
 msgstr "Réinitialisation"
 
 # Fixme: Récupération est-il vraiment une mauvaise traduction?
-#: gitk:9743
-#, fuzzy
+#: gitk:9776
 msgid "Checking out"
-msgstr "Récupération"
+msgstr "Extraction"
 
-#: gitk:9796
+#: gitk:9829
 msgid "Cannot delete the currently checked-out branch"
-msgstr "Impossible de supprimer la branche en cours"
+msgstr "Impossible de supprimer la branche extraite"
 
-#: gitk:9802
+#: gitk:9835
 #, tcl-format
 msgid ""
 "The commits on branch %s aren't on any other branch.\n"
@@ -1161,16 +1147,16 @@
 "Les commits de la branche %s ne sont dans aucune autre branche.\n"
 "Voulez-vous vraiment supprimer cette branche %s ?"
 
-#: gitk:9833
+#: gitk:9866
 #, tcl-format
 msgid "Tags and heads: %s"
-msgstr "Tags et heads : %s"
+msgstr "Étiquettes et heads : %s"
 
-#: gitk:9850
+#: gitk:9883
 msgid "Filter"
 msgstr "Filtrer"
 
-#: gitk:10146
+#: gitk:10179
 msgid ""
 "Error reading commit topology information; branch and preceding/following "
 "tag information will be incomplete."
@@ -1179,207 +1165,202 @@
 "informations sur les branches et les tags précédents/suivants seront "
 "incomplètes."
 
-#: gitk:11123
+#: gitk:11156
 msgid "Tag"
-msgstr "Tag"
+msgstr "Étiquette"
 
-#: gitk:11127
+#: gitk:11160
 msgid "Id"
 msgstr "Id"
 
-#: gitk:11210
+#: gitk:11243
 msgid "Gitk font chooser"
 msgstr "Sélecteur de police de Gitk"
 
-#: gitk:11227
+#: gitk:11260
 msgid "B"
 msgstr "B"
 
-#: gitk:11230
+#: gitk:11263
 msgid "I"
 msgstr "I"
 
-#: gitk:11348
+#: gitk:11381
 msgid "Commit list display options"
 msgstr "Options d'affichage de la liste des commits"
 
-#: gitk:11351
+#: gitk:11384
 msgid "Maximum graph width (lines)"
 msgstr "Longueur maximum du graphe (lignes)"
 
 # FIXME : Traduction standard de "pane"?
-#: gitk:11355
-#, fuzzy, no-tcl-format
+#: gitk:11388
+#, no-tcl-format
 msgid "Maximum graph width (% of pane)"
-msgstr "Longueur maximum du graphe (% du panneau)"
+msgstr "Largeur maximum du graphe (% du panneau)"
 
-#: gitk:11358
+#: gitk:11391
 msgid "Show local changes"
-msgstr "Montrer les changements locaux"
+msgstr "Montrer les modifications locales"
 
-#: gitk:11361
-#, fuzzy
+#: gitk:11394
 msgid "Auto-select SHA1 (length)"
-msgstr "Sélection auto. du SHA1"
+msgstr "Sélection auto. du SHA1 (longueur)"
 
-#: gitk:11365
+#: gitk:11398
 msgid "Hide remote refs"
 msgstr "Cacher les refs distantes"
 
-#: gitk:11369
+#: gitk:11402
 msgid "Diff display options"
 msgstr "Options d'affichage des diff"
 
-#: gitk:11371
+#: gitk:11404
 msgid "Tab spacing"
 msgstr "Taille des tabulations"
 
-#: gitk:11374
-#, fuzzy
+#: gitk:11407
 msgid "Display nearby tags/heads"
 msgstr "Afficher les tags les plus proches"
 
-#: gitk:11377
+#: gitk:11410
 msgid "Maximum # tags/heads to show"
-msgstr ""
+msgstr "Nombre maximum d'étiquettes/heads à afficher"
 
-#: gitk:11380
+#: gitk:11413
 msgid "Limit diffs to listed paths"
 msgstr "Limiter les différences aux chemins listés"
 
-#: gitk:11383
+#: gitk:11416
 msgid "Support per-file encodings"
 msgstr "Support pour un encodage des caractères par fichier"
 
-#: gitk:11389 gitk:11536
+#: gitk:11422 gitk:11569
 msgid "External diff tool"
 msgstr "Outil diff externe"
 
-#: gitk:11390
+#: gitk:11423
 msgid "Choose..."
 msgstr "Choisir..."
 
-#: gitk:11395
-#, fuzzy
+#: gitk:11428
 msgid "General options"
-msgstr "Générer le patch"
+msgstr "Options générales"
 
-#: gitk:11398
+#: gitk:11431
 msgid "Use themed widgets"
-msgstr ""
+msgstr "Utiliser des widgets en thème"
 
-#: gitk:11400
+#: gitk:11433
 msgid "(change requires restart)"
-msgstr ""
+msgstr "(la modification nécessite un redémarrage)"
 
-#: gitk:11402
+#: gitk:11435
 msgid "(currently unavailable)"
-msgstr ""
+msgstr "(non disponible actuellement)"
 
-#: gitk:11413
+#: gitk:11446
 msgid "Colors: press to choose"
 msgstr "Couleurs : cliquer pour choisir"
 
-#: gitk:11416
+#: gitk:11449
 msgid "Interface"
-msgstr ""
+msgstr "Interface"
 
-#: gitk:11417
-#, fuzzy
+#: gitk:11450
 msgid "interface"
-msgstr "Police de l'interface utilisateur"
+msgstr "interface"
 
-#: gitk:11420
+#: gitk:11453
 msgid "Background"
 msgstr "Arrière-plan"
 
-#: gitk:11421 gitk:11451
+#: gitk:11454 gitk:11484
 msgid "background"
 msgstr "arrière-plan"
 
-#: gitk:11424
+#: gitk:11457
 msgid "Foreground"
 msgstr "Premier plan"
 
-#: gitk:11425
+#: gitk:11458
 msgid "foreground"
 msgstr "premier plan"
 
-#: gitk:11428
+#: gitk:11461
 msgid "Diff: old lines"
 msgstr "Diff : anciennes lignes"
 
-#: gitk:11429
+#: gitk:11462
 msgid "diff old lines"
 msgstr "diff anciennes lignes"
 
-#: gitk:11433
+#: gitk:11466
 msgid "Diff: new lines"
 msgstr "Diff : nouvelles lignes"
 
-#: gitk:11434
+#: gitk:11467
 msgid "diff new lines"
 msgstr "diff nouvelles lignes"
 
-#: gitk:11438
+#: gitk:11471
 msgid "Diff: hunk header"
 msgstr "Diff : entête du hunk"
 
-#: gitk:11440
+#: gitk:11473
 msgid "diff hunk header"
 msgstr "diff : entête du hunk"
 
-#: gitk:11444
+#: gitk:11477
 msgid "Marked line bg"
-msgstr "Arrière-plan de la ligne marquée"
+msgstr "Fond de la ligne marquée"
 
-#: gitk:11446
+#: gitk:11479
 msgid "marked line background"
-msgstr "Arrière-plan de la ligne marquée"
+msgstr "Fond de la ligne marquée"
 
-#: gitk:11450
+#: gitk:11483
 msgid "Select bg"
-msgstr "Sélectionner l'arrière-plan"
+msgstr "Sélectionner le fond"
 
-#: gitk:11459
+#: gitk:11492
 msgid "Fonts: press to choose"
 msgstr "Polices : cliquer pour choisir"
 
-#: gitk:11461
+#: gitk:11494
 msgid "Main font"
 msgstr "Police principale"
 
-#: gitk:11462
+#: gitk:11495
 msgid "Diff display font"
 msgstr "Police d'affichage des diff"
 
-#: gitk:11463
+#: gitk:11496
 msgid "User interface font"
 msgstr "Police de l'interface utilisateur"
 
-#: gitk:11485
+#: gitk:11518
 msgid "Gitk preferences"
 msgstr "Préférences de Gitk"
 
-#: gitk:11494
-#, fuzzy
+#: gitk:11527
 msgid "General"
-msgstr "Générer"
+msgstr "Général"
 
-#: gitk:11495
+#: gitk:11528
 msgid "Colors"
-msgstr ""
+msgstr "Couleurs"
 
-#: gitk:11496
+#: gitk:11529
 msgid "Fonts"
-msgstr ""
+msgstr "Polices"
 
-#: gitk:11546
+#: gitk:11579
 #, tcl-format
 msgid "Gitk: choose color for %s"
 msgstr "Gitk : choisir la couleur de %s"
 
-#: gitk:12059
+#: gitk:12092
 msgid ""
 "Sorry, gitk cannot run with this version of Tcl/Tk.\n"
 " Gitk requires at least Tcl/Tk 8.4."
@@ -1387,16 +1368,16 @@
 "Désolé, gitk ne peut être exécuté avec cette version de Tcl/Tk.\n"
 " Gitk requiert Tcl/Tk version 8.4 ou supérieur."
 
-#: gitk:12269
+#: gitk:12302
 msgid "Cannot find a git repository here."
 msgstr "Impossible de trouver un dépôt git ici."
 
-#: gitk:12316
+#: gitk:12349
 #, tcl-format
 msgid "Ambiguous argument '%s': both revision and filename"
 msgstr "Argument '%s' ambigu : à la fois une révision et un nom de fichier"
 
-#: gitk:12328
+#: gitk:12361
 msgid "Bad arguments to gitk:"
 msgstr "Arguments invalides pour gitk :"
 
diff --git a/graph.c b/graph.c
index c25a09a..1350bdd 100644
--- a/graph.c
+++ b/graph.c
@@ -234,12 +234,10 @@
 	 * We'll automatically grow columns later if we need more room.
 	 */
 	graph->column_capacity = 30;
-	graph->columns = xmalloc(sizeof(struct column) *
-				 graph->column_capacity);
-	graph->new_columns = xmalloc(sizeof(struct column) *
-				     graph->column_capacity);
-	graph->mapping = xmalloc(sizeof(int) * 2 * graph->column_capacity);
-	graph->new_mapping = xmalloc(sizeof(int) * 2 * graph->column_capacity);
+	ALLOC_ARRAY(graph->columns, graph->column_capacity);
+	ALLOC_ARRAY(graph->new_columns, graph->column_capacity);
+	ALLOC_ARRAY(graph->mapping, 2 * graph->column_capacity);
+	ALLOC_ARRAY(graph->new_mapping, 2 * graph->column_capacity);
 
 	/*
 	 * The diff output prefix callback, with this we can make
diff --git a/grep.c b/grep.c
index 7b2b96a..528b652 100644
--- a/grep.c
+++ b/grep.c
@@ -1741,7 +1741,7 @@
 	i = open(filename, O_RDONLY);
 	if (i < 0)
 		goto err_ret;
-	data = xmalloc(size + 1);
+	data = xmallocz(size);
 	if (st.st_size != read_in_full(i, data, size)) {
 		error(_("'%s': short read %s"), filename, strerror(errno));
 		close(i);
@@ -1749,7 +1749,6 @@
 		return -1;
 	}
 	close(i);
-	data[size] = 0;
 
 	gs->buf = data;
 	gs->size = size;
diff --git a/hashmap.c b/hashmap.c
index f693839..b10b642 100644
--- a/hashmap.c
+++ b/hashmap.c
@@ -256,10 +256,9 @@
 	e = hashmap_get(&map, &key, data);
 	if (!e) {
 		/* not found: create it */
-		e = xmallocz(sizeof(struct pool_entry) + len);
+		FLEX_ALLOC_MEM(e, data, data, len);
 		hashmap_entry_init(e, key.ent.hash);
 		e->len = len;
-		memcpy(e->data, data, len);
 		hashmap_add(&map, e);
 	}
 	return e->data;
diff --git a/help.c b/help.c
index d996b34..19328ea 100644
--- a/help.c
+++ b/help.c
@@ -11,11 +11,9 @@
 
 void add_cmdname(struct cmdnames *cmds, const char *name, int len)
 {
-	struct cmdname *ent = xmalloc(sizeof(*ent) + len + 1);
-
+	struct cmdname *ent;
+	FLEX_ALLOC_MEM(ent, name, name, len);
 	ent->len = len;
-	memcpy(ent->name, name, len);
-	ent->name[len] = 0;
 
 	ALLOC_GROW(cmds->names, cmds->cnt + 1, cmds->alloc);
 	cmds->names[cmds->cnt++] = ent;
diff --git a/http-push.c b/http-push.c
index d857b13..bd60668 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1277,9 +1277,7 @@
 }
 
 static struct object_list **process_blob(struct blob *blob,
-					 struct object_list **p,
-					 struct name_path *path,
-					 const char *name)
+					 struct object_list **p)
 {
 	struct object *obj = &blob->object;
 
@@ -1293,14 +1291,11 @@
 }
 
 static struct object_list **process_tree(struct tree *tree,
-					 struct object_list **p,
-					 struct name_path *path,
-					 const char *name)
+					 struct object_list **p)
 {
 	struct object *obj = &tree->object;
 	struct tree_desc desc;
 	struct name_entry entry;
-	struct name_path me;
 
 	obj->flags |= LOCAL;
 
@@ -1310,21 +1305,17 @@
 		die("bad tree object %s", oid_to_hex(&obj->oid));
 
 	obj->flags |= SEEN;
-	name = xstrdup(name);
 	p = add_one_object(obj, p);
-	me.up = path;
-	me.elem = name;
-	me.elem_len = strlen(name);
 
 	init_tree_desc(&desc, tree->buffer, tree->size);
 
 	while (tree_entry(&desc, &entry))
 		switch (object_type(entry.mode)) {
 		case OBJ_TREE:
-			p = process_tree(lookup_tree(entry.sha1), p, &me, name);
+			p = process_tree(lookup_tree(entry.sha1), p);
 			break;
 		case OBJ_BLOB:
-			p = process_blob(lookup_blob(entry.sha1), p, &me, name);
+			p = process_blob(lookup_blob(entry.sha1), p);
 			break;
 		default:
 			/* Subproject commit - not in this repository */
@@ -1343,7 +1334,7 @@
 	int count = 0;
 
 	while ((commit = get_revision(revs)) != NULL) {
-		p = process_tree(commit->tree, p, NULL, "");
+		p = process_tree(commit->tree, p);
 		commit->object.flags |= LOCAL;
 		if (!(commit->object.flags & UNINTERESTING))
 			count += add_send_request(&commit->object, lock);
@@ -1362,11 +1353,11 @@
 			continue;
 		}
 		if (obj->type == OBJ_TREE) {
-			p = process_tree((struct tree *)obj, p, NULL, name);
+			p = process_tree((struct tree *)obj, p);
 			continue;
 		}
 		if (obj->type == OBJ_BLOB) {
-			p = process_blob((struct blob *)obj, p, NULL, name);
+			p = process_blob((struct blob *)obj, p);
 			continue;
 		}
 		die("unknown pending object %s (%s)", oid_to_hex(&obj->oid), name);
diff --git a/http.c b/http.c
index dfc53c1..69da445 100644
--- a/http.c
+++ b/http.c
@@ -11,6 +11,11 @@
 #include "gettext.h"
 #include "transport.h"
 
+#if LIBCURL_VERSION_NUM >= 0x070a08
+long int git_curl_ipresolve = CURL_IPRESOLVE_WHATEVER;
+#else
+long int git_curl_ipresolve;
+#endif
 int active_requests;
 int http_is_verbose;
 size_t http_post_buffer = 16 * LARGE_PACKET_MAX;
@@ -57,11 +62,15 @@
 #if LIBCURL_VERSION_NUM >= 0x070908
 static const char *ssl_capath;
 #endif
+#if LIBCURL_VERSION_NUM >= 0x072c00
+static const char *ssl_pinnedkey;
+#endif
 static const char *ssl_cainfo;
 static long curl_low_speed_limit = -1;
 static long curl_low_speed_time = -1;
 static int curl_ftp_no_epsv;
 static const char *curl_http_proxy;
+static const char *curl_no_proxy;
 static const char *http_proxy_authmethod;
 static struct {
 	const char *name;
@@ -87,6 +96,7 @@
 struct credential http_auth = CREDENTIAL_INIT;
 static int http_proactive_auth;
 static const char *user_agent;
+static int curl_empty_auth;
 
 #if LIBCURL_VERSION_NUM >= 0x071700
 /* Use CURLOPT_KEYPASSWD as is */
@@ -299,14 +309,31 @@
 	if (!strcmp("http.useragent", var))
 		return git_config_string(&user_agent, var, value);
 
+	if (!strcmp("http.emptyauth", var)) {
+		curl_empty_auth = git_config_bool(var, value);
+		return 0;
+	}
+
+	if (!strcmp("http.pinnedpubkey", var)) {
+#if LIBCURL_VERSION_NUM >= 0x072c00
+		return git_config_pathname(&ssl_pinnedkey, var, value);
+#else
+		warning(_("Public key pinning not supported with cURL < 7.44.0"));
+		return 0;
+#endif
+	}
+
 	/* Fall back on the default ones */
 	return git_default_config(var, value, cb);
 }
 
 static void init_curl_http_auth(CURL *result)
 {
-	if (!http_auth.username)
+	if (!http_auth.username) {
+		if (curl_empty_auth)
+			curl_easy_setopt(result, CURLOPT_USERPWD, ":");
 		return;
+	}
 
 	credential_fill(&http_auth);
 
@@ -499,6 +526,10 @@
 	if (ssl_capath != NULL)
 		curl_easy_setopt(result, CURLOPT_CAPATH, ssl_capath);
 #endif
+#if LIBCURL_VERSION_NUM >= 0x072c00
+	if (ssl_pinnedkey != NULL)
+		curl_easy_setopt(result, CURLOPT_PINNEDPUBLICKEY, ssl_pinnedkey);
+#endif
 	if (ssl_cainfo != NULL)
 		curl_easy_setopt(result, CURLOPT_CAINFO, ssl_cainfo);
 
@@ -594,6 +625,11 @@
 		}
 
 		curl_easy_setopt(result, CURLOPT_PROXY, proxy_auth.host);
+#if LIBCURL_VERSION_NUM >= 0x071304
+		var_override(&curl_no_proxy, getenv("NO_PROXY"));
+		var_override(&curl_no_proxy, getenv("no_proxy"));
+		curl_easy_setopt(result, CURLOPT_NOPROXY, curl_no_proxy);
+#endif
 	}
 	init_curl_proxy_auth(result);
 
@@ -824,10 +860,14 @@
 	curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
 	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1);
 	curl_easy_setopt(slot->curl, CURLOPT_RANGE, NULL);
+
+#if LIBCURL_VERSION_NUM >= 0x070a08
+	curl_easy_setopt(slot->curl, CURLOPT_IPRESOLVE, git_curl_ipresolve);
+#endif
 #ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
 	curl_easy_setopt(slot->curl, CURLOPT_HTTPAUTH, http_auth_methods);
 #endif
-	if (http_auth.password)
+	if (http_auth.password || curl_empty_auth)
 		init_curl_http_auth(slot->curl);
 
 	return slot;
diff --git a/http.h b/http.h
index f83cfa6..4ef4bbd 100644
--- a/http.h
+++ b/http.h
@@ -107,6 +107,7 @@
 		      int proactive_auth);
 extern void http_cleanup(void);
 
+extern long int git_curl_ipresolve;
 extern int active_requests;
 extern int http_is_verbose;
 extern size_t http_post_buffer;
diff --git a/imap-send.c b/imap-send.c
index 4d3b773..2c52027 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -892,12 +892,11 @@
 	response = xstrfmt("%s %s", user, hex);
 	resp_len = strlen(response) + 1;
 
-	response_64 = xmalloc(ENCODED_SIZE(resp_len) + 1);
+	response_64 = xmallocz(ENCODED_SIZE(resp_len));
 	encoded_len = EVP_EncodeBlock((unsigned char *)response_64,
 				      (unsigned char *)response, resp_len);
 	if (encoded_len < 0)
 		die("EVP_EncodeBlock error");
-	response_64[encoded_len] = '\0';
 	return (char *)response_64;
 }
 
@@ -1188,7 +1187,7 @@
 		j++;
 	}
 
-	new = xmalloc(j + 1);
+	new = xmallocz(j);
 
 	/*
 	 * Second pass: write the new string.  Note that this loop is
diff --git a/khash.h b/khash.h
index 376475a..c0da40d 100644
--- a/khash.h
+++ b/khash.h
@@ -117,7 +117,7 @@
 			if (new_n_buckets < 4) new_n_buckets = 4;					\
 			if (h->size >= (khint_t)(new_n_buckets * __ac_HASH_UPPER + 0.5)) j = 0;	/* requested size is too small */ \
 			else { /* hash table size to be changed (shrink or expand); rehash */ \
-				new_flags = (khint32_t*)xmalloc(__ac_fsize(new_n_buckets) * sizeof(khint32_t));	\
+				ALLOC_ARRAY(new_flags, __ac_fsize(new_n_buckets)); \
 				if (!new_flags) return -1;								\
 				memset(new_flags, 0xaa, __ac_fsize(new_n_buckets) * sizeof(khint32_t)); \
 				if (h->n_buckets < new_n_buckets) {	/* expand */		\
diff --git a/levenshtein.c b/levenshtein.c
index fc28159..d263269 100644
--- a/levenshtein.c
+++ b/levenshtein.c
@@ -42,11 +42,13 @@
 		int w, int s, int a, int d)
 {
 	int len1 = strlen(string1), len2 = strlen(string2);
-	int *row0 = xmalloc(sizeof(int) * (len2 + 1));
-	int *row1 = xmalloc(sizeof(int) * (len2 + 1));
-	int *row2 = xmalloc(sizeof(int) * (len2 + 1));
+	int *row0, *row1, *row2;
 	int i, j;
 
+	ALLOC_ARRAY(row0, len2 + 1);
+	ALLOC_ARRAY(row1, len2 + 1);
+	ALLOC_ARRAY(row2, len2 + 1);
+
 	for (j = 0; j <= len2; j++)
 		row1[j] = j * a;
 	for (i = 0; i < len1; i++) {
diff --git a/line-log.c b/line-log.c
index af6e2f7..bbe31ed 100644
--- a/line-log.c
+++ b/line-log.c
@@ -14,6 +14,7 @@
 #include "graph.h"
 #include "userdiff.h"
 #include "line-log.h"
+#include "argv-array.h"
 
 static void range_set_grow(struct range_set *rs, size_t extra)
 {
@@ -521,7 +522,7 @@
 	if (diff_populate_filespec(spec, 0))
 		die("Cannot read blob %s", sha1_to_hex(spec->sha1));
 
-	ends = xmalloc(size * sizeof(*ends));
+	ALLOC_ARRAY(ends, size);
 	ends[cur++] = 0;
 	data = spec->data;
 	while (num < spec->size) {
@@ -746,22 +747,17 @@
 	add_line_range(rev, commit, range);
 
 	if (!rev->diffopt.detect_rename) {
-		int i, count = 0;
-		struct line_log_data *r = range;
+		struct line_log_data *r;
+		struct argv_array array = ARGV_ARRAY_INIT;
 		const char **paths;
-		while (r) {
-			count++;
-			r = r->next;
-		}
-		paths = xmalloc((count+1)*sizeof(char *));
-		r = range;
-		for (i = 0; i < count; i++) {
-			paths[i] = xstrdup(r->path);
-			r = r->next;
-		}
-		paths[count] = NULL;
+
+		for (r = range; r; r = r->next)
+			argv_array_push(&array, r->path);
+		paths = argv_array_detach(&array);
+
 		parse_pathspec(&rev->diffopt.pathspec, 0,
 			       PATHSPEC_PREFER_FULL, "", paths);
+		/* strings are now owned by pathspec */
 		free(paths);
 	}
 }
@@ -1146,9 +1142,9 @@
 	if (nparents > 1 && rev->first_parent_only)
 		nparents = 1;
 
-	diffqueues = xmalloc(nparents * sizeof(*diffqueues));
-	cand = xmalloc(nparents * sizeof(*cand));
-	parents = xmalloc(nparents * sizeof(*parents));
+	ALLOC_ARRAY(diffqueues, nparents);
+	ALLOC_ARRAY(cand, nparents);
+	ALLOC_ARRAY(parents, nparents);
 
 	p = commit->parents;
 	for (i = 0; i < nparents; i++) {
diff --git a/list-objects.c b/list-objects.c
index 11732d9..917cc5d 100644
--- a/list-objects.c
+++ b/list-objects.c
@@ -11,11 +11,12 @@
 static void process_blob(struct rev_info *revs,
 			 struct blob *blob,
 			 show_object_fn show,
-			 struct name_path *path,
+			 struct strbuf *path,
 			 const char *name,
 			 void *cb_data)
 {
 	struct object *obj = &blob->object;
+	size_t pathlen;
 
 	if (!revs->blob_objects)
 		return;
@@ -24,7 +25,11 @@
 	if (obj->flags & (UNINTERESTING | SEEN))
 		return;
 	obj->flags |= SEEN;
-	show(obj, path, name, cb_data);
+
+	pathlen = path->len;
+	strbuf_addstr(path, name);
+	show(obj, path->buf, cb_data);
+	strbuf_setlen(path, pathlen);
 }
 
 /*
@@ -52,7 +57,7 @@
 static void process_gitlink(struct rev_info *revs,
 			    const unsigned char *sha1,
 			    show_object_fn show,
-			    struct name_path *path,
+			    struct strbuf *path,
 			    const char *name,
 			    void *cb_data)
 {
@@ -62,7 +67,6 @@
 static void process_tree(struct rev_info *revs,
 			 struct tree *tree,
 			 show_object_fn show,
-			 struct name_path *path,
 			 struct strbuf *base,
 			 const char *name,
 			 void *cb_data)
@@ -70,7 +74,6 @@
 	struct object *obj = &tree->object;
 	struct tree_desc desc;
 	struct name_entry entry;
-	struct name_path me;
 	enum interesting match = revs->diffopt.pathspec.nr == 0 ?
 		all_entries_interesting: entry_not_interesting;
 	int baselen = base->len;
@@ -86,17 +89,12 @@
 			return;
 		die("bad tree object %s", oid_to_hex(&obj->oid));
 	}
-	obj->flags |= SEEN;
-	show(obj, path, name, cb_data);
-	me.up = path;
-	me.elem = name;
-	me.elem_len = strlen(name);
 
-	if (!match) {
-		strbuf_addstr(base, name);
-		if (base->len)
-			strbuf_addch(base, '/');
-	}
+	obj->flags |= SEEN;
+	strbuf_addstr(base, name);
+	show(obj, base->buf, cb_data);
+	if (base->len)
+		strbuf_addch(base, '/');
 
 	init_tree_desc(&desc, tree->buffer, tree->size);
 
@@ -113,16 +111,16 @@
 		if (S_ISDIR(entry.mode))
 			process_tree(revs,
 				     lookup_tree(entry.sha1),
-				     show, &me, base, entry.path,
+				     show, base, entry.path,
 				     cb_data);
 		else if (S_ISGITLINK(entry.mode))
 			process_gitlink(revs, entry.sha1,
-					show, &me, entry.path,
+					show, base, entry.path,
 					cb_data);
 		else
 			process_blob(revs,
 				     lookup_blob(entry.sha1),
-				     show, &me, entry.path,
+				     show, base, entry.path,
 				     cb_data);
 	}
 	strbuf_setlen(base, baselen);
@@ -213,19 +211,19 @@
 			continue;
 		if (obj->type == OBJ_TAG) {
 			obj->flags |= SEEN;
-			show_object(obj, NULL, name, data);
+			show_object(obj, name, data);
 			continue;
 		}
 		if (!path)
 			path = "";
 		if (obj->type == OBJ_TREE) {
 			process_tree(revs, (struct tree *)obj, show_object,
-				     NULL, &base, path, data);
+				     &base, path, data);
 			continue;
 		}
 		if (obj->type == OBJ_BLOB) {
 			process_blob(revs, (struct blob *)obj, show_object,
-				     NULL, path, data);
+				     &base, path, data);
 			continue;
 		}
 		die("unknown pending object %s (%s)",
diff --git a/list-objects.h b/list-objects.h
index 136a1da..0cebf85 100644
--- a/list-objects.h
+++ b/list-objects.h
@@ -2,7 +2,7 @@
 #define LIST_OBJECTS_H
 
 typedef void (*show_commit_fn)(struct commit *, void *);
-typedef void (*show_object_fn)(struct object *, const struct name_path *, const char *, void *);
+typedef void (*show_object_fn)(struct object *, const char *, void *);
 void traverse_commit_list(struct rev_info *, show_commit_fn, show_object_fn, void *);
 
 typedef void (*show_edge_fn)(struct commit *);
diff --git a/ll-merge.c b/ll-merge.c
index 0338630..ff4a43a 100644
--- a/ll-merge.c
+++ b/ll-merge.c
@@ -205,7 +205,7 @@
 	if (fstat(fd, &st))
 		goto close_bad;
 	result->size = st.st_size;
-	result->ptr = xmalloc(result->size + 1);
+	result->ptr = xmallocz(result->size);
 	if (read_in_full(fd, result->ptr, result->size) != result->size) {
 		free(result->ptr);
 		result->ptr = NULL;
diff --git a/log-tree.c b/log-tree.c
index f70a30e..60f9839 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -77,9 +77,8 @@
 
 void add_name_decoration(enum decoration_type type, const char *name, struct object *obj)
 {
-	int nlen = strlen(name);
-	struct name_decoration *res = xmalloc(sizeof(*res) + nlen + 1);
-	memcpy(res->name, name, nlen + 1);
+	struct name_decoration *res;
+	FLEX_ALLOC_STR(res, name, name);
 	res->type = type;
 	res->next = add_decoration(&name_decoration, obj, res);
 }
diff --git a/merge-blobs.c b/merge-blobs.c
index ddca601..9b6eac2 100644
--- a/merge-blobs.c
+++ b/merge-blobs.c
@@ -48,40 +48,6 @@
 	return res.ptr;
 }
 
-static int common_outf(void *priv_, mmbuffer_t *mb, int nbuf)
-{
-	int i;
-	mmfile_t *dst = priv_;
-
-	for (i = 0; i < nbuf; i++) {
-		memcpy(dst->ptr + dst->size, mb[i].ptr, mb[i].size);
-		dst->size += mb[i].size;
-	}
-	return 0;
-}
-
-static int generate_common_file(mmfile_t *res, mmfile_t *f1, mmfile_t *f2)
-{
-	unsigned long size = f1->size < f2->size ? f1->size : f2->size;
-	void *ptr = xmalloc(size);
-	xpparam_t xpp;
-	xdemitconf_t xecfg;
-	xdemitcb_t ecb;
-
-	memset(&xpp, 0, sizeof(xpp));
-	xpp.flags = 0;
-	memset(&xecfg, 0, sizeof(xecfg));
-	xecfg.ctxlen = 3;
-	xecfg.flags = XDL_EMIT_COMMON;
-	ecb.outf = common_outf;
-
-	res->ptr = ptr;
-	res->size = 0;
-
-	ecb.priv = res;
-	return xdi_diff(f1, f2, &xpp, &xecfg, &ecb);
-}
-
 void *merge_blobs(const char *path, struct blob *base, struct blob *our, struct blob *their, unsigned long *size)
 {
 	void *res = NULL;
@@ -112,8 +78,8 @@
 		if (fill_mmfile_blob(&common, base) < 0)
 			goto out_free_f2_f1;
 	} else {
-		if (generate_common_file(&common, &f1, &f2) < 0)
-			goto out_free_f2_f1;
+		common.ptr = xstrdup("");
+		common.size = 0;
 	}
 	res = three_way_filemerge(path, &common, &f1, &f2, size);
 	free_mmfile(&common);
diff --git a/merge-recursive.c b/merge-recursive.c
index 8eabde2..b880ae5 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -482,6 +482,9 @@
 	struct diff_options opts;
 
 	renames = xcalloc(1, sizeof(struct string_list));
+	if (!o->detect_rename)
+		return renames;
+
 	diff_setup(&opts);
 	DIFF_OPT_SET(&opts, RECURSIVE);
 	DIFF_OPT_CLR(&opts, RENAME_EMPTY);
@@ -2039,6 +2042,7 @@
 	o->diff_rename_limit = -1;
 	o->merge_rename_limit = -1;
 	o->renormalize = 0;
+	o->detect_rename = 1;
 	merge_recursive_config(o);
 	if (getenv("GIT_MERGE_VERBOSITY"))
 		o->verbosity =
@@ -2088,9 +2092,17 @@
 		o->renormalize = 1;
 	else if (!strcmp(s, "no-renormalize"))
 		o->renormalize = 0;
-	else if (skip_prefix(s, "rename-threshold=", &arg)) {
+	else if (!strcmp(s, "no-renames"))
+		o->detect_rename = 0;
+	else if (!strcmp(s, "find-renames")) {
+		o->detect_rename = 1;
+		o->rename_score = 0;
+	}
+	else if (skip_prefix(s, "find-renames=", &arg) ||
+		 skip_prefix(s, "rename-threshold=", &arg)) {
 		if ((o->rename_score = parse_rename_score(&arg)) == -1 || *arg != 0)
 			return -1;
+		o->detect_rename = 1;
 	}
 	else
 		return -1;
diff --git a/merge-recursive.h b/merge-recursive.h
index 9e090a3..52f0201 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -17,6 +17,7 @@
 	unsigned renormalize : 1;
 	long xdl_opts;
 	int verbosity;
+	int detect_rename;
 	int diff_rename_limit;
 	int merge_rename_limit;
 	int rename_score;
diff --git a/name-hash.c b/name-hash.c
index 332ba95..6d9f23e 100644
--- a/name-hash.c
+++ b/name-hash.c
@@ -55,10 +55,9 @@
 	dir = find_dir_entry(istate, ce->name, namelen);
 	if (!dir) {
 		/* not found, create it and add to hash table */
-		dir = xcalloc(1, sizeof(struct dir_entry) + namelen + 1);
+		FLEX_ALLOC_MEM(dir, name, ce->name, namelen);
 		hashmap_entry_init(dir, memihash(ce->name, namelen));
 		dir->namelen = namelen;
-		strncpy(dir->name, ce->name, namelen);
 		hashmap_add(&istate->dir_hash, dir);
 
 		/* recursively add missing parent directories */
diff --git a/notes.c b/notes.c
index c1e5035..88cf474 100644
--- a/notes.c
+++ b/notes.c
@@ -1035,7 +1035,7 @@
 	struct string_list_item *item;
 	int counter = 0;
 	struct notes_tree **trees;
-	trees = xmalloc((refs->nr+1) * sizeof(struct notes_tree *));
+	ALLOC_ARRAY(trees, refs->nr + 1);
 	for_each_string_list_item(item, refs) {
 		struct notes_tree *t = xcalloc(1, sizeof(struct notes_tree));
 		init_notes(t, item->string, combine_notes_ignore, flags);
diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c
index 6bff970..c30bcd0 100644
--- a/pack-bitmap-write.c
+++ b/pack-bitmap-write.c
@@ -148,8 +148,7 @@
 	return entry->in_pack_pos;
 }
 
-static void show_object(struct object *object, const struct name_path *path,
-			const char *last, void *data)
+static void show_object(struct object *object, const char *name, void *data)
 {
 	struct bitmap *base = data;
 	bitmap_set(base, find_object_pos(object->oid.hash));
diff --git a/pack-bitmap.c b/pack-bitmap.c
index dd8dc16..b949e51 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -414,19 +414,15 @@
 	return bitmap_pos + bitmap_git.pack->num_objects;
 }
 
-static void show_object(struct object *object, const struct name_path *path,
-			const char *last, void *data)
+static void show_object(struct object *object, const char *name, void *data)
 {
 	struct bitmap *base = data;
 	int bitmap_pos;
 
 	bitmap_pos = bitmap_position(object->oid.hash);
 
-	if (bitmap_pos < 0) {
-		char *name = path_name(path, last);
+	if (bitmap_pos < 0)
 		bitmap_pos = ext_index_add_object(object, name);
-		free(name);
-	}
 
 	bitmap_set(base, bitmap_pos);
 }
@@ -894,9 +890,8 @@
 	size_t seen;
 };
 
-static void test_show_object(struct object *object,
-			     const struct name_path *path,
-			     const char *last, void *data)
+static void test_show_object(struct object *object, const char *name,
+			     void *data)
 {
 	struct bitmap_test_data *tdata = data;
 	int bitmap_pos;
diff --git a/pack-check.c b/pack-check.c
index 433bd86..1da89a4 100644
--- a/pack-check.c
+++ b/pack-check.c
@@ -89,7 +89,7 @@
 	 * we do not do scan-streaming check on the pack file.
 	 */
 	nr_objects = p->num_objects;
-	entries = xmalloc((nr_objects + 1) * sizeof(*entries));
+	ALLOC_ARRAY(entries, nr_objects + 1);
 	entries[nr_objects].offset = pack_sig_ofs;
 	/* first sort entries by pack offset, since unpacking them is more efficient that way */
 	for (i = 0; i < nr_objects; i++) {
diff --git a/pack-revindex.c b/pack-revindex.c
index 155a8a3..96d51c3 100644
--- a/pack-revindex.c
+++ b/pack-revindex.c
@@ -44,10 +44,14 @@
 	 * keep track of them with alias pointers, always sorting from "from"
 	 * to "to".
 	 */
-	struct revindex_entry *tmp = xmalloc(n * sizeof(*tmp));
-	struct revindex_entry *from = entries, *to = tmp;
+	struct revindex_entry *tmp, *from, *to;
 	int bits;
-	unsigned *pos = xmalloc(BUCKETS * sizeof(*pos));
+	unsigned *pos;
+
+	ALLOC_ARRAY(pos, BUCKETS);
+	ALLOC_ARRAY(tmp, n);
+	from = entries;
+	to = tmp;
 
 	/*
 	 * If (max >> bits) is zero, then we know that the radix digit we are
@@ -121,7 +125,7 @@
 	unsigned i;
 	const char *index = p->index_data;
 
-	p->revindex = xmalloc(sizeof(*p->revindex) * (num_ent + 1));
+	ALLOC_ARRAY(p->revindex, num_ent + 1);
 	index += 4 * 256;
 
 	if (p->index_version > 1) {
diff --git a/pager.c b/pager.c
index e425070..4bc0481 100644
--- a/pager.c
+++ b/pager.c
@@ -11,7 +11,6 @@
  * something different on Windows.
  */
 
-static const char *pager_argv[] = { NULL, NULL };
 static struct child_process pager_process = CHILD_PROCESS_INIT;
 
 static void wait_for_pager(int in_signal)
@@ -64,6 +63,16 @@
 	return pager;
 }
 
+void prepare_pager_args(struct child_process *pager_process, const char *pager)
+{
+	argv_array_push(&pager_process->args, pager);
+	pager_process->use_shell = 1;
+	if (!getenv("LESS"))
+		argv_array_push(&pager_process->env_array, "LESS=FRX");
+	if (!getenv("LV"))
+		argv_array_push(&pager_process->env_array, "LV=-c");
+}
+
 void setup_pager(void)
 {
 	const char *pager = git_pager(isatty(1));
@@ -80,14 +89,8 @@
 	setenv("GIT_PAGER_IN_USE", "true", 1);
 
 	/* spawn the pager */
-	pager_argv[0] = pager;
-	pager_process.use_shell = 1;
-	pager_process.argv = pager_argv;
+	prepare_pager_args(&pager_process, pager);
 	pager_process.in = -1;
-	if (!getenv("LESS"))
-		argv_array_push(&pager_process.env_array, "LESS=FRX");
-	if (!getenv("LV"))
-		argv_array_push(&pager_process.env_array, "LV=-c");
 	argv_array_push(&pager_process.env_array, "GIT_PAGER_IN_USE");
 	if (start_command(&pager_process))
 		return;
diff --git a/path.c b/path.c
index 8b7e168..969b494 100644
--- a/path.c
+++ b/path.c
@@ -584,6 +584,9 @@
 			if (!home)
 				goto return_null;
 			strbuf_addstr(&user_path, home);
+#ifdef GIT_WINDOWS_NATIVE
+			convert_slashes(user_path.buf);
+#endif
 		} else {
 			struct passwd *pw = getpw_str(username, username_len);
 			if (!pw)
diff --git a/pathspec.c b/pathspec.c
index 9304ee3..c9e9b6c 100644
--- a/pathspec.c
+++ b/pathspec.c
@@ -406,7 +406,8 @@
 		n++;
 
 	pathspec->nr = n;
-	pathspec->items = item = xmalloc(sizeof(*item) * n);
+	ALLOC_ARRAY(pathspec->items, n);
+	item = pathspec->items;
 	pathspec->_raw = argv;
 	prefixlen = prefix ? strlen(prefix) : 0;
 
@@ -483,7 +484,7 @@
 void copy_pathspec(struct pathspec *dst, const struct pathspec *src)
 {
 	*dst = *src;
-	dst->items = xmalloc(sizeof(struct pathspec_item) * dst->nr);
+	ALLOC_ARRAY(dst->items, dst->nr);
 	memcpy(dst->items, src->items,
 	       sizeof(struct pathspec_item) * dst->nr);
 }
diff --git a/perl/Git/SVN/GlobSpec.pm b/perl/Git/SVN/GlobSpec.pm
index c95f5d7..a0a8d17 100644
--- a/perl/Git/SVN/GlobSpec.pm
+++ b/perl/Git/SVN/GlobSpec.pm
@@ -8,19 +8,23 @@
 	$re =~ s!/+$!!g; # no need for trailing slashes
 	my (@left, @right, @patterns);
 	my $state = "left";
-	my $die_msg = "Only one set of wildcard directories " .
-				"(e.g. '*' or '*/*/*') is supported: '$glob'\n";
+	my $die_msg = "Only one set of wildcards " .
+				"(e.g. '*' or '*/*/*') is supported: $glob\n";
 	for my $part (split(m|/|, $glob)) {
-		if ($part =~ /\*/ && $part ne "*") {
-			die "Invalid pattern in '$glob': $part\n";
-		} elsif ($pattern_ok && $part =~ /[{}]/ &&
+		if ($pattern_ok && $part =~ /[{}]/ &&
 			 $part !~ /^\{[^{}]+\}/) {
 			die "Invalid pattern in '$glob': $part\n";
 		}
-		if ($part eq "*") {
+		my $nstars = $part =~ tr/*//;
+		if ($nstars > 1) {
+			die "Only one '*' is allowed in a pattern: '$part'\n";
+		}
+		if ($part =~ /(.*)\*(.*)/) {
 			die $die_msg if $state eq "right";
+			my ($l, $r) = ($1, $2);
 			$state = "pattern";
-			push(@patterns, "[^/]*");
+			my $pat = quotemeta($l) . '[^/]*' . quotemeta($r);
+			push(@patterns, $pat);
 		} elsif ($pattern_ok && $part =~ /^\{(.*)\}$/) {
 			die $die_msg if $state eq "right";
 			$state = "pattern";
diff --git a/po/TEAMS b/po/TEAMS
index df12b58..56274ad 100644
--- a/po/TEAMS
+++ b/po/TEAMS
@@ -11,7 +11,7 @@
 
 Language:	de (German)
 Repository:	https://github.com/ralfth/git-po-de
-Leader:		Ralf Thielow <ralf.thielow@googlemail.com>
+Leader:		Ralf Thielow <ralf.thielow@gmail.com>
 Members:	Thomas Rast <tr@thomasrast.ch>
 		Jan Krüger <jk@jk.gs>
 		Christian Stimming <stimming@tuhh.de>
diff --git a/po/ca.po b/po/ca.po
index d364141..46000d7 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-27 21:42-0700\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-19 23:51-0600\n"
 "Last-Translator: Alex Henrie <alexhenrie24@gmail.com>\n"
 "Language-Team: Catalan\n"
 "Language: ca\n"
@@ -16,7 +16,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.6\n"
+"X-Generator: Poedit 1.8.7\n"
 
 #: advice.c:55
 #, c-format
@@ -32,7 +32,7 @@
 "'git add/rm <fitxer>' segons sigui apropiat per a marcar la\n"
 "resolució i feu una comissió."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "No heu conclòs la vostra fusió (MERGE_HEAD existeix)."
 
@@ -76,7 +76,7 @@
 msgid "archive format"
 msgstr "format d'arxiu"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "prefix"
 
@@ -84,10 +84,10 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "anteposa el prefix a cada nom de camí en l'arxiu"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
 #: builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "fitxer"
@@ -120,7 +120,7 @@
 msgid "list supported archive formats"
 msgstr "allista els formats d'arxiu admesos"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "dipòsit"
 
@@ -128,7 +128,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "recupera l'arxiu del dipòsit remot <dipòsit>"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "ordre"
 
@@ -136,7 +136,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "camí a l'ordre git-upload-archive remota"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -144,90 +144,107 @@
 "Els patrons negatius s'ignoren en els atributs de git\n"
 "Useu '\\!' per exclamació capdavantera literal."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Després de corregir la causa de l'error, podeu\n"
+"intentar corregir la informació de seguiment remot\n"
+"invocant \"git branch --set-upstream-to=%s%s%s\"."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "No establint la branca %s com a la seva pròpia font."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr ""
 "La branca %s està configurada per a seguir la branca remota %s de %s per "
 "rebasar."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "La branca %s està configurada per a seguir la branca remota %s de %s."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr ""
 "La branca %s està configurada per a seguir la branca local %s per rebasar."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "La branca %s està configurada per a seguir la branca local %s."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr ""
 "La branca %s està configurada per a seguir la referència remota %s per "
 "rebasar."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "La branca %s està configurada per a seguir la referència remota %s."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 "La branca %s està configurada per a seguir la referència local %s per "
 "rebasar."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "La branca %s està configurada per a seguir la referència local %s."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "No es pot escriure la configuració de la branca font"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "No seguint: informació ambigua per a la referència %s"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "'%s' no és un nom de branca vàlid."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "Una branca amb nom '%s' ja existeix."
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "No es pot actualitzar la branca actual a la força."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr ""
 "No es pot configurar la informació de seguiment; el punt inicial '%s' no és "
 "una branca."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "la branca font demanada '%s' no existeix"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -248,22 +265,22 @@
 "\"git push -u\" per a establir la configuració font\n"
 "mentre pugeu."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "No és un nom d'objecte vàlid: '%s'."
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "Nom d'objecte ambigu: '%s'."
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "No és un punt de ramificació vàlid: '%s'."
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s' ja s'ha agafat a '%s'"
@@ -287,10 +304,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Al dipòsit li manquen aquestes comissions prerequisits:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "la configuració del passeig per revisions ha fallat"
 
@@ -329,7 +346,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "les opcions de la llista de revisions exclouen la referència '%s'"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "paràmetre no reconegut: %s"
@@ -352,8 +369,8 @@
 msgid "invalid color value: %.*s"
 msgstr "valor de color no vàlid: %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "no s'ha pogut analitzar %s"
@@ -367,59 +384,64 @@
 msgid "memory exhausted"
 msgstr "memòria esgotada"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "línia de fitxer de configuració dolenta %d en %s"
+msgid "bad config line %d in %s %s"
+msgstr "línia de fitxer de configuració dolenta %d en %s %s"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "valor de configuració numèrica dolent '%s' per '%s' en %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "valor de configuració numèrica dolent '%s' per '%s' en %s %s: %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "valor de configuració numèrica dolent '%s' per '%s': %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "s'ha fallat en expandir el directori d'usuari en '%s'"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "nivell de compressió de zlib dolent %d"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "mode de creació d'objecte no vàlid: %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "no s'ha pogut analitzar la configuració de la línia d'ordres"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "ha ocorregut un error desconegut en llegir els fitxers de configuració"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "no s'ha pogut analitzar '%s' de la configuració de la línia d'ordres"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "variable de configuració dolenta '%s' en el fitxer '%s' a la línia %d"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s té múltiples valors"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "No s'ha pogut establir '%s' com a '%s'"
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "No s'ha pogut executar 'git rev-list'"
@@ -536,16 +558,16 @@
 "Errors trobats en la variable de configuració 'diff.dirstat':\n"
 "%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "El diff external s'ha mort, aturant a %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow requereix exactament una especificació de camí"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -554,18 +576,19 @@
 "S'ha fallat en analitzar el paràmetre d'opció de --dirstat/-X:\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "S'ha fallat en analitzar el paràmetre d'opció de --submodule: %s"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "s'ha fallat en obtenir el nombre i la informació del nucli"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "La memòria cau no seguida està deshabilitada en aquest sistema."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr ""
+"La memòria cau no seguida està inhabilitada en aquest sistema o ubicació."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -604,20 +627,20 @@
 msgid "'%s': short read %s"
 msgstr "'%s': lectura curta %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "ordres de git disponibles en '%s'"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "ordres de git disponibles d'altres llocs en el vostre $PATH"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "Aquestes són ordres del Git comunament usades en diverses situacions:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -626,11 +649,11 @@
 "'%s' sembla una ordre de git, però no hem pogut\n"
 "executar-la. Pot ser que git-%s estigui estropejat?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "Ai. El vostre sistema no informa de cap ordre de Git."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -639,17 +662,17 @@
 "AVÍS: Heu invocat una ordre de Git amb nom '%s', la qual no existeix.\n"
 "Continuant sota l'assumpció que volíeu dir '%s'"
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "en %0.1f segons automàticament..."
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git: '%s' no és una ordre de git. Vegeu 'git --help'."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -663,7 +686,7 @@
 "\n"
 "Volíeu dir un d'aquests?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
@@ -672,8 +695,8 @@
 msgid "failed to read the cache"
 msgstr "s'ha fallat en llegir la memòria cau"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "no s'ha pogut escriure un fitxer d'índex nou"
 
@@ -691,64 +714,64 @@
 msgid "error building trees"
 msgstr "error en construir arbres"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "s'ha fallat en crear el camí '%s' %s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Eliminant %s per a fer espai per al subdirectori\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": potser un conflicte D/F?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "refusant perdre el fitxer no seguit a '%s'"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "no es pot llegir l'objecte %s '%s'"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "blob esperat per a %s '%s'"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "s'ha fallat en obrir '%s'"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "s'ha fallat en fer l'enllaç simbòlic '%s'"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "no se sap què fer amb %06o %s '%s'"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "S'ha fallat en executar la fusió interna"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "no s'ha pogut afegir %s a la base de dades"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "tipus d'objecte no compatible en l'arbre"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -757,7 +780,7 @@
 "CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
 "s'ha deixat en l'arbre."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -766,20 +789,20 @@
 "CONFLICTE: (%s/supressió): %s suprimit en %s i %s en %s. La versió %s de %s "
 "s'ha deixat en l'arbre a %s."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "canvia de nom"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "canviat de nom"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s és un directori en %s; afegint com a %s en lloc"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -788,147 +811,147 @@
 "CONFLICTE (canvi de nom/canvi de nom): Canvi de nom \"%s\"->\"%s\" en la "
 "branca \"%s\" canvi de nom \"%s\"->\"%s\" en \"%s\"%s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (deixat sense resolució)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "CONFLICTE (canvi de nom/canvi de nom): Canvi de nom %s->%s en %s. Canvi de "
 "nom %s->%s en %s"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Canviant el nom de %s a %s i %s a %s en lloc d'això"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
 "CONFLICTE (canvi de nom/afegiment): Canvi de nom %s->%s en %s. %s afegit en "
 "%s"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "Afegint %s fusionat"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Afegint com a %s en lloc d'això"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "no es pot llegir l'objecte %s"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "L'objecte %s no és un blob"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "modifica"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "modificat"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "contingut"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "afegiment/afegiment"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "%s saltat (el fusionat és igual a l'existent)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "Autofusionant %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "submòdul"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "CONFLICTE (%s): Conflicte de fusió en %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "Eliminant %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "fitxer/directori"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "directori/fitxer"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "CONFLICTE (%s): Hi ha un directori amb nom %s en %s. Afegint %s com a %s"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "Afegint %s"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Fallat de fusió fatal; això no ha de passar."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "Ja al dia!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "la fusió dels arbres %s i %s ha fallat"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "Camí no processat??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "Fusionant:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "s'ha trobat %u avantpassat:"
 msgstr[1] "s'han trobat %u avantpassats:"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "la fusió no ha retornat cap comissió"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "No s'ha pogut analitzar l'objecte '%s'"
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "No s'ha pogut escriure l'índex."
 
@@ -986,7 +1009,7 @@
 #: parse-options-cb.c:108
 #, c-format
 msgid "malformed object name '%s'"
-msgstr "nom d'objecte mal format '%s'"
+msgstr "nom de camp mal format '%s'"
 
 #: path.c:752
 #, c-format
@@ -1047,12 +1070,12 @@
 msgstr ""
 "%s: aquesta ordre no és compatible amb la màgia d'especificació de camí: %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "l'especificació de camí '%s' és més enllà d'un enllaç simbòlic"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1086,164 +1109,249 @@
 "GIT_INDEX_VERSION establert, però el valor no és vàlid.\n"
 "Usant la versió %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "No s'ha pogut obrir '%s' per a escriptura"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "no s'ha pogut suprimir la referència %s: %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "no s'ha pogut suprimir les referències: %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "no s'ha pogut eliminar la referència %s"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "format: s'ha usat l'àtom %%(end) sense l'àtom corresponent"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "valor positiu esperat contents:lines=%s"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "format esperat: %%(color:<color>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "no s'ha pogut analitzar el format"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "color no reconegut: %%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "format no reconegut: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) no accepta paràmetres"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) no accepta paràmetres"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "valor positiu esperat contents:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "paràmetre %%(contents) no reconegut: %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "paràmetre %%(objectname) no reconegut: %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "format esperat: %%(align:<amplada>,<posició>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "format impropi introduït align:%s"
+msgid "unrecognized position:%s"
+msgstr "posició no reconeguda:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "amplada no reconeguda:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "paràmetre %%(align) no reconegut: %s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "amplada positiva esperada amb l'àtom %%(align)"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "nom d'objecte mal format: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "nom de camp desconegut: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "format: s'ha usat l'àtom %%(end) sense l'àtom corresponent"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "cadena de format mal format %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= requereix un paràmetre enter positiu"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "la referència '%s' no té %ld components per a :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "format de %.*s desconegut %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "manca l'objecte %s per a %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer ha fallat en %s per a %s"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "objecte mal format a '%s'"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "ignorant la referència amb nom trencat %s"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "ignorant la referència trencada %s"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "format: manca l'àtom %%(end)"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "nom d'objecte %s mal format"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "No es pot obtenir ambdós %s i %s a %s"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s generalment segueix %s, no %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s segueix ambdós %s i %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "Error intern"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD no assenyala cap branca"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "no hi ha tal branca: '%s'"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "cap font configurada per a la branca '%s'"
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "La branca font '%s' no s'emmagatzema com a branca amb seguiment remot"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr ""
 "el destí de pujada '%s' en el remot '%s' no té cap branca seguidora local"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "la branca '%s' no té cap remot al qual pujar"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "les especificacions de referència de '%s' no inclouen '%s'"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "push no té destí (push.default és 'nothing')"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "no es pot resoldre una pujada 'simple' a un sol destí"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "La vostra branca està basada en '%s', però la font no hi és.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (useu \"git branch --unset-upstream\" per a arreglar)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "La vostra branca està al dia amb '%s'.\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "La vostra branca està davant de '%s' per %d comissió.\n"
 msgstr[1] "La vostra branca està davant de '%s' per %d comissions.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (useu \"git push\" per a publicar les vostres comissions locals)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1255,11 +1363,11 @@
 "La vostra branca està darrere de '%s' per %d comissions, i pot avançar-se "
 "ràpidament.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr " (useu \"git pull\" per a actualitzar la vostra branca local)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1274,28 +1382,28 @@
 "La vostra branca i '%s' s'han divergit,\n"
 "i tenen %d i %d comissions distintes cada una, respectivament.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr "  (useu \"git pull\" per a fusionar la branca remota a la vostra)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "la vostra branca actual sembla trencada"
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "la vostra branca actual '%s' encara no té cap comissió"
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent és incompatible amb --bisect"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "s'ha fallat en obrir /dev/null"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "dup2(%d,%d) ha fallat"
@@ -1320,7 +1428,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "el destí receptor no admet pujar --atomic"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1328,7 +1436,7 @@
 "després de resoldre els conflictes, marqueu els camins\n"
 "corregits amb 'git add <camins>' o 'git rm <camins>'"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1338,67 +1446,67 @@
 "corregits amb 'git add <camins>' o 'git rm <camins>'\n"
 "i cometeu el resultat amb 'git commit'"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "No s'ha pogut escriure a %s"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Error en finalitzar %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "Els vostres canvis locals se sobreescriurien pel recull de cireres."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "Els vostres canvis locals se sobreescriurien per la reversió."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "Cometeu els vostres canvis o emmagatzemeu-los per a procedir."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: No s'ha pogut escriure un fitxer d'índex nou"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "No s'ha pogut resoldre la comissió HEAD\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "No s'ha pogut actualitzar l'arbre cau\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "No s'ha pogut analitzar la comissió %s\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "No s'ha pogut analitzar la comissió mare %s\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "El vostre fitxer d'índex està sense fusionar."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "La comissió %s és una fusió però no s'ha donat cap opció -m."
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "La comissió %s no té mare %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr ""
@@ -1406,162 +1514,178 @@
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: no es pot analitzar la comissió mare %s"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "No es pot obtenir el missatge de comissió de %s"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "no s'ha pogut revertir %s...%s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "no s'ha pogut aplicar %s...%s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "conjunt de comissions buit passat"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: s'ha fallat en llegir l'índex"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: s'ha fallat en actualitzar l'índex"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "No es pot %s durant un %s"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "No s'ha pogut analitzar la línia %d."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "Cap comissió analitzada."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "No s'ha pogut obrir %s"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "No s'ha pogut llegir %s."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Full d'instruccions inusable: %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Clau no vàlida: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Valor no vàlid per a %s: %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "Full d'opcions mal format: %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "un recull de cireres o una reversió ja està en curs"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "intenteu \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "No s'ha pogut crear el directori de seqüenciador %s"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Error en finalitzar %s."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "ni hi ha cap recull de cireres ni cap reversió en curs"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "no es pot resoldre HEAD"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "no es pot avortar des d'una branca que encara ha de nàixer"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "no es pot obrir %s: %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "no es pot llegir %s: %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "final de fitxer inesperat"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "el fitxer HEAD emmagatzemat abans del recull de cireres '%s' és malmès"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "No s'ha pogut formatar %s."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s: no es pot recollir com a cirera un %s"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s: revisió dolenta"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "No es pot revertir com a comissió inicial"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "No es pot recollir cireres en un cap buit"
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "s'ha fallat en llegir %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "desplaçament abans de la fi del fitxer de paquet (.idx trencat?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr ""
+"desplaçament abans d'inici d'índex de paquet per a %s (índex corromput?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr ""
+"desplaçament més enllà de la fi d'índex de paquet per a %s (índex truncat?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1585,62 +1709,86 @@
 "suprimiu-les. Desactiveu aquest missatge executant\n"
 "\"git config advice.objectNameWarning false\""
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 "No es pot canviar un .gitmodules no fusionat, primer resoldreu els "
 "conflictes de fusió"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "No s'ha pogut trobar la secció en .gitmodules on path=%s"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr "No s'ha pogut actualitzar l'entrada de .gitmodules %s"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "No s'ha pogut eliminar l'entrada de .gitmodules per a %s"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "L'allistament del .gitmodules actualitzat ha fallat"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "No s'ha pogut establir core.worktree en %s"
+msgid "running trailer command '%s' failed"
+msgstr "l'execució de l'ordre de remolc '%s' ha fallat"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "valor desconegut '%s' per a la clau '%s'"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "més d'un %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "fitxa de remolc buida en el remolc '%.*s'"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "no s'ha pogut llegir el fitxer d'entrada '%s'"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "No s'ha pogut llegir des d'stdin"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "no s'ha pogut fer stat a %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "el fitxer %s no és un fitxer regular"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "el fitxer %s no és gravable per l'usuari"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "no s'ha pogut obrir el fitxer temporal"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "no s'ha pogut canviar el nom del fitxer temporal a %s"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "No s'ha pogut llegir la referència %s"
@@ -1678,47 +1826,47 @@
 msgid "invalid '..' path segment"
 msgstr "segment de camí '..' no vàlid"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "no s'ha pogut obrir '%s' per a lectura i escriptura"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "no s'ha pogut obrir '%s' per a escriptura"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "no s'ha pogut obrir '%s' per a lectura"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "no s'ha pogut accedir a '%s': %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "no s'ha pogut accedir a '%s'"
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "no s'ha pogut obtenir el directori de treball actual"
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "no s'ha pogut obrir '%s' per a escriptura"
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "no s'ha pogut escriure a %s"
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "no s'ha pogut tancar %s"
@@ -2189,7 +2337,11 @@
 msgid "behind "
 msgstr "darrere "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "davant per "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "s'ha fallat en desenllaçar '%s'"
@@ -2216,7 +2368,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr "Canvis no allistats després d'actualitzar l'índex:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "No s'ha pogut llegir l'índex"
 
@@ -2252,15 +2404,15 @@
 msgstr ""
 "Els camins següents s'ignoren per un dels vostres fitxers .gitignore:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "marxa en sec"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "sigues detallat"
 
@@ -2268,7 +2420,7 @@
 msgid "interactive picking"
 msgstr "recull interactiu"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "selecciona els trossos interactivament"
 
@@ -2337,139 +2489,134 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Potser volíeu dir 'git add .'?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "fitxer d'índex malmès"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "no s'ha pogut escriure un fitxer d'índex nou"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "no s'ha pogut fer stat a '%s'"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "no s'ha pogut llegir '%s'"
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "no s'ha pogut analitzar l'script d'autor"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "s'ha suprimit '%s' per el ganxo applypatch-msg"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "Línia d'entrada mal formada: '%s'."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "S'ha fallat en copiar les notes de '%s' a '%s'"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "fseek ha fallat"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "no s'ha pogut obrir '%s' per a lectura: %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "no s'ha pogut obrir '%s' per a escriptura: %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "no s'ha pogut analitzar el pedaç '%s'"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "només una sèrie de pedaços StGIT es pot aplicar a la vegada"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "marca de temps no vàlida"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "línia Date no vàlida"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "desplaçament de zona de temps no vàlid"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "La detecció de format de pedaç ha fallat."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "s'ha fallat en crear el directori '%s'"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "S'ha fallat en dividir els pedaços."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "no s'ha pogut escriure el fitxer d'índex"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "Quan hàgiu resolt aquest problema, executeu \"%s --continue\"."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "Si preferiu saltar aquest pedaç, executeu \"%s --skip\" en lloc."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr ""
 "Per a restaurar la branca original i deixar d'apedaçar, executeu \"%s --abort"
 "\"."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "El pedaç és buit. S'ha dividit malament?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "línia d'identitat no vàlida: %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "no s'ha pogut analitzar la comissió %s"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr ""
 "Al dipòsit li manquen els blobs necessaris per a retrocedir a una fusió de 3 "
 "vies."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr "Usant la informació d'índex per a reconstruir un arbre base..."
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2477,38 +2624,38 @@
 "Heu editat el vostre pedaç a mà?\n"
 "No s'aplica als blobs recordats en el seu índex."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "Retrocedint a apedaçar la base i fusionar de 3 vies..."
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "S'ha fallat en fusionar els canvis."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree ha fallat en escriure un arbre"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "aplicant a una història buida"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "s'ha fallat en escriure l'objecte de comissió"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "no es pot reprendre: %s no existeix."
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 "no es pot ser interactiu sense que stdin sigui connectat a un terminal."
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "El cos de la comissió és:"
 
@@ -2516,37 +2663,37 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr ""
 "Voleu aplicar-lo? [y]es/[n]o/[e]dita/[v]isualitza el pedaç/[a]ccepta'ls "
 "tots: "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "Índex brut: no es pot aplicar pedaços (bruts: %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Aplicant: %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "Sense canvis -- El pedaç ja s'ha aplicat."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "El pedaç ha fallat a %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "La còpia del pedaç que ha fallat es troba en: %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2556,7 +2703,7 @@
 "Si no hi ha res a allistar, probablement alguna altra cosa\n"
 "ja ha introduït els mateixos canvis; potser voleu ometre aquest pedaç."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2564,17 +2711,17 @@
 "Encara teniu camins sense fusionar en el vostre índex.\n"
 "Heu oblidat d'usar 'git add'?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "No s'ha pogut analitzar l'objecte '%s'."
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "s'ha fallat en netejar l'índex"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
@@ -2582,154 +2729,154 @@
 "Sembla que heu mogut HEAD després de l'última fallada de 'am'.\n"
 "No rebobinant a ORIG_HEAD"
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "Valor no vàlid per a --patch-format: %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<opcions>] [(<bústia>|<directori-de-correu>)...]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<opcions>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "executa interactivament"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "opció històrica -- no-op"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "permet retrocedir a una fusió de 3 vies si és necessari"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "calla"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "afegeix una línia Signed-off-by al missatge de comissió"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "recodifica en utf8 (per defecte)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "passa la bandera -k al git-mailinfo"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "passa la bandera -b al git-mailinfo"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "passa la bandera -m al git-mailinfo"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "passa la bandera --keep-cr al git-mailsplit pel format mbox"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr ""
 "no passis la bandera --keep-cr al git-mailsplit independent de am.keepcr"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "despulla tot abans d'una línia de tissores"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "acció"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "passa-ho a través del git-apply"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "arrel"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "camí"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
 #: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
 #: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
 #: parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "número"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "format"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "el format en el qual estan els pedaços"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr ""
 "passa per alt el missatge d'error quan s'ocorre una fallada en apedaçar"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "segueix aplicant pedaços després de resoldre un conflicte"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "sinònims de --continue"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "salta el pedaç actual"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr "restaura la branca original i avorta l'operació d'apedaçament."
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "menteix sobre la data del comitent"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "usa el marc de temps actual per la data d'autor"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "ID de clau"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "firma les comissions amb GPG"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(ús intern per al git-rebase)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2737,18 +2884,18 @@
 "Fa molt que l'opció -b/--binary no ha fet res, i\n"
 "s'eliminarà. Si us plau, no l'useu més."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "s'ha fallat en llegir l'índex"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr ""
 "un directori de rebasament anterior %s encara existeix però s'ha donat una "
 "bústia."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2757,7 +2904,7 @@
 "Directori %s extraviat trobat.\n"
 "Useu \"git am --abort\" per a eliminar-lo."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "Operació de resolució no en curs; no reprenem."
 
@@ -3108,135 +3255,135 @@
 msgid "unable to read index file"
 msgstr "no es pot llegir el fitxer d'índex"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "no apliquis els canvis que coincideixin amb el camí donat"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "aplica els canvis que coincideixin amb el camí donat"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr ""
 "elimina <nombre> barres obliqües inicials dels camins de diferència "
 "tradicionals"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "ignora afegiments fets pel pedaç"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr ""
 "en lloc d'aplicar el pedaç, emet les estadístiques de diferència de l'entrada"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "mostra el nombre de línies afegides i suprimides en notació decimal"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "en lloc d'aplicar el pedaç, emet un resum de l'entrada"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "en lloc d'aplicar el pedaç, veges si el pedaç és aplicable"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "assegura que el pedaç sigui aplicable a l'índex actual"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "aplica un pedaç sense tocar l'arbre de treball"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "accepta un pedaç que toqui fora de l'àrea de treball"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "aplica el pedaç també (useu amb --stat/--summary/--check)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "intenta una fusió de tres vies si el pedaç no s'aplica"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr "construeix un índex temporal basat en la informació d'índex incrustada"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "els camins se separen amb el caràcter NUL"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "assegura't que almenys <n> línies de context coincideixin"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr ""
 "detecta les línies noves o modificades que tinguin errors d'espai en blanc"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "ignora els canvis d'espai en blanc en cercar context"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "aplica el pedaç al revés"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "no esperis almenys una línia de context"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "deixa els trossos rebutjats en fitxers *.reg coresspondents"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "permet trossos encavalcants"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "tolera una línia nova incorrectament detectada al final del fitxer"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "no confiïs en els recomptes de línia en les capçaleres dels trossos"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "anteposa <arrel> a tots els noms de fitxer"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "--3way fora d'un dipòsit"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "--index fora d'un dipòsit"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "--cached fora d'un dipòsit"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "no es pot obrir el pedaç '%s'"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "%d error d'espai en blanc omès"
 msgstr[1] "%d errors d'espai en blanc omesos"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3290,109 +3437,117 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "actualitza BISECT_HEAD en lloc d'agafar la comissió actual"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<opcions>] [<opcions-de-revisió>] [<revisió>] [--] fitxer"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "es documenten les <opcions-de-revisió> en git-rev-list(1)"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Culpant les línies"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr "Mostra les entrades de culpa mentre les trobem, incrementalment"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr ""
 "Mostra un SHA-1 en blanc per les comissions de frontera (Per defecte: "
 "desactivat)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr ""
 "No tractis les comissions d'arrel com a límits (Per defecte: desactivat)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "Mostra les estadístiques de preu de treball"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Força l'informe de progrés"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "Mostra la puntuació de sortida de les entrades de culpa"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "Mostra el nom de fitxer original (Per defecte: automàtic)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "Mostra el número de línia original (Per defecte: desactivat)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "Presenta en un format dissenyat per consumpció per màquina"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "Mostra el format de porcellana amb informació de comissió per línia"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr ""
 "Usa el mateix mode de sortida que git-annotate (Per defecte: desactivat)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "Mostra la marca de temps crua (Per defecte: desactivat)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Mostra l'SHA1 de comissió llarg (Per defecte: desactivat)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Omet el nom d'autor i la marca de temps (Per defecte: desactivat)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr ""
 "Mostra l'adreça de correu electrònic de l'autor en lloc del nom (Per "
 "defecte: desactivat)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "Ignora les diferències d'espai en blanc"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "Gasta cicles extres per a trobar una coincidència millor"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "Usa les revisions de <fitxer> en lloc d'invocar git-rev-list"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "Usa els continguts de <fitxer> com a la imatge final"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "puntuació"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "Troba còpies de línia dins i a través dels fitxers"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "Troba moviments de línia dins i a través dels fitxers"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "Processa només el rang de línies n,m, comptant des d'1"
 
@@ -3402,7 +3557,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "fa 4 anys i 11 mesos"
 
@@ -3604,196 +3759,196 @@
 "La branca està canviada de nom, però l'actualització del fitxer de "
 "configuració ha fallat"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "no s'ha pogut escriure la plantilla de descripció de branca: %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "Opcions genèriques"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "mostra el hash i l'assumpte, doneu dues vegades per la branca font"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "omet els missatges informatius"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "configura el mode de seguiment (vegeu git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "canvia la informació de font"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "usa sortida colorada"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "actua en branques amb seguiment remot"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "imprimeix només les branques que continguin la comissió"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "Accions de git-branch específiques:"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "llista les branques amb seguiment remot i les locals"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "suprimeix la branca si està completament fusionada"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "suprimeix la branca (encara que no estigui fusionada)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "mou/canvia de nom una branca i el seu registre de referència"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "mou/canvia de nom una branca, encara que el destí existeixi"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "llista els noms de branca"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "crea el registre de referència de la branca"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "edita la descripció de la branca"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "força creació, moviment/canvi de nom, supressió"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "imprimeix només les branques que s'han fusionat"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "imprimeix només les branques que no s'han fusionat"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "llista les branques en columnes"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "clau"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "nom del camp en el qual ordenar"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "objecte"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "imprimeix només les branques de l'objecte"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "S'ha fallat en resoldre HEAD com a referència vàlida."
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD no trobat sota refs/heads!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column i --verbose són incompatibles"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "cal el nom de branca"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "No es pot donar descripció a un HEAD separat"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "no es pot editar la descripció de més d'una branca"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "Encara no hi ha comissió en la branca '%s'."
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "No hi ha branca amb nom '%s'."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "hi ha massa branques per a una operació de canvi de nom"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "hi ha massa branques per a establir una nova font"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
 msgstr ""
 "no s'ha pogut establir la font de HEAD com a %s quan no assenyala cap branca."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "no hi ha tal branca '%s'"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "la branca '%s' no existeix"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "hi ha massa branques per a desestablir la font"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr ""
 "no s'ha pogut desestablir la font de HEAD perquè no assenyala cap branca."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "La branca '%s' no té informació de font"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "no té sentit crear 'HEAD' manualment"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 "les opcions -a i -r a 'git branch' no tenen sentit amb un nom de branca"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3802,7 +3957,7 @@
 "La bandera --set-upstream està desaprovada i s'eliminarà. Considereu usar --"
 "track o --set-upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3813,12 +3968,12 @@
 "Si volíeu fer '%s' seguir '%s', feu això:\n"
 "\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3914,7 +4069,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "usa .gitattributes només des de l'índex"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "llegeix els noms de fitxer d'stdin"
 
@@ -3922,7 +4077,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "acaba els registres d'entrada i de sortida amb un caràcter NUL"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "omet el reportatge de progrés"
 
@@ -3975,49 +4130,53 @@
 msgid "no contacts specified"
 msgstr "no hi ha contactes especificats"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<opcions>] [--] [<fitxer>...]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "l'etapa ha de ser entre 1 i 3 o all"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "agafa tots els fitxers en l'índex"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "força la sobreescriptura de fitxers existents"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr "cap avís per a fitxers existents i fitxers no en l'índex"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "no agafis fitxers nous"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "actualitza la informació d'estadístiques en el fitxer d'índex"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "llegeix la llista de camins des de l'entrada estàndard"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "escriu el contingut a fitxers temporals"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "cadena"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "en crear fitxers, anteposa <cadena>"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "copia els fitxers des de l'etapa anomenada"
 
@@ -4098,37 +4257,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD ara és a"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "no s'ha pogut actualitzar HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Restableix la branca '%s'\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Ja en '%s'\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "S'ha agafat i restablert la branca '%s'\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "S'ha agafat la branca nova '%s'\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "S'ha agafat la branca '%s'\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... i %d més.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4151,7 +4314,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4178,150 +4341,150 @@
 " git branch <nom-de-branca-nova> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "error intern en el passeig per revisions"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "La posició de HEAD anterior era"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "Sou en una branca que encara ha de nàixer"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "només una referència esperada, %d donades."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "referència no vàlida: %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "la referència no és un arbre: %s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "els camins no es poden usar amb canvi de branca"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' no es pot usar amb canvi de branca"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' no es pot usar amb '%s'"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "No es pot canviar la branca a la no comissió '%s'"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "branca"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "crea i agafa una branca nova"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "crea/restableix i agafa una branca"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "crea un registre de referència per a la branca nova"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "separa el HEAD a la comissió anomenada"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "estableix la informació de font de la branca nova"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "branca-nova"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "branca òrfena nova"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "agafa la versió nostra dels fitxers sense fusionar"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "agafa la versió seva dels fitxers sense fusionar"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "agafa a la força (descarta qualsevulla modificació local)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "realitza una fusió de 3 vies amb la branca nova"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "actualitza els fitxers ignorats (per defecte)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "estil"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "estil de conflicte (fusió o diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "no limitis les especificacions de camí només a entrades disperses"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "dubta 'git checkout <cap-branca-així>'"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr "no comprovis si altre arbre de treball té la referència donada"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "força l'informe de progrés"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B i --orphan són mutualment exclusius"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track necessita un nom de branca"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "Manca el nom de branca; proveu -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "especificació de camí no vàlida"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4330,12 +4493,12 @@
 "No es poden actualitzar els camins i canviar a la branca '%s' a la vegada.\n"
 "Volíeu agafar '%s', la qual no es pot resoldre com a comissió?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach no accepta un paràmetre de camí '%s'"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4374,7 +4537,7 @@
 msgid "failed to remove %s"
 msgstr "s'ha fallat en eliminar %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4386,7 +4549,7 @@
 "foo        - selecciona un ítem basat en un prefix únic\n"
 "           - (buit) no seleccionis res"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4406,36 +4569,36 @@
 "*          - tria tots els ítems\n"
 "           - (buit) finalitza la selecció"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Perdó (%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "Introduïu els patrons a ignorar>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "AVÍS: No es pot trobar ítems que coincideixin amb: %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "Selecciona els ítems a suprimir"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "Voleu eliminar %s [y/N]? "
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "Adéu."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4453,62 +4616,62 @@
 "help                - aquesta pantalla\n"
 "?                   - ajuda de selecció de l'avís"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** Ordres ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "I ara què"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "Eliminaria l'ítem següent:"
 msgstr[1] "Eliminaria els ítems següents:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "No hi ha més fitxers a netejar; sortint."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "no imprimeixis els noms dels fitxers eliminats"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "força"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "neteja interactiva"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "elimina directoris sencers"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "patró"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "afegiu <patró> per a ignorar les regles"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "elimina els fitxers ignorats, també"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "elimina només els fitxers ignorats"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "-x i -X no es poden usar junts"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
@@ -4516,7 +4679,7 @@
 "clean.requireForce està establerta a veritat i ni -i, -n ni -f s'ha donat; "
 "refusant netejar"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4528,146 +4691,162 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<opcions>] [--] <dipòsit> [<directori>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "no facis cap agafament"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "crea un dipòsit nu"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "crea un dipòsit reflectit (implica bare)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "per a clonar des d'un dipòsit local"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "no usis enllaços durs locals, sempre copia"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "configura com a dipòsit compartit"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "inicialitza els submòduls en el clon"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "directori-de-plantilla"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "directori del qual les plantilles s'usaran"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "dipòsit de referència"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "usa --reference només en clonar"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "nom"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "usa <nom> en lloc de 'origin' per a seguir la font"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "agafa <branca> en lloc del HEAD del remot"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "camí a git-upload-pack en el remot"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
 msgid "depth"
 msgstr "profunditat"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "crea un clon superficial de tal profunditat"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "clona només una branca, HEAD o --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "directori de git"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "separa el directori de git de l'arbre de treball"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "clau=valor"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "estableix la configuració dins del dipòsit nou"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "usa només les adreces IPv4"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "usa només les adreces IPv6"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"No s'ha pogut endevinar cap nom de directori.\n"
+"Si us plau, especifiqueu un directori en la línia d'ordres"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr ""
 "Encara no se suporta el dipòsit de referència '%s' com a agafament enllaçat."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "el dipòsit de referència '%s' no és un dipòsit local."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "el dipòsit de referència '%s' és superficial"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "el dipòsit de referència '%s' és empeltat"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "s'ha fallat en fer stat a '%s'"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s existeix i no és directori"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "s'ha fallat en fer stat a '%s'\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "s'ha fallat en crear l'enllaç '%s'"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "s'ha fallat en copiar el fitxer a '%s'"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "fet.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4678,119 +4857,128 @@
 "'git status' i tornar a intentar l'agafament amb\n"
 "'git checkout -f HEAD'\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "No s'ha pogut trobar la branca remota %s per a clonar."
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "Provant connectivitat... "
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "el remot no ha enviat tots els objectes necessaris"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "no s'ha pogut actualizar %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
 "el HEAD remot es refereix a una referència que no existeix; no s'ha pogut "
 "agafar.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "no s'ha pogut agafar l'arbre de treball"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "no s'ha pogut escriure les paràmetres al fitxer de configuració"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "no es pot reempaquetar per a netejar"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "no es pot desenllaçar el fitxer d'alternatives temporal"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "Hi ha massa paràmetres."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "Heu d'especificar un dipòsit per a clonar."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "les opcions --bare i --origin %s són incompatibles."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare i --separate-git-dir són incompatibles."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "el dipòsit '%s' no existeix"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "la profunditat %s no és nombre positiu"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "el camí destí '%s' ja existeix i no és un directori buit."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "l'arbre de treball '%s' ja existeix."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "no s'ha pogut crear els directoris inicials de '%s'"
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "no s'ha pogut crear el directori d'arbre de treball '%s'"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Clonant al dipòsit nu '%s'...\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Clonant a '%s'...\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth s'ignora en els clons locals; useu file:// en lloc d'això."
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "el dipòsit font és superficial, ignorant --local"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local s'ignora"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "No se sap com clonar %s"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "La branca remota %s no es troba en la font %s"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "Sembla que heu clonat un dipòsit buit."
 
@@ -5004,7 +5192,7 @@
 msgid "could not lookup commit %s"
 msgstr "no s'ha pogut trobar la comissió %s"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(llegint el missatge de registre des de l'entrada estàndard)\n"
@@ -5191,8 +5379,8 @@
 msgid "show branch information"
 msgstr "mostra la informació de branca"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "sortida llegible per màquina"
 
@@ -5283,8 +5471,8 @@
 msgid "override date for commit"
 msgstr "data corregida de la comissió"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "missatge"
 
@@ -5321,7 +5509,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "l'autor de la comissió ja sóc jo (s'usa amb -C/-c/--amend)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "afegeix Signed-off-by:"
 
@@ -5345,7 +5533,7 @@
 msgid "include status in commit message template"
 msgstr "inclou l'estat en la plantilla de missatge de comissió"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "firma la comissió amb GPG"
@@ -5437,140 +5625,146 @@
 "que la quota no estigui excedida, i després\n"
 "\"git reset HEAD\" per a recuperar."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<opcions>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "Ubicació del fitxer de configuració"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "usa el fitxer de configuració global"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "usa el fitxer de configuració del sistema"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "usa el fitxer de configuració del dipòsit"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "usa el fitxer de configuració donat"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "ID de blob"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "llegeix la configuració de l'objecte de blob donat"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "Acció"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "obtén valor: nom [regex-de-valors]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "obtén tots els valors: clau [regex-de-valors]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "obtén valors de regexp: regex-de-noms [regex-de-valors]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "obtén el valor específic per a l'URL: secció[.variable] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr ""
 "reemplaça totes les variables que coincideixen: nom valor [regex_de_valors]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "afegeix una variable nova: nom valor"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "elimina una variable: nom [regex-de-valors]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "elimina totes les coincidències: nom [regex-de-valors]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "canvia el nom de secció: nom-antic nom-nou"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "elimina una secció: nom"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "llista tots"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "obre un editor"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "troba el color configurat: ranura [per defecte]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "troba l'ajust de color: ranura [stdout-és-tty]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "Tipus"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "el valor és \"true\" o \"false\""
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "el valor és un nombre decimal"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "el valor és --bool o --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "el valor és un camí (nom de fitxer o directori)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "Altre"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "acaba els valors amb un octet NUL"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "mostra només els noms de variable"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "respecta les directives d'inclusió en cercar"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"mostra l'origen de la configuració (fitxer, entrada estàndar, blob, línia "
+"d'ordres)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "no s'ha pogut analitzar el valor de color per defecte"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5585,7 +5779,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "no es pot crear el fitxer de configuració '%s'"
@@ -5835,162 +6029,166 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<opcions>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "obtén de tots els remots"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "annexa a .git/FETCH_HEAD en lloc de sobreescriure"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "camí al qual pujar el paquet al costat remot"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "força la sobreescriptura de la branca local"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "obtén de múltiples remots"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "obtén totes les etiquetes i tots els objectes associats"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "no obtinguis les etiquetes (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "nombre de submòduls obtinguts en paral·lel"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "poda les branques amb seguiment remot que ja no estiguin en el remot"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "sota demanda"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "controla l'obtenció recursiva de submòduls"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "retén el paquet baixat"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "permet l'actualització de la referència HEAD"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "aprofundeix la història d'un clon superficial"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "converteix en un dipòsit complet"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "directori"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "anteposa això a la sortida de camí del submòdul"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "mode de recursivitat per defecte"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "accepta les referències que actualitzin .git/shallow"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "mapa de referències"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "mostra el mapa de referències d'obtenció"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "No s'ha pogut trobar la referència HEAD remota"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "objecte %s no trobat"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[al dia]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s -> %s  (no es pot obtenir en la branca actual)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[rebutjat]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[actualització d'etiqueta]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (no s'ha pogut actualitzar la referència local)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[etiqueta nova]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[branca nova]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[referència nova]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "no s'ha pogut actualitzar la referència local"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "actualització forçada"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(sense avanç ràpid)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "no es pot obrir %s: %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s no ha enviat tots els objectes necessaris\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr ""
 "rebutja %s perquè no es permet que les arrels superficials s'actualitzin"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "De %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -6000,55 +6198,55 @@
 " intenteu executar 'git remote prune %s' per a eliminar\n"
 " qualsevulla branca antiga o conflictiva"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s es tornarà penjant)"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s s'ha tornat penjant)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[suprimit]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(cap)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "Refusant obtenir en la branca actual %s d'un dipòsit no nu"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "L'opció \"%s\" amb valor \"%s\" no és vàlida per a %s"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "S'ignora l'opció \"%s\" per a %s\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "No se sap com obtenir de %s"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Obtenint %s\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "No s'ha pogut obtenir %s"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -6056,32 +6254,32 @@
 "Cap dipòsit remot especificat. Si us plau, especifiqueu o un URL o\n"
 "un nom remot del qual es deuen obtenir les revisions noves."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "Necessiteu especificar un nom d'etiqueta."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth i --unshallow no es poden usar junts"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow en un dipòsit complet no té sentit"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all no accepta un paràmetre de dipòsit"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all no té sentit amb especificacions de referència"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "No hi ha tal remot ni tal grup remot: %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "Obtenir un grup i especificar referències no té sentit"
 
@@ -6308,228 +6506,242 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<opcions>] [-e] <patró> [<revisió>...] [[--] <camí>...]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: s'ha fallat en crear fil: %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "s'ha especificat un nombre de fils no vàlid (%d) per a %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "no s'ha pogut llegir l'arbre (%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "no es pot fer grep des d'un objecte de tipus %s"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "l'opció `%c' espera un valor numèric"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "no es pot obrir '%s'"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "cerca en l'índex en lloc de l'arbre de treball"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "cerca en continguts no gestionats per git"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "cerca tant en fitxers seguits com en no seguits"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "ignora els fitxers especificats mitjançant '.gitignore'"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "mostra les línies no coincidents"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "coincidència insensible a majúscula i minúscula"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "coincideix amb els patrons només als límits de paraula"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "processa els fitxers binaris com a text"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "no coincideixis amb els patrons en els fitxers binaris"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "processa els fitxers binaris amb filtres de textconv"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "descendeix com a màxim <profunditat> nivells"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "usa les expressions regulars POSIX esteses"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "usa les expressions regulars POSIX bàsiques (per defecte)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "interpreta els patrons com a cadenes fixes"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "usa les expressions regulars compatibles amb Perl"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "mostra els números de línia"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "no mostris els noms de fitxer"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "mostra els noms de fitxer"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "mostra els noms de fitxer relatius al directori superior"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "mostra només els noms de fitxer en lloc de les línies coincidents"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "sinònim de --files-with-matches"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "mostra només els noms dels fitxers sense coincidència"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "imprimeix NUL després dels noms de fitxer"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "mostra el nombre de coincidències en lloc de les línies coincidents"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "ressalta les coincidències"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr "imprimeix una línia buida entre coincidències de fitxers distints"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr ""
 "mostra el nom de fitxer només una vegada a dalt de les coincidències del "
 "mateix fitxer"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "mostra <n> línies de context abans i després d'una coincidència"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "mostra <n> línies de context abans d'una coincidència"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "mostra <n> línies de context després d'una coincidència"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "usa <n> fils obrers"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "drecera per -C NUM"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "mostra una línia amb el nom de funció abans de les coincidències"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "mostra la funció circumdant"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "llegeix els patrons des d'un fitxer"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "coincideix amb <patró>"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "combina els patrons especificats amb -e"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "indica coincidència amb estat de sortida sense sortida textual"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr ""
 "mostra només les coincidències dels fitxers que coincideixin amb tots els "
 "patrons"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "mostra l'arbre d'anàlisis de l'expressió de grep"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "paginador"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "mostra els fitxers coincidents en el paginador"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "permet la invocació de grep(1) (ignorat per aquesta compilació)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "cap patró donat."
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "s'ha especificat un nombre de fils no vàlid (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager només funciona en l'arbre de treball"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached o --untracked no es pot usar amb --no-index."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index o --untracked no es pot usar amb revisions."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard no es pot usar per als continguts seguits."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "s'han donat ambdós --caches i arbres."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6537,38 +6749,38 @@
 "git hash-object [-t <tipus>] [-w] [--path=<fitxer> | --no-filters] [--stdin] "
 "[--] <fitxer>..."
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "tipus"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "tipus d'objecte"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "escriu l'objecte a la base de dades d'objectes"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "llegeix l'objecte des d'stdin"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "emmagatzema el fitxer tal com és sense filtres"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr ""
 "només suma qualsevulla brossa aleatòria per a crear objectes malmesos per a "
 "depurar al Git"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "processa el fitxer com si fos d'aquest camí"
 
@@ -6619,7 +6831,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "s'ha fallat en executar '%s': %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6628,7 +6840,7 @@
 "'%s': camí a un visualitzador de manuals no compatible.\n"
 "Si us plau, considereu usar 'man.<eina>.cmd' en lloc d'això."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -6637,61 +6849,61 @@
 "'%s': ordre per a un visualitzador de manuals compatible.\n"
 "Si us plau, considereu usar 'man.<eina>.path' en lloc d'això."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s': visualitzador de manuals desconegut"
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "cap visualitzador de manuals ha gestionat la sol·licitud"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "cap visualitzador d'informació ha gestionat la sol·licitud"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "La definició d'atributs per camí"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Git quotidià amb més o menys 20 ordres"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "Un glossari de Git"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Especifica els fitxers intencionalment no seguits a ignorar"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "La definició de les propietats de submòduls"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "L'especificació de revisions i rangs per al Git"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Una introducció tutorial al Git (per a la versió 1.5.1 o més nou)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Una visió de conjunt de fluxos de treball recomanats amb Git"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "Les guies de Git comunes són:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "ús: %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "`git %s' és un àlies de `%s'"
@@ -6927,60 +7139,55 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "pack.indexversion=%<PRIu32> dolent"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "s'ha especificat un nombre de fils no vàlid (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "no hi ha suport de fils, ignorant %s"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "No es pot obrir el fitxer de paquet existent '%s'"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "No es pot obrir el fitxer d'índex de paquets existent de '%s'"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "sense delta: %d objecte"
 msgstr[1] "sense delta: %d objectes"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "longitud de cadena = %d: %lu objecte"
 msgstr[1] "longitud de cadena = %d: %lu objectes"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "No es pot tornar al directori de treball actual"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "%s dolent"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin no es pot usar sense --stdin"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "el nom de fitxer de paquet '%s' no acaba amb '.pack'"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "s'ha donat --verify sense nom de fitxer de paquet"
 
@@ -7106,24 +7313,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <fitxa>[(=|:)<valor>])...] "
-"[<fitxer>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<fitxa>[(=|:)<valor>])...] [<fitxer>...]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "edita els fitxers in situ"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "escurça els remolcs buits"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "remolc"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "remolcs a afegir"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "no s'ha donat cap fitxer d'entrada per a edició in situ"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<opcions>] [<rang-de-revisions>] [[--] <camí>...]"
@@ -7177,225 +7392,225 @@
 msgid "Unknown type: %d"
 msgstr "Tipus desconegut: %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers sense valor"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "el nom del directori de sortida és massa llarg"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "No es pot obrir el fitxer de pedaç %s"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "Cal exactament un rang."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "No és un rang."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "La carta de presentació necessita el format de correu electrònic"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "in-reply-to boig: %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<opcions>] [<des-de> | <rang-de-revisions>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Dos directoris de sortida?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "usa [PATCH n/m] fins i tot amb un sol pedaç"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "usa [PATCH] fins i tot amb múltiples pedaços"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "imprimeix els pedaços a la sortida estàndard"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "genera una carta de presentació"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "usa una seqüència de números per als noms dels fitxers de sortida"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "sufix"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "usa <sufix> en lloc de '.patch'"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "comença numerant els pedaços a <n> en lloc d'1"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "marca la sèrie com a l'enèsima llançada"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "Usa [<prefix>] en lloc de [PATCH]"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "emmagatzema els fitxers resultants a <directori>"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "no despullis/afegeixis [PATCH]"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "no emetis diferències binàries"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr "emet un hash de tots zeros en la capçalera From"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "no incloguis pedaços que coincideixin amb comissions a la font"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr ""
 "mostra el format de pedaç en lloc del per defecte (pedaç + estadístiques)"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "Missatgeria"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "capçalera"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "afegeix una capçalera de correu electrònic"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "correu electrònic"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "afegeix la capçalera To:"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "afegeix la capçalera Cc:"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "identitat"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr ""
 "estableix l'adreça From a <identitat> (o la identitat del comitent si manca)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "ID de missatge"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "fes del primer missatge una resposta a <ID de missatge>"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "límit"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "ajunta el pedaç"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "posa el pedaç en el cos"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "habilita l'enfilada de missatges, estils: shallow, deep"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "firma"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "afegeix una firma"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "afegeix una firma des d'un fitxer"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "no imprimeixis els noms de fitxer del pedaç"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n i -k són mutualment exclusius."
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix i -k són mutualment exclusius."
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "--name-only no té sentit"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "--name-status no té sentit"
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "--check no té sentit"
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "sortida estàndard o directori, quin dels dos?"
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "No s'ha pogut crear el directori '%s'"
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "no s'ha pogut llegir el fitxer de firma '%s'"
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "S'ha fallat en crear els fitxers de sortida"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<font> [<cap> [<límit>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7403,105 +7618,156 @@
 "No s'ha pogut trobar una branca remota seguida. Si us plau, especifiqueu "
 "<font> manualment.\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Comissió desconeguda %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<opcions>] [<fitxer>...]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "identifica l'estat de fitxer amb etiquetes"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "usa lletres minúscules per als fitxers 'assume unchanged'"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr ""
 "mostra en la sortida els fitxers desats en la memòria cau (per defecte)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "mostra en la sortida els fitxers suprimits"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "mostra en la sortida els fitxers modificats"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "mostra en la sortida els altres fitxers"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "mostra en la sortida els fitxers ignorats"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "mostra en la sortida el nom d'objecte dels continguts allistats"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "mostra els fitxers en el sistema de fitxers que s'han d'eliminar"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "mostra només els noms dels directoris 'other'"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "mostra els terminis de línia dels fitxers"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "no mostris els directoris buits"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "mostra en la sortida els fitxers sense fusionar"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "mostra la informació de resolució de desfet"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "salta els fitxers coincidents amb el patró"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "els patrons d'exclusió es llegeixen de <fitxer>"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "llegeix els patrons addicionals d'exclusió per directori en <fitxer>"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "afegeix les exclusions estàndards de git"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "fes que la sortida sigui relativa al directori superior del projecte"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "si qualsevol <fitxer> no és en l'índex, tracta això com a error"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "arbre"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr ""
 "pretén que els camins eliminats després de <arbre> encara siguin presents"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "mostra les dades de depuració"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs]\n"
+"                     [--upload-pack=<executable>] [-q | --quiet]\n"
+"                     [--exit-code] [--get-url] [--symref]\n"
+"                     [<dipòsit> [<referències>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "no imprimeixis l'URL remot"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "executable"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "camí a git-upload-pack en la màquina remota"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "limita a etiquetes"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "limita a caps"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "no mostris les etiquetes pelades"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "tingues en compte url.<base>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "surt amb codi de sortida 2 si no es troba cap referència coincident"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "mostra la referència subjacent en adició a l'objecte que senyali"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<opcions>] <arbre> [<camí>...]"
@@ -7570,33 +7836,33 @@
 msgid "Available custom strategies are:"
 msgstr "Les estratègies personalitzades disponibles són:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "no mostris les estadístiques de diferència al final de la fusió"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "mostra les estadístiques de diferència al final de la fusió"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(sinònim de --stat)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
 "afegeix (com a màxim <n>) entrades del registre curt al missatge de comissió "
 "de fusió"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "crea una única comissió en lloc de fusionar"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "realitza una comissió si la fusió té èxit (per defecte)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "edita el missatge abans de cometre"
 
@@ -7604,7 +7870,7 @@
 msgid "allow fast-forward (default)"
 msgstr "permet l'avanç ràpid (per defecte)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "avorta si l'avanç ràpid no és possible"
 
@@ -7612,20 +7878,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "Verifica que la comissió anomenada tingui una firma GPG vàlida"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "estratègia"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "estratègia de fusió a usar"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "opció=valor"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "opció per a l'estratègia de fusió seleccionada"
 
@@ -7663,8 +7929,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "Comissió d'aixafada -- no actualitzant HEAD\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "No s'ha pogut escriure al '%s'"
@@ -7682,41 +7948,41 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "Cap missatge de fusió -- no actualitzant HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' no assenyala una comissió"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Cadena branch.%s.mergeoptions dolenta: %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "No gestionant res a part de la fusió de dos caps."
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Opció desconeguda de merge-recursive: -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "no s'ha pogut escriure %s"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "No s'ha pogut llegir de '%s'"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "No cometent la fusió; useu 'git commit' per a completar la fusió.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7732,54 +7998,54 @@
 "S'ignoraran les línies que comencin amb '%c', i un missatge buit\n"
 "avorta la comissió.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Missatge de comissió buit."
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Meravellós.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 "La fusió automàtica ha fallat; arregleu els conflictes i després cometeu el "
 "resultat.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' no és una comissió"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "Cap branca actual."
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "No hi ha cap remot per a la branca actual."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "No hi ha cap font per defecte definida per a la branca actual."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "No hi ha cap branca amb seguiment remot per a %s de %s"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "no s'ha pogut tancar '%s'"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "No hi ha fusió a avortar (manca MERGE_HEAD)."
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7787,7 +8053,7 @@
 "No heu conclòs la vostra fusió (MERGE_HEAD existeix).\n"
 "Si us plau, cometeu els vostres canvis abans de fusionar."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7795,103 +8061,103 @@
 "No heu conclòs el vostre recull de cireres (CHERRY_PICK_HEAD existeix).\n"
 "Si us plau, cometeu els vostres canvis abans de fusionar."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr ""
 "No heu conclòs el vostre recull de cireres (CHERRY_PICK_HEAD existeix)."
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "No podeu combinar --squash amb --no-ff."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr ""
 "No hi ha una comissió especificada i merge.defaultToUpstream no està "
 "establert."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr "Aixafar una comissió a un cap buit encara no es permet"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "Una comissió no d'avanç ràpid no té sentit a un cap buit"
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - no és una cosa que puguem fusionar"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr "Es pot fusionar no més d'exactament una comissió a un cap buit"
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "La comissió %s té una firma GPG no fiable, suposadament de %s."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "La comissió %s té una firma GPG dolenta suposadament de %s."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "La comissió %s no té firma GPG."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "La comissió %s té una firma GPG bona de %s\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Actualitzant %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Intentant una fusió molt trivial en l'índex...\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "No.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "No és possible avançar ràpidament, avortant."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Rebobinant l'arbre a la pristina...\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Intentant l'estratègia de fusió %s...\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Cap estratègia de fusió ha gestionat la fusió.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "L'estratègia de fusió %s ha fallat.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Usant el %s per a preparar la resolució a mà.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -7979,19 +8245,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "estableix les etiquetes per a fitxer1/fitxer-original/fitxer2"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "l'entrada és acabada amb NUL"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "permet els objectes absents"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "permet la creació de més d'un arbre"
 
@@ -7999,92 +8265,92 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<opcions>] <font>... <destí>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "El directori %s és en l'índex i no hi ha cap submòdul?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
 "Si us plau, allisteu els vostres canvis a .gitmodules o emmagatzemeu-los per "
 "a procedir"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s és en l'índex"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "força el moviment / canvi de nom encara que el destí existeixi"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "omet els errors de moviment / canvi de nom"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "el destí '%s' no és un directori"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "Comprovant el canvi de nom de '%s' a '%s'\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "font dolenta"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "no es pot moure un directori a dins d'ell mateix"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "no es pot moure un directori sobre un fitxer"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "el directori font està buit"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "no està sota control de versions"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "el destí existeix"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "sobreescrivint '%s'"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "No es pot sobreescriure"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "múltiples fonts per al mateix destí"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "el directori destí no existeix"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, origen=%s, destí=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Canviant el nom de %s a %s\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "el canvi del nom de '%s' ha fallat"
@@ -8287,9 +8553,9 @@
 msgstr "no s'ha pogut obrir o llegir '%s'"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "S'ha fallat en resoldre '%s' com a referència vàlida."
@@ -8304,42 +8570,42 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "No es pot llegir les dades de node de l'objecte no de blob '%s'."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "massa paràmetres"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "No s'ha trobat cap nota per a l'objecte %s."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "anota els continguts com a cadena"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "anota els continguts en un fitxer"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "reusa i edita l'objecte de nota especificat"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "reusa l'objecte de nota especificat"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "permet l'emmagatzematge d'una nota buida"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "reemplaça les notes existents"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8348,30 +8614,30 @@
 "No es pot afegir les notes. S'han trobat notes existents de l'objecte %s. "
 "Useu '-f' per a sobreescriure les notes existents."
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Sobreescrivint les notes existents de l'objecte %s\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Eliminant la nota de l'objecte %s\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "llegeix els objectes des d'stdin"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr ""
 "carrega la configuració de reescriptura per a <ordre> (implica --stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "hi ha massa pocs paràmetres"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8380,12 +8646,12 @@
 "No es pot copiar les notes. S'han trobat notes existents de l'objecte %s. "
 "Useu '-f' per a sobreescriure les notes existents."
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Manquen notes a l'objecte font %s. No es pot copiar."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8394,15 +8660,15 @@
 "S'han desaprovat les opcions -m/-F/-c/-C en favor de la subordre 'edit'.\n"
 "Si us plau, useu 'git notes add -f -m/-F/-c/-C' en lloc d'això.\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "Opcions generals"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "Opcions de fusió"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
@@ -8410,49 +8676,49 @@
 "resol els conflictes de nota usant l'estratègia donada (manual/ours/theirs/"
 "union/cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "Cometent les notes sense fusionar"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "finalitza la fusió de notes cometent les notes sense fusionar"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "Avortant la resolució de fusió de notes"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "avorta la fusió de notes"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "Una fusió de notes a %s ja està en curs a %s"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "L'objecte %s no té cap nota\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "l'intent d'eliminar una nota no existent no és un error"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "llegeix els noms d'objecte des de l'entrada estàndard"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "referència de notes"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "usa les notes de <referència-de-notes>"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "Subordre desconeguda: %s"
@@ -8476,176 +8742,176 @@
 msgid "deflate error (%d)"
 msgstr "error de deflació (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "Escrivint els objectes"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr ""
 "inhabilitant l'escriptura de mapes de bits, perquè alguns objectes no "
 "s'estan empaquetant"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "Comprimint objectes"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "versió d'índex no compatible %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "versió d'índex dolenta '%s'"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "no mostris l'indicador de progrés"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "mostra l'indicador de progrés"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "mostra l'indicador de progrés durant la fase d'escriptura d'objectes"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "similar a --all-progress quan l'indicador de progrés es mostra"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "versió[,desplaçament]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr ""
 "escriu el fitxer d'índex de paquet en la versió de format d'índex "
 "especificada"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "mida màxima de cada fitxer de paquet de sortida"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr ""
 "ignora els objectes prestats d'un emmagatzemament d'objectes alternatiu"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "ignora els objectes empaquetats"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "limita la finestra d'empaquetament per objectes"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr ""
 "limita la finestra d'empaquetament per memòria a més del límit d'objectes"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "longitud màxima de la cadena de deltes permesa en el paquet resultant"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "reusa les deltes existents"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "reusa els objectes existents"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "usa objectes OFS_DELTA"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr "usa fils en cercar les millores coincidències de delta"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "no creïs una emissió de paquet buida"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "llegeix els paràmetres de revisió des de l'entrada estàndard"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "limita els objectes als quals encara no s'hagin empaquetat"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "inclou els objectes abastables de qualsevulla referència"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr ""
 "inclou els objectes als quals facin referència les entrades del registre de "
 "referències"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "inclou els objectes als quals faci referència l'índex"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "emet el paquet a stdout"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr ""
 "inclou els objectes d'etiqueta que facin referència als objectes a empaquetar"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "retén els objectes inabastables"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "hora"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "desempaqueta els objectes inabastables més nous que <hora>"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "crea paquets prims"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "crea paquets adequats per a les obtencions superficials"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "ignora els paquets que tinguin un fitxer .keep corresponent"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "nivell de compressió de paquet"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "no amaguis les comissions per empelt"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr ""
 "usa un índex de mapa de bits, si està disponible, per a accelerar el "
 "recompte d'objectes"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "escriu un índex de mapa de bits junt amb l'índex de paquet"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "Comptant els objectes"
 
@@ -8689,49 +8955,53 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "no es pot podar en un dipòsit d'objectes precioses"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [opcions] [<dipòsit> [<especificació-de-referència>...]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "Opcions relacionades amb fusionar"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "incorpora els canvis per rebasar en lloc de fusionar"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "permet l'avanç ràpid"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "verifica que la comissió anomenada tingui una firma GPG vàlida"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "Opcions relacionades amb obtenir"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "nombre de submòduls baixats en paral·lel"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Valor no vàlid per a pull.ff: %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr "No es pot baixar amb rebasament: Teniu canvis no allistats."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "Addicionalment, el vostre índex conté canvis sense cometre."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr ""
 "No es pot baixar amb rebasament: El vostre índex conté canvis sense cometre."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -8739,13 +9009,13 @@
 "No hi ha cap candidat sobre el qual rebasar entre les referències que acabeu "
 "d'obtenir."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 "No hi ha candidats per a fusionar entre les referències que acabeu d'obtenir."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -8753,7 +9023,7 @@
 "Generalment això vol dir que heu proveït una especificació de\n"
 "referència de comodí que no tenia cap coincidència en el costat remot."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8764,27 +9034,27 @@
 "Perquè aquest no és el remot configurat per defecte per a la vostra\n"
 "branca actual, heu d'especificar una branca en la línia d'ordres."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "Actualment no sou en cap branca."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "Si us plau, especifiqueu sobre què branca voleu rebasar."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "Si us plau, especifiqueu amb què branca voleu fusionar."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "Vegeu git-pull(1) per detalls."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "No hi ha cap informació de seguiment per a la branca actual."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8796,7 +9066,7 @@
 "\n"
 "    git branch --set-upstream-to=%s/<branca> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8805,11 +9075,11 @@
 "La vostra configuració especifica fusionar amb la referència '%s'\n"
 "del remot, però no s'ha obtingut tal referència."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "Actualitzant una branca no nascuda amb canvis afegits a l'índex."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8820,7 +9090,7 @@
 "avançant ràpidament el vostre arbre de treball des de\n"
 "la comissió %s."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8838,11 +9108,11 @@
 "$ git reset --hard\n"
 "per a recuperar."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "No es pot fusionar múltiples branques a un cap buit."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "No es pot rebasar sobre múltiples branques."
 
@@ -8850,15 +9120,15 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<opcions>] [<dipòsit> [<especificació-de-referència>...]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "abreviatura d'etiqueta sense <tag>"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete només accepta noms de referència de destí senzills"
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -8867,7 +9137,7 @@
 "Per a triar qualsevulla opció permanentment, vegeu push.default a 'git help "
 "config'."
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8892,7 +9162,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8907,7 +9177,7 @@
 "\n"
 "    git push %s HEAD:<nom-de-branca-remota>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8920,12 +9190,12 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "La branca actual %s té múltiples branques fonts, refusant pujar."
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8936,61 +9206,14 @@
 "branca actual '%s', sense dir-me què pujar per a actualitzar\n"
 "quina branca remota."
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default no està establert; el seu valor implícit s'ha\n"
-"canviat en el Git 2.0 de 'matching' a 'simple'. Per a suprimir\n"
-"aquest missatge i mantenir el comportament tradicional,\n"
-"useu:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"Per a suprimir aquest missatge i adoptar el comportament nou ara, useu:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"Quan push.default és 'matching', git pujarà les branques locals a les\n"
-"branques remotes que ja existeixen amb el mateix nom.\n"
-"\n"
-"Des del Git 2.0, el Git per defecte té el comportament més\n"
-"conservatiu 'simple', que només puja la branca actual a la branca\n"
-"corresponent que 'git pull' usa per a actualitzar la branca actual.\n"
-"\n"
-"Vegeu 'git help config' i cerqueu 'push.default' per a més informació.\n"
-"(s'ha introduït el mode 'simple' en el Git 1.7.11. Useu el mode similar\n"
-"'current' en lloc de 'simple' si a vegades useu versions més antigues\n"
-"del Git)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
 "No heu especificat cap especificació de referència a pujar, i push.default "
 "és \"nothing\"."
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -9002,7 +9225,7 @@
 "els canvis remots (per exemple, 'git pull ...') abans de pujar de nou.\n"
 "Vegeu la 'Nota sobre avanços ràpids' a 'git push --help' per detalls."
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -9015,7 +9238,7 @@
 "abans de pujar de nou.\n"
 "Vegeu la 'Nota sobre avanços ràpids' a 'git push --help' per detalls."
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -9030,12 +9253,12 @@
 "pujar de nou.\n"
 "Vegeu la 'Nota sobre avanços ràpids' a 'git push --help' per detalls."
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr ""
 "S'han rebutjat les actualitzacions perquè l'etiqueta ja existeix en el remot."
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -9046,22 +9269,22 @@
 "fer que assenyali un objecte no de comissió, sense usar l'opció\n"
 "'--force'.\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "Pujant a %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "s'ha fallat en pujar algunes referències a '%s'"
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "dipòsit dolent '%s'"
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -9083,104 +9306,100 @@
 "\n"
 "    git push <nom>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all i --tags són incompatibles"
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all no es pot combinar amb especificacions de referència"
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror i --tags són incompatibles"
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror no es pot combinar amb especificacions de referència"
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all i --mirror són incompatibles"
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "dipòsit"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "puja totes les referències"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "reflecteix totes les referències"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "suprimeix les referències"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "puja les etiquetes (no es pot usar amb --all o --mirror)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "força les actualitzacions"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "nom-de-referència>:<esperat"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "requereix que el valor antic de la referència sigui d'aquest valor"
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "comprova|sota demanda|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "controla la pujada recursiva dels submòduls"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "usa el paquet prim"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "programa que rep els paquets"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "estableix la font per a git pull/status"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "poda les referències eliminades localment"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "evita el ganxo de prepujada"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "puja les etiquetes absents però rellevants"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "firma la pujada amb GPG"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "demana una transacció atòmica al costat remot"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete és incompatible amb --all, --mirror i --tags"
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete no té sentit sense referències"
 
@@ -9258,12 +9477,12 @@
 msgid "debug unpack-trees"
 msgstr "depura unpack-trees"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%s' per a '%s' no és una marca de temps vàlida"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s' no és una marca de temps vàlida"
@@ -9406,56 +9625,46 @@
 msgstr ""
 "especificar les branques a seguir té sentit només amb miralls d'obtenció"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "el remot %s ja existeix."
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s' no és un nom de remot vàlid"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "No s'ha pogut configurar la mestra '%s'"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr ""
 "No s'ha pogut obtenir el mapa d'obtenció de l'especificació de referència %s"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(coincident)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(suprimir)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "No s'ha pogut annexar '%s' a '%s'"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "No hi ha tal remot: %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "No s'ha pogut canviar el nom de la secció de configuració '%s' a '%s'"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "No s'ha pogut eliminar la secció de configuració '%s'"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9466,27 +9675,17 @@
 "\t%s\n"
 "\tSi us plau, actualitzeu la configuració manualment si és necessari."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "No s'ha pogut annexar '%s'"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "No s'ha pogut establir '%s'"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "la supressió de '%s' ha fallat"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "la creació de '%s' ha fallat"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9501,278 +9700,283 @@
 "eliminat;\n"
 "per a suprimir-les, useu:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "No s'ha pogut eliminar la secció de configuració '%s'"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " nou (la pròxima obtenció emmagatzemarà a remotes/%s)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " seguit"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " estancat (useu 'git remote prune' per a eliminar)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "branch.%s.merge no vàlid; no es pot rebasar sobre > 1 branca"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "es rebasa sobre el remot %s"
+msgid "rebases interactively onto remote %s"
+msgstr "es rebasa interactivament sobre el remot %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr "es fusiona amb el remot %s"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    i amb el remot"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "es fusiona amb el remot %s"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   i amb el remot"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "crea"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "suprimeix"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "al dia"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "avanç ràpid possible"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "local no actualitzat"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s força a %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s puja a %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s força a %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s puja a %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "no consultis els remots"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* remot %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  URL d'obtenció: %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(sense URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  URL de pujada: %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  Branca de HEAD: %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr ""
 "  Branca de HEAD (el HEAD remot és ambigu, pot ser un dels següents):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] "  Branca remota:%s"
 msgstr[1] "  Branques remotes:%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (estat no consultat)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  Branca local configurada per a 'git pull':"
 msgstr[1] "  Branques locals configurades per a 'git pull':"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  'git push' reflectirà les referències locals"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  Referència local configurada per a 'git push'%s:"
 msgstr[1] "  Referències locals configurades per a 'git push'%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "estableix refs/remotes/<name>/HEAD segons el remot"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "suprimeix refs/remotes/<name>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "No es pot determinar el HEAD remot"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr ""
 "Múltiples branques de HEAD remotes. Si us plau, trieu-ne una explícitament "
 "amb:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "No s'ha pogut suprimir %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "No és una referència vàlida: %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "No s'ha pogut configurar %s"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s es tornarà penjant!"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s s'ha tornat penjant!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "Podant %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [podaria] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [podat] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "poda els remots després d'obtenir-los"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "No hi ha tal remot '%s'"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "afegeix branca"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "cap remot especificat"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "consulta els URL de pujada en lloc dels URL d'obteniment"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "retorna tots els URL"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "cap URL configurat per al remot '%s'"
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "manipula els URL de pujada"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "afegeix URL"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "suprimeix URLs"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete no té sentit"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Patró d'URL antic no vàlid: %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "No s'ha trobat tal URL: %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "No se suprimiran tots els URL no de pujada"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "sigues detallat; s'ha de col·locar abans d'una subordre"
 
@@ -10077,7 +10281,7 @@
 msgid "Could not write new index file."
 msgstr "No s'ha pogut escriure el fitxer d'índex nou."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "el rev-list no permet mostrar notes"
 
@@ -10333,29 +10537,24 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<opcions>] [<rang-de-revisions>] [[--] [<camí>...]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Manca l'autor: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "ordena la sortida segons el nombre de comissions per autor"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr ""
 "Omet les descripcions de comissió, només proveeix el recompte de comissions"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "Mostra l'adreça de correu electrònic de cada autor"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "Ajusta les línies de la sortida"
 
@@ -10499,43 +10698,43 @@
 "salta i elimina totes les línies començant amb el caràcter de comentari"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "anteposa el caràcter de comentari i espai blanc a cada línia"
+msgid "prepend comment character and space to each line"
+msgstr "anteposa el caràcter de comentari i un espai a cada línia"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "àncora alternativa per als camins relatius"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<camí>] [<camí>...]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <camí>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "No s'ha trobat cap mapatge de submòdul a .gitmodules per al camí '%s'"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "a on es clonarà el submòdul nou"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "nom del submòdul nou"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "url del qual clonar el submòdul"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "profunditat dels clons superficials"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10544,37 +10743,37 @@
 "<dipòsit>] [--name <nom>] [--url <url>][--depth <profunditat>] [--] "
 "[<camí>...]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "no s'ha pogut crear el directori '%s'"
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "el clonatge de '%s' al camí de submòdul '%s' ha fallat"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "no es pot obrir el fitxer '%s'"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "no s'ha pogut tancar el fitxer %s"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "no s'ha pogut obtenir el directori de submòdul per a '%s'"
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr "fatal: s'ha d'executar la subordre submodule--helper amb una subordre"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr "fatal: '%s' no és una subordre vàlida de submodule--helper"
@@ -10820,200 +11019,213 @@
 msgid "Unpacking objects"
 msgstr "Desempaquetant objectes"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "s'ha fallat en crear el directori %s"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "s'ha fallat en fer stat a %s"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "s'ha fallat en crear el fitxer %s"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "s'ha fallat en suprimir el fitxer %s"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "s'ha fallat en suprimir el directori %s"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "Provant "
+msgid "Testing mtime in '%s' "
+msgstr "Provant mtime en '%s'"
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr ""
 "la informació d'stat de directori no canvia després d'afegir un fitxer nou"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr ""
 "la informació d'stat de directori no canvia després d'afegir un directori nou"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr ""
 "la informació d'stat de directori canvia després d'actualitzar un fitxer"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr ""
 "la informació d'stat de directori canvia després d'afegir un fitxer dins "
 "d'un subdirectori"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr ""
 "la informació d'stat de directori no canvia després de suprimir un fitxer"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr ""
 "la informació d'stat de directori no canvia després de suprimir un directori"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " D'acord"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<opcions>] [--] [<fitxer>...]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr ""
 "continua l'actualització encara que l'índex necessiti una actualització"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "actualitza: ignora els submòduls"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "no ignoris els fitxers nous"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "deixa que els fitxers reemplacin els directoris i viceversa"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "tingues en compte els fitxers absents de l'arbre de treball"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr "actualitza encara que l'índex contingui entrades no fusionades"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "actualitza la informació d'estadístiques"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "com --refresh, però ignora l'ajust assume-unchanged"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<mode>,<objecte>,<camí>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "afegeix l'entrada especificada a l'índex"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "passa per alt el bit executable dels fitxers llistats"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "marca els fitxers com a \"no canviant\""
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "neteja el bit assumed-unchanged"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "marca els fitxers com a \"només índex\""
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "neteja el bit skip-worktree"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr ""
 "només afegeix a l'índex; no afegeixis el contingut a la base de dades "
 "d'objectes"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr ""
 "elimina els camins anomenats encara que estiguin presents en l'arbre de "
 "treball"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "amb --stdin: les línies d'entrada acaben amb octets nuls"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "llegeix la llista de camins a actualitzar des de l'entrada estàndard"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "afegeix les entrades de l'entrada estàndard a l'índex"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "reemplena les etapes #2 i #3 per als camins llistats"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "només actualitza les entrades que difereixin de HEAD"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "ignora els fitxers absents de l'arbre de treball"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "informa de les accions en la sortida estàndard"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(per a porcellanes) oblida't dels conflictes no resolts ni desats"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "escriu l'índex en aquest format"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "habilita o inhabilita l'índex dividit"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "habilita/inhabilita la memòria cau no seguida"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "prova si el sistema de fitxers admet la memòria cau no seguida"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr "habilita la memòria cau no seguida sense provar el sistema de fitxers"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "La memòria cau no seguida està inhabilitada"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "La memòria cau no seguida està habilitada per a '%s'"
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<opcions>] -d <nom-de-referència> [<valor-antic>]"
@@ -11132,33 +11344,33 @@
 msgid "'%s' already exists"
 msgstr "'%s' ja existeix"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "no s'ha pogut crear directori de '%s'"
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "Preparant %s (identificador %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "agafa <branca> encara que sigui agafada en altre arbre de treball"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "crea una branca nova"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "crea o restableix una branca"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "separa el HEAD a la comissió anomenada"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B i --detach són mutualment exclusius"
 
@@ -11178,7 +11390,7 @@
 msgid "only useful for debugging"
 msgstr "només útil per a la depuració"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "imprimeix els missatges de depuració a stderr"
 
@@ -11193,6 +11405,10 @@
 "'git help <concepte>' per a llegir sobre una subordre o concepte\n"
 "específic."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "No s'admet l'enganx de clau pública amb cURL < 7.44.0"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "començar una àrea de treball (vegeu també: git help tutorial)"
@@ -11276,8 +11492,8 @@
 "Actualitza les referències remotes juntament amb els objectes associats"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "Avança les comissions locals al cap font actualitzat"
+msgid "Reapply commits on top of another base tip"
+msgstr "Reaplica les comissions sobre un altre punt de basament"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11506,7 +11722,7 @@
 #: git-bisect.sh:606
 #, sh-format
 msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect."
-msgstr "Ordre invàlida: actualment esteu en una bisecció $TERM_BAD/$TERM_GOOD"
+msgstr "Ordre no vàlida: actualment esteu en una bisecció $TERM_BAD/$TERM_GOOD"
 
 #: git-bisect.sh:636
 msgid "no terms defined"
@@ -11518,7 +11734,7 @@
 "invalid argument $arg for 'git bisect terms'.\n"
 "Supported options are: --term-good|--term-old and --term-bad|--term-new."
 msgstr ""
-"paràmetre invàlid $arg per a 'git bisect terms'.\n"
+"paràmetre no vàlid $arg per a 'git bisect terms'.\n"
 "Les opcions admeses són: --term-good|--term-old i --term-bad|--term-new."
 
 #: git-rebase.sh:57
@@ -11985,7 +12201,7 @@
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr "Submòdul '$name' ($url) no registrat per al camí '$displaypath'"
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -11994,53 +12210,53 @@
 "Camí de submòdul '$displaypath' no inicialitzat\n"
 "Potser voleu usar 'update --init'?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr ""
 "No s'ha pogut trobar la revisió actual en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "No s'ha pogut obtenir en el camí de submòdul '$sm_path'"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "No s'ha pogut obtenir en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "No s'ha pogut agafar '$sha1' en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Camí de submòdul '$displaypath': s'ha agafat '$sha1'"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "no s'ha pogut rebasar '$sha1' en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Camí de submòdul '$displaypath': s'ha rebasat en '$sha1'"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "No s'ha pogut fusionar '$sha1' en el camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Camí de submòdul '$displaypath': s'ha fusionat en '$sha1'"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12048,50 +12264,50 @@
 "L'execució de '$command $sha1' ha fallat en el camí de submòdul '$prefix"
 "$sm_path'"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "Camí de submòdul '$prefix$sm_path': '$command $sha1'"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "S'ha fallat en recursar al camí de submòdul '$displaypath'"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "L'opció --cached no es pot usar amb l'opció --files"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "mode inesperat $mod_dst"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Avís: $display_name no conté la comissió $sha1_src"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Avís: $display_name no conté la comissió $sha1_dst"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr "  Avís: $display_name no conté les comissions $sha1_src i $sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "blob"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "S'ha fallat en recursar al camí de submòdul '$sm_path'"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Sincronitzant l'url de submòdul per a '$displaypath'"
diff --git a/po/de.po b/po/de.po
index 8c5f05d..0eadf34 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
 "PO-Revision-Date: 2015-01-21 15:01+0800\n"
 "Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n"
 "Language-Team: German <>\n"
@@ -31,7 +31,7 @@
 "dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren\n"
 "und zu committen."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert)."
 
@@ -75,7 +75,7 @@
 msgid "archive format"
 msgstr "Archivformat"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "Präfix"
 
@@ -83,11 +83,11 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "einen Präfix vor jeden Pfadnamen in dem Archiv stellen"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "Datei"
 
@@ -119,7 +119,7 @@
 msgid "list supported archive formats"
 msgstr "unterstützte Archivformate auflisten"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "Repository"
 
@@ -127,7 +127,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "Archiv vom Remote-Repository <Repository> abrufen"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "Programm"
 
@@ -135,7 +135,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "Pfad zum externen \"git-upload-archive\"-Programm"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -143,87 +143,105 @@
 "Verneinende Muster werden in Git-Attributen ignoriert.\n"
 "Benutzen Sie '\\!' für führende Ausrufezeichen."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Nachdem Sie die Fehlerursache behoben haben, können Sie\n"
+"die Tracking-Informationen mit\n"
+"\"git branch --set-upstream-to=%s%s%s\"\n"
+"erneut setzen."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "Branch %s kann nicht sein eigener Upstream-Branch sein."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr ""
 "Branch %s konfiguriert zum Folgen von Remote-Branch %s von %s durch Rebase."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "Branch %s konfiguriert zum Folgen von Remote-Branch %s von %s."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr "Branch %s konfiguriert zum Folgen von lokalem Branch %s durch Rebase."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "Branch %s konfiguriert zum Folgen von lokalem Branch %s."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr "Branch %s konfiguriert zum Folgen von Remote-Referenz %s durch Rebase."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "Branch %s konfiguriert zum Folgen von Remote-Referenz %s."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 "Branch %s konfiguriert zum Folgen von lokaler Referenz %s durch Rebase."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "Branch %s konfiguriert zum Folgen von lokaler Referenz %s."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Konnte Konfiguration zu Upstream-Branch nicht schreiben."
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr ""
 "Konfiguration zum Folgen von Branch nicht eingerichtet. Referenz %s ist "
 "mehrdeutig."
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "'%s' ist kein gültiger Branchname."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "Branch '%s' existiert bereits."
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "Kann Aktualisierung des aktuellen Branches nicht erzwingen."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr ""
 "Kann Tracking-Informationen nicht einrichten; Startpunkt '%s' ist kein "
 "Branch."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "der angeforderte Upstream-Branch '%s' existiert nicht"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -244,22 +262,22 @@
 "\"git push -u\" verwenden, um den Upstream-Branch beim \"push\"\n"
 "zu konfigurieren."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "Ungültiger Objekt-Name: '%s'"
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "mehrdeutiger Objekt-Name: '%s'"
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "Ungültiger Branchpunkt: '%s'"
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s' ist bereits in '%s' ausgecheckt"
@@ -283,10 +301,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
 
@@ -325,7 +343,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "nicht erkanntes Argument: %s"
@@ -348,8 +366,8 @@
 msgid "invalid color value: %.*s"
 msgstr "Ungültiger Farbwert: %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "konnte %s nicht parsen"
@@ -363,63 +381,68 @@
 msgid "memory exhausted"
 msgstr "Speicher verbraucht"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "Zeile %d in Konfigurationsdatei %s ist ungültig."
+msgid "bad config line %d in %s %s"
+msgstr "Zeile %d in Konfiguration %s %s ist ungültig."
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s' in %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s' in %s %s: %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "Ungültiger numerischer Wert '%s' für Konfiguration '%s': %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "Fehler beim Erweitern des Nutzerverzeichnisses in: '%s'"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "ungültiger zlib Komprimierungsgrad %d"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "Ungültiger Modus für Objekterstellung: %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr ""
-"Konnte die über die Kommandozeile angegebene Konfiguration nicht parsen."
+"Konnte die über die Befehlszeile angegebene Konfiguration nicht parsen."
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr ""
 "Es trat ein unbekannter Fehler beim Lesen der Konfigurationsdateien auf."
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr ""
-"Konnte Wert '%s' aus der über die Kommandozeile angegebenen\n"
-"Konfiguration nicht parsen."
+"Konnte Wert '%s' aus der über die Befehlszeile angegebenen Konfiguration\n"
+"nicht parsen."
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "ungültige Konfigurationsvariable '%s' in Datei '%s' bei Zeile %d"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s hat mehrere Werte"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Konnte '%s' nicht zu '%s' setzen."
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "Konnte 'git rev-list' nicht ausführen"
@@ -536,16 +559,16 @@
 "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
 "%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow erfordert genau eine Pfadspezifikation"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -554,18 +577,20 @@
 "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Cache für unversionierte Dateien ist auf diesem System deaktiviert."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr ""
+"Cache für unversionierte Dateien ist auf diesem System oder\n"
+"für dieses Verzeichnis deaktiviert."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -604,52 +629,52 @@
 msgid "'%s': short read %s"
 msgstr "'%s': read() zu kurz %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
-msgstr "Vorhandene Git-Kommandos in '%s'"
+msgstr "Vorhandene Git-Befehle in '%s'"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
-msgstr "Vorhandene Git-Kommandos anderswo in Ihrem $PATH"
+msgstr "Vorhandene Git-Befehle anderswo in Ihrem $PATH"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
-msgstr "Allgemeine Git-Kommandos, verwendet in verschiedenen Situationen:"
+msgstr "Allgemeine Git-Befehle, verwendet in verschiedenen Situationen:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
 "able to execute it. Maybe git-%s is broken?"
 msgstr ""
-"'%s' scheint ein git-Kommando zu sein, konnte aber\n"
+"'%s' scheint ein git-Befehl zu sein, konnte aber\n"
 "nicht ausgeführt werden. Vielleicht ist git-%s fehlerhaft?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
-msgstr "Uh oh. Keine Git-Kommandos auf Ihrem System vorhanden."
+msgstr "Uh oh. Keine Git-Befehle auf Ihrem System vorhanden."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
 "Continuing under the assumption that you meant '%s'"
 msgstr ""
-"Warnung: Sie haben das nicht existierende Git-Kommando '%s' ausgeführt.\n"
+"Warnung: Sie haben den nicht existierenden Git-Befehl '%s' ausgeführt.\n"
 "Setze fort unter der Annahme, dass Sie '%s' gemeint haben."
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "Automatische Ausführung in %0.1f Sekunden ..."
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
-msgstr "git: '%s' ist kein Git-Kommando. Siehe 'git --help'."
+msgstr "git: '%s' ist kein Git-Befehl. Siehe 'git --help'."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -663,7 +688,7 @@
 "\n"
 "Haben Sie eines von diesen gemeint?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
@@ -672,8 +697,8 @@
 msgid "failed to read the cache"
 msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "Konnte neue Index-Datei nicht schreiben."
 
@@ -691,64 +716,64 @@
 msgid "error building trees"
 msgstr "Fehler beim Erstellen der \"Tree\"-Objekte"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "Fehler beim Erstellen des Pfades '%s'%s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Entferne %s, um Platz für Unterverzeichnis zu schaffen\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": vielleicht ein Verzeichnis/Datei-Konflikt?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "verweigere, da unversionierte Dateien in '%s' verloren gehen würden"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "kann Objekt %s '%s' nicht lesen"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "Blob erwartet für %s '%s'"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "Fehler beim Öffnen von '%s'"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s'"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "weiß nicht was mit %06o %s '%s' zu machen ist"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "Fehler bei Ausführung des internen Merges"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "Konnte %s nicht zur Datenbank hinzufügen"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "nicht unterstützter Objekttyp im Verzeichnis"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -757,7 +782,7 @@
 "KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde "
 "im Arbeitsbereich gelassen."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -766,20 +791,20 @@
 "KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde "
 "im Arbeitsbereich bei %s gelassen."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "umbenennen"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "umbenannt"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s ist ein Verzeichnis in %s, füge es stattdessen als %s hinzu"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -788,148 +813,148 @@
 "KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" "
 "und \"%s\"->\"%s\" in Branch \"%s\"%s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (bleibt unaufgelöst)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "KONFLIKT (umbenennen/umbenennen): Benenne um %s->%s in %s. Benenne um %s->%s "
 "in %s"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Benenne stattdessen %s nach %s und %s nach %s um"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
 "KONFLIKT (umbenennen/hinzufügen): Benenne um %s->%s in %s. %s hinzugefügt in "
 "%s"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "Füge zusammengeführte Datei %s hinzu"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Füge stattdessen als %s hinzu"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "kann Objekt %s nicht lesen"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "Objekt %s ist kein Blob"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "ändern"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "geändert"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "Inhalt"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "hinzufügen/hinzufügen"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "automatischer Merge von %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "Submodul"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "KONFLIKT (%s): Merge-Konflikt in %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "Entferne %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "Datei/Verzeichnis"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "Verzeichnis/Datei"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "KONFLIKT (%s): Es existiert bereits ein Verzeichnis %s in %s. Füge %s als %s "
 "hinzu."
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "Füge %s hinzu"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Fataler Merge-Fehler. Sollte nicht passieren."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "Bereits aktuell!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "Zusammenführen der \"Tree\"-Objekte %s und %s fehlgeschlagen"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "unverarbeiteter Pfad??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "Merge:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "%u gemeinsamen Vorgänger-Commit gefunden"
 msgstr[1] "%u gemeinsame Vorgänger-Commits gefunden"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "Merge hat keinen Commit zurückgegeben"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "Konnte Objekt '%s' nicht parsen."
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "Konnte Index nicht schreiben."
 
@@ -1048,14 +1073,14 @@
 #, c-format
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr ""
-"%s: Pfadspezifikationsangabe wird von diesem Kommando nicht unterstützt: %s"
+"%s: Pfadspezifikationsangabe wird von diesem Befehl nicht unterstützt: %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "Pfadspezifikation '%s' ist hinter einer symbolischen Verknüpfung"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1089,166 +1114,251 @@
 "GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n"
 "Verwende Version %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen."
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "Konnte Referenz %s nicht entfernen: %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "Konnte Referenzen nicht entfernen: %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "Konnte Referenz %s nicht löschen"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "Format: %%(end) Atom ohne zugehöriges Atom verwendet"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "Positiver Wert erwartet contents:lines=%s"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "Erwartetes Format: %%(color:<Farbe>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "Konnte Format nicht parsen."
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "nicht erkannte Farbe: %%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "nicht erkanntes Format: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) akzeptiert keine Argumente"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) akzeptiert keine Argumente"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "Positiver Wert erwartet contents:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "nicht erkanntes %%(contents) Argument: %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "nicht erkanntes %%(objectname) Argument: %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "Erwartetes Format: %%(align:<Breite>,<Position>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "Sie haben ein ungültiges Format eingegeben align:%s"
+msgid "unrecognized position:%s"
+msgstr "nicht erkannte Position:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "nicht erkannte Breite:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "nicht erkanntes %%(align) Argument: %s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "Positive Breitenangabe für %%(align) erwartet"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "Fehlerhafter Feldname: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "Unbekannter Feldname: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "Format: %%(end) Atom ohne zugehöriges Atom verwendet"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "Fehlerhafter Formatierungsstring %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= erfordert eine positive Ganzzahl als Argument"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "Referenz '%s' hat keine %ld Komponenten für :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "Unbekanntes %.*s Format %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "Objekt %s fehlt für %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer bei %s für %s fehlgeschlagen"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "fehlerhaftes Objekt bei '%s'"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "Ignoriere Referenz mit fehlerhaftem Namen %s"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "Ignoriere fehlerhafte Referenz %s"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "Format: %%(end) Atom fehlt"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "Missgebildeter Objektname %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "Kann 'fetch' nicht für sowohl %s als auch %s nach %s ausführen."
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s folgt üblicherweise %s, nicht %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s folgt sowohl %s als auch %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "Interner Fehler"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD zeigt auf keinen Branch"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "Kein solcher Branch: '%s'"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert."
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "Upstream-Branch '%s' nicht als Remote-Tracking-Branch gespeichert"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr ""
 "Ziel für \"push\" '%s' auf Remote-Repository '%s' hat keinen lokal gefolgten "
 "Branch"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "Push-Refspecs für '%s' beinhalten nicht '%s'"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "kein Ziel für \"push\" (push.default ist 'nothing')"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "kann einzelnes Ziel für \"push\" im Modus 'simple' nicht auflösen"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr ""
 "Ihr Branch basiert auf '%s', aber der Upstream-Branch wurde entfernt.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "Ihr Branch ist auf dem selben Stand wie '%s'.\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "Ihr Branch ist vor '%s' um %d Commit.\n"
 msgstr[1] "Ihr Branch ist vor '%s' um %d Commits.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (benutzen Sie \"git push\", um lokale Commits zu publizieren)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1258,12 +1368,12 @@
 msgstr[1] ""
 "Ihr Branch ist zu '%s' um %d Commits hinterher, und kann vorgespult werden.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr ""
 "  (benutzen Sie \"git pull\", um Ihren lokalen Branch zu aktualisieren)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1278,30 +1388,30 @@
 "Ihr Branch und '%s' sind divergiert,\n"
 "und haben jeweils %d und %d unterschiedliche Commits.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr ""
 "  (benutzen Sie \"git pull\", um Ihren Branch mit dem Remote-Branch "
 "zusammenzuführen)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein."
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "Ihr aktueller Branch '%s' hat noch keine Commits."
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "Die Optionen --first-parent und --bisect sind inkompatibel."
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "Öffnen von /dev/null fehlgeschlagen"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "dup2(%d,%d) fehlgeschlagen"
@@ -1327,7 +1437,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "die Gegenseite unterstützt keinen atomaren Versand (\"--atomic push\")"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1335,7 +1445,7 @@
 "nach Auflösung der Konflikte, markieren Sie die korrigierten Pfade\n"
 "mit 'git add <Pfade>' oder 'git rm <Pfade>'"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1345,231 +1455,245 @@
 "mit 'git add <Pfade>' oder 'git rm <Pfade>'und tragen Sie das Ergebnis mit\n"
 "'git commit' ein"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "Konnte nicht nach %s schreiben"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Fehler bei Nachbereitung von %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr ""
 "Ihre lokalen Änderungen würden von \"cherry-pick\" überschrieben werden."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "Ihre lokalen Änderungen würden von \"revert\" überschrieben werden."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr ""
 "Committen Sie Ihre Änderungen oder benutzen Sie \"stash\", um fortzufahren."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: Konnte neue Index-Datei nicht schreiben"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "Konnte Commit von HEAD nicht auflösen\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "Konnte Cache-Verzeichnis nicht aktualisieren\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "Konnte Commit %s nicht parsen\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "Konnte Eltern-Commit %s nicht parsen\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "Ihre Index-Datei ist nicht zusammengeführt."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "Commit %s ist ein Merge, aber die Option -m wurde nicht angegeben."
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "Commit %s hat keinen Elternteil %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr "Hauptlinie wurde spezifiziert, aber Commit %s ist kein Merge."
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: kann Eltern-Commit %s nicht parsen"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "Kann keine Commit-Beschreibung für %s bekommen"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "Konnte \"revert\" nicht auf %s... (%s) ausführen"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "Konnte %s... (%s) nicht anwenden"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "leere Menge von Commits übergeben"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: Fehler beim Lesen des Index"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: Fehler beim Aktualisieren des Index"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "Kann %s nicht während eines %s durchführen"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "Konnte Zeile %d nicht parsen."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "Keine Commits geparst."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "Konnte %s nicht öffnen"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "Konnte %s nicht lesen."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Unbenutzbares Instruktionsblatt: %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Ungültiger Schlüssel: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Ungültiger Wert für %s: %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "Fehlerhaftes Optionsblatt: %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "versuchen Sie \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "Konnte \"sequencer\"-Verzeichnis %s nicht erstellen"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Fehler beim Einpacken von %s."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "kein \"cherry-pick\" oder \"revert\" im Gang"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "kann HEAD nicht auflösen"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "kann nicht abbrechen: bin auf einem Branch, der noch geboren wird"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "Kann %s nicht öffnen: %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "Kann %s nicht lesen: %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "Unerwartetes Dateiende"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "gespeicherte \"pre-cherry-pick\" HEAD Datei '%s' ist beschädigt"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "Konnte %s nicht formatieren."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s: %s kann nicht in \"cherry-pick\" benutzt werden"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s: ungültiger Commit"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "Kann nicht als allerersten Commit einen Revert ausführen."
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "Kann nicht als allerersten Commit einen Cherry-Pick ausführen."
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "Fehler beim Lesen von %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "Offset vor Ende der Packdatei (fehlerhafte Indexdatei?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "Offset vor Beginn des Pack-Index für %s (beschädigter Index?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "Offset hinter Ende des Pack-Index für %s (abgeschnittener Index?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1594,62 +1718,86 @@
 "indem Sie \"git config advice.objectNameWarning false\"\n"
 "ausführen."
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 "Kann nicht zusammengeführte .gitmodules-Datei nicht ändern, lösen\n"
 "Sie zuerst die Konflikte auf"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "Konnte keine Sektion in .gitmodules mit Pfad \"%s\" finden"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr "Konnte Eintrag '%s' in .gitmodules nicht aktualisieren"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "Konnte Eintrag '%s' nicht aus .gitmodules entfernen"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "Konnte aktualisierte .gitmodules-Datei nicht zum Commit vormerken"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Konnte core.worktree in '%s' nicht setzen."
+msgid "running trailer command '%s' failed"
+msgstr "Ausführen des Anhang-Befehls '%s' fehlgeschlagen"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "unbekannter Wert '%s' für Schlüssel %s"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "mehr als ein %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "leerer Anhang-Token in Anhang '%.*s'"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "Konnte Eingabe-Datei '%s' nicht lesen"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "konnte nicht von der Standard-Eingabe lesen"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "Konnte '%s' nicht lesen"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "Datei '%s' ist keine reguläre Datei"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "Datei %s ist vom Benutzer nicht beschreibbar."
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "konnte temporäre Datei '%s' nicht öffnen"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "konnte temporäre Datei nicht zu %s umbenennen"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "Konnte Referenz %s nicht lesen."
@@ -1687,47 +1835,47 @@
 msgid "invalid '..' path segment"
 msgstr "ungültiges '..' Pfadsegment"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "Konnte '%s' nicht zum Lesen und Schreiben öffnen."
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen."
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "Konnte '%s' nicht zum Lesen öffnen."
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "konnte nicht auf '%s' zugreifen: %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "konnte nicht auf '%s' zugreifen"
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "Konnte aktuelles Arbeitsverzeichnis nicht bekommen."
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen."
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "Konnte nicht nach '%s' schreiben."
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "Konnte '%s' nicht schließen."
@@ -1944,14 +2092,14 @@
 
 #: wt-status.c:1105
 msgid "No commands done."
-msgstr "Keine Kommandos ausgeführt."
+msgstr "Keine Befehle ausgeführt."
 
 #: wt-status.c:1108
 #, c-format
 msgid "Last command done (%d command done):"
 msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Letztes Kommando ausgeführt (%d Kommando ausgeführt):"
-msgstr[1] "Letzte Kommandos ausgeführt (%d Kommandos ausgeführt):"
+msgstr[0] "Zuletzt ausgeführter Befehl (%d Befehl ausgeführt):"
+msgstr[1] "Zuletzt ausgeführte Befehle (%d Befehle ausgeführt):"
 
 #: wt-status.c:1119
 #, c-format
@@ -1960,14 +2108,14 @@
 
 #: wt-status.c:1124
 msgid "No commands remaining."
-msgstr "Keine Kommandos verbleibend."
+msgstr "Keine Befehle verbleibend."
 
 #: wt-status.c:1127
 #, c-format
 msgid "Next command to do (%d remaining command):"
 msgid_plural "Next commands to do (%d remaining commands):"
-msgstr[0] "Nächstes auszuführendes Kommando (%d Kommando verbleibend):"
-msgstr[1] "Nächste auszuführende Kommandos (%d Kommandos verbleibend):"
+msgstr[0] "Nächster auszuführender Befehl (%d Befehle verbleibend):"
+msgstr[1] "Nächste auszuführende Befehle (%d Befehle verbleibend):"
 
 #: wt-status.c:1135
 msgid "  (use \"git rebase --edit-todo\" to view and edit)"
@@ -2227,7 +2375,11 @@
 msgid "behind "
 msgstr "hinterher "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "voraus "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "Konnte '%s' nicht entfernen."
@@ -2255,7 +2407,7 @@
 msgstr ""
 "Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "Konnte den Index nicht lesen"
 
@@ -2292,15 +2444,15 @@
 "Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien "
 "ignoriert:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "Probelauf"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "erweiterte Ausgaben"
 
@@ -2308,7 +2460,7 @@
 msgid "interactive picking"
 msgstr "interaktives Auswählen"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "Blöcke interaktiv auswählen"
 
@@ -2379,144 +2531,139 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Meinten Sie vielleicht 'git add .'?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "Index-Datei beschädigt"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "Konnte neue Index-Datei nicht schreiben."
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "Konnte '%s' nicht lesen"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "Konnte '%s' nicht lesen"
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "konnte Autor-Skript nicht parsen"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "'%s' wurde durch den applypatch-msg Hook entfernt"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "Fehlerhafte Eingabezeile: '%s'."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "\"fseek\" fehlgeschlagen"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "Konnte '%s' nicht zum Lesen öffnen: %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen: %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "konnte Patch '%s' nicht parsen"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "Es kann nur eine StGIT Patch-Serie auf einmal angewendet werden."
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "ungültiger Zeitstempel"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "Ungültige \"Date\"-Zeile"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "Ungültiger Offset in der Zeitzone"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "Patch-Formaterkennung fehlgeschlagen."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "Fehler beim Aufteilen der Patches."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "Konnte Index-Datei nicht schreiben."
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr ""
 "Wenn Sie das Problem aufgelöst haben, führen Sie \"%s --continue\" aus."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr ""
 "Falls Sie diesen Patch auslassen möchten, führen Sie stattdessen \"%s --skip"
 "\" aus."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr ""
 "Um den ursprünglichen Branch wiederherzustellen und die Anwendung der "
 "Patches abzubrechen, führen Sie \"%s --abort\" aus."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "Patch ist leer. War dessen Aufteilung falsch?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "Ungültige Identifikationszeile: %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "Konnte Commit '%s' nicht parsen."
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr ""
 "Dem Repository fehlen notwendige Blobs um auf einen 3-Wege-Merge "
 "zurückzufallen."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr ""
 "Verwende Informationen aus der Staging-Area, um ein Basisverzeichnis "
 "nachzustellen ..."
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2524,39 +2671,39 @@
 "Haben Sie den Patch per Hand editiert?\n"
 "Er kann nicht auf die Blobs in seiner 'index' Zeile angewendet werden."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "Falle zurück zum Patchen der Basis und zum 3-Wege-Merge ..."
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "Merge der Änderungen fehlgeschlagen."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "\"git write-tree\" schlug beim Schreiben eines \"Tree\"-Objektes fehl"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "auf leere Historie anwenden"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "Fehler beim Schreiben des Commit-Objektes."
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "Kann nicht fortsetzen: %s existiert nicht"
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 "Kann nicht interaktiv sein, ohne dass die Standard-Eingabe mit einem "
 "Terminal verbunden ist."
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "Commit-Beschreibung ist:"
 
@@ -2564,35 +2711,35 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "Anwenden? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "Geänderter Index: kann Patches nicht anwenden (geändert: %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Wende an: %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "Keine Änderungen -- Patches bereits angewendet."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "Anwendung des Patches fehlgeschlagen bei %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "Die Kopie des fehlgeschlagenen Patches befindet sich in: %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2603,7 +2750,7 @@
 "diese bereits anderweitig eingefügt worden sein; Sie könnten diesen Patch\n"
 "auslassen."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2611,17 +2758,17 @@
 "Sie haben immer noch nicht zusammengeführte Pfade im Index.\n"
 "Haben Sie vergessen 'git add' zu benutzen?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "Konnte Objekt '%s' nicht parsen."
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "Fehler beim Bereinigen des Index"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
@@ -2629,153 +2776,153 @@
 "Sie scheinen seit dem letzten gescheiterten 'am' HEAD geändert zu haben.\n"
 "Keine Zurücksetzung zu ORIG_HEAD."
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "Ungültiger Wert für --patch-format: %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<Optionen>] [(<mbox>|<E-Mail-Verzeichnis>)...]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<Optionen>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "interaktiv ausführen"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "historische Option -- kein Effekt"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "weniger Ausgaben"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "der Commit-Beschreibung eine Signed-off-by Zeile hinzufügen"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "nach UTF-8 umkodieren (Standard)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "-k an git-mailinfo übergeben"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "-b an git-mailinfo übergeben"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "-m an git-mailinfo übergeben"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "--keep-cr an git-mailsplit für mbox-Format übergeben"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr "kein --keep-cr an git-mailsplit übergeben, unabhängig von am.keepcr"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "alles vor einer Scheren-Zeile entfernen"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "Aktion"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "an git-apply übergeben"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "Wurzelverzeichnis"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "Pfad"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "Anzahl"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "Anzahl"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "Format"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "Patch-Format"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "Meldung bei fehlerhafter Patch-Anwendung überschreiben"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "Anwendung der Patches nach Auflösung eines Konfliktes fortsetzen"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "Synonyme für --continue"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "den aktuellen Patch auslassen"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr ""
 "ursprünglichen Branch wiederherstellen und Anwendung der Patches abbrechen"
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "Autor-Datum als Commit-Datum verwenden"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "aktuellen Zeitstempel als Autor-Datum verwenden"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "GPG-Schlüsselkennung"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "Commits mit GPG signieren"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(intern für git-rebase verwendet)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2783,16 +2930,16 @@
 "Die -b/--binary Option hat seit Langem keinen Effekt und wird\n"
 "entfernt. Bitte verwenden Sie diese nicht mehr."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "Fehler beim Lesen des Index"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "Vorheriges Rebase-Verzeichnis %s existiert noch, aber mbox gegeben."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2801,7 +2948,7 @@
 "Stray %s Verzeichnis gefunden.\n"
 "Benutzen Sie \"git am --abort\", um es zu entfernen."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "Es ist keine Auflösung im Gange, es wird nicht fortgesetzt."
 
@@ -3152,148 +3299,148 @@
 msgid "unable to read index file"
 msgstr "Konnte Index-Datei nicht lesen"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "keine Änderungen im angegebenen Pfad anwenden"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "Änderungen nur im angegebenen Pfad anwenden"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr ""
 "<Anzahl> vorangestellte Schrägstriche von herkömmlichen Differenzpfaden "
 "entfernen"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "hinzugefügte Zeilen des Patches ignorieren"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr ""
 "anstatt der Anwendung des Patches, den \"diffstat\" für die Eingabe "
 "ausgegeben"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr ""
 "die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation anzeigen"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr ""
 "anstatt der Anwendung des Patches, eine Zusammenfassung für die Eingabe "
 "ausgeben"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr ""
 "anstatt der Anwendung des Patches, zeige ob Patch angewendet werden kann"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr ""
 "sicherstellen, dass der Patch mit dem aktuellen Index angewendet werden kann"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "Patch anwenden, ohne Änderungen im Arbeitsverzeichnis vorzunehmen"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr ""
 "Patch anwenden, der Änderungen außerhalb des Arbeitsverzeichnisses vornimmt"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "Patch anwenden (Benutzung mit --stat/--summary/--check)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "versuche 3-Wege-Merge, wenn der Patch nicht angewendet werden konnte"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr ""
 "einen temporären Index, basierend auf den integrierten Index-Informationen, "
 "erstellen"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "Pfade sind getrennt durch NUL Zeichen"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr ""
 "sicher stellen, dass mindestens <n> Zeilen des Kontextes übereinstimmen"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "neue oder geänderte Zeilen, die Whitespace-Fehler haben, ermitteln"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "Änderungen im Whitespace bei der Suche des Kontextes ignorieren"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "den Patch in umgekehrter Reihenfolge anwenden"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "keinen Kontext erwarten"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr ""
 "zurückgewiesene Patch-Blöcke in entsprechenden *.rej Dateien hinterlassen"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "sich überlappende Patch-Blöcke erlauben"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende tolerieren"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "den Zeilennummern im Kopf des Patch-Blocks nicht vertrauen"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "<Wurzelverzeichnis> vor alle Dateinamen stellen"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr ""
 "Die Option --3way kann nicht außerhalb eines Repositories verwendet werden."
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr ""
 "Die Option --index kann nicht außerhalb eines Repositories verwendet werden."
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr ""
 "Die Option --cached kann nicht außerhalb eines Repositories verwendet werden."
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "kann Patch '%s' nicht öffnen"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "unterdrückte %d Whitespace-Fehler"
 msgstr[1] "unterdrückte %d Whitespace-Fehler"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3347,106 +3494,114 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "BISECT_HEAD aktualisieren, anstatt den aktuellen Commit auszuchecken"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<Optionen>] [<rev-opts>] [<Commit>] [--] <Datei>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<rev-opts> sind dokumentiert in git-rev-list(1)"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Verarbeite Zeilen"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr "\"blame\"-Einträge schrittweise anzeigen, während wir sie generieren"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "leere SHA-1 für Grenz-Commits anzeigen (Standard: aus)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "Ursprungs-Commit nicht als Grenzen behandeln (Standard: aus)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "Statistiken zum Arbeitsaufwand anzeigen"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Fortschrittsanzeige erzwingen"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "Ausgabebewertung für \"blame\"-Einträge anzeigen"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "ursprünglichen Dateinamen anzeigen (Standard: auto)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "ursprüngliche Zeilennummer anzeigen (Standard: aus)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "Anzeige in einem Format für maschinelle Auswertung"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr ""
 "Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr ""
 "Den gleichen Ausgabemodus benutzen wie \"git-annotate\" (Standard: aus)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "Unbearbeiteten Zeitstempel anzeigen (Standard: aus)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Langen Commit-SHA1 anzeigen (Standard: aus)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Den Namen des Autors und den Zeitstempel unterdrücken (Standard: aus)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr ""
 "Anstatt des Namens die E-Mail-Adresse des Autors anzeigen (Standard: aus)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "Unterschiede im Whitespace ignorieren"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "Länger arbeiten, um bessere Übereinstimmungen zu finden"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "Commits von <Datei> benutzen, anstatt \"git-rev-list\" aufzurufen"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "Inhalte der <Datei>en als endgültiges Abbild benutzen"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "Bewertung"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "kopierte Zeilen innerhalb oder zwischen Dateien finden"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "verschobene Zeilen innerhalb oder zwischen Dateien finden"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "nur Zeilen im Bereich n,m verarbeiten, gezählt von 1"
 
@@ -3456,7 +3611,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "vor 4 Jahren, und 11 Monaten"
 
@@ -3659,157 +3814,157 @@
 "Branch ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist "
 "fehlgeschlagen."
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "Konnte Beschreibungsvorlage für Branch nicht schreiben: %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "Allgemeine Optionen"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "Hash und Betreff anzeigen; -vv: zusätzlich Upstream-Branch"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "Informationsmeldungen unterdrücken"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "den Übernahmemodus einstellen (siehe git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "Informationen zum Upstream-Branch ändern"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "farbige Ausgaben verwenden"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "auf Remote-Tracking-Branches wirken"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "nur Branches ausgeben, welche diesen Commit beinhalten"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "spezifische Aktionen für \"git-branch\":"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "Remote-Tracking und lokale Branches auflisten"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "vollständig zusammengeführten Branch entfernen"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "Branch löschen (auch wenn nicht zusammengeführt)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "einen Branch und dessen Reflog verschieben/umbenennen"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr ""
 "einen Branch verschieben/umbenennen, auch wenn das Ziel bereits existiert"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "Branchnamen auflisten"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "das Reflog des Branches erzeugen"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "die Beschreibung für den Branch bearbeiten"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "Erstellung, Verschiebung/Umbenennung oder Löschung erzwingen"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "nur zusammengeführte Branches ausgeben"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "nur nicht zusammengeführte Branches ausgeben"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "Branches in Spalten auflisten"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "Schüssel"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "sortiere nach diesem Feld"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "Objekt"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "nur Branches von diesem Objekt ausgeben"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Konnte HEAD nicht als gültige Referenz auflösen."
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "Die Optionen --column und --verbose sind inkompatibel."
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "Branchname erforderlich"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "zu losgelöstem HEAD kann keine Beschreibung hinterlegt werden"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "Beschreibung von mehr als einem Branch kann nicht bearbeitet werden"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "Noch kein Commit in Branch '%s'."
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "Branch '%s' nicht vorhanden."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "zu viele Branches für eine Umbenennen-Operation angegeben"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "zu viele Branches angegeben, um Upstream-Branch zu setzen"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
@@ -3817,43 +3972,43 @@
 "Konnte keinen neuen Upstream-Branch von HEAD zu %s setzen, da dieser auf\n"
 "keinen Branch zeigt."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "Kein solcher Branch '%s'"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "Branch '%s' existiert nicht"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr ""
 "zu viele Branches angegeben, um Konfiguration zu Upstream-Branch zu entfernen"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr ""
 "Konnte Konfiguration zu Upstream-Branch von HEAD nicht entfernen, da dieser\n"
 "auf keinen Branch zeigt."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "'HEAD' darf nicht manuell erstellt werden"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 "Die Optionen -a und -r bei 'git branch' können nicht gemeimsam mit einem "
 "Branchnamen verwendet werden."
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3862,7 +4017,7 @@
 "Die --set-upstream Option ist veraltet und wird entfernt. Benutzen Sie --"
 "track oder --set-upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3873,12 +4028,12 @@
 "Wenn Sie wollten, dass '%s' den Branch '%s' als Upstream-Branch hat, führen "
 "Sie aus:\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3977,7 +4132,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "nur .gitattributes vom Index verwenden"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "Dateinamen von der Standard-Eingabe lesen"
 
@@ -3985,7 +4140,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "Einträge von Ein- und Ausgabe mit NUL-Zeichen abschließen"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "Fortschrittsanzeige unterdrücken"
 
@@ -4039,52 +4194,56 @@
 msgid "no contacts specified"
 msgstr "keine Kontakte angegeben"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<Optionen>] [--] [<Datei>...]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "--stage sollte zwischen 1 und 3 oder 'all' sein"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "alle Dateien im Index auschecken"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "das Überschreiben bereits existierender Dateien erzwingen"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr ""
 "keine Warnung für existierende Dateien, und Dateien, die sich nicht im Index "
 "befinden"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "keine neuen Dateien auschecken"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "Dateiinformationen in der Index-Datei aktualisieren"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "eine Liste von Pfaden von der Standard-Eingabe lesen"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "den Inhalt in temporäre Dateien schreiben"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "Zeichenkette"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr ""
 "wenn Dateien erzeugt werden, stelle <Zeichenkette> dem Dateinamen voran"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "Dateien von dem benannten Stand kopieren"
 
@@ -4165,37 +4324,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD ist jetzt bei"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "Konnte HEAD nicht aktualisieren."
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Setze Branch '%s' neu\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Bereits auf '%s'\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Zu umgesetztem Branch '%s' gewechselt\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Zu neuem Branch '%s' gewechselt\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Zu Branch '%s' gewechselt\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... und %d weitere.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4218,7 +4381,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4245,152 +4408,152 @@
 " git branch <neuer-Branchname> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "interner Fehler im Revisionsgang"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "Vorherige Position von HEAD war"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "Sie sind auf einem Branch, der noch geboren wird"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "nur eine Referenz erwartet, %d gegeben."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "Ungültige Referenz: %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "Referenz ist kein \"Tree\"-Objekt: %s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' kann nicht mit '%s' verwendet werden"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "Branch"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "einen neuen Branch erzeugen und auschecken"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "einen Branch erstellen/umsetzen und auschecken"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "das Reflog für den neuen Branch erzeugen"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "HEAD zu benanntem Commit setzen"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "Informationen zum Upstream-Branch für den neuen Branch setzen"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "neuer Branch"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "neuer Branch ohne Eltern-Commit"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "unsere Variante für nicht zusammengeführte Dateien auschecken"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "ihre Variante für nicht zusammengeführte Dateien auschecken"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "Auschecken erzwingen (verwirft lokale Änderungen)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "ignorierte Dateien aktualisieren (Standard)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "Stil"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "Konfliktstil (merge oder diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "keine Einschränkung bei Pfadspezifikationen zum partiellen Auschecken"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "second guess 'git checkout <no-such-branch>'"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr ""
 "Prüfung, ob die Referenz bereits in einem anderen Arbeitsverzeichnis "
 "ausgecheckt wurde, deaktivieren"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "Fortschrittsanzeige erzwingen"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "Die Optionen -b, -B und --orphan schließen sich gegenseitig aus."
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "Bei der Option --track muss ein Branchname angegeben werden."
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "Vermisse Branchnamen; versuchen Sie -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "ungültige Pfadspezifikation"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4400,12 +4563,12 @@
 "Haben Sie beabsichtigt '%s' auszuchecken, welcher nicht als Commit aufgelöst "
 "werden kann?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach nimmt kein Pfad-Argument '%s'"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4444,7 +4607,7 @@
 msgid "failed to remove %s"
 msgstr "Fehler beim Löschen von %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4456,7 +4619,7 @@
 "foo        - Element anhand eines eindeutigen Präfix auswählen\n"
 "           - (leer) nichts auswählen"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4476,36 +4639,36 @@
 "*          - alle Elemente auswählen\n"
 "           - (leer) Auswahl beenden"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Wie bitte (%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "Ignorier-Muster eingeben>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "WARNUNG: Kann keine Einträge finden die Muster entsprechen: %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "Wählen Sie Einträge zum Löschen"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "'%s' löschen [y/N]? "
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "Tschüss."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4523,62 +4686,62 @@
 "help                - diese Meldung anzeigen\n"
 "?                   - Hilfe zur Auswahl mittels Eingabe anzeigen"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
-msgstr "*** Kommandos ***"
+msgstr "*** Befehle ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "Was nun"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "Würde das folgende Element entfernen:"
 msgstr[1] "Würde die folgenden Elemente entfernen:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "Keine Dateien mehr zum Löschen, beende."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "keine Namen von gelöschten Dateien ausgeben"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "Aktion erzwingen"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "interaktives Clean"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "ganze Verzeichnisse löschen"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "Muster"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "<Muster> zu den Regeln für ignorierte Pfade hinzufügen"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "auch ignorierte Dateien löschen"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "nur ignorierte Dateien löschen"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden."
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
@@ -4586,7 +4749,7 @@
 "clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; "
 "\"clean\" verweigert"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4598,151 +4761,168 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "kein Auschecken"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "ein Bare-Repository erstellen"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "ein Spiegelarchiv erstellen (impliziert --bare)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "von einem lokalen Repository klonen"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "lokal keine harten Verweise verwenden, immer Kopien"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "als verteiltes Repository einrichten"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "Submodule im Klon initialisieren"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "Vorlagenverzeichnis"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "Repository referenzieren"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "--reference nur während des Klonens benutzen"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "Name"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "<Name> statt 'origin' für Upstream-Repository verwenden"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "<Branch> auschecken, anstatt HEAD des Remote-Repositories"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
 msgid "depth"
 msgstr "Tiefe"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr ""
 "einen Klon mit unvollständiger Historie (shallow) in dieser Tiefe erstellen"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "nur einen Branch klonen, HEAD oder --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr ".git-Verzeichnis"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "Schlüssel=Wert"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "Konfiguration innerhalb des neuen Repositories setzen"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "nur IPv4-Adressen benutzen"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "nur IPv6-Adressen benutzen"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"Konnte keinen Verzeichnisnamen erraten.\n"
+"Bitte geben Sie ein Verzeichnis auf der Befehlszeile an."
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr "Referenziertes Repository '%s' wird noch nicht als verknüpftes\n"
+msgstr ""
+"Referenziertes Repository '%s' wird noch nicht als verknüpftes\n"
 "Arbeitsverzeichnis unterstützt."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "Referenziertes Repository '%s' ist kein lokales Repository."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr ""
 "Referenziertes Repository '%s' hat eine unvollständige Historie (shallow)."
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr ""
 "Referenziertes Repository '%s' ist mit künstlichen Vorgängern (\"grafts\") "
 "eingehängt."
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "Konnte '%s' nicht lesen"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s existiert und ist kein Verzeichnis"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "Konnte %s nicht lesen\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "Konnte Verweis '%s' nicht erstellen"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "Konnte Datei nicht nach '%s' kopieren"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "Fertig.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4752,123 +4932,132 @@
 "Sie können mit 'git status' prüfen, was ausgecheckt worden ist\n"
 "und das Auschecken mit 'git checkout -f HEAD' erneut versuchen.\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "Konnte zu klonenden Remote-Branch %s nicht finden."
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "Prüfe Konnektivität ... "
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet."
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "kann %s nicht aktualisieren"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
 "Externer HEAD bezieht sich auf eine nicht existierende Referenz und kann "
 "nicht ausgecheckt werden.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "konnte Parameter nicht in Konfigurationsdatei schreiben"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "Kann \"repack\" zum Aufräumen nicht aufrufen"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "Zu viele Argumente."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "Sie müssen ein Repository zum Klonen angeben."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "Die Optionen --bare und --origin %s sind inkompatibel."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "Repository '%s' existiert nicht."
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "Tiefe %s ist keine positive Zahl"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "Zielpfad '%s' existiert bereits und ist kein leeres Verzeichnis."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "Arbeitsverzeichnis '%s' existiert bereits."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Klone in Bare-Repository '%s' ...\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Klone nach '%s' ...\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr ""
 "Die Option --depth wird in lokalen Klonen ignoriert; benutzen Sie "
 "stattdessen file://"
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr ""
 "Quelle ist ein Repository mit unvollständiger Historie (shallow),ignoriere --"
 "local"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local wird ignoriert"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Weiß nicht wie %s zu klonen ist."
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "Sie scheinen ein leeres Repository geklont zu haben."
 
@@ -4929,7 +5118,7 @@
 "Ihr Name und E-Mail Adresse wurden automatisch auf Basis\n"
 "Ihres Benutzer- und Rechnernamens konfiguriert. Bitte prüfen Sie, dass\n"
 "diese zutreffend sind. Sie können diese Meldung unterdrücken, indem Sie\n"
-"diese explizit setzen. Führen Sie dazu das folgende Kommando aus und folgen\n"
+"diese explizit setzen. Führen Sie dazu den folgenden Befehl aus und folgen\n"
 "Sie den Anweisungen in Ihrem Editor, um die Konfigurationsdatei zu "
 "bearbeiten:\n"
 "\n"
@@ -4973,7 +5162,7 @@
 "remove the commit entirely with \"git reset HEAD^\".\n"
 msgstr ""
 "Sie fragten den jüngsten Commit nachzubessern, aber das würde diesen leer\n"
-"machen. Sie können Ihr Kommando mit --allow-empty wiederholen, oder diesen\n"
+"machen. Sie können Ihren Befehl mit --allow-empty wiederholen, oder diesen\n"
 "Commit mit \"git reset HEAD^\" vollständig entfernen.\n"
 
 #: builtin/commit.c:78
@@ -5084,7 +5273,7 @@
 msgid "could not lookup commit %s"
 msgstr "Konnte Commit %s nicht nachschlagen"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(lese Log-Nachricht von Standard-Eingabe)\n"
@@ -5281,8 +5470,8 @@
 msgid "show branch information"
 msgstr "Branchinformationen anzeigen"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "maschinenlesbare Ausgabe"
 
@@ -5373,8 +5562,8 @@
 msgid "override date for commit"
 msgstr "Datum eines Commits überschreiben"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "Beschreibung"
 
@@ -5411,7 +5600,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "Sie als Autor des Commits setzen (verwendet mit -C/-c/--amend)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "'Signed-off-by:'-Zeile hinzufügen"
 
@@ -5436,7 +5625,7 @@
 msgid "include status in commit message template"
 msgstr "Status in die Commit-Beschreibungsvorlage einfügen"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "Commit mit GPG signieren"
@@ -5528,139 +5717,145 @@
 "voll und Ihr Kontingent nicht aufgebraucht ist und führen Sie\n"
 "anschließend \"git reset HEAD\" zu Wiederherstellung aus."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<Optionen>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "Ort der Konfigurationsdatei"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "globale Konfigurationsdatei verwenden"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "systemweite Konfigurationsdatei verwenden"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "Konfigurationsdatei des Repositories verwenden"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "die angegebene Konfigurationsdatei verwenden"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "Blob-Id"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "Konfiguration von angegebenem Blob-Objekt lesen"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "Aktion"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "Wert zurückgeben: Name [Wert-regex]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "alle Werte zurückgeben: Schlüssel [Wert-regex]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "Werte für den regulären Ausdruck zurückgeben: Name-regex [Wert-regex]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "Wert spezifisch für eine URL zurückgeben: section[.var] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "alle passenden Variablen ersetzen: Name Wert [Wert-regex] "
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "neue Variable hinzufügen: Name Wert"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "eine Variable entfernen: Name [Wert-regex]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "alle Übereinstimmungen entfernen: Name [Wert-regex]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "eine Sektion umbenennen: alter-Name neuer-Name"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "eine Sektion entfernen: Name"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "alles auflisten"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "einen Editor öffnen"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "die konfigurierte Farbe finden: Slot [Standard]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "die Farbeinstellung finden: Slot [Standard-Ausgabe-ist-Terminal]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "Typ"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "Wert ist \"true\" oder \"false\""
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "Wert ist eine Dezimalzahl"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "Wert ist --bool oder --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "Wert ist ein Pfad (Datei oder Verzeichnisname)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "Sonstiges"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "schließt Werte mit NUL-Byte ab"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "nur Variablennamen anzeigen"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "beachtet \"include\"-Direktiven beim Nachschlagen"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"Ursprung der Konfiguration anzeigen (Datei, Standard-Eingabe, Blob, "
+"Befehlszeile)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "konnte Standard-Farbwert nicht parsen"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5675,7 +5870,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "Konnte Konfigurationsdatei '%s' nicht erstellen."
@@ -5927,167 +6122,171 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<Optionen>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "fordert von allen Remote-Repositories an"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "an .git/FETCH_HEAD anhängen, anstatt zu überschreiben"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "das Überschreiben von lokalen Branches erzwingen"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "von mehreren Remote-Repositories anfordern"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "alle Tags und verbundene Objekte anfordern"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "nicht alle Tags anfordern (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "Anzahl der parallel anzufordernden Submodule"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr ""
 "Remote-Tracking-Branches entfernen, die sich nicht mehr im Remote-Repository "
 "befinden"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "bei-Bedarf"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "rekursive Anforderungen von Submodulen kontrollieren"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "heruntergeladenes Paket behalten"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "Aktualisierung der \"HEAD\"-Referenz erlauben"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr ""
 "die Historie eines Klons mit unvollständiger Historie (shallow) vertiefen"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "zu einem vollständigen Repository konvertieren"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "Verzeichnis"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "dies an die Ausgabe der Submodul-Pfade voranstellen"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "Standard-Modus für Rekursion"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "Referenzen, die .git/shallow aktualisieren, akzeptieren"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "Refmap"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "Refmap für 'fetch' angeben"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "Konnte Remote-Referenz von HEAD nicht finden."
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "Objekt %s nicht gefunden"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[aktuell]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr ""
 "! %-*s %-*s -> %s  (kann \"fetch\" im aktuellen Branch nicht ausführen)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[zurückgewiesen]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[Tag Aktualisierung]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (kann lokale Referenz nicht aktualisieren)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[neues Tag]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[neuer Branch]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[neue Referenz]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "kann lokale Referenz nicht aktualisieren"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "Aktualisierung erzwungen"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(kein Vorspulen)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "kann %s nicht öffnen: %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr ""
 "%s wurde zurückgewiesen, da Ursprungs-Commits von Repositoriesmit "
 "unvollständiger Historie (shallow) nicht aktualisiert werden dürfen."
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "Von %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -6096,57 +6295,57 @@
 "Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n"
 "'git remote prune %s', um jeden älteren, widersprüchlichen Branch zu löschen."
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s wird unreferenziert)"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s wurde unreferenziert)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[gelöscht]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(nichts)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr ""
 "Der \"fetch\" in den aktuellen Branch %s von einem nicht-Bare-Repository "
 "wurde verweigert."
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "Option \"%s\" Wert \"%s\" ist nicht gültig für %s"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "Option \"%s\" wird ignoriert für %s\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "Weiß nicht wie von %s angefordert wird."
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Fordere an von %s\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "Konnte nicht von %s anfordern"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -6155,35 +6354,35 @@
 "oder den Namen des Remote-Repositories an, von welchem neue\n"
 "Commits angefordert werden sollen."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "Sie müssen den Namen des Tags angeben."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr ""
 "Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden."
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr ""
 "Die Option --unshallow kann nicht in einem Repository mit unvollständiger "
 "Historie verwendet werden."
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all akzeptiert kein Repository als Argument"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all kann nicht mit Refspecs verwendet werden."
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr ""
 "Das Abholen einer Gruppe von Remote-Repositories kann nicht mit der Angabe\n"
@@ -6418,236 +6617,250 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<Optionen>] [-e] <Muster> [<Commit>...] [[--] <Pfad>...]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: Fehler beim Erzeugen eines Thread: %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "ungültige Anzahl von Threads (%d) für %s angegeben"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "konnte \"Tree\"-Objekt (%s) nicht lesen"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "kann \"grep\" nicht mit Objekten des Typs %s durchführen"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "Schalter '%c' erwartet einen numerischen Wert"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "kann '%s' nicht öffnen"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "im Index anstatt im Arbeitsverzeichnis suchen"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "auch in Inhalten finden, die nicht von Git verwaltet werden"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "in versionierten und unversionierten Dateien suchen"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "Dateien, die über '.gitignore' angegeben sind, ignorieren"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "Zeilen ohne Übereinstimmungen anzeigen"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "Übereinstimmungen unabhängig von Groß- und Kleinschreibung finden"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "nur ganze Wörter suchen"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "binäre Dateien als Text verarbeiten"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "keine Muster in Binärdateien finden"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "binäre Dateien mit \"textconv\"-Filtern verarbeiten"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "höchstens <Tiefe> Ebenen durchlaufen"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "erweiterte reguläre Ausdrücke aus POSIX verwenden"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "grundlegende reguläre Ausdrücke aus POSIX verwenden (Standard)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "Muster als feste Zeichenketten interpretieren"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "Perl-kompatible reguläre Ausdrücke verwenden"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "Zeilennummern anzeigen"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "keine Dateinamen anzeigen"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "Dateinamen anzeigen"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "Dateinamen relativ zum Projektverzeichnis anzeigen"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "nur Dateinamen anzeigen anstatt übereinstimmende Zeilen"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "Synonym für --files-with-matches"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "nur die Dateinamen ohne Übereinstimmungen anzeigen"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "NUL-Zeichen nach Dateinamen ausgeben"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen anzeigen"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "Übereinstimmungen hervorheben"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr ""
 "eine Leerzeile zwischen Übereinstimmungen in verschiedenen Dateien ausgeben"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr ""
 "den Dateinamen nur einmal oberhalb der Übereinstimmungen aus dieser Datei "
 "anzeigen"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "<n> Zeilen vor und nach den Übereinstimmungen anzeigen"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "<n> Zeilen vor den Übereinstimmungen anzeigen"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "<n> Zeilen nach den Übereinstimmungen anzeigen"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "<n> Threads benutzen"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "Kurzform für -C NUM"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "eine Zeile mit dem Funktionsnamen vor Übereinstimmungen anzeigen"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "die umgebende Funktion anzeigen"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "Muster von einer Datei lesen"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "<Muster> finden"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "Muster kombinieren, die mit -e angegeben wurden"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "Übereinstimmungen nur durch Beendigungsstatus anzeigen"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr ""
 "nur Übereinstimmungen von Dateien anzeigen, die allen Mustern entsprechen"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "geparstes Verzeichnis für \"grep\"-Ausdruck anzeigen"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "Anzeigeprogramm"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "Dateien mit Übereinstimmungen im Anzeigeprogramm anzeigen"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "den Aufruf von grep(1) erlauben (von dieser Programmversion ignoriert)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "keine Muster angegeben"
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "ungültige Anzahl von Threads angegeben (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr ""
 "Die Option --open-files-in-pager kann nur innerhalb des "
 "Arbeitsverzeichnisses verwendet werden."
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr ""
 "Die Optionen --cached und --untracked können nicht mit --no-index verwendet "
 "werden."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr ""
 "Die Optionen --no-index und --untracked können nicht mit Commits verwendet "
 "werden."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr ""
 "Die Option --[no-]exclude-standard kann nicht mit versionierten Inhalten "
 "verwendet werden."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "Die Option --cached kann nicht mit \"Tree\"-Objekten verwendet werden."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6655,44 +6868,44 @@
 "git hash-object [-t <Art>] [-w] [--path=<Datei> | --no-filters] [--stdin] "
 "[--] <Datei>..."
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "Art"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "Art des Objektes"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "das Objekt in die Objektdatenbank schreiben"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "das Objekt von der Standard-Eingabe lesen"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "Datei wie sie ist speichern, ohne Filter"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr ""
 "Hash über zufällige Daten, zur Erzeugung von beschädigten Objekten zur\n"
 "Fehlersuche in Git, erzeugen"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "Datei verarbeiten, als ob sie von diesem Pfad wäre"
 
 #: builtin/help.c:41
 msgid "print all available commands"
-msgstr "alle vorhandenen Kommandos anzeigen"
+msgstr "alle vorhandenen Befehle anzeigen"
 
 #: builtin/help.c:42
 msgid "print list of useful guides"
@@ -6712,7 +6925,7 @@
 
 #: builtin/help.c:52
 msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
-msgstr "git help [--all] [--guides] [--man | --web | --info] [<Kommando>]"
+msgstr "git help [--all] [--guides] [--man | --web | --info] [<Befehl>]"
 
 #: builtin/help.c:64
 #, c-format
@@ -6737,7 +6950,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "Fehler beim Ausführen von '%s': %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6746,70 +6959,70 @@
 "'%s': Pfad für nicht unterstützten Handbuchbetrachter.\n"
 "Sie könnten stattdessen 'man.<Werkzeug>.cmd' benutzen."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
 "Please consider using 'man.<tool>.path' instead."
 msgstr ""
-"'%s': Kommando für unterstützten Handbuchbetrachter.\n"
+"'%s': Programm für unterstützten Handbuchbetrachter.\n"
 "Sie könnten stattdessen 'man.<Werkzeug>.path' benutzen."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s': unbekannter Handbuch-Betrachter."
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "kein Handbuch-Betrachter konnte mit dieser Anfrage umgehen"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "kein Informations-Betrachter konnte mit dieser Anfrage umgehen"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "Definition von Attributen pro Pfad"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
-msgstr "Tägliche Benutzung von Git mit ungefähr 20 Kommandos"
+msgstr "Tägliche Benutzung von Git mit ungefähr 20 Befehlen"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "Ein Git-Glossar"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Spezifikation von bewusst ignorierten, unversionierten Dateien"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "Definition von Submodul-Eigenschaften"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "Spezifikation von Commits und Bereichen für Git"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Eine einführende Anleitung zu Git (für Version 1.5.1 oder neuer)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Eine Übersicht über empfohlene Arbeitsabläufe mit Git"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "Die allgemein verwendeten Git-Anleitungen sind:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "Verwendung: %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "für `git %s' wurde der Alias `%s' angelegt"
@@ -7046,60 +7259,55 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "ungültige Anzahl von Threads angegeben (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "keine Unterstützung von Threads, '%s' wird ignoriert"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Kann existierende Paketdatei '%s' nicht öffnen"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "Kann existierende Indexdatei für Paket '%s' nicht öffnen"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "kein Unterschied: %d Objekt"
 msgstr[1] "kein Unterschied: %d Objekte"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "Länge der Objekt-Liste = %d: %lu Objekt"
 msgstr[1] "Länge der Objekt-Liste = %d: %lu Objekte"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "Kann nicht zurück zu Arbeitsverzeichnis wechseln"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "%s ist ungültig"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "Die Option --fix-thin kann nicht ohne --stdin verwendet werden."
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "Name der Paketdatei '%s' endet nicht mit '.pack'"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben."
 
@@ -7225,24 +7433,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <Token>[(=|:)<Wert>])...] "
-"[<Datei>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<Token>[(=|:)<Wert>])...] [<Datei>...]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "vorhandene Dateien direkt bearbeiten"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "kürzt leere Anhänge"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "Anhang"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "Anhang/Anhänge hinzufügen"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "keine Datei zur direkten Bearbeitung angegeben"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<Optionen>] [<Commitbereich>] [[--] <Pfad>...]"
@@ -7296,226 +7512,226 @@
 msgid "Unknown type: %d"
 msgstr "Unbekannter Typ: %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers ohne Wert"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "Name des Ausgabeverzeichnisses ist zu lang."
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "Kann Patch-Datei %s nicht öffnen"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "Brauche genau einen Commit-Bereich."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "Kein Commit-Bereich."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "Anschreiben benötigt E-Mail-Format"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "ungültiges in-reply-to: %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<Optionen>] [<seit> | <Commitbereich>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Zwei Ausgabeverzeichnisse?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "[PATCH n/m] auch mit einzelnem Patch verwenden"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "[PATCH] auch mit mehreren Patches verwenden"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "Ausgabe der Patches in Standard-Ausgabe"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "ein Deckblatt erzeugen"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "einfache Nummernfolge für die Namen der Ausgabedateien verwenden"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "Dateiendung"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "<Dateiendung> anstatt '.patch' verwenden"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "die Nummerierung der Patches bei <n> anstatt bei 1 beginnen"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "die Serie als n-te Fassung kennzeichnen"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "[<Präfix>] anstatt [PATCH] verwenden"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "erzeugte Dateien in <Verzeichnis> speichern"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "[PATCH] nicht entfernen/hinzufügen"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "keine binären Unterschiede ausgeben"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr "Hash mit Nullen in \"From\"-Header ausgeben"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr ""
 "keine Patches einschließen, die einem Commit im Upstream-Branch entsprechen"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "Patchformat anstatt des Standards anzeigen (Patch + Zusammenfassung)"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "E-Mail-Einstellungen"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "Header"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "E-Mail-Header hinzufügen"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "E-Mail"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "\"To:\"-Header hinzufügen"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "\"Cc:\"-Header hinzufügen"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "Ident"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr ""
 "\"From\"-Adresse auf <Ident> setzen (oder Ident des Commit-Erstellers, wenn "
 "fehlend)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "message-id"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "aus erster E-Mail eine Antwort zu <message-id> machen"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "Grenze"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "den Patch anhängen"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "den Patch direkt in die Nachricht einfügen"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "Nachrichtenverkettung aktivieren, Stile: shallow, deep"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "Signatur"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "eine Signatur hinzufügen"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "eine Signatur aus einer Datei hinzufügen"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "keine Dateinamen der Patches anzeigen"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "Die Optionen -n und -k schließen sich gegenseitig aus."
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "Die Optionen --subject-prefix und -k schließen sich gegenseitig aus."
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "Die Option --name-only kann nicht verwendet werden."
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "Die Option --name-status kann nicht verwendet werden."
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "Die Option --check kann nicht verwendet werden."
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "Konnte Verzeichnis '%s' nicht erstellen."
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "Konnte Signatur-Datei '%s' nicht lesen"
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "Fehler beim Erstellen der Ausgabedateien."
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7523,108 +7739,160 @@
 "Konnte gefolgten Remote-Branch nicht finden, bitte geben Sie <Upstream> "
 "manuell an.\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Unbekannter Commit %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<Optionen>] [<Datei>...]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "den Dateistatus mit Tags anzeigen"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr ""
 "Kleinbuchstaben für Dateien mit 'assume unchanged' Markierung verwenden"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "zwischengespeicherte Dateien in der Ausgabe anzeigen (Standard)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "entfernte Dateien in der Ausgabe anzeigen"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "geänderte Dateien in der Ausgabe anzeigen"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "sonstige Dateien in der Ausgabe anzeigen"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "ignorierte Dateien in der Ausgabe anzeigen"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr ""
 "Objektnamen von Inhalten, die zum Commit vorgemerkt sind, in der Ausgabe "
 "anzeigen"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "Dateien im Dateisystem, die gelöscht werden müssen, anzeigen"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "nur Namen von 'sonstigen' Verzeichnissen anzeigen"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "Zeilenenden von Dateien anzeigen"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "keine leeren Verzeichnisse anzeigen"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "nicht zusammengeführte Dateien in der Ausgabe anzeigen"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "'resolve-undo' Informationen anzeigen"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "Dateien auslassen, die einem Muster entsprechen"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "Muster, gelesen von <Datei>, ausschließen"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "zusätzliche pro-Verzeichnis Auschlussmuster aus <Datei> auslesen"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "die standardmäßigen Git-Ausschlüsse hinzufügen"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "Ausgabe relativ zum Projektverzeichnis"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "als Fehler behandeln, wenn sich eine <Datei> nicht im Index befindet"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "Commit-Referenz"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr ""
 "vorgeben, dass Pfade, die seit <Commit-Referenz> gelöscht wurden, immer noch "
 "vorhanden sind"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "Ausgaben zur Fehlersuche anzeigen"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<Programm>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<Repository> [<Referenzen>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "URL des Remote-Repositories nicht ausgeben"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "Programm"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "auf Tags einschränken"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "auf Branches einschränken"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "keine Tags anzeigen, die andere Tags enthalten"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "url.<Basis>.insteadOf berücksichtigen"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr ""
+"mit Rückkehrwert 2 beenden, wenn keine übereinstimmenden Referenzen\n"
+"gefunden wurden"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "zusätzlich die auf durch dieses Objekt verwiesene Referenzen anzeigen"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<Optionen>] <Commit-Referenz> [<Pfad>...]"
@@ -7694,33 +7962,33 @@
 msgid "Available custom strategies are:"
 msgstr "Verfügbare benutzerdefinierte Strategien sind:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "keine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "eine Zusammenfassung der Unterschiede am Schluss des Merges anzeigen"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(Synonym für --stat)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
 "(höchstens <n>) Einträge von \"shortlog\" zur Beschreibung des Merge-Commits "
 "hinzufügen"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "einen einzelnen Commit anstatt eines Merges erzeugen"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "einen Commit durchführen, wenn der Merge erfolgreich war (Standard)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "Bearbeitung der Beschreibung vor dem Commit"
 
@@ -7728,7 +7996,7 @@
 msgid "allow fast-forward (default)"
 msgstr "Vorspulen erlauben (Standard)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "abbrechen, wenn kein Vorspulen möglich ist"
 
@@ -7736,20 +8004,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "den genannten Commit auf eine gültige GPG-Signatur überprüfen"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "Strategie"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "zu verwendende Merge-Strategie"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "Option=Wert"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "Option für ausgewählte Merge-Strategie"
 
@@ -7788,8 +8056,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "Quetsche Commit -- HEAD wird nicht aktualisiert\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "Konnte nicht nach '%s' schreiben."
@@ -7807,43 +8075,43 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "Keine Merge-Commit-Beschreibung -- HEAD wird nicht aktualisiert\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' zeigt auf keinen Commit"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Ungültiger branch.%s.mergeoptions String: %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "Es wird nur der Merge von zwei Branches behandelt."
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Unbekannte Option für merge-recursive: -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "konnte %s nicht schreiben"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "konnte nicht von '%s' lesen"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
 "Merge wurde nicht committet; benutzen Sie 'git commit', um den Merge "
 "abzuschließen.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7859,55 +8127,55 @@
 "Zeilen beginnend mit '%c' werden ignoriert, und eine leere Beschreibung\n"
 "bricht den Commit ab.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Leere Commit-Beschreibung"
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Wunderbar.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 "Automatischer Merge fehlgeschlagen; beheben Sie die Konflikte und committen "
 "Sie dann das Ergebnis.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' ist kein Commit"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "Sie befinden sich auf keinem Branch."
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "Kein Remote-Repository für den aktuellen Branch."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr ""
 "Es ist kein Standard-Upstream-Branch für den aktuellen Branch definiert."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "Kein Remote-Tracking-Branch für %s von %s"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "Konnte '%s' nicht schließen"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "Es gibt keinen Merge zum Abbrechen (MERGE_HEAD fehlt)"
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7915,7 +8183,7 @@
 "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert).\n"
 "Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7923,105 +8191,105 @@
 "Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n"
 "Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr ""
 "Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)."
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "Sie können --squash nicht mit --no-ff kombinieren."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "Kein Commit angegeben und merge.defaultToUpstream ist nicht gesetzt."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr ""
 "Bin auf einem Commit, der noch geboren wird; kann \"squash\" nicht ausführen."
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr ""
 "Nicht vorzuspulender Commit kann nicht in einem leeren Branch verwendet "
 "werden."
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - nichts was wir zusammenführen können"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr "Kann nur exakt einen Commit in einem leeren Branch zusammenführen."
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr ""
 "Commit %s hat eine nicht vertrauenswürdige GPG-Signatur, angeblich von %s."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "Commit %s hat eine ungültige GPG-Signatur, angeblich von %s."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "Commit %s hat keine GPG-Signatur."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "Commit %s hat eine gültige GPG-Signatur von %s\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Aktualisiere %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Probiere wirklich trivialen \"in-index\"-Merge ...\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "Nein.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "Vorspulen nicht möglich, breche ab."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Rücklauf des Verzeichnisses bis zum Ursprung ...\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Probiere Merge-Strategie %s ...\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Keine Merge-Strategie behandelt diesen Merge.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "Merge mit Strategie %s fehlgeschlagen.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Benutzen Sie \"%s\", um die Auflösung per Hand vorzubereiten.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -8107,19 +8375,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "Beschriftung für Datei1/orig-Datei/Datei2 setzen"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "Eingabe ist durch NUL-Zeichen abgeschlossen"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "fehlende Objekte erlauben"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "die Erstellung von mehr als einem \"Tree\"-Objekt erlauben"
 
@@ -8127,93 +8395,93 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<Optionen>] <Quelle>... <Ziel>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "Verzeichnis %s ist zum Commit vorgemerkt und kein Submodul?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
 "Bitte merken Sie Ihre Änderungen in .gitmodules zum Commit vor oder "
 "benutzen\n"
 "Sie \"stash\", um fortzufahren."
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s ist zum Commit vorgemerkt"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "Verschieben/Umbenennen erzwingen, auch wenn das Ziel existiert"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "Fehler beim Verschieben oder Umbenennen überspringen"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "Ziel '%s' ist kein Verzeichnis"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "Prüfe Umbenennung von '%s' nach '%s'\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "ungültige Quelle"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "kann Verzeichnis nicht in sich selbst verschieben"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "kann Verzeichnis nicht über Datei verschieben"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "Quellverzeichnis ist leer"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "nicht unter Versionskontrolle"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "Ziel existiert bereits"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "überschreibe '%s'"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "Kann nicht überschreiben"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "mehrere Quellen für das selbe Ziel"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "Zielverzeichnis existiert nicht"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, Quelle=%s, Ziel=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Benenne %s nach %s um\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "Umbenennung von '%s' fehlgeschlagen"
@@ -8414,9 +8682,9 @@
 msgstr "konnte '%s' nicht öffnen oder lesen"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
@@ -8431,42 +8699,42 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "Kann Notiz-Daten nicht von Nicht-Blob Objekt '%s' lesen."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "zu viele Parameter"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "Keine Notiz für Objekt %s gefunden."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "Notizinhalte als Zeichenkette"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "Notizinhalte in einer Datei"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "Wiederverwendung und Bearbeitung des angegebenen Notiz-Objektes"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "Wiederverwendung des angegebenen Notiz-Objektes"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "Speichern leerer Notiz erlauben"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "existierende Notizen ersetzen"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8475,31 +8743,31 @@
 "Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s "
 "gefunden. Verwenden Sie '-f', um die existierenden Notizen zu überschreiben."
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Überschreibe existierende Notizen für Objekt %s\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Entferne Notiz für Objekt %s\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "Objekte von der Standard-Eingabe lesen"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr ""
-"Konfiguration für <Kommando> beim Umschreiben von Versionen laden "
-"(impliziert --stdin)"
+"Konfiguration für <Befehl> zum Umschreiben von Commits laden (impliziert --"
+"stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "zu wenig Parameter"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8508,29 +8776,29 @@
 "Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. "
 "Verwenden Sie '-f', um die existierenden Notizen zu überschreiben."
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Keine Notizen für Quell-Objekt %s. Kopie nicht möglich."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
 "Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
 msgstr ""
-"Die Optionen -m/-F/-c/-C sind für das Unterkommando 'edit' veraltet.\n"
+"Die Optionen -m/-F/-c/-C sind für den Unterbefehl 'edit' veraltet.\n"
 "Bitte benutzen Sie stattdessen 'git notes add -f -m/-F/-c/-C'.\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "Allgemeine Optionen"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "Merge-Optionen"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
@@ -8538,54 +8806,54 @@
 "löst Konflikte bei Notizen mit der angegebenen Strategie auf (manual/ours/"
 "theirs/union/cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "nicht zusammengeführte Notizen eintragen"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr ""
 "Merge von Notizen abschließen, in dem nicht zusammengeführte Notizen "
 "committet werden"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "Konfliktauflösung beim Merge von Notizen abbrechen"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "Merge von Notizen abbrechen"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "Ein Merge von Notizen nach %s ist bereits im Gange bei %s"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "Objekt %s hat keine Notiz\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "Objektnamen von der Standard-Eingabe lesen"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "Notiz-Referenz"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "Notizen von <Notiz-Referenz> verwenden"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
-msgstr "Unbekanntes Unterkommando: %s"
+msgstr "Unbekannter Unterbefehl: %s"
 
 #: builtin/pack-objects.c:28
 msgid ""
@@ -8606,176 +8874,176 @@
 msgid "deflate error (%d)"
 msgstr "Fehler beim Komprimieren (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "Schreibe Objekte"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr ""
 "Deaktiviere Schreiben des Bitmap-Index, da einige Objekte nicht in\n"
 "eine Pack-Datei geschrieben wurden"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "Komprimiere Objekte"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "Nicht unterstützte Index-Version %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "Ungültige Index-Version '%s'"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "keine Fortschrittsanzeige anzeigen"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "Fortschrittsanzeige anzeigen"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr ""
 "Forschrittsanzeige während der Phase des Schreibens der Objekte anzeigen"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "version[,offset]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr ""
 "die Index-Datei des Paketes in der angegebenen Indexformat-Version schreiben"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "maximale Größe für jede ausgegebene Paketdatei"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "geliehene Objekte von alternativem Objektspeicher ignorieren"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "gepackte Objekte ignorieren"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "Paketfenster durch Objekte begrenzen"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr ""
 "Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher begrenzen"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr ""
 "maximale Länge der erlaubten Differenzverkettung im resultierenden Paket"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "existierende Unterschiede wiederverwenden"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "existierende Objekte wiederverwenden"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "OFS_DELTA Objekte verwenden"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr ""
 "Threads bei der Suche nach den besten Übereinstimmungen bei Unterschieden "
 "verwenden"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "keine leeren Pakete erzeugen"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "Argumente bezüglich Commits von der Standard-Eingabe lesen"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "die Objekte zu solchen, die noch nicht gepackt wurden, begrenzen"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "Objekte einschließen, die von jeder Referenz erreichbar sind"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr ""
 "Objekte einschließen, die von Einträgen des Reflogs referenziert werden"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "Objekte einschließen, die vom Index referenziert werden"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "Paket in die Standard-Ausgabe schreiben"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "Tag-Objekte einschließen, die auf gepackte Objekte referenzieren"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "nicht erreichbare Objekte behalten"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "Zeit"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "nicht erreichbare Objekte entpacken, die neuer als <Zeit> sind"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "dünnere Pakete erzeugen"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr ""
 "Pakete geeignet für Abholung mit unvollständiger Historie (shallow) erzeugen"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "Pakete ignorieren, die .keep Dateien haben"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "Komprimierungsgrad für Paketierung"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "keine künstlichen Vorgänger-Commits (\"grafts\") verbergen"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr ""
 "Bitmap-Index (falls verfügbar) zur Optimierung der Objektzählung benutzen"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "Bitmap-Index zusammen mit Pack-Index schreiben"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "Zähle Objekte"
 
@@ -8819,52 +9087,56 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "kann \"prune\" in precious-objects Repository nicht ausführen"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<Optionen>] [<Repository> [<Refspec>...]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "Optionen bezogen auf Merge"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "Integration von Änderungen durch Rebase statt Merge"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "Vorspulen erlauben"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "den genannten Commit auf eine gültige GPG-Signatur überprüfen"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "Optionen bezogen auf Fetch"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "Anzahl der parallel mit 'pull' zu verarbeitenden Submodule"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Ungültiger Wert für pull.ff: %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr ""
 "Kann \"pull\" mit \"rebase\" nicht ausführen: Sie haben Änderungen, die "
 "nicht zum Commit vorgemerkt sind."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "Zusätzlich beinhaltet die Staging-Area nicht committete Änderungen."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr ""
 "Kann \"pull\" mit \"rebase\" nicht ausführen: Die Staging-Area beinhaltet "
 "nicht committete Änderungen."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -8872,14 +9144,14 @@
 "Es gibt keinen Kandidaten für Rebase innerhalb der Referenzen, die eben "
 "angefordert wurden."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 "Es gibt keine Kandidaten für Merge innerhalb der Referenzen, die eben "
 "angefordert wurden."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -8887,7 +9159,7 @@
 "Im Allgemeinen bedeutet das, dass Sie einen Refspec mit Wildcards angegeben\n"
 "haben, der auf der Gegenseite mit keinen Referenzen übereinstimmt."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8897,31 +9169,31 @@
 "Sie führten \"pull\" von Remote-Repository '%s' aus, ohne einen\n"
 "Branch anzugeben. Da das nicht das konfigurierte Standard-Remote-\n"
 "Repository für den aktuellen Branch ist, müssen Sie einen Branch auf\n"
-"der Kommandozeile angeben."
+"der Befehlszeile angeben."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "Im Moment auf keinem Branch."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr ""
 "Bitte geben Sie den Branch an, gegen welchen Sie \"rebase\" ausführen "
 "möchten."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "Bitte geben Sie den Branch an, welchen Sie zusammenführen möchten."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "Siehe git-pull(1) für weitere Details."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "Es gibt keine Tracking-Informationen für den aktuellen Branch."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8934,7 +9206,7 @@
 "\n"
 " git branch --set-upstream-to=%s/<Branch> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8944,13 +9216,13 @@
 "des Remote-Repositories durchzuführen, aber diese Referenz\n"
 "wurde nicht angefordert."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr ""
 "Aktualisiere einen ungeborenen Branch mit Änderungen, die zum Commit "
 "vorgemerkt sind."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8960,7 +9232,7 @@
 "\"fetch\" aktualisierte die Spitze des aktuellen Branches.\n"
 "Spule Ihr Arbeitsverzeichnis von Commit %s vor."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8977,11 +9249,11 @@
 "$ git reset --hard\n"
 "zur Wiederherstellung aus."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "Kann nicht mehrere Branches in einen leeren Branch zusammenführen."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "Kann Rebase nicht auf mehrere Branches ausführen."
 
@@ -8989,15 +9261,15 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<Optionen>] [<Repository> [<Refspec>...]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "Kurzschrift für Tag ohne <Tag>"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "Die Option --delete akzeptiert nur reine Referenznamen als Ziel."
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -9006,7 +9278,7 @@
 "Um eine Variante permanent zu verwenden, siehe push.default in 'git help "
 "config'."
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -9032,7 +9304,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -9047,7 +9319,7 @@
 "\n"
 "    git push %s HEAD:<Name-des-Remote-Branches>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -9061,13 +9333,13 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr ""
 "Der aktuelle Branch %s hat mehrere Upstream-Branches, \"push\" verweigert."
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -9078,65 +9350,14 @@
 "Branches '%s' ist, ohne anzugeben, was versendet werden soll, um welchen\n"
 "Remote-Branch zu aktualisieren."
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"'push.default' ist nicht gesetzt; der implizit gesetzte Wert\n"
-"wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu\n"
-"unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes\n"
-"beizubehalten, benutzen Sie:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu übernehmen, "
-"benutzen Sie:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"Wenn 'push.default' auf den Wert 'matching' gesetzt ist, werden lokale\n"
-"Branches zu den Remote-Branches mit den selben Namen versendet.\n"
-"\n"
-"In Git 2.0 wurde das Standardverhalten zu 'simple' geändert. Hierbei wird\n"
-"der aktuelle Branch zu dem entsprechenden Remote-Branch versendet, den\n"
-"'git pull' zur Aktualisierung des aktuellen Branches verwendet.\n"
-"\n"
-"Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für\n"
-"weitere Informationen.\n"
-"(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutzen Sie den "
-"ähnlichen\n"
-"Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen "
-"von\n"
-"Git benutzen.)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
 "Sie haben keine Refspec für \"push\" angegeben, und push.default ist "
 "\"nothing\"."
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -9145,12 +9366,12 @@
 msgstr ""
 "Aktualisierungen wurden zurückgewiesen, weil die Spitze Ihres aktuellen\n"
 "Branches hinter seinem externen Gegenstück zurückgefallen ist. Führen Sie\n"
-"die externen Änderungen zusammen (z.B. 'git pull ...') bevor Sie \"push\"\n"
+"die externen Änderungen zusammen (z. B. 'git pull ...') bevor Sie \"push\"\n"
 "erneut ausführen.\n"
 "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
 "für weitere Details."
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -9160,11 +9381,11 @@
 "Aktualisierungen wurden zurückgewiesen, weil die Spitze eines versendeten\n"
 "Branches hinter seinem externen Gegenstück zurückgefallen ist. Checken Sie\n"
 "diesen Branch aus und führen Sie die externen Änderungen zusammen\n"
-"(z.B. 'git pull ...') bevor Sie erneut \"push\" ausführen.\n"
+"(z. B. 'git pull ...') bevor Sie erneut \"push\" ausführen.\n"
 "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
 "für weitere Details."
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -9177,19 +9398,19 @@
 "die lokal nicht vorhanden sind. Das wird üblicherweise durch einen \"push\" "
 "von\n"
 "Commits auf dieselbe Referenz von einem anderen Repository aus verursacht.\n"
-"Vielleicht müssen Sie die externen Änderungen zusammenzuführen (z.B. 'git "
+"Vielleicht müssen Sie die externen Änderungen zusammenführen (z. B. 'git "
 "pull ...')\n"
 "bevor Sie erneut \"push\" ausführen.\n"
 "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n"
 "für weitere Details."
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr ""
 "Aktualisierungen wurden zurückgewiesen, weil das Tag bereits\n"
 "im Remote-Repository existiert."
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -9199,22 +9420,22 @@
 "das kein Commit ist, oder es auf ein solches Objekt zeigen lassen, ohne\n"
 "die Option '--force' zu verwenden.\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "Versende nach %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "Fehler beim Versenden einiger Referenzen nach '%s'"
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "ungültiges Repository '%s'"
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -9227,7 +9448,7 @@
 "    git push <name>\n"
 msgstr ""
 "Kein Ziel für \"push\" konfiguriert.\n"
-"Entweder spezifizieren Sie die URL von der Kommandozeile oder konfigurieren "
+"Entweder spezifizieren Sie die URL von der Befehlszeile oder konfigurieren "
 "ein Remote-Repository unter Benutzung von\n"
 "\n"
 "    git remote add <Name> <URL>\n"
@@ -9236,104 +9457,100 @@
 "\n"
 "    git push <Name>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "Die Optionen --all und --tags sind inkompatibel."
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "Die Option --all kann nicht mit Refspecs kombiniert werden."
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "Die Optionen --mirror und --tags sind inkompatibel."
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "Die Option --mirror kann nicht mit Refspecs kombiniert werden."
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "Die Optionen --all und --mirror sind inkompatibel."
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "Repository"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "alle Referenzen versenden"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "alle Referenzen spiegeln"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "Referenzen löschen"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "Tags versenden (kann nicht mit --all oder --mirror verwendet werden)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "Aktualisierung erzwingen"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "Referenzname>:<Erwartungswert"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "Referenz muss sich auf dem angegebenen Wert befinden"
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "rekursiven \"push\" von Submodulen steuern"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "kleinere Pakete verwenden"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "'receive pack' Programm"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "Upstream für \"git pull/status\" setzen"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "lokal gelöschte Referenzen entfernen"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "\"pre-push hook\" umgehen"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "fehlende, aber relevante Tags versenden"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "signiert \"push\" mit GPG"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "Referenzen atomar versenden"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags."
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "Die Option --delete kann nur mit Referenzen verwendet werden."
 
@@ -9412,12 +9629,12 @@
 msgid "debug unpack-trees"
 msgstr "Entpacken der Bäume protokollieren"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%s' ist kein gültiger Zeitstempel für '%s'"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s' ist kein gültiger Zeitstempel"
@@ -9564,55 +9781,45 @@
 "Die Angabe von zu folgenden Branches kann nur mit dem Anfordern von "
 "Spiegelarchiven verwendet werden."
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "externes Repository %s existiert bereits"
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s' ist kein gültiger Name für ein Remote-Repository"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "Konnte symbolische Referenz für Hauptbranch von '%s' nicht einrichten"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "Konnte Fetch-Map für Refspec %s nicht bekommen"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(übereinstimmend)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(lösche)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Konnte '%s' nicht an '%s' anhängen."
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "Kein solches Remote-Repository: %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "Konnte Sektion '%s' in Konfiguration nicht nach '%s' umbenennen"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9623,27 +9830,17 @@
 "\t%s\n"
 "\tBitte aktualisieren Sie, falls notwendig, die Konfiguration manuell."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Konnte '%s' nicht anhängen."
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Konnte '%s' nicht setzen"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "Konnte '%s' nicht löschen"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "Konnte '%s' nicht erstellen"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9659,120 +9856,125 @@
 "entfernt;\n"
 "um diese zu entfernen, benutzen Sie:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " neu (wird bei nächstem \"fetch\" in remotes/%s gespeichert)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " gefolgt"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "ungültiges branch.%s.merge; kann Rebase nicht auf > 1 Branch ausführen"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "Rebase auf Remote-Branch %s"
+msgid "rebases interactively onto remote %s"
+msgstr "interaktiver Rebase auf Remote-Branch %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " führt mit Remote-Branch %s zusammen"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    und mit Remote-Branch"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "führt mit Remote-Branch %s zusammen"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   und mit Remote-Branch"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "erstellt"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "gelöscht"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "aktuell"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "vorspulbar"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "lokal nicht aktuell"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s erzwingt Versandt nach %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s versendet nach %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s erzwingt Versand nach %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s versendet nach %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "keine Abfrage von Remote-Repositories"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* Remote-Repository %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  URL zum Abholen: %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(keine URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  URL zum Versenden: %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  Hauptbranch: %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
@@ -9780,161 +9982,161 @@
 "  Hauptbranch (externer HEAD ist mehrdeutig, könnte einer der folgenden "
 "sein):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] "  Remote-Branch:%s"
 msgstr[1] "  Remote-Branches:%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (Zustand nicht abgefragt)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  Lokaler Branch konfiguriert für 'git pull':"
 msgstr[1] "  Lokale Branches konfiguriert für 'git pull':"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  Lokale Referenzen werden von 'git push' gespiegelt"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  Lokale Referenz konfiguriert für 'git push'%s:"
 msgstr[1] "  Lokale Referenzen konfiguriert für 'git push'%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Remote-Repository"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "entfernt refs/remotes/<Name>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "Kann HEAD des Remote-Repositories nicht bestimmen"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr ""
 "Mehrere Hauptbranches im Remote-Repository. Bitte wählen Sie explizit einen "
 "aus mit:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "Konnte %s nicht entfernen"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "keine gültige Referenz: %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "Konnte %s nicht einrichten"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s wird unreferenziert!"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s wurde unreferenziert!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "entferne veraltete Branches von %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [würde veralteten Branch entfernen] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr "* [veralteten Branch entfernt] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "entferne veraltete Branches im Remote-Repository nach \"fetch\""
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "Kein solches Remote-Repository '%s'"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "Branch hinzufügen"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "kein Remote-Repository angegeben"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "nur URLs für Push ausgeben"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "alle URLs ausgeben"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "Keine URLs für Remote-Repository '%s' konfiguriert."
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "URLs für \"push\" manipulieren"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "URL hinzufügen"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "URLs löschen"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr ""
 "Die Optionen --add und --delete können nicht gemeinsam verwendet werden."
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "ungültiges altes URL Format: %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "Keine solche URL gefunden: %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "Werde keine URLs entfernen, die nicht für \"push\" bestimmt sind"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
-msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden"
+msgstr "erweiterte Ausgaben; muss vor einem Unterbefehl angegeben werden"
 
 #: builtin/repack.c:17
 msgid "git repack [<options>]"
@@ -10238,7 +10440,7 @@
 msgid "Could not write new index file."
 msgstr "Konnte neue Index-Datei nicht schreiben."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list unterstützt keine Anzeige von Notizen"
 
@@ -10280,7 +10482,7 @@
 
 #: builtin/revert.c:23
 msgid "git revert <subcommand>"
-msgstr "git revert <Unterkommando>"
+msgstr "git revert <Unterbefehl>"
 
 #: builtin/revert.c:28
 msgid "git cherry-pick [<options>] <commit-ish>..."
@@ -10288,7 +10490,7 @@
 
 #: builtin/revert.c:29
 msgid "git cherry-pick <subcommand>"
-msgstr "git cherry-pick <Unterkommando>"
+msgstr "git cherry-pick <Unterbefehl>"
 
 #: builtin/revert.c:71
 #, c-format
@@ -10500,28 +10702,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<Optionen>] [<Commitbereich>] [[--] [<Pfad>...]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "fehlender Autor: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "die Ausgabe entsprechend der Anzahl von Commits pro Autor sortieren"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "Commit-Beschreibungen unterdrücken, nur Anzahl der Commits liefern"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "die E-Mail-Adresse von jedem Autor anzeigen"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "Ausgabe mit Zeilenumbrüchen"
 
@@ -10664,47 +10861,48 @@
 
 #: builtin/stripspace.c:35
 msgid "skip and remove all lines starting with comment character"
-msgstr "alle Zeilen, die mit dem Kommentarzeichen beginnen, überspringen und "
+msgstr ""
+"alle Zeilen, die mit dem Kommentarzeichen beginnen, überspringen und "
 "entfernen"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "Kommentarzeichen mit Leerzeichen an jeder Zeile voranstellen"
+msgid "prepend comment character and space to each line"
+msgstr "Kommentarzeichen mit Leerzeichen an jede Zeile voranstellen"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "Alternativer Anker für relative Pfade"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<Pfad>] [<Pfad>...]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <Pfad>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "Keine Submodul-Zuordnung in .gitmodules für Pfad '%s' gefunden"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "Pfad für neues Submodul"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "Name des neuen Submoduls"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "URL von der das Submodul geklont wird"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "Tiefe des Klons mit unvollständiger Historie (shallow)"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10712,40 +10910,40 @@
 "git submodule--helper clone [--prefix=<Pfad>] [--quiet] [--reference "
 "<Repository>] [--name <Name>] [--url <URL>][--depth <Tiefe>] [--] [<Pfad>...]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "Konnte Verzeichnis '%s' nicht erstellen."
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "Klonen von '%s' in Submodul-Pfad '%s' fehlgeschlagen"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "Kann Datei '%s' nicht öffnen"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "Konnte Datei '%s' nicht schließen."
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "Konnte Submodul-Verzeichnis '%s' nicht finden."
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
-msgstr "fatal: submodule--helper muss mit einem Unterkommando aufgerufen werden"
+msgstr "fatal: submodule--helper muss mit einem Unterbefehl aufgerufen werden"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
-msgstr "fatal: '%s' ist kein gültiges Unterkommando von submodule--helper"
+msgstr "fatal: '%s' ist kein gültiger Unterbefehl von submodule--helper"
 
 #: builtin/symbolic-ref.c:7
 msgid "git symbolic-ref [<options>] <name> [<ref>]"
@@ -10988,206 +11186,220 @@
 msgid "Unpacking objects"
 msgstr "Entpacke Objekte"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "Fehler beim Erstellen von Verzeichnis '%s'"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "Konnte '%s' nicht lesen"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "Konnte Datei '%s' nicht erstellen"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "Konnte Datei '%s' nicht löschen"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "Konnte Verzeichnis '%s' nicht löschen"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "Prüfe "
+msgid "Testing mtime in '%s' "
+msgstr "Prüfe mtime in '%s' "
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr ""
 "Verzeichnisinformationen haben sich nach Hinzufügen einer neuen Datei nicht "
 "geändert"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr ""
 "Verzeichnisinformationen haben sich nach Hinzufügen eines neuen "
 "Verzeichnisses nicht geändert"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr ""
 "Verzeichnisinformationen haben sich nach Aktualisierung einer Datei geändert"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr ""
 "Verzeichnisinformationen haben sich nach Hinzufügen einer Datei in ein "
 "Unterverzeichnis geändert"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr ""
 "Verzeichnisinformationen haben sich nach dem Löschen einer Datei nicht "
 "geändert"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr ""
 "Verzeichnisinformationen haben sich nach dem Löschen eines Verzeichnisses "
 "nicht geändert"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<Optionen>] [--] [<Datei>...]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr ""
 "Aktualisierung fortsetzen, auch wenn der Index aktualisiert werden muss"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "Aktualisierung: ignoriert Submodule"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "keine neuen Dateien ignorieren"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "Dateien Verzeichnisse ersetzen lassen, und umgedreht"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "fehlende Dateien im Arbeitsverzeichnis beachten"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr ""
 "aktualisieren, auch wenn der Index nicht zusammengeführte Einträge beinhaltet"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "Dateiinformationen aktualisieren"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<Modus>,<Objekt>,<Pfad>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "den angegebenen Eintrag zum Commit vormerken"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "das \"ausführbar\"-Bit der aufgelisteten Dateien überschreiben"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "diese Datei immer als unverändert betrachten"
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "\"assumed-unchanged\"-Bit löschen"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "Dateien als \"index-only\" markieren"
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "\"skip-worktree\"-Bit löschen"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr ""
 "die Änderungen nur zum Commit vormerken; Inhalt wird nicht der Objekt-"
 "Datenbank hinzugefügt"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr ""
 "benannte Pfade löschen, auch wenn sie sich im Arbeitsverzeichnis befinden"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "Liste der zu aktualisierenden Pfade von der Standard-Eingabe lesen"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "Einträge von der Standard-Eingabe zum Commit vormerken"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr ""
 "wiederholtes Einpflegen der Zustände #2 und #3 für die aufgelisteten Pfade"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "nur Einträge aktualisieren, die unterschiedlich zu HEAD sind"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "fehlende Dateien im Arbeitsverzeichnis ignorieren"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "die Aktionen in der Standard-Ausgabe ausgeben"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "Index-Datei in diesem Format schreiben"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "Splitting des Index aktivieren oder deaktivieren"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "Cache für unversionierte Dateien aktivieren oder deaktivieren"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr ""
+"prüfen ob das Dateisystem einen Cache für unversionierte Dateien unterstützt"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr ""
 "Cache für unversionierte Dateien ohne Prüfung des Dateisystems aktivieren"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Cache für unversionierte Dateien deaktiviert"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Cache für unversionierte Dateien für '%s' aktiviert"
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<Optionen>] -d <Referenzname> [<alter-Wert>]"
@@ -11304,35 +11516,35 @@
 msgid "'%s' already exists"
 msgstr "'%s' existiert bereits"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "Konnte Verzeichnis '%s' nicht erstellen."
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "Bereite %s vor (Identifikation %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr ""
 "<Branch> auschecken, auch wenn dieser bereits in einem anderen "
 "Arbeitsverzeichnis ausgecheckt ist"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "neuen Branch erstellen"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "Branch erstellen oder umsetzen"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "HEAD bei benanntem Commit loslösen"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B und --detach schließen sich gegenseitig aus"
 
@@ -11352,7 +11564,7 @@
 msgid "only useful for debugging"
 msgstr "nur nützlich für Fehlersuche"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "Meldungen zur Fehlersuche in Standard-Fehlerausgabe ausgeben"
 
@@ -11362,11 +11574,17 @@
 "concept guides. See 'git help <command>' or 'git help <concept>'\n"
 "to read about a specific subcommand or concept."
 msgstr ""
-"'git help -a' und 'git help -g' listet verfügbare Unterkommandos und\n"
-"einige Anleitungen zu Git-Konzepten auf. Benutzen Sie 'git help <Kommando>'\n"
-"oder 'git help <Konzept>', um mehr über ein spezifisches Kommando oder\n"
+"'git help -a' und 'git help -g' listet verfügbare Unterbefehle und\n"
+"einige Anleitungen zu Git-Konzepten auf. Benutzen Sie 'git help <Befehl>'\n"
+"oder 'git help <Konzept>', um mehr über einen spezifischen Befehl oder\n"
 "Konzept zu erfahren."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr ""
+"Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
+"nicht unterstützt."
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "Arbeitsverzeichnis anlegen (siehe auch: git help tutorial)"
@@ -11456,8 +11674,8 @@
 msgstr "Remote-Referenzen mitsamt den verbundenen Objekten aktualisieren"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "lokale Commits auf einem aktuellerem Upstream-Branch neu aufbauen"
+msgid "Reapply commits on top of another base tip"
+msgstr "Wiederholtes Anwenden von Commits auf anderem Basis-Commit"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11682,7 +11900,7 @@
 #: git-bisect.sh:578
 #, sh-format
 msgid "can't use the builtin command '$term' as a term"
-msgstr "Kann eingebautes Kommando '$term' nicht als Begriff verwenden"
+msgstr "Kann eingebauten Befehl '$term' nicht als Begriff verwenden"
 
 #: git-bisect.sh:587 git-bisect.sh:593
 #, sh-format
@@ -11693,7 +11911,7 @@
 #, sh-format
 msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect."
 msgstr ""
-"Ungültiges Kommando: Sie sind gerade bei einer binären $TERM_BAD/$TERM_GOOD "
+"Ungültiger Befehl: Sie sind gerade bei einer binären $TERM_BAD/$TERM_GOOD "
 "Suche."
 
 #: git-bisect.sh:636
@@ -11799,7 +12017,7 @@
 "\t$cmd_live_rebase\n"
 "Wenn das nicht der Fall ist, probieren Sie bitte\n"
 "\t$cmd_clear_stale_rebase\n"
-"und führen Sie dieses Kommando nochmal aus. Es wird angehalten, falls noch\n"
+"und führen Sie diesen Befehl nochmal aus. Es wird angehalten, falls noch\n"
 "etwas Schützenswertes vorhanden ist."
 
 #: git-rebase.sh:468
@@ -12079,7 +12297,7 @@
 "option."
 msgstr ""
 "oder Sie sich unsicher sind, was das bedeutet, wählen Sie einen anderen "
-"Namenmit der Option '--name'."
+"Namen mit der Option '--name'."
 
 #: git-submodule.sh:347
 #, sh-format
@@ -12192,7 +12410,7 @@
 "Submodul '$name' ($url) für Pfad '$displaypath' wurde aus der Konfiguration "
 "entfernt."
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -12201,52 +12419,52 @@
 "Submodul-Pfad '$displaypath' ist nicht initialisiert.\n"
 "Vielleicht möchten Sie 'update --init' benutzen?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "Konnte aktuellen Commit in Submodul-Pfad '$displaypath' nicht finden."
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "Konnte \"fetch\" in Submodul-Pfad '$sm_path' nicht ausführen"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "Konnte \"fetch\" in Submodul-Pfad '$displaypath' nicht ausführen"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "Konnte '$sha1' in Submodul-Pfad '$displaypath' nicht auschecken."
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Submodul-Pfad: '$displaypath': '$sha1' ausgecheckt"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "Rebase auf '$sha1' in Submodul-Pfad '$displaypath' nicht möglich"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Submodul-Pfad '$displaypath': Rebase auf '$sha1'"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "Merge von '$sha1' in Submodul-Pfad '$displaypath' fehlgeschlagen"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Submodul-Pfad '$displaypath': zusammengeführt in '$sha1'"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12254,56 +12472,135 @@
 "Ausführung von '$command $sha1' in Submodul-Pfad '$prefix$sm_path' "
 "fehlgeschlagen"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "Submodul-Pfad '$prefix$sm_path': '$command $sha1'"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr ""
 "Die Optionen --cached und --files können nicht gemeinsam verwendet werden."
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "unerwarteter Modus $mod_dst"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Warnung: $display_name beinhaltet nicht Commit $sha1_src"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Warnung: $display_name beinhaltet nicht Commit $sha1_dst"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr ""
 "  Warnung: $display_name beinhaltet nicht die Commits $sha1_src und $sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "Blob"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "Fehler bei Rekursion in Submodul-Pfad '$sm_path'"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Synchronisiere Submodul-URL für '$displaypath'"
 
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr "lokale Commits auf einem aktuellerem Upstream-Branch neu aufbauen"
+
+#~ msgid "unable to parse format"
+#~ msgstr "Konnte Format nicht parsen."
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "Sie haben ein ungültiges Format eingegeben align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Konnte core.worktree in '%s' nicht setzen."
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "'push.default' ist nicht gesetzt; der implizit gesetzte Wert\n"
+#~ "wurde in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung "
+#~ "zu\n"
+#~ "unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes\n"
+#~ "beizubehalten, benutzen Sie:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu "
+#~ "übernehmen, benutzen Sie:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "Wenn 'push.default' auf den Wert 'matching' gesetzt ist, werden lokale\n"
+#~ "Branches zu den Remote-Branches mit den selben Namen versendet.\n"
+#~ "\n"
+#~ "In Git 2.0 wurde das Standardverhalten zu 'simple' geändert. Hierbei "
+#~ "wird\n"
+#~ "der aktuelle Branch zu dem entsprechenden Remote-Branch versendet, den\n"
+#~ "'git pull' zur Aktualisierung des aktuellen Branches verwendet.\n"
+#~ "\n"
+#~ "Führen Sie 'git help config' aus und suchen Sie nach 'push.default' für\n"
+#~ "weitere Informationen.\n"
+#~ "(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutzen Sie den "
+#~ "ähnlichen\n"
+#~ "Modus 'current' anstatt 'simple', falls Sie gelegentlich ältere Versionen "
+#~ "von\n"
+#~ "Git benutzen.)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Konnte '%s' nicht anhängen."
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Konnte '%s' nicht setzen"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "fehlender Autor: %s"
+
+#~ msgid "Testing "
+#~ msgstr "Prüfe "
+
 #~ msgid "unable to look up current user in the passwd file: %s"
 #~ msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s"
 
@@ -12374,9 +12671,6 @@
 #~ msgid "unable to parse value '%s' for option %s"
 #~ msgstr "konnte Wert '%s' für Option %s nicht parsen"
 
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "Konnte HEAD nicht auflösen."
-
 #~ msgid "-b and -B are mutually exclusive"
 #~ msgstr "-b und -B schließen sich gegenseitig aus"
 
@@ -12456,9 +12750,6 @@
 #~ "Informationen zu nicht mehr existierenden Arbeitsverzeichnissen in .git/"
 #~ "worktrees entfernen"
 
-#~ msgid "--worktrees does not take extra arguments"
-#~ msgstr "--worktrees akzeptiert keine weiteren Argumente"
-
 #~ msgid "The most commonly used git commands are:"
 #~ msgstr "Die allgemein verwendeten Git-Kommandos sind:"
 
@@ -12489,9 +12780,6 @@
 #~ msgid "force creation (when already exists)"
 #~ msgstr "Branch auch erzeugen, wenn dieser bereits existiert"
 
-#~ msgid "Malformed ident string: '%s'"
-#~ msgstr "Fehlerhafter Ident-String: '%s'"
-
 #~ msgid "slot"
 #~ msgstr "Slot"
 
@@ -12541,9 +12829,6 @@
 #~ msgid "bug"
 #~ msgstr "Fehler"
 
-#~ msgid "ahead "
-#~ msgstr "voraus "
-
 #~ msgid ", behind "
 #~ msgstr ", hinterher "
 
diff --git a/po/fr.po b/po/fr.po
index facc5c6..88b0b8a 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -73,8 +73,8 @@
 msgstr ""
 "Project-Id-Version: git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-24 07:36+0100\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-14 20:26+0100\n"
 "Last-Translator: Jean-Noël Avila <jn.avila@free.fr>\n"
 "Language-Team: Jean-Noël Avila <jn.avila@free.fr>\n"
 "Language: fr\n"
@@ -96,7 +96,7 @@
 "Corrigez-les puis lancez 'git add/rm <fichier>'\n"
 "si nécessaire pour marquer la résolution et valider."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe)."
 
@@ -140,7 +140,7 @@
 msgid "archive format"
 msgstr "format d'archive"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "préfixe"
 
@@ -148,10 +148,10 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "préfixer chaque chemin de fichier dans l'archive"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
 #: builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "fichier"
@@ -184,7 +184,7 @@
 msgid "list supported archive formats"
 msgstr "afficher les formats d'archive supportés"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "dépôt"
 
@@ -192,7 +192,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "récupérer l'archive depuis le dépôt distant <dépôt>"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "commande"
 
@@ -200,7 +200,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "chemin vers la commande distante git-upload-archive"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -208,90 +208,107 @@
 "Les motifs de négation sont ignorés dans les attributs git\n"
 "Utilisez '\\!' pour un point d'exclamation littéral."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Après correction de la cause de l'erreur, vous pouvez essayer de corriger\n"
+"l'information de suivi distant en invoquant\n"
+"\"git branch --setup-upstream-to=%s%s%s\"."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "La branche %s ne peut pas être sa propre branche amont."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr ""
 "La branche %s est paramétrée pour suivre la branche distante %s de %s en "
 "rebasant."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr ""
 "La branche %s est paramétrée pour suivre la branche distante %s depuis %s."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr ""
 "La branche %s est paramétrée pour suivre la branche locale %s en rebasant."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "La branche %s est paramétrée pour suivre la branche locale %s."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr ""
 "La branche %s est paramétrée pour suivre la référence distante %s en "
 "rebasant."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "La branche %s est paramétrée pour suivre la référence distante %s."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 "La branche %s est paramétrée pour suivre la référence locale %s en rebasant."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "La branche %s est paramétrée pour suivre la référence locale %s."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Échec de l'écriture de la configuration de branche amont"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "Pas de suivi : information ambiguë pour la référence %s"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "'%s' n'est pas un nom de branche valide."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "Une branche nommée '%s' existe déjà."
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "Impossible de forcer la mise à jour de la branche courante."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr ""
 "Impossible de paramétrer le suivi de branche ; le point de départ '%s' n'est "
 "pas une branche."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "la branche amont demandée '%s' n'existe pas"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -311,22 +328,22 @@
 "sa jumelle distante, vous pouvez utiliser \"git push -u\"\n"
 "pour paramétrer le suivi distant en même temps que vous poussez."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "Nom d'objet invalide : '%s'."
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "Nom d'objet ambigu : '%s'."
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "Point d'embranchement invalide : '%s'."
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s' est déjà extrait dans '%s'"
@@ -350,10 +367,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Le dépôt ne dispose pas des commits prérequis suivants :"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "échec de la préparation du parcours des révisions"
 
@@ -392,7 +409,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "la référence '%s' est exclue par les options de rev-list"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "argument non reconnu : %s"
@@ -415,8 +432,8 @@
 msgid "invalid color value: %.*s"
 msgstr "Valeur invalide de couleur : %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "impossible d'analyser %s"
@@ -430,62 +447,67 @@
 msgid "memory exhausted"
 msgstr "plus de mémoire"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "ligne %d de fichier de config incorrecte dans %s"
+msgid "bad config line %d in %s %s"
+msgstr "ligne %d de fichier de config incorrecte dans %s %s"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
 msgstr ""
-"valeur numérique de configuration incorrecte '%s' pour '%s' dans %s : %s"
+"valeur numérique de configuration incorrecte '%s' pour '%s' dans %s %s : %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "valeur numérique de configuration invalide '%s' pour '%s' : %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "impossible d'étendre le répertoire utilisateur dans : '%s'"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "niveau de compression zlib incorrect %d"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "mode invalide pour la création d'objet : %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "lecture de la configuration de ligne de commande impossible"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "erreur inconnue pendant la lecture des fichiers de configuration"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr ""
 "impossible d'analyser '%s' depuis le configuration en ligne de commande"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr ""
 "variable de configuration '%s' incorrecte dans le fichier '%s' à la ligne %d"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s a des valeurs multiples"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Impossible de régler '%s' à '%s'"
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "Impossible de lancer 'git rev-list'"
@@ -603,16 +625,16 @@
 "Erreurs dans la variable de configuration 'diff.dirstat' :\n"
 "%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "l'application de diff externe a disparu, arrêt à %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow a besoin d'une spécification de chemin unique"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -621,18 +643,18 @@
 "Impossible d'analyser le paramètre de l'option --dirstat/-X :\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "Impossible d'analyser le paramètre de l'option --submodule : '%s'"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "echec de l'obtention d'information de kernel"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Le cache non suivi est désactivé sur ce système."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "Le cache non suivi est désactivé sur ce système ou sur cet endroit."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -671,20 +693,20 @@
 msgid "'%s': short read %s"
 msgstr "'%s' : lecture tronquée %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "commandes git disponibles dans '%s'"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "commandes git disponibles depuis un autre endroit de votre $PATH"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "Ci-dessous les commandes Git habituelles dans diverses situations :"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -693,11 +715,11 @@
 "'%s' semble être une commande git, mais elle n'a pas pu\n"
 "être exécutée. Peut-être git-%s est-elle cassée ?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "Ahem. Votre système n'indique aucune commande Git."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -707,17 +729,17 @@
 "pas.\n"
 "Continuons en supposant que vous avez voulu dire '%s'"
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "dans %0.1f secondes automatiquement..."
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git : '%s' n'est pas une commande git. Voir 'git --help'."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -731,7 +753,7 @@
 "\n"
 "Vouliez-vous dire un de ceux-là ?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
@@ -740,8 +762,8 @@
 msgid "failed to read the cache"
 msgstr "impossible de lire le cache"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "impossible d'écrire le nouveau fichier d'index"
 
@@ -759,64 +781,64 @@
 msgid "error building trees"
 msgstr "erreur de construction des arbres"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "impossible de créer le chemin '%s' %s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Suppression de %s pour faire de la place pour le sous-répertoire\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": peut-être un conflit D/F ?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "refus de perdre le fichier non suivi '%s'"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "impossible de lire l'objet %s '%s'"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "blob attendu pour %s '%s'"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "échec à l'ouverture de '%s'"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "échec à la création du lien symbolique '%s'"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "ne sait pas traiter %06o %s '%s'"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "Échec à l'exécution de la fusion interne"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "Impossible d'ajouter %s à la base de données"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "type d'objet non supporté dans l'arbre"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -825,7 +847,7 @@
 "CONFLIT (%s/suppression) : %s supprimé dans %s et %s dans %s. Version %s de "
 "%s laissée dans l'arbre."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -834,20 +856,20 @@
 "CONFLIT (%s/suppression) : %s supprimé dans %s et %s dans %s. Version %s de "
 "%s laissée dans l'arbre dans le fichier %s."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "renommage"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "renommé"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s est un répertoire dans %s ajouté plutôt comme %s"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -856,146 +878,146 @@
 "CONFLIT (renommage/renommage) : Renommage de \"%s\"->\"%s\" dans la branche "
 "\"%s\" et renommage \"%s\"->\"%s\" dans \"%s\"%s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (laissé non résolu)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "CONFLIT (renommage/renommage) : renommage '%s'->'%s' dans %s. Renommage '%s'-"
 ">'%s' dans %s"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Renommage de %s en %s et de %s en %s à la place"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
 "CONFLIT (renommage/ajout) : Renommage de %s->%s dans %s. %s ajouté dans %s"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "Ajout de %s fusionné"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Ajout plutôt comme %s"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "impossible de lire l'objet %s"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "l'objet %s n'est pas un blob"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "modification"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "modifié"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "contenu"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "ajout/ajout"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "%s sauté (fusion identique à l'existant)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "Fusion automatique de %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "sous-module"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "CONFLIT (%s) : Conflit de fusion dans %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "Suppression de %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "fichier/répertoire"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "répertoire/fichier"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "CONFLIT (%s) : Il y a un répertoire nommé %s dans %s. Ajout de %s comme %s"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "Ajout de %s"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Échec fatal de fusion, qui ne devrait jamais arriver."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "Déjà à jour !"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "échec de fusion des arbres %s et %s"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "Chemin non traité ??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "Fusion :"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "%u ancêtre commun trouvé :"
 msgstr[1] "%u ancêtres communs trouvés :"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "la fusion n'a pas retourné de commit"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "Impossible d'analyser l'objet '%s'"
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "Impossible d'écrire l'index."
 
@@ -1115,12 +1137,12 @@
 "%s : le spécificateur magique de chemin n'est pas supporté par cette "
 "commande : %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "le chemin '%s' est au-delà d'un lien symbolique"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1154,166 +1176,251 @@
 "GIT_INDEX_VERSION est renseigné, mais la valeur est invalide.\n"
 "Utilisation de la version %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "Impossible d'ouvrir '%s' en écriture"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "Impossible de supprimer la référence %s : %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "impossible de supprimer les références : %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "impossible de supprimer la référence %s"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "format : atome %%(end) utilisé sans atome correspondant"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "valeur positive attendue contents:lines=%s"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "format attendu : %%(color:<couleur>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "impossible d'analyser le format"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "couleur non reconnue : %%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "format non reconnu %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) n'accepte pas d'argument"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) n'accepte pas d'argument"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "valeur positive attendue contents:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "argument %%(contents) non reconnu : %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "argument %%(objectname) non reconnu : %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "format attendu : %%(align:<largeur>,<position>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "format non convenable align:%s"
+msgid "unrecognized position:%s"
+msgstr "position non reconnue : %s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "largeur non reconnue : %s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "argument %%(align) non reconnu : %s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "valeur positive attendue avec l'atome %%(align)"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "nom de champ malformé %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "nom de champ inconnu : %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "format : atome %%(end) utilisé sans atome correspondant"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "Chaîne de formatage mal formée %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= requiert un argument entier positif"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "la réf '%s' n'a pas %ld composants à :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "format de %.*s inconnu %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "objet manquant %s pour %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "echec de parse_object_buffer sur %s pour %s"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "objet malformé à '%s'"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "réf avec un nom cassé %s ignoré"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "réf cassé %s ignoré"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "format: atome %%(end) manquant"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "nom d'objet malformé %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "Impossible de récupérer à la fois %s et %s pour %s"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s suit habituellement %s, pas %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s suit à la fois %s et %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "Erreur interne"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD ne pointe pas sur une branche"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "pas de branche '%s'"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "aucune branche amont configurée pour la branche '%s'"
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "la branche amont '%s' n'est pas stockée comme branche de suivi"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr ""
 "la destination de poussée '%s' sur le serveur distant '%s' n'a pas de "
 "branche locale de suivi"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "la branche '%s' n'a aucune branche distante de poussée"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "les références de spec pour '%s' n'incluent pas '%s'"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "la poussée n'a pas de destination (push.default vaut 'nothing')"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr ""
 "impossible de résoudre une poussée 'simple' pour une destination unique"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "Votre branche est basée sur '%s', mais la branche amont a disparu.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (utilisez \"git branch --unset-upstream\" pour corriger)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "Votre branche est à jour avec '%s'.\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "Votre branche est en avance sur '%s' de %d commit.\n"
 msgstr[1] "Votre branche est en avance sur '%s' de %d commits.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (utilisez \"git push\" pour publier vos commits locaux)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1325,11 +1432,11 @@
 "Votre branche est en retard sur '%s' de %d commits, et peut être mise à jour "
 "en avance rapide.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (utilisez \"git pull\" pour mettre à jour votre branche locale)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1344,29 +1451,29 @@
 "Votre branche et '%s' ont divergé,\n"
 "et ont %d et %d commits différents chacune respectivement.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr ""
 "  (utilisez \"git pull\" pour fusionner la branche distante dans la vôtre)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "votre branche actuelle semble cassée"
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "votre branche actuelle '%s' ne contient encore aucun commit"
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent est incompatible avec --bisect"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "échec de l'ouverture de /dev/null"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "échec de dup2(%d,%d)"
@@ -1391,7 +1498,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "Le receveur ne gère pas les poussées avec --atomic"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1399,7 +1506,7 @@
 "après résolution des conflits, marquez les chemins corrigés\n"
 "avec 'git add <chemins>' ou 'git rm <chemins>'"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1409,67 +1516,67 @@
 "avec 'git add <chemins>' ou 'git rm <chemins>'\n"
 "puis validez le résultat avec 'git commit'"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "Impossible d'écrire dans %s"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Erreur à l'emballage de %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "Vos modifications locales seraient écrasées par cherry-pick."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "Vos modifications locales seraient écrasées par revert."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "Validez vos modifications ou les remiser pour continuer."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: Impossible d'écrire le nouveau fichier index"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "Impossible de résoudre le commit HEAD\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "Impossible de mettre à jour l'arbre de cache\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "Impossible d'analyser le commit %s\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "Impossible d'analyser le commit parent %s\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "Votre fichier d'index n'est pas fusionné."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "Le commit %s est une fusion mais l'option -m n'a pas été spécifiée."
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "Le commit %s n'a pas le parent %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr ""
@@ -1478,162 +1585,177 @@
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s : impossible d'analyser le commit parent %s"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "Impossible d'obtenir un message de validation pour %s"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "impossible d'annuler %s... %s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "impossible d'appliquer %s... %s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "l'ensemble de commits spécifié est vide"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s : échec à la lecture de l'index"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s : échec du rafraîchissement de l'index"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "Impossible de %s pendant un %s"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "Impossible d'analyser la ligne %d."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "Aucun commit analysé."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "Impossible d'ouvrir %s"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "Impossible de lire %s."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Feuille d'instruction inutilisable : %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Clé invalide: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Valeur invalide pour %s : %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "Feuille d'options malformée : %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "un picorage ou un retour est déjà en cours"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "essayez \"git cherry-pick (--continue|--quit|-- abort)\""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "Impossible de créer le répertoire de séquenceur %s"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Erreur lors de l'emballage de %s."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "aucun picorage ou retour en cours"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "impossible de résoudre HEAD"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "impossible d'abandonner depuis une branche non encore créée"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "impossible d'ouvrir %s : %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "impossible de lire %s : %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "fin de fichier inattendue"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "le fichier HEAD de préparation de picorage '%s' est corrompu"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "Impossible de formater %s."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s : impossible de picorer un %s"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s : mauvaise révision"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "Impossible d'annuler en tant que commit initial"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "Impossible de picorer vers une HEAD vide"
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "échec de la lecture de %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "offset avant la fin du fichier paquet (.idx cassé ?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "offset avant le début de l'index de paquet pour %s (index corrompu ?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr ""
+"offset au delà de la fin de l'index de paquet pour %s (index tronqué ?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1658,63 +1780,87 @@
 "message\n"
 "en lançant \"git config advice.objectNameWarning false\""
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 "Modification impossible de .gitmodules non fusionné, résolvez les conflits "
 "d'abord"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "Impossible de trouver une section où path=%s dans .gitmodules"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr "Impossible de mettre à jour l'élément %s de .gitmodules"
 
 # ici %s est un chemin
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "Impossible de supprimer l'élément de .gitmodules pour %s"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "échec de la mise en index du .gitmodules mis à jour"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Impossible de paramétrer core.worktree dans %s"
+msgid "running trailer command '%s' failed"
+msgstr "échec de la commande trailer '%s'"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "valeur inconnue '%s' pour la clé '%s'"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "plus d'un %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "symbole vide dans la ligne de fin '%.*s'"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "impossible de lire le fichier d'entrée '%s'"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "Impossible de lire depuis l'entrée standard"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "stat impossible de %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "%s n'est pas un fichier régulier"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "le fichier %s n'est pas inscriptible par l'utilisateur"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "impossible de créer un fichier temporaire"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "impossible de renommer un fichier temporaire en %s"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "impossible de lire la réf %s"
@@ -1752,47 +1898,47 @@
 msgid "invalid '..' path segment"
 msgstr "segment de chemin '..' invalide"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "impossible d'ouvrir '%s' en lecture/écriture"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "impossible d'ouvrir '%s' en écriture"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "impossible d'ouvrir '%s' en lecture"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "impossible d'accéder à '%s' : %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "impossible d'accéder à '%s'"
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "impossible d'accéder au répertoire de travail courant"
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "Impossible d'ouvrir '%s' en écriture"
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "Impossible d'écrire dans %s"
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "impossible de fermer %s"
@@ -2268,7 +2414,11 @@
 msgid "behind "
 msgstr "derrière "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "devant "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "échec lors de l'unlink de '%s'"
@@ -2295,7 +2445,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr "Modifications non indexées après rafraîchissement de l'index :"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "Impossible de lire l'index"
 
@@ -2331,15 +2481,15 @@
 msgstr ""
 "Les chemins suivants sont ignorés par un de vos fichiers .gitignore :\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "simuler l'action"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "mode verbeux"
 
@@ -2347,7 +2497,7 @@
 msgid "interactive picking"
 msgstr "sélection interactive"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "sélection interactive des sections"
 
@@ -2418,140 +2568,135 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Vous vouliez sûrement dire 'git add .' ?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "fichier d'index corrompu"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "Impossible d'écrire le nouveau fichier d'index"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "stat impossible de %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "impossible de lire '%s'"
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "impossible d'analyser le script author"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "'%s' a été effacé par le crochet applypatch-msg"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "Ligne en entrée malformée : '%s'."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "Impossible de copier les notes de '%s' vers '%s'"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "échec de fseek"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "impossible d'ouvrir '%s' en lecture : %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "impossible d'ouvrir '%s' en écriture : %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "impossible d'analyser le patch '%s'"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "Seulement une série de patchs StGIT peut être appliquée à la fois"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "horodatage invalide"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "ligne de Date invalide"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "décalage horaire invalide"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "Échec de détection du format du patch."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "échec de la création du répertoire '%s'"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "Échec de découpage des patchs."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "impossible d'écrire le fichier d'index"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "Quand vous avez résolu ce problème, lancez \"%s --continue\"."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "Si vous préférez plutôt sauter ce patch, lancez \"%s --skip\"."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr ""
 "Pour restaurer la branche originale et arrêter de patcher, lancez \"%s --"
 "abort\"."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "Le patch est vide. Le découpage était-il bon ?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "ligne d'identification invalide : %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "impossible d'analyser le commit %s"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr ""
 "Le dépôt n'a pas les blobs nécessaires pour un retour à une fusion à 3 "
 "points."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr ""
 "Utilisation de l'information de l'index pour reconstruire un arbre de base..."
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2559,38 +2704,38 @@
 "Avez-vous édité le patch à la main ?\n"
 "Il ne s'applique pas aux blobs enregistrés dans son index."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "Retour à un patch de la base et fusion à 3 points..."
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "Échec d'intégration des modifications."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree a échoué à écrire un arbre"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "application à un historique vide"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "échec de l'écriture de l'objet commit"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "impossible de continuer : %s n'existe pas."
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 "impossible d'être interactif sans entrée standard connectée à un terminal."
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "Le corps de la validation est :"
 
@@ -2598,35 +2743,35 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "Appliquer ? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all : "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "Index sale : impossible d'appliquer des patchs (sales : %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Application de  %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "Pas de changement -- Patch déjà appliqué."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "le patch a échoué à %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "La copie du patch qui a échoué se trouve dans : %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2637,7 +2782,7 @@
 "introduit les mêmes changements ; vous pourriez avoir envie de sauter ce "
 "patch."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2645,17 +2790,17 @@
 "Vous avez toujours des chemins non fusionnés dans votre index\n"
 "Auriez-vous oublié de faire 'git add' ?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "Impossible d'analyser l'objet '%s'."
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "échec du nettoyage de l'index"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
@@ -2663,154 +2808,154 @@
 "Vous semblez avoir déplacé la HEAD depuis le dernier échec de 'am'.\n"
 "Pas de retour à ORIG_HEAD"
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "Valeur invalide pour --patch-format : %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<options>] [(<mbox>|<Maildir>)...]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<options>] (--continue | --quit | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "exécution interactive"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "option historique -- no-op"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "permettre de revenir à une fusion à 3 points si nécessaire"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "être silencieux"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "ajouter une ligne Signed-off-by au message de validation"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "recoder en utf-8 (par défaut)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "passer l'option -k à git-mailinfo"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "passer l'option -b à git-mailinfo"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "passer l'option -m à git-mailinfo"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "passer l'option --keep-cr à git-mailsplit fpour le format mbox"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr ""
 "ne pas passer l'option --keep-cr à git-mailsplit indépendamment de am.keepcr"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "retirer tout le contenu avant la ligne des ciseaux"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "action"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "le passer jusqu'à git-apply"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "racine"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "chemin"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
 #: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
 #: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
 #: parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "num"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "format"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "format de présentation des patchs"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "surcharger le message d'erreur lors d'un échec d'application de patch"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "continuer à appliquer les patchs après résolution d'un conflit"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "synonymes de --continue"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "sauter le patch courant"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr ""
 "restaurer la branche originale et abandonner les applications de patch."
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "mentir sur la date de validation"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "utiliser l'horodatage actuel pour la date d'auteur"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "id de clé"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "signer les commits avec GPG"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(utilisation interne pour git-rebase)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2818,17 +2963,17 @@
 "L'option -b/--binary ne fait plus rien depuis longtemps,\n"
 "et elle sera supprimée. Veuillez ne plus l'utiliser."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "échec à la lecture de l'index"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr ""
 "le répertoire précédent de rebasage %s existe toujours mais mbox donnée."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2837,7 +2982,7 @@
 "Répertoire abandonné %s trouvé.\n"
 "Utilisez \"git am --abort\" pour le supprimer."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr ""
 "Pas de résolution de l'opération en cours, nous ne sommes pas dans une "
@@ -3196,137 +3341,137 @@
 msgid "unable to read index file"
 msgstr "lecture du fichier d'index impossible"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "ne pas appliquer les modifications qui correspondent au chemin donné"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "appliquer les modifications qui correspondent au chemin donné"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "supprimer <num> barres obliques des chemins traditionnels de diff"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "ignorer les additions réalisées par le patch"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "au lieu d'appliquer le patch, afficher le diffstat de l'entrée"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr ""
 "afficher le nombre de lignes ajoutées et supprimées en notation décimale"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "au lieu d'appliquer le patch, afficher un résumer de l'entrée"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "au lieu d'appliquer le patch, voir si le patch est applicable"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "s'assurer que le patch est applicable sur l'index actuel"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "appliquer les patch sans toucher à la copie de travail"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "accepter un patch qui touche hors de la copie de travail"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "appliquer aussi le patch (à utiliser avec ---stat/--summary/--check)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "tenter une fusion à 3 points si le patch ne s'applique pas proprement"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr ""
 "construire un index temporaire fondé sur l'information de l'index embarqué"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "les chemins sont séparés par un caractère NUL"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "s'assurer d'au moins <n> lignes de correspondance de contexte"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr ""
 "détecter des lignes nouvelles ou modifiées qui contiennent des erreurs "
 "d'espace"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "ignorer des modifications d'espace lors de la recherche de contexte"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "appliquer le patch en sens inverse"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "ne pas s'attendre à au moins une ligne de contexte"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "laisser les sections rejetées dans les fichiers *.rej correspondants"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "accepter les recouvrements de sections"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr ""
 "tolérer des erreurs de détection de retours chariot manquants en fin de "
 "fichier"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "ne pas se fier au compte de lignes dans les en-têtes de section"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "préfixer tous les noms de fichier avec <root>"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "--3way hors d'un dépôt"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "--index hors d'un dépôt"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "--cached hors d'un dépôt"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "ouverture impossible du patch '%s'"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "%d erreur d'espace ignorée"
 msgstr[1] "%d erreurs d'espace ignorées"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3380,108 +3525,116 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "mettre à jour BISECT_HEAD au lieu d'extraire le commit actuel"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<options>] [<options-de-révision>] [<rev>] [--] <fichier>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<options-de-révision> sont documentés dans git-rev-list(1)"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Assignation de blâme au lignes"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr ""
 "Montrer les éléments de blâme au fur et à mesure de leur découverte, de "
 "manière incrémentale"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "Montrer un SHA-1 blanc pour les commits de limite (Défaut : désactivé)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr ""
 "Ne pas traiter les commits racine comme des limites (Défaut : désactivé)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "Montrer les statistiques de coût d'activité"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Forcer l'affichage de l'état d'avancement"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "Montrer le score de sortie pour les éléments de blâme"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "Montrer les noms de fichier originaux (Défaut : auto)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "Montrer les numéros de lignes originaux (Défaut : désactivé)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "Afficher dans un format propice à la consommation par machine"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "Afficher en format porcelaine avec l'information de commit par ligne"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "Utiliser le même mode de sortie que git-annotate (Défaut : désactivé)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "Afficher les horodatages bruts (Défaut : désactivé)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Afficher les longs SHA1 de commits (Défaut : désactivé)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Supprimer le nom de l'auteur et l'horodatage (Défaut : désactivé)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr "Afficher l'e-mail de l'auteur au lieu du nom (Défaut : désactivé)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "Ignorer les différences d'espace"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr ""
 "Dépenser des cycles supplémentaires pour trouver une meilleure correspondance"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr ""
 "Utiliser les révisions du fichier <fichier> au lieu d'appeler git-rev-list"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "Utiliser le contenu de <fichier> comme image finale"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "score"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "Trouver les copies de ligne dans et entre les fichiers"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "Trouver les mouvements de ligne dans et entre les fichiers"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr ""
 "Traiter seulement l'intervalle de ligne n,m en commençant le compte à 1"
@@ -3492,7 +3645,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "il y a 10 ans et 11 mois"
 
@@ -3694,156 +3847,156 @@
 "La branche est renommée, mais la mise à jour du fichier de configuration a "
 "échoué"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "impossible d'écrire le modèle de description de branche : %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "Options génériques"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "afficher le hachage et le sujet, doublé pour la branche amont"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "supprimer les messages d'information"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "régler le mode de suivi (voir git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "modifier l'information amont"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "utiliser la coloration dans la sortie"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "agir sur les branches de suivi distantes"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "afficher seulement les branches qui contiennent le commit"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "Actions spécifiques à git-branch :"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "afficher à la fois les branches de suivi et les branches locales"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "supprimer une branche totalement fusionnée"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "supprimer une branche (même non fusionnée)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "déplacer/renommer une branche et son reflog"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "déplacer/renommer une branche, même si la cible existe"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "afficher les noms des branches"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "créer le reflog de la branche"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "éditer la description de la branche"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "forcer la création, le déplacement/renommage, ou la suppression"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "afficher seulement les branches qui sont fusionnées"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "afficher seulement les branches qui ne sont pas fusionnées"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "afficher les branches en colonnes"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "clé"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "nom du champ servant à trier"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "objet"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "afficher seulement les branches de l'objet"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Échec de résolution de HEAD comme référence valide."
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD non trouvée sous refs/heads !"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column et --verbose sont incompatibles"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "le nom de branche est requis"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "Impossible de décrire une HEAD détachée"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "impossible d'éditer la description de plus d'une branche"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "Aucun commit sur la branche '%s'."
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "Aucune branche nommée '%s'."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "trop de branches pour une opération de renommage"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "trop de branches pour spécifier une branche amont"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
@@ -3851,41 +4004,41 @@
 "impossible de spécifier une branche amont de HEAD par %s qui ne pointe sur "
 "aucune branche."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "pas de branche '%s'"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "la branche '%s' n'existe pas"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "trop de branches pour désactiver un amont"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr ""
 "impossible de désactiver une branche amont de HEAD quand elle ne pointe sur "
 "aucune branche."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "La branche '%s' n'a aucune information de branche amont"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "créer manuellement 'HEAD' n'a pas de sens"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 "les options -a et -r de 'git branch' n'ont pas de sens avec un nom de branche"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3894,7 +4047,7 @@
 "l'option --set-upstream est obsolète et va disparaître. Utilisez plutôt --"
 "track ou --set-upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3905,12 +4058,12 @@
 "Si vous vouliez que '%s' suive '%s', faîtes ceci :\n"
 "\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -4007,7 +4160,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "utiliser .gitattributes seulement depuis l'index"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "lire les noms de fichier depuis l'entrée standard"
 
@@ -4016,7 +4169,7 @@
 msgstr ""
 "terminer les enregistrements en entrée et en sortie par un caractère NUL"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "supprimer l'état d'avancement"
 
@@ -4069,51 +4222,55 @@
 msgid "no contacts specified"
 msgstr "aucun contact spécifié"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<options>] [--] [<fichier>...]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "stage doit valoir entre 1 et 3, ou all"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "extraire tous les fichiers présents dans l'index"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "forcer l'écrasement des fichiers existants"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr ""
 "pas d'avertissement pour les fichiers existants et les fichiers absents de "
 "l'index"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "ne pas extraire les nouveaux fichiers"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "mettre à jour l'information de stat dans le fichier d'index"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "lire la liste des chemins depuis l'entrée standard"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "écrire le contenu dans des fichiers temporaires"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "chaîne"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "lors de la création de fichiers, préfixer par <chaîne>"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "copier les fichiers depuis l'index nommé"
 
@@ -4195,37 +4352,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD est maintenant sur"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "impossible de mettre à jour HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Remise à zéro de la branche '%s'\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Déjà sur '%s'\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Basculement et remise à zéro de la branche '%s'\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Basculement sur la nouvelle branche '%s'\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Basculement sur la branche '%s'\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... et %d en plus.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4248,7 +4409,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4277,151 +4438,151 @@
 "git branch <nouvelle-branche> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "erreur interne lors du parcours des révisions"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "La position précédente de HEAD était sur"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "Vous êtes sur une branche qui doit encore naître"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "une seule référence attendue, %d fournies."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "référence invalide : %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "la référence n'est pas un arbre : %s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "impossible d'utiliser des chemins avec un basculement de branches"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' ne peut pas être utilisé avec un basculement de branches"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' ne peut pas être utilisé avec '%s'"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Impossible de basculer de branche vers '%s' qui n'est pas un commit"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "branche"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "créer et extraire une nouvelle branche"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "créer/réinitialiser et extraire une branche"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "créer un reflog pour une nouvelle branche"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "détacher la HEAD à la validation nommée"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "paramétrer les coordonnées de branche amont pour une nouvelle branche"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "nouvelle branche"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "nouvelle branche sans parent"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "extraire notre version pour les fichiers non fusionnés"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "extraire leur version pour les fichiers non fusionnés"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "forcer l'extraction (laisser tomber les modifications locales)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "effectuer une fusion à 3 points avec la nouvelle branche"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "mettre à jour les fichiers ignorés (par défaut)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "style"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "style de conflit (fusion ou diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "ne pas limiter les spécificateurs de chemins aux seuls éléments creux"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "réessayer d'interpréter 'git checkout <branche-inexistante>'"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr ""
 "ne pas vérifier si une autre copie de travail contient le référence fournie"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "forcer l'affichage de l'état d'avancement"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B et --orphan sont mutuellement exclusifs"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track requiert un nom de branche"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "Nom de branche manquant ; essayez -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "spécification de chemin invalide"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4431,12 +4592,12 @@
 "en même temps.\n"
 "Souhaitiez-vous extraire '%s' qui ne peut être résolu comme commit ?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach n'accepte pas un argument de chemin '%s'"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4475,7 +4636,7 @@
 msgid "failed to remove %s"
 msgstr "échec de la suppression de %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4487,7 +4648,7 @@
 "foo         - sélectionner un élément par un préfixe unique\n"
 "            - (vide) ne rien sélectionner"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4507,36 +4668,36 @@
 "*          - choisir tous les éléments\n"
 "           - (vide) terminer la sélection"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Hein (%s) ?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "Entrez les motifs à ignorer>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "ATTENTION : Impossible de trouver les éléments correspondant à : %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "Sélectionner les éléments à supprimer"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "Supprimer %s [y/N] ? "
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "Au revoir."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4554,62 +4715,62 @@
 "help                - cet écran\n"
 "?                   - aide pour la sélection en ligne"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** Commandes ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "Et maintenant ?"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "Supprimerait l'élément suivant :"
 msgstr[1] "Supprimerait les éléments suivants :"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "Plus de fichier à nettoyer, sortie."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "ne pas afficher les noms des fichiers supprimés"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "forcer"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "nettoyage interactif"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "supprimer les répertoires entiers"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "motif"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "ajouter <motif> aux règles ignore"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "supprimer les fichiers ignorés, aussi"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "supprimer seulement les fichiers ignorés"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "-x et -X ne peuvent pas être utilisés ensemble"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
@@ -4617,7 +4778,7 @@
 "clean.requireForce positionné à true et ni -i, -n ou -f fourni ; refus de "
 "nettoyer"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4629,147 +4790,163 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<options>] [--] <dépôt> [<répertoire>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "ne pas créer d'extraction"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "créer un dépôt nu"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "créer un dépôt miroir (implique dépôt nu)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "pour cloner depuis un dépôt local"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "ne pas utiliser de liens durs locaux, toujours copier"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "régler comme dépôt partagé"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "initialiser les sous-modules dans le clone"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "répertoire-modèle"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "répertoire depuis lequel les modèles vont être utilisés"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "dépôt de référence"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "utiliser seulement --reference pour cloner"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "nom"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "utiliser <nom> au lieu de 'origin' pour suivre la branche amont"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "extraire <branche> au lieu de la HEAD du répertoire distant"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "chemin vers git-upload-pack sur le serveur distant"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
 msgid "depth"
 msgstr "profondeur"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "créer un clone superficiel de cette profondeur"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "cloner seulement une branche, HEAD ou --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "gitdir"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "séparer le répertoire git de la copie de travail"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "clé=valeur"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "régler la configuration dans le nouveau dépôt"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "n'utiliser que des adresses IPv4"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "n'utiliser que des adresses IPv6"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"Aucun nom de répertoire n'a pu être deviné\n"
+"Veuillez spécifier un répertoire dans la ligne de commande"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr ""
 "extraire le dépôt de référence '%s' comme une extraction liée n'est pas "
-"encore supporté"
+"encore supporté."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "le dépôt de référence '%s' n'est pas un dépôt local."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "le dépôt de référence '%s' est superficiel"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "le dépôt de référence '%s' est greffé"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "échec du stat de '%s'"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s existe et n'est pas un répertoire"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "échec du stat de %s\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "échec de la création du lien '%s'"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "échec de la copie vers '%s'"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "fait.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4779,121 +4956,130 @@
 "Vous pouvez inspecter ce qui a été extrait avec 'git status'\n"
 "et réessayer l'extraction avec 'git checkout -f HEAD'\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "Impossible de trouver la branche distante '%s' à cloner."
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "Vérification de la connectivité... "
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "le serveur distant n'a pas envoyé tous les objets nécessaires"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "impossible de mettre à jour %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
 "la HEAD distante réfère à une référence non existante, impossible de "
 "l'extraire.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "impossible d'extraire la copie de travail"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "impossible d'écrire les paramètres dans le fichier de configuration"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "impossible de remballer pour nettoyer"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "impossible de unlinker le fichier temporaire alternates"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "Trop d'arguments."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "Vous devez spécifier un dépôt à cloner."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "les options --bare et --origin %s sont incompatibles."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare et --separate-git-dir sont incompatibles."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "le dépôt '%s' n'existe pas"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "la profondeur %s n'est pas un entier positif"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr ""
 "le chemin de destination '%s' existe déjà et n'est pas un répertoire vide."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "la copie de travail '%s' existe déjà."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "impossible de créer les répertoires de premier niveau dans '%s'"
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "impossible de créer le répertoire de la copie de travail '%s'"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Clonage dans le dépôt nu '%s'\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Clonage dans '%s'...\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr ""
 "--depth est ignoré dans les clones locaux : utilisez plutôt \"file://\"."
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "le dépôt source est superficiel, option --local ignorée"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local est ignoré"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Je ne sais pas cloner %s"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "La branche distante %s n'a pas été trouvée dans le dépôt amont %s"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "Vous semblez avoir cloné un dépôt vide."
 
@@ -5108,7 +5294,7 @@
 msgid "could not lookup commit %s"
 msgstr "impossible de rechercher le commit %s"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(lecture du message de journal depuis l'entrée standard)\n"
@@ -5296,8 +5482,8 @@
 msgid "show branch information"
 msgstr "afficher l'information de branche"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "sortie pour traitement automatique"
 
@@ -5388,8 +5574,8 @@
 msgid "override date for commit"
 msgstr "remplacer la date pour la validation"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "message"
 
@@ -5425,7 +5611,7 @@
 msgstr ""
 "à présent je suis l'auteur de la validation (utilisé avec -C/-c/--amend)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "ajouter une entrée Signed-off-by :"
 
@@ -5449,7 +5635,7 @@
 msgid "include status in commit message template"
 msgstr "inclure le statut dans le modèle de message de validation"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "signer la validation avec GPG"
@@ -5540,140 +5726,146 @@
 "new_index. Vérifiez que le disque n'est pas plein ou que le quota\n"
 "n'a pas été dépassé, puis lancez \"git reset HEAD\" pour réparer."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<options>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "Emplacement du fichier de configuration"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "utiliser les fichier de configuration global"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "utiliser le fichier de configuration du système"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "utiliser le fichier de configuration du dépôt"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "utiliser le fichier de configuration spécifié"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "blob-id"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "lire la configuration depuis l'objet blob fourni"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "Action"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "obtenir la valeur : nom [regex-de-valeur]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "obtenir toutes les valeurs : clé [regex-de-valeur]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "obtenir les valeur pour la regexp : regex-de-nom [regex-de-valeur]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "obtenir la valeur spécifique pour l'URL : section[.var] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr ""
 "remplacer toutes les variables correspondant : nom valeur [regex-de-valeur]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "ajouter une nouvelle variable : nom valeur"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "supprimer une variable : nom [regex-de-valeur]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "supprimer toutes les correspondances nom [regex-de-valeur]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "renommer une section : ancien-nom nouveau-nom"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "supprimer une section : nom"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "afficher tout"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "ouvrir un éditeur"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "trouver la couleur configurée : slot [par défaut]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "trouver le réglage de la couleur : slot [stdout-est-tty]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "Type"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "la valeur est \"true\" (vrai) ou \"false\" (faux)"
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "la valeur est un nombre décimal"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "la valeur est --bool ou --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "la valeur est un chemin (vers un fichier ou un répertoire)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "Autre"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "terminer les valeurs avec un caractère NUL"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "n'afficher que les noms de variable"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "respecter les directives d'inclusion lors de la recherche"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"afficher l'origine de la configuration (fichier, entrée standard, blob, "
+"ligne de commande)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "impossible de lire la valeur de couleur par défaut"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5688,7 +5880,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "création impossible du fichier de configuration '%s'"
@@ -5941,164 +6133,168 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<options>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "récupérer depuis tous le dépôts distants"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "ajouter à .git/FETCH_HEAD au lieu de l'écraser"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "chemin vers lequel télécharger le paquet sur le poste distant"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "forcer l'écrasement de la branche locale"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "récupérer depuis plusieurs dépôts distants"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "récupérer toutes les étiquettes et leurs objets associés"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "ne pas récupérer toutes les étiquettes (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "nombre de sous-modules récupérés en parallèle"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr ""
 "éliminer les branches de suivi distant si la branche n'existe plus dans le "
 "dépôt distant"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "à la demande"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "contrôler la récupération récursive dans les sous-modules"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "conserver le paquet téléchargé"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "permettre la mise à jour de la référence HEAD"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "approfondir l'historique d'un clone superficiel"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "convertir en un dépôt complet"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "dir"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "préfixer ceci à la sortie du chemin du sous-module"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "mode par défaut pour la récursion"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "accepter les références qui mettent à jour .git/shallow"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "correspondance de référence"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "spécifier une correspondance de référence pour la récupération"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "impossible de trouver la référence HEAD distante"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "objet %s non trouvé"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[à jour]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s -> %s  (impossible de récupérer la branche actuelle)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[rejeté]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[mise à jour de l'étiquette]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (impossible de mettre à jour la référence locale)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[nouvelle étiquette]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[nouvelle branche]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[nouvelle référence]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "impossible de mettre à jour la référence locale"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "mise à jour forcée"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(pas d'avance rapide)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "impossible d'ouvrir %s : %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s n'a pas envoyé tous les objets nécessaires\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr ""
 "%s rejeté parce que les racines superficielles ne sont pas mises à jour"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "Depuis %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -6107,55 +6303,55 @@
 "des références locales n'ont pas pu être mises à jour ; essayez de lancer\n"
 " 'git remote prune %s' pour supprimer des branches anciennes en conflit"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s sera en suspens)"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s est devenu en suspens)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[supprimé]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(aucun(e))"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "Refus de récupérer dans la branche courant %s d'un dépôt non nu"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "La valeur \"%2$s\" de l'option \"%1$s\" est invalide pour %3$s"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "L'option \"%s\" est ignorée pour %s\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "Je ne sais pas récupérer depuis %s"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Récupération de %s\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "Impossible de récupérer %s"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -6163,32 +6359,32 @@
 "Aucun dépôt distant spécifié. Veuillez spécifier une URL ou un nom\n"
 "distant depuis lesquels les nouvelles révisions devraient être récupérées."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "Vous devez spécifier un nom d'étiquette."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth et --unshallow ne peuvent pas être utilisés ensemble"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow sur un dépôt complet n'a pas de sens"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all n'accepte pas d'argument de dépôt"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all n'a pas de sens avec des spécifications de référence"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "distant ou groupe distant inexistant : %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr ""
 "La récupération d'un groupe et les spécifications de référence n'ont pas de "
@@ -6421,233 +6617,247 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<options>] [-e] <motif> [<révision>...] [[--] <chemin>...]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep : échec de création du fil: %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "nombre de fils spécifié invalide (%d) pour %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "impossible de lire l'arbre (%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "impossible de faire un grep sur un objet de type %s"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "l'option '%c' attend un valeur numérique"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "impossible d'ouvrir '%s'"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "rechercher dans l'index plutôt que dans la copie de travail"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "rechercher dans les contenus non gérés par git"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "rechercher dans les fichiers suivis et non-suivis"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "ignorer les fichiers spécifiés via '.gitignore'"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "afficher les lignes qui ne correspondent pas"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "correspondance insensible à la casse"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "rechercher les motifs aux séparateurs de mots"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "traiter les fichiers binaires comme texte"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "ne pas chercher les motifs dans les fichiers binaires"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "traiter les fichiers binaires avec les filtres textconv"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "descendre au plus de <profondeur> dans l'arborescence"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "utiliser des expressions régulières étendues POSIX"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "utiliser des expressions régulières basiques POSIX (par défaut)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "interpréter les motifs comme de chaînes fixes"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "utiliser des expressions régulières compatibles avec Perl"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "afficher les numéros de ligne"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "ne pas pas afficher les noms de fichier"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "afficher les noms de fichier"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "afficher les noms de fichiers relativement au répertoire de base"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "n'afficher que les noms de fichiers au lieu des lignes correspondant"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "synonyme pour --files-with-matches"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "n'afficher que les noms des fichiers sans correspondance"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "imprimer une caractère NUL après le noms de fichier"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "afficher le nombre de correspondances au lieu des lignes correspondant"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "mettre en évidence les correspondances"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr ""
 "imprimer une ligne vide entre les correspondances de fichiers différents"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr ""
 "afficher le nom de fichier une fois au dessus des correspondances du même "
 "fichier"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "afficher <n> lignes de contexte avant et après les correspondances"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "afficher <n> lignes de contexte avant les correspondances"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "afficher <n> lignes de contexte après les correspondances"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "utiliser <n> fils de travail"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "raccourci pour -C NUM"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr ""
 "afficher une ligne avec le nom de la fonction avant les correspondances"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "afficher la fonction contenante"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "lire les motifs depuis fichier"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "rechercher <motif>"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "combiner les motifs spécifiés par -e"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr ""
 "indiquer des correspondances avec le code de sortie mais sans rien afficher"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr ""
 "n'afficher que les correspondances de fichiers qui correspondent à tous les "
 "motifs"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "afficher l'arbre d'analyse pour le motif grep"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "pagineur"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "afficher les fichiers correspondant dans le pagineur"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "permettre l'appel de grep(1) (ignoré par ce build)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "aucun motif fourni."
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "nombre de fils spécifié invalide (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager ne fonctionne que sur la copie de travail"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached ou --untracked ne peuvent pas être utilisés avec --no-index."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr ""
 "--no-index ou --untracked ne peuvent pas être utilisés avec des révisions."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr ""
 "--[no-]exclude-standard ne peut pas être utilisé avec du contenu suivi."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "--cached et des arbres sont fournis en même temps."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6655,38 +6865,38 @@
 "git hash-object [-t <type>] [-w] [--path=<fichier> | --no-filters] [--stdin] "
 "[--] <fichier>..."
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "type"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "type d'objet"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "écrire l'objet dans la base de donnée d'objets"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "lire l'objet depuis l'entrée standard"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "stocker le fichier tel quel sans filtrage"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr ""
 "juste hasher n'importe quel contenu pour créer des objets corrompus pour "
 "debugger Git"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "traiter le fichier comme s'il venait de ce chemin"
 
@@ -6737,7 +6947,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "échec de l'exécution de '%s' : %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6746,7 +6956,7 @@
 "'%s' : chemin pour l'utilitaire de visualisation de manuel non supporté.\n"
 "Veuillez utiliser plutôt 'man.<outil>.cmd'."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -6755,62 +6965,62 @@
 "'%s' : chemin pour l'utilitaire de visualisation de manuel supporté.\n"
 "Veuillez utiliser plutôt 'man.<outil>.cmd'."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s' : visualiseur de manuel inconnu."
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "aucun visualiseur de manuel n'a pris en charge la demande"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "aucun visualiseur de 'info' n'a pris en charge la demande"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "Définition des attributs par chemin"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Git de tous les jours avec à peu près 20 commandes"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "Un glossaire Git"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Spécifie les fichiers non-suivis à ignorer intentionnellement"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "Définition des propriétés de sous-module"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "Spécification des révisions et portées pour Git"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr ""
 "Une introduction pratique à Git (pour les versions 1.5.1 et supérieures)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Un aperçu des flux de travail recommandés avec Git"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "Les guides Git populaires sont : \n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "usage : %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "`git %s\" est un alias de `%s'"
@@ -7047,60 +7257,55 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "mauvais pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "nombre de fils spécifié invalide (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "pas de support des fils, ignore %s"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Impossible d'ouvrir le fichier paquet existant '%s'"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "Impossible d'ouvrir le fichier paquet d'index existant pour '%s'"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "pas un delta : %d objet"
 msgstr[1] "pas un delta : %d objets"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "longueur chaînée = %d : %lu objet"
 msgstr[1] "longueur chaînée = %d : %lu objets"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "Impossible de revenir au répertoire de travail courant"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "mauvais %s"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin ne peut pas être utilisé sans --stdin"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "le nom de fichier paquet '%s' ne se termine pas par '.pack'"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "--verify sans nom de fichier paquet donné"
 
@@ -7227,24 +7432,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer "
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
 "<symbole>[(=|:)<valeur>])...] [<fichier>...]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "éditer les fichiers sur place"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "éliminer les lignes de fin vides"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "ligne de fin"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "ligne(s) de fin à ajouter"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "aucun fichier en entrée pour l'éditon sur place"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<options>] [<plage de révisions>] [[--] <chemin>...]"
@@ -7300,226 +7513,226 @@
 msgid "Unknown type: %d"
 msgstr "Type inconnu : %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers sans valeur"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "le nom du répertoire de sortie est trop long"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "Impossible d'ouvrir le fichier correctif %s"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "Exactement une plage nécessaire."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "Ceci n'est pas une plage."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "La lettre de motivation doit être au format e-mail"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "in-reply-to aberrant : %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<options>] [<depuis> | <plage de révisions>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Deux répertoires de sortie ?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "utiliser [PATCH n/m] même avec un patch unique"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "utiliser [PATCH] même avec des patchs multiples"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "afficher les patchs sur la sortie standard"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "générer une lettre de motivation"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr ""
 "utiliser une séquence simple de nombres pour les nom des fichiers de sortie"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "sfx"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "utiliser <sfx> au lieu de '.patch'"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "démarrer la numérotation des patchs à <n> au lieu de 1"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "marquer la série comme une Nième réédition"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "utiliser [<préfixe>] au lieu de [PATCH]"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "stocker les fichiers résultats dans <répertoire>"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "ne pas retirer/ajouter [PATCH]"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "ne pas imprimer les diffs binaires"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr "écrire une empreinte à zéro dans l'entête From"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "ne pas inclure un patch correspondant à un commit amont"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "afficher le format du patch au lieu du défaut (patch + stat)"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "Communication"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "en-tête"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "ajouter l'en-tête d'e-mail"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "e-mail"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "ajouter l'en-tête \"To:\""
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "ajouter l'en-tête \"Cc:\""
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "ident"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr ""
 "renseigner l'adresse From à <ident> (ou à l'ident du validateur si absent)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "id-message"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "répondre dans le premier message à <id-message>"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "limite"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "attacher le patch"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "patch à l'intérieur"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr ""
 "activer l'enfilage de message, styles : shallow (superficiel), deep (profond)"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "signature"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "ajouter une signature"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "ajouter une signature depuis un fichier"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "ne pas afficher les noms de fichiers des patchs"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n et -k sont mutuellement exclusifs."
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix et -k sont mutuellement exclusifs."
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "--name-only n'a pas de sens"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "--name-status n'a pas de sens"
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "--check n'a pas de sens"
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "sortie standard, ou répertoire, lequel ?"
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "Impossible de créer le répertoire '%s'"
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "lecture du fichier de signature '%s' impossible"
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "Échec de création des fichiers en sortie"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<branche_amont> [<head> [<limite>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7527,106 +7740,158 @@
 "Impossible de trouver une branche distante suivie, merci de spécifier "
 "<branche_amont> manuellement.\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Commit inconnu %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<options>] [<fichier>...]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "identifier le statut de fichier avec les étiquettes"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "utiliser des minuscules pour les fichier 'assumés inchangés'"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "afficher les fichiers mis en cache dans la sortie (défaut)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "afficher les fichiers supprimés dans la sortie"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "afficher les fichiers modifiés dans la sortie"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "afficher les autres fichiers dans la sortie"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "afficher les fichiers ignorés dans la sortie"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "afficher les nom des objets indexés dans la sortie"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr ""
 "afficher les fichiers du système de fichiers qui ont besoin d'être supprimés"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "afficher seulement les noms des répertoires 'other'"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "afficher les fins de lignes des fichiers"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "ne pas afficher les répertoires vides"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "afficher les fichiers non fusionnés dans la sortie"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "afficher l'information resolv-undo"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "sauter les fichiers correspondant au motif"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "les motifs d'exclusion sont lus depuis <fichier>"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "lire des motifs d'exclusion additionnels par répertoire dans <fichier>"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "ajouter les exclusions git standard"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "afficher en relatif par rapport au répertoire racine du projet"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "si un <fichier> n'est pas dans l'index, traiter cela comme une erreur"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "arbre ou apparenté"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr ""
 "considérer que les chemins supprimés depuis <arbre ou apparenté> sont "
 "toujours présents"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "afficher les données de débogage"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<dépôt> [<références>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "ne pas afficher les URL distantes"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exécutable"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "chemin vers git-upload-pack sur le serveur distant"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "limiter aux étiquettes"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "limiter aux heads"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "ne pas afficher les étiquettes pelées"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "prendre en compte url.<base>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr ""
+"sortir avec un code d'erreur 2 si aucune correspondance de référence n'est "
+"trouvée"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "afficher la réf sous-jacente en plus de l'objet pointé par elle"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<options>] <arbre ou apparenté> [<chemin>...]"
@@ -7696,33 +7961,33 @@
 msgid "Available custom strategies are:"
 msgstr "Les stratégies personnalisées sont :"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "ne pas afficher un diffstat à la fin de la fusion"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "afficher un diffstat à la fin de la fusion"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(synonyme de --stat)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
 "ajouter (au plus <n>) éléments du journal court au message de validation de "
 "la fusion"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "créer une validation unique au lieu de faire une fusion"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "effectuer une validation si la fusion réussit (défaut)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "éditer le message avant la validation"
 
@@ -7730,7 +7995,7 @@
 msgid "allow fast-forward (default)"
 msgstr "autoriser l'avance rapide (défaut)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "abandonner si l'avance rapide n'est pas possible"
 
@@ -7738,20 +8003,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "Vérifier que la validation a une signature GPG valide"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "stratégie"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "stratégie de fusion à utiliser"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "option=valeur"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "option pour la stratégie de fusion sélectionnée"
 
@@ -7790,8 +8055,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "Validation compressée -- HEAD non mise à jour\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "Impossible d'écrire dans '%s'"
@@ -7809,43 +8074,43 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "Pas de message de fusion -- pas de mise à jour de HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' ne pointe pas sur un commit"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Mauvaise chaîne branch.%s.mergeoptions : %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "Impossible de gérer autre chose que la fusion de deux têtes."
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Options inconnue pour merge-recursive : -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "impossible d'écrire %s"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "Impossible de lire depuis '%s'"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
 "Pas de validation de la fusion ; utilisez 'git commit' pour terminer la "
 "fusion.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7862,54 +8127,54 @@
 "Les lignes commençant par '%c' seront ignorées, et un message vide\n"
 "abandonne la validation.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Message de validation vide."
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Merveilleux.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 "La fusion automatique a échoué ; réglez les conflits et validez le "
 "résultat.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' n'est pas une validation"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "Pas de branche courante."
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "Pas de branche distante pour la branche courante."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "Pas de branche amont par défaut définie pour la branche courante."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "Pas de branche de suivi pour %s depuis %s"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "impossible de fermer '%s'"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "Il n'y a pas de fusion à abandonner (MERGE_HEAD manquant)."
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7917,7 +8182,7 @@
 "Vous n'avez pas terminé votre fusion (MERGE_HEAD existe).\n"
 "Veuillez valider vos modifications avant de pouvoir fusionner."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7925,102 +8190,102 @@
 "Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe).\n"
 "Veuillez valider vos modifications avant de pouvoir fusionner."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "Vous n'avez pas terminé votre picorage (CHERRY_PICK_HEAD existe)."
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "Vous ne pouvez pas combiner --squash avec --no-ff."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr ""
 "Pas de validation spécifiée et merge.defaultToUpstream n'est pas défini."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr "La validation compressée vers une tête vide n'est pas encore supportée"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "Une validation sans avance rapide n'a pas de sens dans une tête vide"
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - pas possible de fusionner ceci"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr ""
 "Possible de fusionner exactement une seule validation dans une tête vide"
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "La validation %s a une signature GPG non fiable, prétendument par %s."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "La validation %s a une mauvaise signature GPG prétendument par %s."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "La validation %s n'a pas de signature GPG."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "La validation %s a une signature GPG correcte par %s\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Mise à jour %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Essai de fusion vraiment triviale dans l'index...\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "Non.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "Pas possible d'avancer rapidement, abandon."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Retour de l'arbre à l'original...\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Essai de la stratégie de fusion %s...\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Aucune stratégie de fusion n'a pris en charge la fusion.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "La fusion avec la stratégie %s a échoué.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Utilisation de %s pour préparer la résolution à la main.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -8106,19 +8371,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "définir les labels pour fichier1/fichier-orig/fichier2"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "l'entrée se termine par NUL"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "autoriser les objets manquants"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "autoriser la création de plus d'un arbre"
 
@@ -8126,92 +8391,92 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<options>] <source>... <destination>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "Le répertoire %s est dans l'index et pourtant aucun sous-module ?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
 "Veuillez indexer vos modifications de .gitmodules ou les remiser pour "
 "continuer"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s est dans l'index"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "forcer le déplacement/renommage même si la cible existe"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "sauter les erreurs de déplacement/renommage"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "la destination '%s' n'est pas un répertoire"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "Vérification du renommage de '%s' en '%s'\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "mauvaise source"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "impossible de déplacer un répertoire dans lui-même"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "impossible de déplacer un répertoire sur un fichier"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "le répertoire source est vide"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "pas sous le contrôle de version"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "la destination existe"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "écrasement de '%s'"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "Impossible d'écraser"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "multiples sources pour la même destination"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "le répertoire de destination n'existe pas"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, source=%s, destination=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Renommage de %s en %s\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "le renommage de '%s' a échoué"
@@ -8412,9 +8677,9 @@
 msgstr "impossible d'ouvrir ou lire '%s'"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Impossible de résoudre '%s' comme une référence valide."
@@ -8429,42 +8694,42 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "Impossible de lire les informations de note d'un objet non-blob '%s'."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "trop de paramètres"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "Pas de note trouvée pour l'objet %s."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "contenu de la note sous forme de chaîne"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "contenu de la note dans un fichier"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "réutiliser et éditer l'objet de note spécifié"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "réutiliser l'objet de note spécifié"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "permettre de stocker une note vide"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "remplacer les notes existantes"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8473,30 +8738,30 @@
 "Impossible d'ajouter des notes. Des notes ont été trouvées pour l'objet %s. "
 "Utilisez '-f' pour écraser les notes existantes"
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Écrasement des notes existantes pour l'objet %s\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Suppression de la note pour l'objet %s\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "lire les objets depuis l'entrée standard"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr ""
 "charger la configuration de réécriture pour <commande> (implique --stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "pas assez de paramètres"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8505,12 +8770,12 @@
 "Impossible de copier des notes. Des notes ont été trouvées pour l'objet %s. "
 "Utilisez '-f' pour écraser les notes existantes"
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Notes manquantes sur l'objet source %s. Impossible de copier."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8519,15 +8784,15 @@
 "Les options -m/-F/-c/-C sont obsolètes pour la sous-commande 'edit'.\n"
 "Veuillez utiliser 'git notes add -f -m/-F/-c/-C' à la place.\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "Options générales"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "Options de fusion"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
@@ -8535,50 +8800,50 @@
 "résoudre les conflits de notes en utilisant la stratégie donnée (manual/ours/"
 "theirs/union/cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "Validation des notes non fusionnées"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "finaliser la fusion de notes en validant les notes non fusionnées"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "Abandon de la résolution de fusion des notes"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "abandonner la fusion de notes"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "Une fusion de notes dans %s est déjà en cours avec %s"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "L'objet %s n'a pas de note\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr ""
 "la tentative de suppression d'une note non existante n'est pas une erreur"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "lire les noms d'objet depuis l'entrée standard"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "références-notes"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "utiliser les notes depuis <références-notes>"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "Sous-commande inconnue : %s"
@@ -8602,175 +8867,175 @@
 msgid "deflate error (%d)"
 msgstr "erreur de compression (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "Écriture des objets"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr ""
 "désactivation de l'écriture en bitmap car certains objets ne sont pas "
 "compressés"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "Compression des objets"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "version d'index non supportée %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "mauvaise version d'index '%s'"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "ne pas afficher la barre de progression"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "afficher la barre de progression"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "afficher la barre de progression durant la phase d'écrite des objets"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "similaire à --all-progress quand la barre de progression est affichée"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "version[,offset]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr ""
 "écrire le fichier d'index du paquet dans le format d'index de version "
 "spécifié"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "taille maximum de chaque fichier paquet en sortie"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "ignorer les objets empruntés à un autre magasin d'objets"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "ignorer les objets empaquetés"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "limiter la fenêtre d'empaquetage par objets"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr ""
 "limiter la fenêtre d'empaquetage par mémoire en plus de la limite d'objets"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr ""
 "longueur maximum de la chaîne de delta autorisée dans le paquet résultant"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "réutiliser les deltas existants"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "réutiliser les objets existants"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "utiliser les objets OFS_DELTA"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr ""
 "utiliser des fils lors de la recherche pour une meilleurs correspondance des "
 "deltas"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "ne pas créer un paquet vide"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "lire les paramètres de révision depuis l'entrée standard"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "limiter les objets à ceux qui ne sont pas encore empaquetés"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "inclure les objets accessibles depuis toute référence"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr "inclure les objets référencés par les éléments de reflog"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "inclure les objets référencés par l'index"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "afficher l'empaquetage sur la sortie standard"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "inclure les objets d'étiquettes qui réfèrent à des objets à empaqueter"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "garder les objets inaccessibles"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "heure"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "dépaqueter les objets inaccessibles plus récents que <heure>"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "créer des paquets légers"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "créer des paquets permettant des récupérations superficielles"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "ignorer les paquets qui ont un fichier .keep"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "niveau de compression du paquet"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "ne pas cacher les validations par greffes"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr ""
 "utiliser un index en bitmap si disponible pour accélerer le décompte des "
 "objets"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "écrire un index en bitmap associé à l'index de paquet"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "Décompte des objets"
 
@@ -8814,51 +9079,55 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "impossible de nettoyer dans un dépôt d'objets précieux"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<options>] [<dépôt> [<spécification-de-référence>...]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "Options relatives à la fusion"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "incorporer les modifications en rebasant plutôt qu'en fusionnant"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "autoriser l'avance rapide"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "vérifier que le commit nommé a une signature GPG valide"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "Options relatives au rapatriement"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "nombre de sous-modules tirés en parallèle"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Valeur invalide pour pull.ff : %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr ""
 "impossible de tirer avec rebasage. Vous avez des modifications non indexées."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "De plus, votre index contient des modifications non validées."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr ""
 "impossible de tirer avec rebasage : votre index contient des modifications "
 "non validées."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -8866,14 +9135,14 @@
 "Il n'y a pas de candidate sur laquelle rebaser parmi les références que vous "
 "venez de récupérer."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 "Il n'y a pas de candidate avec laquelle fusionner parmi les références que "
 "vous venez de récupérer."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -8881,7 +9150,7 @@
 "Généralement, cela signifie que vous avez indiqué un spécificateur\n"
 "de référence joker qui n'a pas eu de correspondance sur le serveur distant."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8893,27 +9162,27 @@
 "configuration\n"
 "pour la branche actuelle, vous devez spécifier la branche avec la commande."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "Vous n'êtes actuellement sur aucune branche."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "Veuillez spécifier sur quelle branche vous souhaiter rebaser."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "Veuillez spécifier une branche avec laquelle fusionner."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "Référez-vous à git-pull(1) pour de plus amples détails."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "Pas d'information de suivi distant pour la branche actuelle."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8925,7 +9194,7 @@
 "\n"
 "    git branch --set-upstream-to=%s/<branche> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8935,13 +9204,13 @@
 "'%s'\n"
 "du serveur distant, mais cette référence n'a pas été récupérée."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr ""
 "Mise à jour d'une branche non encore créée avec les changements ajoutés dans "
 "l'index."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8952,7 +9221,7 @@
 "avance rapide de votre copie de travail\n"
 "depuis le commit %s."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8970,11 +9239,11 @@
 "$ git reset --hard\n"
 "pour régénérer."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "Impossible de fusionner de multiples branches sur une tête vide."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "Impossible de rebaser sur de multiples branches."
 
@@ -8982,15 +9251,15 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<options>] [<dépôt> [<spécification-de-référence>...]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "raccourci d'étiquette sans <étiquette>"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete accepte seulement des noms entiers de références cibles"
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -8999,7 +9268,7 @@
 "Pour choisir l'option de manière permanente, voir push.default dans 'git "
 "help config'."
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -9024,7 +9293,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -9039,7 +9308,7 @@
 "\n"
 "    git push %s HEAD:<nom-de-la-branche-amont>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -9053,13 +9322,13 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr ""
 "La branche courante %s a de multiples branches amont, impossible de pousser."
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -9070,65 +9339,14 @@
 "pas une branche amont de votre branche courante '%s', sans me dire\n"
 "quoi pousser pour mettre à jour quelle branche amont."
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default n'est pas défini ; sa valeur implicite a changé dans Git 2.0\n"
-"de 'matching' vers 'simple'. Pour supprimer ce message et maintenir\n"
-"le comportement actuel après la modification de la valeur de défaut, "
-"utilisez :\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"Pour supprimer ce message et adopter le nouveau comportement maintenant, "
-"utilisez :\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"Quand push.default vaudra 'matching', git poussera les branches locales\n"
-"sur les branches distantes qui existent déjà avec le même nom.\n"
-"\n"
-"Depuis Git 2.0, Git utilise par défaut le comportement plus conservatif "
-"'simple'\n"
-"qui ne pousse la branche courante que vers la branche distante "
-"correspondante\n"
-"que 'git pull' utilise pour mettre à jour la branche courante.\n"
-" \n"
-"Voir 'git help config' et chercher 'push.default' pour plus d'information.\n"
-"(le mode 'simple' a été introduit dans Git 1.7.11. Utilisez le mode "
-"similaire\n"
-"'current' au lieu de 'simple' si vous utilisez de temps en temps d'anciennes "
-"versions de Git)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
 "Vous n'avez pas spécifié de spécifications de référence à pousser, et push."
 "default est \"nothing\"."
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -9143,7 +9361,7 @@
 "Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus "
 "d'information."
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -9152,13 +9370,13 @@
 msgstr ""
 "Les mises à jour ont été rejetées car la pointe de la branche courante est "
 "derrière\n"
-"son homologue distant. Extrayez cette branche et Intégrez les changements "
+"son homologue distant. Extrayez cette branche et intégrez les changements "
 "distants\n"
 "(par exemple 'git pull ...') avant de pousser à nouveau.\n"
 "Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus "
 "d'information."
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -9176,13 +9394,13 @@
 "Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus "
 "d'information."
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr ""
 "Les mises à jour ont été rejetées car l'étiquette existe déjà dans la "
 "branche distante."
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -9194,22 +9412,22 @@
 "pointer\n"
 "vers un objet qui n'est pas un commit, sans utiliser l'option '--force'.\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "Poussée vers %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "impossible de pousser des références vers '%s'"
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "mauvais dépôt '%s'"
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -9231,105 +9449,101 @@
 "\n"
 "    git push <nom>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all et --tags sont incompatibles"
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all ne peut pas être combiné avec des spécifications de référence"
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror et --tags sont incompatibles"
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror ne peut pas être combiné avec des spécifications de référence"
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all et --mirror sont incompatibles"
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "dépôt"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "pousser toutes les références"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "refléter toutes les références"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "supprimer les références"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr ""
 "pousser les étiquettes (ne peut pas être utilisé avec --all ou --mirror)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "forcer les mises à jour"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "nom de référence>:<attendu"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "exiger que l'ancienne valeur de la référence soit à cette valeur"
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "contrôler la poussée récursive des sous-modules"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "utiliser un empaquetage léger"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "recevoir le programme d'empaquetage"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "définir la branche amont pour git pull/status"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "éliminer les références locales supprimées"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "éviter d'utiliser le crochet pre-push"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "pousser les étiquettes manquantes mais pertinentes"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "signer la poussée avec GPG"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "demande une transaction atomique sur le serveur distant"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete est incompatible avec --all, --mirror et --tags"
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete n'a pas de sens sans aucune référence"
 
@@ -9408,12 +9622,12 @@
 msgid "debug unpack-trees"
 msgstr "déboguer unpack-trees"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%s' pour '%s' n'est pas un horodatage valide"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s' n'est pas un horodatage valide"
@@ -9559,57 +9773,47 @@
 "spécifier les branches à suivre n'a de sens qu'avec des miroirs de "
 "rapatriement"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "la distante %s existe déjà."
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s' n'est pas un nom valide de distante"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "Impossible de paramétrer la maîtresse '%s'"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr ""
 "Impossible d'obtenir une correspondance distante pour la spécification de "
 "référence %s"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(correspond)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(supprimer)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Impossible d'ajouter '%s' à '%s'"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "Distante inconnue : %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "Impossible de renommer la section de configuration '%s' en '%s'"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Impossible de supprimer la section de configuration '%s'"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9620,27 +9824,17 @@
 "\t%s\n"
 "\tVeuillez mettre à jour la configuration manuellement si nécessaire."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Impossible d'ajouter '%s'"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Impossible de définir '%s'"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "échec de suppression de '%s'"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "échec de création de '%s'"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9655,120 +9849,125 @@
 "supprimées ;\n"
 "pour les supprimer, utilisez :"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Impossible de supprimer la section de configuration '%s'"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " nouveau (le prochain rapatriement (fetch) stockera dans remotes/%s)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " suivi"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " dépassé (utilisez 'git remote prune' pour supprimer)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "branch.%s.merge invalide ; ne peut pas rebaser sur plus d'une branche"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "rebase sur la distante %s"
+msgid "rebases interactively onto remote %s"
+msgstr "rebase de manière interactive sur la distante %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " fusionne avec la distante %s"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    et avec la distante"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "fusionne avec la distante %s"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   et avec la distante"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "créer"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "supprimer"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "à jour"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "peut être mis à jour en avance rapide"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "le local n'est pas à jour"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s force vers %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s pousse vers %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s force vers %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s pousse vers %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "ne pas interroger les distantes"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* distante %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  URL de rapatriement : %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(pas d'URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  URL push : %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  Branche HEAD : %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
@@ -9776,158 +9975,158 @@
 "  Branche HEAD (la HEAD distante est ambiguë, peut être l'une des "
 "suivantes) :\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] "  Branche distante :%s"
 msgstr[1] "  Branches distantes :%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (statut non demandé)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  Branche locale configurée pour 'git pull' :"
 msgstr[1] "  Branches locales configurées pour 'git pull' :"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  Les références locales seront reflétées par 'git push'"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  Référence locale configurée pour 'git push'%s :"
 msgstr[1] "  Références locales configurées pour 'git push'%s :"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "définir refs/remotes/<nom>/HEAD selon la distante"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "supprimer refs/remotes/<nom>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "Impossible de déterminer la HEAD distante"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr ""
 "Il y a de multiples branches HEAD distantes. Veuillez en choisir une "
 "explicitement avec :"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "Impossible de supprimer %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "Référence non valide : %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "Impossible de paramétrer %s"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s se retrouvera en suspens !"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s se retrouve en suspens !"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "Élimination de %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL : %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [serait éliminé] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [éliminé] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "éliminer les distants après le rapatriement"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "Pas de serveur remote '%s'"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "ajouter une branche"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "pas de serveur distant spécifié"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "interroger les URLs de poussée plutôt que les URLs de récupération"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "retourner toutes les URLs"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "aucune URL configurée pour le dépôt distant '%s'"
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "manipuler les URLs push"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "ajouter une URL"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "supprimer des URLs"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete n'a aucun sens"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Motif d'URL ancien invalide : %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "Pas d'URL trouvée : %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "Pas de suppression de toutes les URLs non-push"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "être verbeux : doit être placé avant une sous-commande"
 
@@ -10234,7 +10433,7 @@
 msgid "Could not write new index file."
 msgstr "Impossible d'écrire le nouveau fichier d'index."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list ne supporte l'affichage des notes"
 
@@ -10492,30 +10691,25 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<options>] [<intervalle-révisions>] [[--] [<chemin>...]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Auteur manquant : %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "trier la sortie sur le nombre de validations par auteur"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr ""
 "Supprimer les descriptions de validation, fournit seulement le nombre de "
 "validations"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "Afficher l'adresse e-mail de chaque auteur"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "Couper les lignes"
 
@@ -10665,45 +10859,45 @@
 "commentaire"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
 msgstr "ajouter devant chaque ligne le caractère de commentaire et un espace"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "ancre alternative pour les chemins relatifs"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<chemin>] [<chemin>...]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper <nom> <chemin>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr ""
 "Pas de mise en correspondance du sous-module trouvé dans .gitmodules pour le "
 "chemin '%s'"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "emplacement où le sous-module sera cloné"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "nom du nouveau sous-module"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "URL depuis laquelle cloner le sous-module"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "profondeur de l'historique des clones superficiels"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10712,39 +10906,39 @@
 "<dépôt>] [--name <nom>] [--url <url>][--depth <profondeur>] [--] "
 "[<chemin>...]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "impossible de créer le répertoire '%s'"
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "Le clonage de '%s' dans le chemin de sous-module '%s' a échoué"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "impossible d'ouvrir le fichier '%s'"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "impossible de fermer le fichier %s"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "impossible de créer le répertoire de sous-module pour '%s'"
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr ""
 "fatal : la sous-commande submodule--helper doit être appelée avec une sous-"
 "commande"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr "fatal : '%s' n'est pas une sous-commande valide de submodule--helper"
@@ -10961,7 +11155,7 @@
 
 #: builtin/tag.c:425
 msgid "--merged and --no-merged option are only allowed with -l"
-msgstr "les options --merged et --no-merged ne sont autorisées qu'avec -l."
+msgstr "les options --merged et --no-merged ne sont autorisées qu'avec -l"
 
 #: builtin/tag.c:433
 msgid "only one -F or -m option is allowed."
@@ -10990,200 +11184,213 @@
 msgid "Unpacking objects"
 msgstr "Dépaquetage des objets"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "échec de la création du répertoire %s"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "échec du stat de %s"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "échec de la création du fichier %s"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "échec de la suppression du fichier %s"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "échec de la suppression du répertoire %s"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "Test en cours "
+msgid "Testing mtime in '%s' "
+msgstr "Test du mtime dans '%s' "
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr ""
 "l'information de stat du répertoire ne change pas après ajout d'un fichier"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr ""
 "l'information de stat du répertoire ne change pas après ajout d'un répertoire"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr ""
 "l'information de stat du répertoire change après mise à jour d'un fichier"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr ""
 "l'information de stat du répertoire change après l'ajout d'un fichier dans "
 "un sous-répertoire"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr ""
 "l'information de stat du répertoire ne change pas après la suppression d'un "
 "fichier<"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr ""
 "l'information de stat du répertoire ne change pas après la suppression d'un "
 "répertoire"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<options>] [--] [<fichier>...]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr "continuer de rafraîchir même si l'index a besoin d'une mise à jour"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "rafraîchir : ignorer les sous-modules"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "ne pas ignorer les nouveaux fichiers"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "laisser les fichiers remplacer des répertoires et vice-versa"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "aviser des fichiers manquants dans la copie de travail"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr "rafraîchir même si l'index contient des éléments non fusionnés"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "rafraîchir l'information de stat"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "comme --refresh, mais en ignorant l'option assume-unchanged"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<mode>, <objet>, <chemin>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "ajouter l'élément spécifié dans l'index"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "outrepasser le bit exécutable pour les fichiers listés"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "marquer les fichiers comme \"non changeants\""
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "mettre à zéro le bit supposé-non-modifié"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "marquer les fichiers comme \"index seulement\""
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "mettre à zéro le bit sauter-la-copie-de travail"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr ""
 "ajouter seulement à l'index ; ne pas ajouter le contenu dans la base de "
 "données des objets"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr ""
 "supprimer les chemins nommés même s'ils sont présents dans la copie de "
 "travail"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "avec --stdin : les lignes en entrée sont terminées par des octets nuls"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "lire la liste des chemins à mettre à jour depuis l'entrée standard"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "ajouter les éléments depuis l'entrée standard à l'index"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "repeupler les étapes n°2 et n°3 pour les chemins listés"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "mettre à jour seulement les éléments qui diffèrent de HEAD"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "ignorer les fichiers manquants dans la copie de travail"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "afficher les actions sur la sortie standard"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(pour porcelaines) oublier les conflits sauvés et non résolus"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "écrire l'index dans ce format"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "activer ou désactiver l'index divisé"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
-msgstr "activer ou désactiver le cache non-suivi"
+msgstr "activer ou désactiver le cache de non-suivis"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "tester si le système de fichier supporte le cache de non-suivis"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
-msgstr "activer le cache non-suivi sans tester le système de fichier"
+msgstr "activer le cache de non-suivis sans tester le système de fichier"
+
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Le cache non suivi est désactivé"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Le cache non suivi est activé pour '%s'"
 
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
@@ -11305,35 +11512,35 @@
 msgid "'%s' already exists"
 msgstr "'%s' existe déjà"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "impossible de créer le répertoire de '%s'"
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "Préparation de %s (identifiant %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr ""
 "extraire la <branche> même si elle est déjà extraite dans une autre copie de "
 "travail"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "créer une nouvelle branche"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "créer ou réinitialiser une branche"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "détacher la HEAD au commit nommé"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B et --detach sont mutuellement exclusifs"
 
@@ -11353,7 +11560,7 @@
 msgid "only useful for debugging"
 msgstr "seulement utile pour le débogage"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "afficher les messages de debug sur stderr"
 
@@ -11367,6 +11574,10 @@
 "quelques concepts. Voir 'git help <commande>' ou 'git help <concept>'\n"
 "pour en lire plus à propos d'une commande spécifique ou d'un concept."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "L'épinglage de clé publique n'est pas supporté avec cuRL < 7.44.0"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "démarrer une zone de travail (voir aussi : git help tutorial)"
@@ -11451,9 +11662,8 @@
 msgstr "Mettre à jour les références distantes ainsi que les objets associés"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr ""
-"Reporter les validations locales sur le sommet mis à jour d'une branche amont"
+msgid "Reapply commits on top of another base tip"
+msgstr "Réapplication des commits sur le sommet de l'autre base"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -12179,7 +12389,7 @@
 "Le sous-module '$name' ($url) n'est pas enregistré pour le chemin "
 "'$displaypath'"
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -12188,57 +12398,57 @@
 "Chemin de sous-module '$displaypath' non initialisé\n"
 "Peut-être souhaitez-vous utiliser 'update --init' ?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr ""
 "Impossible de trouver la révision courante dans le chemin de sous-module "
 "'$displaypath'"
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "Impossible de rapatrier dans le chemin de sous-module '$sm_path'"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "Impossible de rapatrier dans le chemin de sous-module '$displaypath'"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr ""
 "Impossible d'extraire '$sha1' dans le chemin de sous-module '$displaypath'"
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Chemin de sous-module '$displaypath' : '$sha1' extrait"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr ""
 "Impossible de rebaser '$sha1' dans le chemin de sous-module '$displaypath'"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Chemin de sous-module '$displaypath' : rebasé dans '$sha1'"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr ""
 "Impossible de fusionner '$sha1' dans le chemin de sous-module '$displaypath'"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Chemin de sous-module '$displaypath' : fusionné dans '$sha1'"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12246,56 +12456,137 @@
 "L'exécution de '$command $sha1' a échoué dans le chemin de sous-module "
 "'$prefix$sm_path'"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "Chemin de sous-module '$prefix$sm_path' : '$command $sha1'"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Échec de parcours dans le chemin du sous-module '$displaypath'"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "L'option --cached ne peut pas être utilisée avec l'option --files"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "mode $mod_dst inattendu"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Attention : $display_name ne contient pas la validation $sha1_src"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Attention : $display_name ne contient pas la validation $sha1_dst"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr ""
 "  Attention : $display_name ne contient pas les validations $sha1_src et "
 "$sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "blob"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "Échec de parcours dans le chemin du sous-module '$sm_path'"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Synchronisation de l'URL sous-module pour '$displaypath'"
 
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr ""
+#~ "Reporter les validations locales sur le sommet mis à jour d'une branche "
+#~ "amont"
+
+#~ msgid "unable to parse format"
+#~ msgstr "impossible d'analyser le format"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "format non convenable align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Impossible de paramétrer core.worktree dans %s"
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default n'est pas défini ; sa valeur implicite a changé dans Git "
+#~ "2.0\n"
+#~ "de 'matching' vers 'simple'. Pour supprimer ce message et maintenir\n"
+#~ "le comportement actuel après la modification de la valeur de défaut, "
+#~ "utilisez :\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "Pour supprimer ce message et adopter le nouveau comportement maintenant, "
+#~ "utilisez :\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "Quand push.default vaudra 'matching', git poussera les branches locales\n"
+#~ "sur les branches distantes qui existent déjà avec le même nom.\n"
+#~ "\n"
+#~ "Depuis Git 2.0, Git utilise par défaut le comportement plus conservatif "
+#~ "'simple'\n"
+#~ "qui ne pousse la branche courante que vers la branche distante "
+#~ "correspondante\n"
+#~ "que 'git pull' utilise pour mettre à jour la branche courante.\n"
+#~ " \n"
+#~ "Voir 'git help config' et chercher 'push.default' pour plus "
+#~ "d'information.\n"
+#~ "(le mode 'simple' a été introduit dans Git 1.7.11. Utilisez le mode "
+#~ "similaire\n"
+#~ "'current' au lieu de 'simple' si vous utilisez de temps en temps "
+#~ "d'anciennes versions de Git)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Impossible d'ajouter '%s'"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Impossible de définir '%s'"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "Auteur manquant : %s"
+
+#~ msgid "Testing "
+#~ msgstr "Test en cours "
+
 #~ msgid "unable to look up current user in the passwd file: %s"
 #~ msgstr ""
 #~ "impossible de rechercher l'utilisateur actuel dans le fichier de mots de "
@@ -12369,9 +12660,6 @@
 #~ msgid "unable to parse value '%s' for option %s"
 #~ msgstr "impossible d'analyser la valeur '%s' pour l'option %s"
 
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "impossible de résoudre HEAD"
-
 #~ msgid "-b and -B are mutually exclusive"
 #~ msgstr "-b et -B sont mutuellement exclusifs"
 
@@ -12437,9 +12725,6 @@
 #~ msgid "prune .git/worktrees"
 #~ msgstr "éliminer .git/worktrees"
 
-#~ msgid "--worktrees does not take extra arguments"
-#~ msgstr "--worktrees n'accepte pas d'argument supplémentaire"
-
 #~ msgid "The most commonly used git commands are:"
 #~ msgstr "Les commandes git les plus utilisées sont :"
 
@@ -12470,9 +12755,6 @@
 #~ msgid "force creation (when already exists)"
 #~ msgstr "forcer la création (même si la cible existe)"
 
-#~ msgid "Malformed ident string: '%s'"
-#~ msgstr "Chaîne ident mal formée : '%s'"
-
 #~ msgid "slot"
 #~ msgstr "emplacement"
 
@@ -12530,9 +12812,6 @@
 #~ msgid "bug"
 #~ msgstr "bogue"
 
-#~ msgid "ahead "
-#~ msgstr "devant "
-
 #~ msgid ", behind "
 #~ msgstr ", derrière "
 
diff --git a/po/git.pot b/po/git.pot
index 068f4bb..72ef798 100644
--- a/po/git.pot
+++ b/po/git.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,7 +29,7 @@
 "as appropriate to mark resolution and make a commit."
 msgstr ""
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr ""
 
@@ -71,7 +71,7 @@
 msgid "archive format"
 msgstr ""
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr ""
 
@@ -79,11 +79,11 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr ""
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr ""
 
@@ -115,7 +115,7 @@
 msgid "list supported archive formats"
 msgstr ""
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr ""
 
@@ -123,7 +123,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr ""
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr ""
 
@@ -131,87 +131,100 @@
 msgid "path to the remote git-upload-archive command"
 msgstr ""
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
 msgstr ""
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr ""
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr ""
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr ""
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr ""
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr ""
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr ""
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr ""
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr ""
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr ""
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr ""
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr ""
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr ""
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr ""
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr ""
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr ""
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -223,22 +236,22 @@
 "\"git push -u\" to set the upstream config as you push."
 msgstr ""
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr ""
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr ""
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr ""
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr ""
@@ -262,10 +275,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr ""
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr ""
 
@@ -304,7 +317,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr ""
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr ""
@@ -327,8 +340,8 @@
 msgid "invalid color value: %.*s"
 msgstr ""
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr ""
@@ -342,59 +355,64 @@
 msgid "memory exhausted"
 msgstr ""
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
+msgid "bad config line %d in %s %s"
 msgstr ""
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
 msgstr ""
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr ""
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr ""
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr ""
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr ""
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr ""
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr ""
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr ""
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr ""
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr ""
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr ""
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr ""
@@ -508,33 +526,33 @@
 "%s"
 msgstr ""
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr ""
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr ""
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
 "%s"
 msgstr ""
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr ""
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr ""
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
 msgstr ""
 
 #: gpg-interface.c:166 gpg-interface.c:237
@@ -574,48 +592,48 @@
 msgid "'%s': short read %s"
 msgstr ""
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr ""
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr ""
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr ""
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
 "able to execute it. Maybe git-%s is broken?"
 msgstr ""
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr ""
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
 "Continuing under the assumption that you meant '%s'"
 msgstr ""
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr ""
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr ""
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -625,7 +643,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr ""
@@ -634,8 +652,8 @@
 msgid "failed to read the cache"
 msgstr ""
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr ""
 
@@ -653,233 +671,233 @@
 msgid "error building trees"
 msgstr ""
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr ""
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr ""
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ""
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr ""
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr ""
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr ""
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr ""
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr ""
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr ""
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr ""
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr ""
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr ""
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
 "in tree."
 msgstr ""
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
 "in tree at %s."
 msgstr ""
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr ""
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr ""
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr ""
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
 "\"->\"%s\" in \"%s\"%s"
 msgstr ""
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr ""
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr ""
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr ""
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr ""
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr ""
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr ""
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr ""
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr ""
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr ""
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr ""
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr ""
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr ""
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr ""
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr ""
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr ""
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr ""
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr ""
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr ""
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr ""
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr ""
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr ""
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr ""
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr ""
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr ""
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr ""
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr ""
 
@@ -993,12 +1011,12 @@
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr ""
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr ""
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1026,163 +1044,248 @@
 "Using version %i"
 msgstr ""
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr ""
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr ""
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr ""
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr ""
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr ""
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr ""
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr ""
 
-#: ref-filter.c:835
-msgid "unable to parse format"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
 msgstr ""
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr ""
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr ""
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr ""
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr ""
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr ""
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr ""
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr ""
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
+msgid "unrecognized position:%s"
 msgstr ""
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr ""
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr ""
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr ""
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr ""
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr ""
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr ""
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr ""
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ""
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr ""
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr ""
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr ""
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr ""
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr ""
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr ""
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr ""
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr ""
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr ""
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr ""
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr ""
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr ""
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr ""
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr ""
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr ""
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr ""
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr ""
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr ""
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr ""
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr ""
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr ""
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr ""
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr ""
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr ""
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr ""
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr ""
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1190,11 +1293,11 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr ""
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1205,28 +1308,28 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr ""
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr ""
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr ""
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr ""
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr ""
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr ""
@@ -1249,242 +1352,256 @@
 msgid "the receiving end does not support --atomic push"
 msgstr ""
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
 msgstr ""
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
 "and commit the result with 'git commit'"
 msgstr ""
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr ""
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr ""
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr ""
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr ""
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr ""
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr ""
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr ""
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr ""
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr ""
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr ""
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr ""
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr ""
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr ""
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr ""
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr ""
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr ""
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr ""
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr ""
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr ""
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr ""
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr ""
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr ""
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr ""
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr ""
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr ""
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr ""
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr ""
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr ""
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr ""
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr ""
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr ""
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr ""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr ""
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr ""
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr ""
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr ""
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr ""
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr ""
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr ""
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr ""
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr ""
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr ""
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr ""
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr ""
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr ""
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr ""
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr ""
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr ""
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr ""
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1497,60 +1614,84 @@
 "running \"git config advice.objectNameWarning false\""
 msgstr ""
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr ""
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr ""
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr ""
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr ""
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
+msgid "running trailer command '%s' failed"
 msgstr ""
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr ""
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr ""
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr ""
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr ""
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr ""
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr ""
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr ""
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr ""
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr ""
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr ""
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr ""
@@ -1588,47 +1729,47 @@
 msgid "invalid '..' path segment"
 msgstr ""
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr ""
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr ""
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr ""
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr ""
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr ""
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr ""
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr ""
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr ""
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr ""
@@ -2070,7 +2211,11 @@
 msgid "behind "
 msgstr ""
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr ""
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr ""
@@ -2097,7 +2242,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr ""
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr ""
 
@@ -2132,15 +2277,15 @@
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr ""
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr ""
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr ""
 
@@ -2148,7 +2293,7 @@
 msgid "interactive picking"
 msgstr ""
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr ""
 
@@ -2215,171 +2360,166 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr ""
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr ""
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr ""
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr ""
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr ""
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr ""
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr ""
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr ""
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr ""
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr ""
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr ""
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr ""
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr ""
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr ""
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr ""
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr ""
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr ""
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr ""
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr ""
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr ""
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr ""
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr ""
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr ""
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr ""
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr ""
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr ""
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr ""
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr ""
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr ""
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
 msgstr ""
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr ""
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr ""
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr ""
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr ""
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr ""
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr ""
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr ""
 
@@ -2387,231 +2527,231 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr ""
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr ""
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr ""
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr ""
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr ""
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr ""
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
 "already introduced the same changes; you might want to skip this patch."
 msgstr ""
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
 msgstr ""
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr ""
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr ""
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr ""
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr ""
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr ""
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr ""
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr ""
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr ""
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr ""
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr ""
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr ""
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr ""
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr ""
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr ""
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr ""
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr ""
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr ""
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr ""
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr ""
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr ""
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr ""
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr ""
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr ""
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr ""
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr ""
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr ""
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr ""
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr ""
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr ""
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr ""
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr ""
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr ""
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr ""
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr ""
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr ""
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr ""
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
 msgstr ""
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr ""
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr ""
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
 "Use \"git am --abort\" to remove it."
 msgstr ""
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr ""
 
@@ -2950,131 +3090,131 @@
 msgid "unable to read index file"
 msgstr ""
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr ""
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr ""
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr ""
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr ""
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr ""
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr ""
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr ""
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr ""
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr ""
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr ""
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr ""
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr ""
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr ""
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr ""
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr ""
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr ""
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr ""
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr ""
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr ""
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr ""
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr ""
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr ""
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr ""
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr ""
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr ""
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr ""
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr ""
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr ""
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr ""
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3128,103 +3268,111 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr ""
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr ""
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr ""
 
-#: builtin/blame.c:2519
-msgid "Show blame entries as we find them, incrementally"
-msgstr ""
-
-#: builtin/blame.c:2520
-msgid "Show blank SHA-1 for boundary commits (Default: off)"
-msgstr ""
-
-#: builtin/blame.c:2521
-msgid "Do not treat root commits as boundaries (Default: off)"
-msgstr ""
-
-#: builtin/blame.c:2522
-msgid "Show work cost statistics"
-msgstr ""
-
-#: builtin/blame.c:2523
-msgid "Show output score for blame entries"
-msgstr ""
-
-#: builtin/blame.c:2524
-msgid "Show original filename (Default: auto)"
-msgstr ""
-
-#: builtin/blame.c:2525
-msgid "Show original linenumber (Default: off)"
-msgstr ""
-
-#: builtin/blame.c:2526
-msgid "Show in a format designed for machine consumption"
-msgstr ""
-
-#: builtin/blame.c:2527
-msgid "Show porcelain format with per-line commit information"
-msgstr ""
-
-#: builtin/blame.c:2528
-msgid "Use the same output mode as git-annotate (Default: off)"
-msgstr ""
-
-#: builtin/blame.c:2529
-msgid "Show raw timestamp (Default: off)"
+#: builtin/blame.c:1782
+msgid "Blaming lines"
 msgstr ""
 
 #: builtin/blame.c:2530
-msgid "Show long commit SHA1 (Default: off)"
+msgid "Show blame entries as we find them, incrementally"
 msgstr ""
 
 #: builtin/blame.c:2531
-msgid "Suppress author name and timestamp (Default: off)"
+msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr ""
 
 #: builtin/blame.c:2532
-msgid "Show author email instead of name (Default: off)"
+msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr ""
 
 #: builtin/blame.c:2533
-msgid "Ignore whitespace differences"
+msgid "Show work cost statistics"
 msgstr ""
 
 #: builtin/blame.c:2534
-msgid "Spend extra cycles to find better match"
+msgid "Force progress reporting"
 msgstr ""
 
 #: builtin/blame.c:2535
-msgid "Use revisions from <file> instead of calling git-rev-list"
+msgid "Show output score for blame entries"
 msgstr ""
 
 #: builtin/blame.c:2536
-msgid "Use <file>'s contents as the final image"
-msgstr ""
-
-#: builtin/blame.c:2537 builtin/blame.c:2538
-msgid "score"
+msgid "Show original filename (Default: auto)"
 msgstr ""
 
 #: builtin/blame.c:2537
-msgid "Find line copies within and across files"
+msgid "Show original linenumber (Default: off)"
 msgstr ""
 
 #: builtin/blame.c:2538
+msgid "Show in a format designed for machine consumption"
+msgstr ""
+
+#: builtin/blame.c:2539
+msgid "Show porcelain format with per-line commit information"
+msgstr ""
+
+#: builtin/blame.c:2540
+msgid "Use the same output mode as git-annotate (Default: off)"
+msgstr ""
+
+#: builtin/blame.c:2541
+msgid "Show raw timestamp (Default: off)"
+msgstr ""
+
+#: builtin/blame.c:2542
+msgid "Show long commit SHA1 (Default: off)"
+msgstr ""
+
+#: builtin/blame.c:2543
+msgid "Suppress author name and timestamp (Default: off)"
+msgstr ""
+
+#: builtin/blame.c:2544
+msgid "Show author email instead of name (Default: off)"
+msgstr ""
+
+#: builtin/blame.c:2545
+msgid "Ignore whitespace differences"
+msgstr ""
+
+#: builtin/blame.c:2546
+msgid "Spend extra cycles to find better match"
+msgstr ""
+
+#: builtin/blame.c:2547
+msgid "Use revisions from <file> instead of calling git-rev-list"
+msgstr ""
+
+#: builtin/blame.c:2548
+msgid "Use <file>'s contents as the final image"
+msgstr ""
+
+#: builtin/blame.c:2549 builtin/blame.c:2550
+msgid "score"
+msgstr ""
+
+#: builtin/blame.c:2549
+msgid "Find line copies within and across files"
+msgstr ""
+
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr ""
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr ""
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr ""
 
@@ -3234,7 +3382,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr ""
 
@@ -3426,200 +3574,200 @@
 msgid "Branch is renamed, but update of config-file failed"
 msgstr ""
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr ""
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr ""
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr ""
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr ""
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr ""
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr ""
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr ""
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr ""
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr ""
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr ""
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr ""
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr ""
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr ""
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr ""
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr ""
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr ""
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr ""
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr ""
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr ""
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr ""
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr ""
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr ""
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr ""
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr ""
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr ""
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr ""
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr ""
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr ""
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr ""
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr ""
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr ""
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr ""
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr ""
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr ""
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr ""
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr ""
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
 msgstr ""
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr ""
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr ""
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr ""
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr ""
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr ""
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr ""
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
 "track or --set-upstream-to\n"
 msgstr ""
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3627,12 +3775,12 @@
 "\n"
 msgstr ""
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr ""
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr ""
@@ -3724,7 +3872,7 @@
 msgid "use .gitattributes only from the index"
 msgstr ""
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr ""
 
@@ -3732,7 +3880,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr ""
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr ""
 
@@ -3785,49 +3933,53 @@
 msgid "no contacts specified"
 msgstr ""
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr ""
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr ""
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr ""
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr ""
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr ""
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr ""
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr ""
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr ""
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr ""
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr ""
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr ""
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr ""
 
@@ -3907,37 +4059,41 @@
 msgid "HEAD is now at"
 msgstr ""
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr ""
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr ""
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr ""
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr ""
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr ""
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr ""
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr ""
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -3952,7 +4108,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -3969,162 +4125,162 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr ""
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr ""
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr ""
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr ""
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr ""
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr ""
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr ""
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr ""
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr ""
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr ""
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr ""
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr ""
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr ""
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr ""
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr ""
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr ""
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr ""
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr ""
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr ""
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr ""
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr ""
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr ""
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr ""
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr ""
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr ""
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr ""
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr ""
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr ""
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr ""
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr ""
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr ""
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr ""
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr ""
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
 "Did you intend to checkout '%s' which can not be resolved as commit?"
 msgstr ""
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr ""
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4160,7 +4316,7 @@
 msgid "failed to remove %s"
 msgstr ""
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4168,7 +4324,7 @@
 "           - (empty) select nothing"
 msgstr ""
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4180,36 +4336,36 @@
 "           - (empty) finish selecting"
 msgstr ""
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr ""
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr ""
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr ""
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr ""
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr ""
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr ""
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4220,68 +4376,68 @@
 "?                   - help for prompt selection"
 msgstr ""
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr ""
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr ""
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr ""
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr ""
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr ""
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr ""
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr ""
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr ""
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr ""
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr ""
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr ""
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr ""
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
 msgstr ""
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4291,263 +4447,286 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr ""
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr ""
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr ""
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr ""
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr ""
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr ""
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr ""
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr ""
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr ""
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr ""
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr ""
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr ""
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr ""
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr ""
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr ""
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr ""
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
 msgid "depth"
 msgstr ""
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr ""
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr ""
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr ""
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr ""
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr ""
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr ""
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr ""
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr ""
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr ""
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr ""
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr ""
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr ""
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr ""
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr ""
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr ""
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr ""
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr ""
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr ""
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
 "and retry the checkout with 'git checkout -f HEAD'\n"
 msgstr ""
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr ""
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr ""
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr ""
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr ""
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr ""
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr ""
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr ""
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr ""
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr ""
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr ""
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr ""
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr ""
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr ""
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr ""
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr ""
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr ""
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr ""
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr ""
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr ""
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr ""
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr ""
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr ""
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr ""
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr ""
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr ""
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr ""
 
@@ -4720,7 +4899,7 @@
 msgid "could not lookup commit %s"
 msgstr ""
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr ""
@@ -4888,8 +5067,8 @@
 msgid "show branch information"
 msgstr ""
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr ""
 
@@ -4976,8 +5155,8 @@
 msgid "override date for commit"
 msgstr ""
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr ""
 
@@ -5010,7 +5189,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr ""
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr ""
 
@@ -5034,7 +5213,7 @@
 msgid "include status in commit message template"
 msgstr ""
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr ""
@@ -5122,139 +5301,143 @@
 "not exceeded, and then \"git reset HEAD\" to recover."
 msgstr ""
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr ""
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr ""
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr ""
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr ""
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr ""
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr ""
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr ""
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr ""
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr ""
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr ""
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr ""
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr ""
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr ""
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr ""
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr ""
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr ""
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr ""
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr ""
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr ""
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr ""
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr ""
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr ""
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr ""
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr ""
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr ""
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr ""
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr ""
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr ""
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr ""
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr ""
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr ""
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr ""
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr ""
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5264,7 +5447,7 @@
 "#\temail = %s\n"
 msgstr ""
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr ""
@@ -5508,247 +5691,251 @@
 msgid "git fetch --all [<options>]"
 msgstr ""
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr ""
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr ""
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr ""
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr ""
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr ""
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr ""
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr ""
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr ""
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr ""
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr ""
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr ""
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr ""
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr ""
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr ""
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr ""
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr ""
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr ""
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr ""
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr ""
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr ""
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr ""
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr ""
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr ""
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr ""
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr ""
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr ""
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr ""
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr ""
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr ""
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr ""
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr ""
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr ""
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr ""
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr ""
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr ""
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr ""
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr ""
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr ""
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr ""
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr ""
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr ""
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr ""
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr ""
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr ""
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr ""
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr ""
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr ""
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr ""
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr ""
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
 msgstr ""
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr ""
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr ""
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr ""
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr ""
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr ""
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr ""
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr ""
 
@@ -5963,259 +6150,273 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr ""
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr ""
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr ""
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr ""
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr ""
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr ""
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr ""
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr ""
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr ""
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr ""
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr ""
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr ""
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr ""
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr ""
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr ""
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr ""
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr ""
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr ""
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr ""
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr ""
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr ""
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr ""
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr ""
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr ""
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr ""
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr ""
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr ""
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr ""
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr ""
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr ""
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr ""
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr ""
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr ""
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr ""
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr ""
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr ""
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr ""
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr ""
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr ""
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr ""
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr ""
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr ""
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr ""
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr ""
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr ""
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr ""
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr ""
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr ""
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr ""
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr ""
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr ""
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr ""
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr ""
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr ""
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr ""
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr ""
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr ""
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
 msgstr ""
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr ""
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr ""
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr ""
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr ""
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr ""
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr ""
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr ""
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr ""
 
@@ -6266,75 +6467,75 @@
 msgid "failed to exec '%s': %s"
 msgstr ""
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
 "Please consider using 'man.<tool>.cmd' instead."
 msgstr ""
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
 "Please consider using 'man.<tool>.path' instead."
 msgstr ""
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr ""
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr ""
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr ""
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr ""
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr ""
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr ""
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr ""
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr ""
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr ""
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr ""
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr ""
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr ""
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr ""
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr ""
@@ -6570,60 +6771,55 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr ""
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr ""
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr ""
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr ""
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr ""
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr ""
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr ""
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr ""
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr ""
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr ""
 
@@ -6745,22 +6941,30 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
-msgstr ""
-
-#: builtin/interpret-trailers.c:25
-msgid "trim empty trailers"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
 
 #: builtin/interpret-trailers.c:26
-msgid "trailer"
+msgid "edit files in place"
 msgstr ""
 
 #: builtin/interpret-trailers.c:27
+msgid "trim empty trailers"
+msgstr ""
+
+#: builtin/interpret-trailers.c:28
+msgid "trailer"
+msgstr ""
+
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr ""
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr ""
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr ""
@@ -6814,325 +7018,372 @@
 msgid "Unknown type: %d"
 msgstr ""
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr ""
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr ""
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr ""
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr ""
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr ""
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr ""
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr ""
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr ""
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr ""
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr ""
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr ""
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr ""
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr ""
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr ""
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr ""
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr ""
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr ""
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr ""
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr ""
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr ""
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr ""
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr ""
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr ""
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr ""
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr ""
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr ""
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr ""
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr ""
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr ""
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr ""
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr ""
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr ""
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr ""
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr ""
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr ""
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr ""
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr ""
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr ""
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr ""
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr ""
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr ""
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr ""
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr ""
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr ""
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr ""
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr ""
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr ""
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr ""
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr ""
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr ""
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr ""
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr ""
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr ""
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
 msgstr ""
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr ""
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr ""
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr ""
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr ""
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr ""
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr ""
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr ""
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr ""
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr ""
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr ""
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr ""
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr ""
 
-#: builtin/ls-files.c:437
-msgid "don't show empty directories"
-msgstr ""
-
-#: builtin/ls-files.c:440
-msgid "show unmerged files in the output"
-msgstr ""
-
-#: builtin/ls-files.c:442
-msgid "show resolve-undo information"
-msgstr ""
-
-#: builtin/ls-files.c:444
-msgid "skip files matching pattern"
-msgstr ""
-
-#: builtin/ls-files.c:447
-msgid "exclude patterns are read from <file>"
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
 msgstr ""
 
 #: builtin/ls-files.c:450
-msgid "read additional per-directory exclude patterns in <file>"
+msgid "don't show empty directories"
 msgstr ""
 
-#: builtin/ls-files.c:452
-msgid "add the standard git exclusions"
+#: builtin/ls-files.c:453
+msgid "show unmerged files in the output"
 msgstr ""
 
 #: builtin/ls-files.c:455
-msgid "make the output relative to the project top directory"
+msgid "show resolve-undo information"
 msgstr ""
 
-#: builtin/ls-files.c:458
-msgid "if any <file> is not in the index, treat this as an error"
-msgstr ""
-
-#: builtin/ls-files.c:459
-msgid "tree-ish"
+#: builtin/ls-files.c:457
+msgid "skip files matching pattern"
 msgstr ""
 
 #: builtin/ls-files.c:460
+msgid "exclude patterns are read from <file>"
+msgstr ""
+
+#: builtin/ls-files.c:463
+msgid "read additional per-directory exclude patterns in <file>"
+msgstr ""
+
+#: builtin/ls-files.c:465
+msgid "add the standard git exclusions"
+msgstr ""
+
+#: builtin/ls-files.c:468
+msgid "make the output relative to the project top directory"
+msgstr ""
+
+#: builtin/ls-files.c:471
+msgid "if any <file> is not in the index, treat this as an error"
+msgstr ""
+
+#: builtin/ls-files.c:472
+msgid "tree-ish"
+msgstr ""
+
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr ""
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr ""
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr ""
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr ""
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr ""
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr ""
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr ""
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr ""
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr ""
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr ""
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr ""
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr ""
@@ -7200,31 +7451,31 @@
 msgid "Available custom strategies are:"
 msgstr ""
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr ""
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr ""
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr ""
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr ""
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr ""
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr ""
 
@@ -7232,7 +7483,7 @@
 msgid "allow fast-forward (default)"
 msgstr ""
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr ""
 
@@ -7240,20 +7491,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr ""
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr ""
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr ""
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr ""
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr ""
 
@@ -7291,8 +7542,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr ""
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr ""
@@ -7310,41 +7561,41 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr ""
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr ""
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr ""
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr ""
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr ""
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr ""
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr ""
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7354,157 +7605,157 @@
 "the commit.\n"
 msgstr ""
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr ""
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr ""
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr ""
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr ""
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr ""
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr ""
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr ""
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr ""
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr ""
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
 msgstr ""
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
 msgstr ""
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr ""
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr ""
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr ""
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr ""
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr ""
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr ""
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr ""
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr ""
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr ""
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr ""
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr ""
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr ""
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr ""
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr ""
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr ""
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr ""
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr ""
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr ""
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr ""
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr ""
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -7587,19 +7838,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr ""
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr ""
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr ""
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr ""
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr ""
 
@@ -7607,90 +7858,90 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr ""
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr ""
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr ""
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr ""
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr ""
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr ""
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr ""
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr ""
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr ""
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr ""
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr ""
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr ""
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr ""
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr ""
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr ""
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr ""
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr ""
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr ""
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr ""
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr ""
@@ -7883,9 +8134,9 @@
 msgstr ""
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr ""
@@ -7900,146 +8151,146 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr ""
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr ""
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr ""
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr ""
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr ""
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr ""
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr ""
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr ""
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr ""
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr ""
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr ""
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr ""
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr ""
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr ""
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr ""
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr ""
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr ""
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
 "Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
 msgstr ""
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr ""
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr ""
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
 msgstr ""
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr ""
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr ""
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr ""
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr ""
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr ""
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr ""
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr ""
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr ""
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr ""
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr ""
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr ""
@@ -8059,165 +8310,165 @@
 msgid "deflate error (%d)"
 msgstr ""
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr ""
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr ""
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr ""
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr ""
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr ""
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr ""
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr ""
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr ""
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr ""
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr ""
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr ""
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr ""
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr ""
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr ""
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr ""
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr ""
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr ""
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr ""
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr ""
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr ""
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr ""
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr ""
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr ""
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr ""
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr ""
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr ""
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr ""
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr ""
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr ""
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr ""
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr ""
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr ""
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr ""
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr ""
 
@@ -8261,65 +8512,69 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr ""
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr ""
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr ""
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr ""
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr ""
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr ""
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr ""
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr ""
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr ""
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr ""
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr ""
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr ""
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr ""
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
 msgstr ""
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8327,27 +8582,27 @@
 "for your current branch, you must specify a branch on the command line."
 msgstr ""
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr ""
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr ""
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr ""
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr ""
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr ""
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8355,18 +8610,18 @@
 "    git branch --set-upstream-to=%s/<branch> %s\n"
 msgstr ""
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
 "from the remote, but no such ref was fetched."
 msgstr ""
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr ""
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8374,7 +8629,7 @@
 "commit %s."
 msgstr ""
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8385,11 +8640,11 @@
 "to recover."
 msgstr ""
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr ""
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr ""
 
@@ -8397,21 +8652,21 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr ""
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr ""
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr ""
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
 msgstr ""
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8426,7 +8681,7 @@
 "%s"
 msgstr ""
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8436,7 +8691,7 @@
 "    git push %s HEAD:<name-of-remote-branch>\n"
 msgstr ""
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8445,12 +8700,12 @@
 "    git push --set-upstream %s %s\n"
 msgstr ""
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr ""
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8458,37 +8713,12 @@
 "to update which remote branch."
 msgstr ""
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8496,7 +8726,7 @@
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -8504,7 +8734,7 @@
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -8513,33 +8743,33 @@
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr ""
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
 "without using the '--force' option.\n"
 msgstr ""
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr ""
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr ""
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr ""
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -8552,104 +8782,100 @@
 "    git push <name>\n"
 msgstr ""
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr ""
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr ""
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr ""
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr ""
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr ""
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr ""
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr ""
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr ""
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr ""
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr ""
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr ""
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr ""
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr ""
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr ""
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr ""
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr ""
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr ""
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr ""
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr ""
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr ""
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr ""
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr ""
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr ""
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr ""
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr ""
 
@@ -8724,12 +8950,12 @@
 msgid "debug unpack-trees"
 msgstr ""
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr ""
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr ""
@@ -8865,55 +9091,45 @@
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr ""
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr ""
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr ""
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr ""
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr ""
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr ""
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr ""
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr ""
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr ""
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr ""
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr ""
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -8921,27 +9137,17 @@
 "\tPlease update the configuration manually if necessary."
 msgstr ""
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr ""
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr ""
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr ""
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr ""
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -8951,275 +9157,280 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr ""
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr ""
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr ""
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr ""
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr ""
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr ""
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
+msgid "rebases interactively onto remote %s"
 msgstr ""
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr ""
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr ""
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr ""
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr ""
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr ""
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr ""
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr ""
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr ""
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr ""
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr ""
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr ""
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr ""
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr ""
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr ""
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr ""
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr ""
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr ""
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr ""
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr ""
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr ""
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr ""
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr ""
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr ""
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr ""
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr ""
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr ""
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr ""
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr ""
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr ""
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr ""
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr ""
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr ""
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr ""
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr ""
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr ""
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr ""
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr ""
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr ""
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr ""
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr ""
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr ""
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr ""
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr ""
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr ""
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr ""
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr ""
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr ""
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr ""
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr ""
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr ""
 
@@ -9517,7 +9728,7 @@
 msgid "Could not write new index file."
 msgstr ""
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr ""
 
@@ -9747,28 +9958,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr ""
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr ""
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr ""
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr ""
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr ""
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr ""
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr ""
 
@@ -9903,79 +10109,79 @@
 msgstr ""
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
 msgstr ""
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr ""
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr ""
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr ""
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr ""
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr ""
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr ""
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr ""
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr ""
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
 msgstr ""
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr ""
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr ""
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr ""
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr ""
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr ""
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr ""
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr ""
@@ -10207,188 +10413,201 @@
 msgid "Unpacking objects"
 msgstr ""
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr ""
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr ""
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr ""
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr ""
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr ""
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
+msgid "Testing mtime in '%s' "
 msgstr ""
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr ""
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr ""
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr ""
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr ""
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr ""
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr ""
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr ""
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr ""
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr ""
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr ""
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr ""
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr ""
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr ""
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr ""
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr ""
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr ""
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr ""
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr ""
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr ""
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr ""
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr ""
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr ""
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr ""
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr ""
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr ""
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr ""
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr ""
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr ""
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr ""
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr ""
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr ""
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr ""
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr ""
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr ""
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr ""
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr ""
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr ""
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr ""
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr ""
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr ""
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr ""
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr ""
@@ -10504,33 +10723,33 @@
 msgid "'%s' already exists"
 msgstr ""
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr ""
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr ""
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr ""
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr ""
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr ""
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr ""
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr ""
 
@@ -10550,7 +10769,7 @@
 msgid "only useful for debugging"
 msgstr ""
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr ""
 
@@ -10561,6 +10780,10 @@
 "to read about a specific subcommand or concept."
 msgstr ""
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr ""
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr ""
@@ -10642,7 +10865,7 @@
 msgstr ""
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
+msgid "Reapply commits on top of another base tip"
 msgstr ""
 
 #: common-cmds.h:33
@@ -11295,108 +11518,108 @@
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
 "Maybe you want to use 'update --init'?"
 msgstr ""
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr ""
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr ""
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr ""
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr ""
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
 msgstr ""
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr ""
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr ""
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr ""
 
-#: git-submodule.sh:973
-#, sh-format
-msgid "unexpected mode $mod_dst"
-msgstr ""
-
-#: git-submodule.sh:993
-#, sh-format
-msgid "  Warn: $display_name doesn't contain commit $sha1_src"
-msgstr ""
-
 #: git-submodule.sh:996
 #, sh-format
+msgid "unexpected mode $mod_dst"
+msgstr ""
+
+#: git-submodule.sh:1016
+#, sh-format
+msgid "  Warn: $display_name doesn't contain commit $sha1_src"
+msgstr ""
+
+#: git-submodule.sh:1019
+#, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr ""
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr ""
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr ""
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr ""
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr ""
diff --git a/po/ko.po b/po/ko.po
index 8ec0eac..3ff3b9b 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -57,8 +57,8 @@
 msgstr ""
 "Project-Id-Version: git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2016-01-03 18:50+0900\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-16 10:30+0900\n"
 "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
 "Language-Team: Git Korean translation <http://github.com/changwoo/git-l10n-"
 "ko>\n"
@@ -81,7 +81,7 @@
 "작업 폴더에서 문제를 바로잡은 다음, 'git add/rm <파일>'을 적절히\n"
 "사용해 해결 표시하고 커밋하십시오."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "병합 작업을 다 마치지 않았습니다 (MERGE_HEAD 파일이 있습니다)."
 
@@ -125,7 +125,7 @@
 msgid "archive format"
 msgstr "압축 형식"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "접두어"
 
@@ -133,10 +133,10 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "아카이브의 각 경로 이름의 앞에 지정한 경로를 붙입니다"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
 #: builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "파일"
@@ -169,7 +169,7 @@
 msgid "list supported archive formats"
 msgstr "지원하는 압축 형식의 목록을 표시합니다"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "저장소"
 
@@ -177,7 +177,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "원격 저장소 <저장소>에서 아카이브를 가져옵니다"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "명령"
 
@@ -185,7 +185,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "원격 git-upload-archive 명령의 경로"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -193,87 +193,104 @@
 "git attributes에서 반대 패턴은 무시됩니다.\n"
 "앞에 느낌표를 쓰려면 '\\!'를 사용하십시오."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"오류를 수정한 다음 원격 추적 정보를\n"
+"\"git branch --set-upstream-to=%s%s%s\" 명령을\n"
+"실행해 수정할 수 있습니다."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "%s 브랜치를 자신의 업스트림으로 지정하지 않음."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr ""
 "%s 브랜치가 리베이스를 통해 리모트의 %s 브랜치를 (%s에서) 따라가도록 설정되었"
 "습니다."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "%s 브랜치가 리모트의 %s 브랜치를 (%s에서) 따라가도록 설정되었습니다."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr ""
 "%s 브랜치가 리베이스를 통해 리모트의 %s 브랜치를 따라가도록 설정되었습니다."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "%s 브랜치가 %s 브랜치를 따라가도록 설정되었습니다."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr ""
 "%s 브랜치가 리베이스를 통해 리모트의 %s 레퍼런스를 따라가도록 설정되었습니다."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "%s 브랜치가 리모트의 %s 레퍼런스를 따라가도록 설정되었습니다."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 "%s 브랜치가 리베이스를 통해 로컬의 %s 레퍼런스를 따라가도록 설정되었습니다."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "%s 브랜치가 로컬의 %s 레퍼런스를 따라가도록 설정되었습니다."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "업스트림 브랜치 설정을 쓸 수 없습니다"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "따라가지 않음: %s 레퍼런스에 대해 애매한 정보"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "'%s'은(는) 올바른 브랜치 이름이 아닙니다."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "이름이 '%s'인 브랜치가 이미 있습니다."
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "현재 브랜치를 강제로 업데이트할 수 없습니다."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr ""
 "따라가기 정보를 설정할 수 없습니다. 시작 위치 '%s'이(가) 브랜치가 아닙니다."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "요청한 업스트림 '%s' 브랜치가 없습니다"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -291,22 +308,22 @@
 "새 로컬 브랜치를 거기에 해당하는 리모트 브랜치로 push하려면,\n"
 "\"git push -u\"로 push하는 업스트림을 설정할 수 있습니다."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "올바른 오브젝트 이름이 아닙니다: '%s'."
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "애매한 오브젝트 이름: '%s'."
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "올바른 브랜치 위치가 아닙니다: '%s'."
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s'은(는) 이미 '%s' 위치에 받아져 있습니다"
@@ -330,10 +347,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "저장소에 필수적인 다음 커밋이 없습니다:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "리비전 walk 준비가 실패했습니다"
 
@@ -370,7 +387,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "rev-list 옵션에서 '%s' 레퍼런스가 제외되었습니다"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "알 수 없는 인자: %s"
@@ -393,8 +410,8 @@
 msgid "invalid color value: %.*s"
 msgstr "잘못된 색 값: %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "parse %s을(를) 파싱할 수 없습니다"
@@ -408,59 +425,64 @@
 msgid "memory exhausted"
 msgstr "메모리 바닥남"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "%2$s 파일 %1$d번 줄에 잘못된 설정"
+msgid "bad config line %d in %s %s"
+msgstr "%2$s %3$s %1$d번 줄에 잘못된 설정"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "잘못된 수치 설정 값 '%s' (키 '%s', %s 파일): %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "잘못된 수치 설정 값 '%s' (키 '%s', %s %s): %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "잘못된 수치 설정 값 '%s' (키 '%s'): %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "다음에 사용자 디렉터리 확장에 실패: '%s'"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "%d번은 올바른 zlib 압축 단계가 아닙니다"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "오브젝트 생성 모드가 올바르지 않습니다: %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "명령행 설정을 파싱할 수 없습니다"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "설정 파일을 읽는 중 알 수 없는 오류가 생겼습니다"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "명령행 설정에서 '%s'을(를) 설정할 수 없습니다"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "'%2$s' 파일의 %3$d번 줄 '%1$s' 설정 변수가 잘못되었습니다"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s은(는) 여러 개 값이 있습니다"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "'%s'을(를) '%s'에 설정할 수 없습니다"
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "'git rev-list'를 실행할 수 없습니다"
@@ -567,16 +589,16 @@
 "'diff.submodule' 설정 변수에 오류:\n"
 "%s'"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "외부 diff 프로그램이 죽음, %s 위치에서 멈춤"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow 옵션에는 정확히 하나의 경로명세가 필요합니다"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -585,18 +607,18 @@
 "--dirstat/-X 옵션 파라미터를 파싱하는데 실패했습니다:\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "--submodule 옵션 파라미터 파싱에 실패했습니다: '%s'"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "커널 이름과 정보를 가져오는데 실패했습니다"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "이 시스템에서는 추적되지 않는 캐시를 사용하지 않습니다."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "이 시스템 또는 위치에서는 추적되지 않는 캐시를 사용하지 않습니다."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -635,20 +657,20 @@
 msgid "'%s': short read %s"
 msgstr "'%s': %s에서 읽다가 잘림"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "'%s'에 있는 깃 명령"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "다른 $PATH에 있는 깃 명령"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "다음은 여러가지 상황에서 자주 사용하는 깃 명령입니다:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -657,11 +679,11 @@
 "'%s'은(는) 깃 명령으로 보이지만, 실행할 수\n"
 "없습니다. 아마도 git-%s 망가진 것 같습니다."
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "어라라. 시스템에 깃 명령이 하나도 없다고 나옵니다."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -670,17 +692,17 @@
 "경고: 이름이 '%s'인 깃 명령을 실행했지만, 그 명령이 없습니다.\n"
 "자동으로 '%s' 명령이라고 가정하고 계속합니다"
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "(%0.1f초 뒤에)..."
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git: '%s'은(는) 깃 명령이 아닙니다. 'git --help'를 참고하십시오."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -691,7 +713,7 @@
 "\n"
 "다음을 의도하신 것 아니었나요?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
@@ -700,8 +722,8 @@
 msgid "failed to read the cache"
 msgstr "캐시를 읽는데 실패했습니다"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "새 인덱스 파일을 쓸 수 없습니다"
 
@@ -719,64 +741,64 @@
 msgid "error building trees"
 msgstr "트리 빌드에 오류"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "'%s' 경로 만들기에 실패했습니다%s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "하위 디렉터리에 공간을 만드려고 %s을(를) 제거합니다\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": 아마도 D/F 충돌?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "'%s' 위치의 추적되지 않는 파일을 잃기를 거부합니다"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "%s '%s' 오브젝트를 읽을 수 없음"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "%s '%s'에 대해 블롭을 예상"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "'%s'을(를) 여는데 실패"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "'%s' 심볼릭 링크에 실패"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "다음을 어떻게 할지 알 수 없습니다: %06o %s '%s'"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "내부 병합 실행에 실패"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "%s을(를) 데이터베이스에 추가할 수 없습니다"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "트리에서 지원하지 않는 오브젝트 종류"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -784,7 +806,7 @@
 msgstr ""
 "충돌! (%s/삭제): %s (위치 %s) 및 %s (%s에서) 삭제. %s 버전의 %s 트리에 남음."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -793,20 +815,20 @@
 "충돌! (%s/삭제): %s (위치 %s) 및 %s (위치 %s) 삭제. %s 버전의 %s 트리에 "
 "%s(으)로 남음."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "이름바꾸기"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "이름바꿈"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s은(는) %s에 있는 디렉터리로 %s(으)로 이름을 바꿉니다"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -815,145 +837,145 @@
 "충돌! (이름바꾸기/이름바꾸기): \"%3$s\" 브랜치에서 이름바꾸기 \"%1$s\"->"
 "\"%2$s\" \"%6$s\" 브랜치에서 이름 바꾸기 \"%4$s\"->\"%5$s\"%7$s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (해결되지 않음)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "충돌! (rename/rename): 이름 바꾸기 %s->%s (위치 %s). 이름 바꾸기 %s->%s (위"
 "치 %s)"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "대신 이름을 %s에서 %s(으)로 바꾸고 %s에서 %s(으)로 바꿉니다"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr "충돌! (rename/add): 이름 바꾸기 %s->%s (위치 %s). %s 추가 (위치 %s)"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "병합된 %s을(를) 추가합니다"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "대신 %s(으)로 추가합니다"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "%s 오브젝트를 읽을 수 없습니다"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "%s 오브젝트는 블롭이 아닙니다"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "수정"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "수정됨"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "내용"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "추가/추가"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "건너뛰기: %s (기존과 같게 병합)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "자동 병합: %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "하위 모듈"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "충돌! (%s): %s에 병합 충돌"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "제거: %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "파일/디렉터리"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "디렉터리/파일"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "충돌! (%s): 이름이 %s인 디렉터리가 %s에 있습니다. %s을(를) %s(으)로 추가합니"
 "다"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "추가: %s"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "치명적인 병합 실패, 일어날 수 없는 상황."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "이미 업데이트 상태입니다!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "%s 및 %s 트리의 병합이 실패했습니다"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "처리되지 않은 경로??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "병합:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "과거의 공통 커밋 %u개 발견:"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "병합 결과에 커밋이 없습니다"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "'%s' 오브젝트를 파싱할 수 없습니다"
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "인덱스를 쓸 수 없습니다."
 
@@ -1068,12 +1090,12 @@
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr "%s: 경로명세 지시어가 이 명령어에서 지원하지 않습니다: %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "'%s' 경로명세는 심볼릭 링크 아래에 있습니다"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1107,173 +1129,258 @@
 "GIT_INDEX_VERSION이 설정되었지만, 이 값이 잘못되었습니다.\n"
 "%i 버전을 사용합니다"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "'%s'을(를) 쓰기용으로 열 수 없습니다"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "%s 레퍼런스를 삭제할 수 없습니다: %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "레퍼런스를 삭제할 수 없습니다: %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "%s 레퍼런스를 제거할 수 없습니다"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "형식: %%(end) 아톰이 대응되는 아톰 없이 사용되었습니다"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "'contents:lines=%s'에서 0보다 큰 값이 와야 합니다"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "예상한 형식: %%(color:<색>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "형식을 파싱할 수 없습니다"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "인식할 수 없는 색: %%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "알 수 없는 형식: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body)에 인자를 받지 않습니다"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject)에 인자를 받지 않습니다"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "'contents:lines=%s'에서 0보다 큰 값이 와야 합니다"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "알 수 없는 %%(contents) 인자: %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "알 수 없는 %%(objectname) 인자: %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "예상한 형식: %%(align:<너비>,<위치>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "align:%s 잘못된 형식이 입력되었습니다"
+msgid "unrecognized position:%s"
+msgstr "인식할 수 없는 위치:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "인식할 수 없는 너비:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "인식할 수 없는 %%(align) 인자:%s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "%%(align) 아톰에 너비가 0보다 커야 합니다"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "잘못된 형식의 필드 이름: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "알 수 없는 필드 이름: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "형식: %%(end) 아톰이 대응되는 아톰 없이 사용되었습니다"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "잘못된 형식의 문자열 %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= 명령에는 0보다 큰 정수 인자가 필요합니다"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "'%s' 레퍼런스에 :strip할 구성 요소 %ld개가 없습니다"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "알 수 없는 %.*s 형식 %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "없는 오브젝트 %s, %s에 대해"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "%s에 parse_object_buffer 실패 (%s에 대해)"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "'%s'에 잘못된 형식의 오브젝트"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "망가진 이름 %s에 레퍼런스를 무시합니다"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "망가진 레퍼런스 %s 무시"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "형식: %%(end) 아톰이 없습니다"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "잘못된 형식의 오브젝트 이름 %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "%s 및 %s을(를) 모두 %s에 가져올 수 없습니다"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s은(는) 보통 %s을(를) 추적하고, %s을(를) 추적하지 않습니다"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s은(는) %s 및 %s 모두 추적합니다"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "내부 오류"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD가 브랜치를 가리키지 않습니다"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "그런 브랜치가 없습니다: '%s'"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "'%s' 브랜치에 대해 업스트림을 설정하지 않았습니다"
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "업스트림 '%s' 브랜치가 리모트 추적 브랜치로 저장되지 않았습니다"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr "리모트 '%2$s'의 푸시 대상 '%1$s'에 로컬 추적 브랜치가 없습니다"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "'%s' 브랜치에 푸시 리모트가 없습니다"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "'%s'에 대한 푸시 레퍼런스명세에 '%s'이(가) 들어 있지 않습니다"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "푸시의 대상이 없습니다 (push.default가 'nothing'입니다)"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "하나의 대상에 대해 'simple' 푸시를 처리할 수 없습니다"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "현재 브랜치가 '%s' 기반이지만, 업스트림이 없어졌습니다.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (바로잡으려면 \"git branch --unset-upstream\"을 사용하십시오)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "브랜치가 '%s'에 맞게 업데이트된 상태입니다.\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "브랜치가 '%s'보다 %d개 커밋만큼 앞에 있습니다.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (로컬에 있는 커밋을 제출하려면 \"git push\"를 사용하십시오)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
 "Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
 msgstr[0] "브랜치가 '%s'보다 %d개 커밋 뒤에 있고, 앞으로 돌릴 수 있습니다.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (로컬 브랜치를 업데이트하려면 \"git pull\"을 사용하십시오)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1285,29 +1392,29 @@
 "현재 브랜치와 '%s'이(가) 갈라졌습니다,\n"
 "다른 커밋이 각각 %d개와 %d개 있습니다.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr ""
 "  (리모트의 브랜치를 현재 브랜치로 병합하려면 \"git pull\"을 사용하십시오)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "현재 브랜치가 망가진 것처럼 보입니다"
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "현재 '%s' 브랜치에 아직 아무 커밋도 없습니다"
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent 옵션은 --bisect 옵션과 호환되지 않습니다"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "/dev/null 열기 실패"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "dup2(%d,%d) 실패"
@@ -1331,7 +1438,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "받는 쪽에서 --atomic 푸시를 지원하지 않습니다"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1339,7 +1446,7 @@
 "이 충돌을 해결한 뒤에, 바로잡은 경로를\n"
 "'git add <경로>' 또는 'git rm <경로>'로 표시하십시오"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1349,230 +1456,244 @@
 "'git add <경로>' 또는 'git rm <경로>'로 표시하십시오.\n"
 "그리고 결과물을 'git commit'으로 커밋하십시오"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "%s에 쓸 수 없습니다"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "%s 잠그는데 오류"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "로컬 변경 사항을 cherry-pick 때문에 덮어 쓰게 됩니다."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "로컬 변경 사항을 revert 때문에 덮어 쓰게 됩니다."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "변경 사항을 스테이징하거나 스태시한 다음 계속하십시오."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: 새 인덱스 파일을 쓸 수 없습니다"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "HEAD 커밋을 처리할 수 없습니다\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "캐시 트리를 업데이트할 수 없습니다\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "%s 커밋을 파싱할 수 없습니다\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "%s 이전 커밋을 파싱할 수 없습니다\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "인덱스 파일이 병합되지 않았습니다."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "%s 커밋은 병합이지만 -m 옵션이 주어지지 않았습니다."
 
 # FIXME: "parent %d" 번호가 무슨 의미?
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "Commit %s 커밋에 이전 커밋 %d이(가) 없습니다"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr "메인라인을 지정했지만 %s 커밋이 병합 커밋이 아닙니다."
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: %s 이전 커밋을 파싱할 수 없습니다"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "%s에 대한 커밋 메시지를 가져올 수 없습니다"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "다음을 되돌릴(revert) 수 없습니다: %s... %s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "다음을 적용할(apply) 수 없습니다: %s... %s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "빈 커밋 모음을 건너 뜁니다"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: 인덱스 읽기에 실패했습니다"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: 인덱스 새로 고침에 실패했습니다"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "%2$s 동안 %1$s 할 수 없습니다"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "%d번 줄을 파싱할 수 없습니다."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "파싱한 커밋이 없습니다."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "%s을(를) 열 수 없습니다"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "%s을(를) 읽을 수 없습니다."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "사용 불가능 인스트럭션 파일: %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "잘못된 키: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "%s의 값이 올바르지 않습니다: %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "형식이 잘못된 옵션 파일: %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "이미 커밋 빼오기(cherry-pick) 또는 되돌리기(revert)가 진행 중입니다"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "\"git cherry-pick (--continue | --quit | --abort)\" 명령을 해 보십시오"
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "%s 시퀀서 디렉터리를 만들 수 없습니다"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "%s 잠그는데 오류."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "빼오기(cherry-pick) 또는 되돌리기(revert)가 진행 중이지 않습니다"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "HEAD를 구해 올 수 없습니다"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "새로 만들고 있는 브랜치에서 중지할 수 없습니다"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "%s을(를) 열 수 없습니다: %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "%s을(를) 읽을 수 없습니다: %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "예상치 못하게 파일이 끝났습니다"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "빼오기 전에 저장한 HEAD 파일이('%s') 손상되었습니다"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "%s에 포매팅할 수 없습니다."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s: %s 커밋을 빼올 수 없습니다"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s: 잘못된 리비전"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "최초의 커밋을 되돌릴 수 없습니다"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "빈 헤드로 커밋을 빼올 수 없습니다."
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "%s을(를) 읽는데 실패했습니다"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "오프셋이 묶음 파일 앞입니다 (망가진 .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "오프셋이 %s의 묶음 인덱스 시작보다 앞입니다 (망가진 인덱스?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "오프셋이 %s의 묶음 인덱스 끝보다 뒤입니다 (망가진 인덱스?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1594,61 +1715,85 @@
 "확인해 보시고 잘못 만들어진 것이면 지우십시오. 이 메시지를 보고 싶지\n"
 "않으면 \"git config advice.objectNameWarning false\" 명령을 사용하십시오."
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 "병합하지 않은 .gitmodules를 바꿀 수 없습니다. 병합 충돌을 먼저 해결하십시오"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "경로가 %s일 때 .gitmodules의 섹션을 찾을 수 없습니다"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr ".gitmodules 항목 %s을(를) 업데이트할 수 없습니다"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "%s에 대한 .gitmodules 항목을 제거할 수 없습니다"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "업데이트한 .gitmodules를 커밋할 사항으로 표시하는데 실패"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "%s에서 core.worktree를 설정할 수 없습니다"
+msgid "running trailer command '%s' failed"
+msgstr "트레일러 명령 '%s' 실행 실패"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "알 수 없는 값 '%s', 키 '%s'"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "%s이(가) 여러개입니다"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "트레일러 '%.*s'에서 빈 트레일러 토큰"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "'%s' 입력 파일을 읽을 수 없습니다"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "표준 입력에서 읽을 수 없습니다"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "%s에 대해 stat()할 수 없습니다"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "'%s' 파일이 일반 파일이 아닙니다"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "사용자가 %s 파일에 쓸 수 없습니다"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "임시 파일을 열 수 없습니다: %s"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "임시 파일 이름을 '%s'(으)로 바꿀 수 없습니다"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "%s 레퍼런스를 읽을 수 없습니다"
@@ -1686,47 +1831,47 @@
 msgid "invalid '..' path segment"
 msgstr "경로에서 잘못된 '..' 부분"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "읽기와 쓰기용으로 '%s'을(를) 열 수 없습니다"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "'%s'을(를) 쓰기용으로 열 수 없습니다"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "'%s'을(를) 읽기용으로 열 수 없습니다"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "'%s'에 접근할 수 없습니다: %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "'%s'에 접근할 수 없습니다"
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "현재 작업 디렉터리를 가져올 수 없습니다"
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "%s을(를) 쓰기용으로 열 수 없습니다"
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "%s에 쓸 수 없습니다"
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "%s을(를) 닫을 수 없습니다"
@@ -2185,9 +2330,13 @@
 
 #: wt-status.c:1677 wt-status.c:1685
 msgid "behind "
-msgstr "뒤에: "
+msgstr "다음 뒤에: "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "다음 앞에: "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "'%s' 파일 삭제에 실패했습니다"
@@ -2214,7 +2363,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr "인덱스를 새로 고친 다음 커밋 표시하지 않은 변경 사항:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "인덱스를 읽을 수 없습니다"
 
@@ -2249,15 +2398,15 @@
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "다음 경로는 .gitignore 파일 중 하나 때문에 무시합니다:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "가짜로 실행"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "자세히 표시"
 
@@ -2265,7 +2414,7 @@
 msgid "interactive picking"
 msgstr "대화식으로 고릅니다"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "대화식으로 변경된 부분을 선택합니다"
 
@@ -2333,136 +2482,131 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "'git add .' 명령을 실행하려고 한 것 아니었습니까?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "인덱스 파일이 손상되었습니다"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "새 인덱스 파일에 쓸 수 없습니다"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "%s에 대해 stat()할 수 없습니다"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "'%s'에서 읽을 수 없습니다"
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "작성자 스크립트를 파싱할 수 없습니다"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "applypatch-msg 훅 때문에 '%s'이(가) 삭제되었습니다."
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "잘못된 형식의 입력 줄: '%s'."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "'%s'에서 '%s'(으)로 노트를 복사하는데 실패했습니다"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "fseek 실패"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "'%s'을(를) 읽기용으로 열 수 없습니다: %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "'%s'을(를) 쓰기용으로 열 수 없습니다: %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "'%s' 패치를 파싱할 수 없습니다"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "한번에 하나의 StGIT 패치 시리즈만 적용할 수 있습니다"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "시각이 잘못되었습니다"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "Date 줄이 잘못되었습니다"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "시간대 오프셋이 잘못되었습니다"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "패치 형식 검색이 실패했습니다."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "'%s' 디렉터리 만들기가 실패했습니다"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "패치를 쪼개는데 실패했습니다."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "인덱스 파일을 쓸 수 없습니다"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "이 문제를 해결했을 때 \"%s --continue\"를 실행하십시오."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "이 패치를 건너뛰려면, 그 대신 \"%s --skip\"을 실행하십시오."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr ""
 "원래 브랜치를 복구하고 패치 적용을 중지하려면 \"%s --abort\"를 실행하십시오."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "패치가 비어 있습니다. 잘못 쪼개지지 않았나요?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "잘못된 신원 줄: %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "%s 커밋을 파싱할 수 없습니다"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "저장소에 3-방향 병합으로 대신할 때 필요한 블롭이 없습니다."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr "인덱스 정보를 사용해 기본 트리를 다시 만듭니다..."
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2470,38 +2614,38 @@
 "패치를 직접 편집하셨습니까?\n"
 "이 패치는 인덱스에 기록된 블롭에는 적용되지 않습니다."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "베이스 패치 적용 및 3-방향 병합으로 대신합니다..."
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "변경 사항에서 병합하는데 실패했습니다."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree가 트리를 쓰는데 실패했습니다"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "빈 커밋 내역에 대해 적용합니다"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "커밋 오브젝트를 쓰는데 실패했습니다"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "다시 시작할 수 없습니다: %s이(가) 없습니다."
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 "터미널에 표준 입력이 연결되지 않은 상태에서 대화형으로 실행할 수 없습니다."
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "커밋 본문은:"
 
@@ -2509,35 +2653,35 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "적용? 예[y]/아니오[n]/편집[e]/패치 보기[v]/모두 적용[a]: "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "변경된 인덱스: 패치를 적용할 수 없습니다 (dirty: %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "적용하는 중: %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "변경 사항 없음 -- 패치가 이미 적용되었습니다."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "패치가 %s %.*s 위치에서 실패했습니다"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "실패한 패치의 복사본이 다음 위치에 있습니다: %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2547,7 +2691,7 @@
 "커밋으로 표시할 사항이 남아 있지 않으면, 이미 같은 패치에서 적용된\n"
 "경우일 수도 있습니다. 그런 경우에는 이 패치를 건너뛰면 됩니다."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2555,17 +2699,17 @@
 "인덱스에 병합하지 않은 경로가 남아 있습니다.\n"
 "'git add' 사용을 잊지 않으셨습니까?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "'%s' 오브젝트를 파싱할 수 없습니다."
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "인덱스 지우기에 실패했습니다"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
@@ -2573,155 +2717,155 @@
 "마지막 'am' 실패 이후 HEAD를 옮긴 것 같습니다.\n"
 "ORIG_HEAD로 되돌리지 않습니다."
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "--patch-format 옵션에 대해 잘못된 값: %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<옵션>] [(<mbox>|<Maildir>)...]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<옵션>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "대화형으로 실행합니다"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "아무 동작도 하지 않습니다 (과거부터 있었던 옵션)"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "필요하면 3-방향 병합으로 대신하도록 허용합니다"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "간략히 표시합니다"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "커밋 메시지에 Signed-off-by 줄을 남깁니다"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "UTF-8 인코딩으로 변환합니다 (기본값)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "git-mailinfo에 -k 옵션을 씁니다"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "git-mailinfo에 -b 옵션을 씁니다"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "git-mailinfo에 -m 옵션을 씁니다"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "mbox 형식에 대해 git-mailsplit에 --keep-cr 옵션을 사용합니다"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr ""
 "am.keepcr에 무관하게 git-mailsplit에 --keep-cr 옵션을 사용하지 않습니다."
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "절취선 앞의 모든 사항을 무시합니다"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "동작"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "git-apply에 넘깁니다"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "최상위"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "경로"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
 #: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
 #: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
 #: parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "개수"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "형식"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "패치의 형식"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "패치 실패가 발생했을 때 오류 메시지 대신 사용합니다"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "충돌을 해결한 다음 패치 적용을 계속합니다"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "--continue 옵션과 동일"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "현재 패치 건너뛰기"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr "원래 브랜치를 복구하고 패치 적용 작업을 중지합니다."
 
 # NOTE: 옵션의 의미는 이게 맞다. 원문에서는 사용자가
 # --committer-date-is-author-date라는 옵션을 보고 의미를 알 수 있다고 가정하고 있다.
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "커미터 시각을 작성자 시각으로 넣습니다"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "현재 시각을 작성자 시각으로 사용합니다"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "키-ID"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "GPG 서명 커밋"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(git-rebase를 위한 내부 용도)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2729,16 +2873,16 @@
 "-b/--binary 옵션은 오랜 시간 동안 아무 동작도 하지 않았으므로, 이\n"
 "옵션은 제거될 예정입니다. 이제 사용하지 마십시오."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "인덱스 읽기에 실패했습니다"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "이전 리베이스 디렉터리 %s이(가) 아직 있고 mbox를 지정했습니다."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2747,7 +2891,7 @@
 "벗어난 %s 디렉터리가 발견되었습니다.\n"
 "제거하려면 \"git am --abort\"를 사용하십시오."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "해소 작업이 진행 중입니다. 다시 시작하지 않습니다."
 
@@ -2783,17 +2927,21 @@
 #: builtin/apply.c:940
 #, c-format
 msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
-msgstr "git apply: 잘못된 git-diff - %2$d번 줄에서 /dev/null을 기대했지만, '%1$s'이(가) 왔습니다"
+msgstr ""
+"git apply: 잘못된 git-diff - %2$d번 줄에서 /dev/null을 기대했지만, '%1$s'이"
+"(가) 왔습니다"
 
 #: builtin/apply.c:944
 #, c-format
 msgid "git apply: bad git-diff - inconsistent new filename on line %d"
-msgstr "git apply: 잘못된 git-diff - %d번 줄에 새 파일 이름이 올바르지 않습니다"
+msgstr ""
+"git apply: 잘못된 git-diff - %d번 줄에 새 파일 이름이 올바르지 않습니다"
 
 #: builtin/apply.c:945
 #, c-format
 msgid "git apply: bad git-diff - inconsistent old filename on line %d"
-msgstr "git apply: 잘못된 git-diff - %d번 줄에 예전 파일 이름이 올바르지 않습니다"
+msgstr ""
+"git apply: 잘못된 git-diff - %d번 줄에 예전 파일 이름이 올바르지 않습니다"
 
 #: builtin/apply.c:952
 #, c-format
@@ -3089,130 +3237,130 @@
 msgid "unable to read index file"
 msgstr "인덱스 파일을 읽을 수 없습니다"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "주어진 경로에 해당하는 변경 사항을 적용하지 않습니다"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "주어진 경로에 해당하는 변경 사항을 적용합니다"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "전통적인 diff 경로 앞의 <개수>개의 앞 슬래시(/)를 제거합니다"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "패치에서 추가하는 파일을 무시합니다"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "패치를 적용하는 대신, 입력에 대한 diffstat을 출력합니다"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "십진수로 추가 및 삭제한 줄 수를 표시합니다"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "패치를 적용하는 대신, 입력에 대한 요약을 출력합니다"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "패치를 적용하는 대신, 패치를 적용 가능한지 확인합니다"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "현재 인덱스에서 패치가 적용 가능한지 확인합니다"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "작업 폴더를 바꾸지 않고 패치를 적용합니다"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "작업 영역 밖의 파일을 바꾸는 패치를 허용합니다"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "그리고 패치도 적용합니다 (--stat/--summary/--check 옵션과 같이 사용)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "패치를 적용하지 않으면 3-방향 병합을 시도합니다"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr "내장 인덱스 정보를 사용해 임시 인덱스를 만듭니다"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "경로를 NUL 문자로 구분합니다"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "최소한 <n>줄이 컨텍스트와 일치하는지 확인합니다"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "공백 오류가 있는 추가됐거나 수정된 줄을 찾습니다"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "컨텍스트를 찾을 때 공백 변경 사항을 무시합니다"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "패치를 반대 순서로 적용합니다"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "최소한의 컨텍스트 한 줄도 없이 적용합니다"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "거부된 패치 부분을 대응되는 *.rej 파일에 남겨둡니다"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "패치 부분이 겹쳐도 허용합니다"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "파일 끝에 줄바꿈이 빠졌음을 잘못 검색한 경우에 무시합니다"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "패치 부분의 헤더의 줄 수를 신용하지 않습니다"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "모든 파일 이름에 <최상위>를 앞에 붙입니다"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "저장소 밖에서 --3way 옵션 사용"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "저장소 밖에서 --index 옵션 사용"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "저장소 밖에서 --cached 옵션 사용"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "'%s' 패치를 열 수 없습니다"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "공백 오류 %d개를 넘어갑니다"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3265,103 +3413,111 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "현재 커밋을 가져오는 대신 BISECT_HEAD를 업데이트합니다"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<옵션>] [<리비전-옵션>] [<리비전>] [--] <파일>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<리비전-옵션>은 git-rev-list(1)에 설명되어 있습니다"
 
-#: builtin/blame.c:2519
-msgid "Show blame entries as we find them, incrementally"
-msgstr "blame 항목을 찾자마자 점진적으로 표시합니다"
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "블레임 줄"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2530
+msgid "Show blame entries as we find them, incrementally"
+msgstr "블레임 항목을 찾자마자 점진적으로 표시합니다"
+
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "가장자리 커밋에 대해 빈 SHA-1을 표시합니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "최상위 커밋을 가장자리 커밋으로 취급하지 않습니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "작업 비용 통계를 표시합니다"
 
-#: builtin/blame.c:2523
-msgid "Show output score for blame entries"
-msgstr "blame 항목에 대해 출력 점수를 표시합니다"
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "강제로 진행 상황을 표시합니다"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2535
+msgid "Show output score for blame entries"
+msgstr "블레임 항목에 대해 출력 점수를 표시합니다"
+
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "원래 파일 이름 표시 (기본값: 자동)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "원래 줄 번호 표시 (기본값: 하지 않음)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "컴퓨터 처리용으로 설계된 형식으로 표시합니다"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "줄마다 커밋 정보가 표시되는 사용자용 형식으로 표시합니다"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "git-annotate와 동일한 형식을 사용합니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "내부 형식으로 시각을 표시합니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "길게 커밋 SHA1을 표시합니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "작성자 이름과 시각을 표시하지 않습니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr "작성자 이름 대신에 전자메일을 표시합니다 (기본값: 꺼짐)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "공백 문자 차이점을 무시합니다"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "더 일치하는 항목을 찾는데 더 시간을 소모합니다"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "git-rev-list를 호출하는 대신 <파일>에서 리비전을 사용합니다"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "<파일>의 내용을 최종 이미지로 사용합니다"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "점수"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "파일 내부와 파일 사이의 복사된 줄을 찾습니다"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "파일 내부와 파일 사이의 옮겨진 줄을 찾습니다"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "n,m줄 (1번 줄부터 시작) 사이의 범위만 처리"
 
@@ -3371,7 +3527,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "4년 11달 전"
 
@@ -3569,214 +3725,223 @@
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "브랜치의 이름을 바꾸지만, config-file 업데이트가 실패했습니다"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "브랜치 설명 서식을 쓸 수 없습니다: %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "일반 옵션"
 
 # FIXME: give twice?
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "해시와 제목을 표시하고, 업스트림 브랜치에 대한 위치를 표시합니다"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "여러가지 안내 메시지를 표시하지 않습니다"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "추적 모드를 설정합니다 (git-pull(1) 참고)"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "업스트림 정보를 바꿉니다"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "여러 색으로 출력합니다"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "리모트 추적 브랜치에 대해 동작합니다"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "커밋이 있는 브랜치만 표시합니다"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "특정 git-branch 동작:"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "리모트와 로컬의 브랜치 목록을 모두 표시합니다"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "완전히 병합된 브랜치를 삭제합니다"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "브랜치를 삭제합니다 (병합되지 않았더라도)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "브랜치와 그 reflog를 옮기거나 이름을 바꿉니다"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "대상이 이미 있더라도 브랜치를 옮기거나 이름을 바꿉니다"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "브랜치 이름 목록을 표시합니다"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "브랜치의 reflog를 만듭니다"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "브랜치의 설명을 편집합니다"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "강제로 만들고, 옮기거나 이름을 바꾸고, 삭제합니다"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "병합되는 브랜치만 표시합니다"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "병합되지 않는 브랜치만 표시합니다"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "목록을 여러 열로 표시합니다"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "키"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "정렬한 기준이 되는 필드 이름"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "오브젝트"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "해당 오브젝트의 브랜치만 표시합니다"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "HEAD를 올바른 레퍼런스로 구해내는데 실패했습니다."
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "레퍼런스/헤드 아래에 HEAD가 없습니다!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column 및 --verbose 옵션은 호환되지 않습니다"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "브랜치 이름이 필요합니다"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "분리된 HEAD에 대한 설명을 부여할 수 없습니다"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "여러 브랜치에 대한 설명을 편집할 수 없습니다"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "아직 '%s' 브랜치에 커밋이 없습니다."
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "이름이 '%s'인 브랜치가 없습니다."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "이름 바꾸기 작업에 대해 브랜치가 너무 많습니다"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "새 업스트림을 설정하는데 브랜치가 너무 많습니다"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
-msgstr "HEAD의 업스트림을 %s(으)로 설정할 수 없습니다. 어떤 브랜치도 가리키지 않습니다."
+msgstr ""
+"HEAD의 업스트림을 %s(으)로 설정할 수 없습니다. 어떤 브랜치도 가리키지 않습니"
+"다."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "그런 브랜치가 ('%s') 없습니다"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "'%s' 브랜치가 없습니다"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "업스트림 설정을 해제하는데 브랜치가 너무 많습니다"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
-msgstr "HEAD의 업스트림 설정을 해제할 수 없습니다. 어떤 브랜치도 가리키지 않습니다."
+msgstr ""
+"HEAD의 업스트림 설정을 해제할 수 없습니다. 어떤 브랜치도 가리키지 않습니다."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "'%s' 브랜치에 업스트림 정보가 없습니다"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "'HEAD'를 수동으로 만드는 건 앞뒤가 맞지 않습니다"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
-msgstr "'git branch'에 대해 -a 및 -r 옵션은 브랜치 이름과 같이 쓰면 앞뒤가 맞지 않습니다"
+msgstr ""
+"'git branch'에 대해 -a 및 -r 옵션은 브랜치 이름과 같이 쓰면 앞뒤가 맞지 않습"
+"니다"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
 "track or --set-upstream-to\n"
-msgstr "--set-upstream 옵션은 더 이상 사용되지 않고 제거될 예정입니다. --track 또는 --set-upstream-to 옵션을 사용해 보십시오\n"
+msgstr ""
+"--set-upstream 옵션은 더 이상 사용되지 않고 제거될 예정입니다. --track 또는 "
+"--set-upstream-to 옵션을 사용해 보십시오\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
 "If you wanted to make '%s' track '%s', do this:\n"
 "\n"
-msgstr "\n'%s'을(를) 만들고 '%s'을(를) 추적하게 하려면, 다음을 하십시오:\n"
+msgstr ""
+"\n"
+"'%s'을(를) 만들고 '%s'을(를) 추적하게 하려면, 다음을 하십시오:\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3848,7 +4013,8 @@
 
 #: builtin/cat-file.c:484
 msgid "follow in-tree symlinks (used with --batch or --batch-check)"
-msgstr "트리 내부의 심볼릭 링크를 따라갑니다 (--batch 또는 --batch-check와 같이 사용)"
+msgstr ""
+"트리 내부의 심볼릭 링크를 따라갑니다 (--batch 또는 --batch-check와 같이 사용)"
 
 #: builtin/cat-file.c:486
 msgid "show all objects with --batch or --batch-check"
@@ -3870,7 +4036,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "인덱스에서만 .gitattributes를 사용합니다"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "표준 입력에서 파일 이름을 읽습니다"
 
@@ -3878,7 +4044,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "NUL 문자를 기준으로 자료 입력 및 출력을 멈춥니다"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "진행 상황 표시를 하지 않습니다"
 
@@ -3931,49 +4097,53 @@
 msgid "no contacts specified"
 msgstr "연락처를 지정하지 않았습니다"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<옵션>] [--] [<파일>...]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "스테이지는 1에서 3 사이의 값이거나 all이어야 합니다"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "인덱스의 모든 파일을 가져옵니다"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "기존 파일을 강제로 덮어 씁니다"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr "기존 파일과 인덱스에 없는 파일에 대해 경고하지 않습니다"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "새 파일을 가져오지 않습니다"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "인덱스 파일의 stat 정보를 업데이트합니다"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "표준 입력에서 경로의 목록을 읽습니다"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "내용을 임시 파일에 씁니다"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "문자열"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "파일을 만들 때, 앞에 <문자열>을 붙입니다"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "지정한 스테이지에서 파일을 복사해 옵니다"
 
@@ -4053,37 +4223,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD의 현재 위치는"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "HEAD를 업데이트할 수 없습니다"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "'%s' 브랜치 리셋\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "이미 '%s'에 있습니다\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "'%s' 브랜치로 전환하고 리셋합니다\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "새로 만든 '%s' 브랜치로 전환합니다\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "'%s' 브랜치로 전환합니다\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... 그리고 %d개 더.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4101,7 +4275,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4122,151 +4296,151 @@
 " git branch <새-브랜치-이름> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "리비전 walk에 내부 오류"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "이전 HEAD 위치는"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "현재 위치가 만들 예정인 브랜치에 있습니다"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "하나의 레퍼런스만 지정해야 하지만 %d개를 지정했습니다."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "잘못된 레퍼런스: %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "레퍼런스가 트리가 아닙니다: %s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "브랜치를 전환하는데 경로를 사용할 수 없습니다"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' 옵션은 브랜치를 전환할 때 쓸 수 없습니다"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' 옵션은 '%s' 옵션과 같이 쓸 수 없습니다"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "브랜치를 커밋이 아닌 '%s'(으)로 전환할 수 없습니다"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "브랜치"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "새 브랜치를 만들고 가져옵니다"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "브랜치를 만들거나 리셋하고 가져옵니다"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "새 브랜치에 대한 reflog를 만듭니다"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "지정한 커밋에서 HEAD를 분리합니다"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "새 브랜치에 대한 업스트림 정보를 설정합니다"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "새-브랜치"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "상위 브랜치가 없는 새 브랜치"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "병합되지 않은 파일에 대해 우리쪽 버전을 가져옵니다"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "병합되지 않은 파일에 대해 상대편 버전을 가져옵니다"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "강제로 체크아웃합니다 (로컬에서 수정한 사항을 버립니다)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "새 브랜치에 대해 3-방향 병합을 수행합니다"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "무시하는 파일을 업데이트합니다 (기본값)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "스타일"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "충돌 스타일 (merge 또는 diff3)"
 
 # FIXME: 의미 불명
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "경로명세를 드문 항목에만 제한하지 않습니다"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "'git checkout <없는-브랜치>'에 대해 추측합니다"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr "다른 작업폴더에 주어진 레퍼런스가 있는지 확인하지 않습니다"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "강제로 진행 상황을 표시합니다"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B 및 --orphan 옵션은 서로 호환되지 않습니다"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track 옵션은 브랜치 이름이 필요합니다"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "브랜치 이름이 없습니다. -b 옵션을 사용해 보십시오"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "경로 명세가 잘못되었습니다"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4275,12 +4449,12 @@
 "동시에 경로를 업데이트하고 '%s' 브랜치로 전환할 수 없습니다.\n"
 "커밋을 확인할 수 없는 '%s'을(를) 가져오려고 하셨습니까?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach 옵션은 경로 인자를 받지 않습니다 '%s'"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4319,7 +4493,7 @@
 msgid "failed to remove %s"
 msgstr "%s 제거에 실패했습니다"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4331,7 +4505,7 @@
 "foo        - 유일한 접두어에 해당하는 항목 선택\n"
 "           - (빈 입력) 선택하지 않음"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4351,36 +4525,36 @@
 "*          - 모든 항목 선택\n"
 "           - (빈 입력) 선택 마침"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "어라라 (%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "무시할 패턴을 입력하십시오>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "경고: 다음에 해당하는 항목을 찾을 수 없습니다: %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "삭제할 항목을 선택하십시오"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "%s 제거합니까 [y/N]? "
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "끝."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4398,215 +4572,236 @@
 "help                - 이 화면 표시\n"
 "?                   - 프롬프트 선택 도움말"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** 명령 ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "무엇을 할까요"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "다음 항목을 제거할 예정입니다:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "지울 파일이 이제 없으므로 끝냅니다."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "제거할 파일 이름을 표시하지 않습니다"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "강제"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "대화형 지우기"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "전체 디렉터리 제거"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "패턴"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "규칙을 무시하려면 <패턴>을 추가하십시오"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "무시한 파일도 제거"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "무시한 파일만 제거"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "-x 및 -X 옵션은 같이 쓸 수 없습니다"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
-msgstr "clean.requireForce가 true로 설정되었고 -i, -n, -f 옵션 중 하나도 쓰지 않았습니다. 지우지 않습니다"
+msgstr ""
+"clean.requireForce가 true로 설정되었고 -i, -n, -f 옵션 중 하나도 쓰지 않았습"
+"니다. 지우지 않습니다"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
-msgstr "clean.requireForce 기본값이 true이고 -i, -n, -f 옵션 중 하나도 쓰지 않았습니다. 지우지 않습니다"
+msgstr ""
+"clean.requireForce 기본값이 true이고 -i, -n, -f 옵션 중 하나도 쓰지 않았습니"
+"다. 지우지 않습니다"
 
 #: builtin/clone.c:37
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<옵션>] [--] <저장소> [<디렉터리>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "체크아웃을 만들지 않습니다"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "간략한 저장소를 만듭니다"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "미러 저장소를 만듭니다 (간략한 저장소로 취급)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "로컬 저장소에서 복제합니다"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "로컬 하드링크를 사용하지 않고, 항상 복사합니다"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "공유 저장소로 설정합니다"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "복제한 결과물에서 하위 모듈을 초기화합니다"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "서식-디렉터리"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "서식을 사용할 디렉터리 위치"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "레퍼런스 저장소"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "복제할 경우에만 --reference를 사용합니다"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "이름"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "업스트림 추적에 'origin' 대신 <이름>을 사용합니다"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "리모트의 HEAD 대신 <브랜치>를 가져옵니다"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "리모트의 git-upload-pack 경로"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
 msgid "depth"
 msgstr "깊이"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "지정한 깊이의 얕은 복제를 만듭니다"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "하나의 브랜치만 복제합니다 (HEAD 또는 --branch로 지정)"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "gitdir"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "깃 디렉터리를 작업 폴더와 별개의 위치에 놓습니다"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "키=값"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "새 저장소 안에서 설정합니다"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "IPv4 주소만 사용합니다"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "IPv6 주소만 사용합니다"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"디렉터리 이름을 알아낼 수 없습니다.\n"
+"명령행에서 디렉터리를 지정하십시오"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
-msgstr "레퍼런스 '%s' 저장소를 연결된 체크아웃으로 쓰기는 아직 지원하지 않습니다."
+msgstr ""
+"레퍼런스 '%s' 저장소를 연결된 체크아웃으로 쓰기는 아직 지원하지 않습니다."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "레퍼런스 '%s' 저장소가 로컬 저장소가 아닙니다."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "레퍼런스 '%s' 저장소가 얕은 저장소입니다"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "레퍼런스 '%s' 저장소가 붙어 있는 저장소입니다"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "'%s'에 대해 stat()이 실패했습니다"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "'%s'이(가) 있지만 디렉터리가 아닙니다"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "'%s'에 대해 stat()이 실패했습니다\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "'%s' 링크를 만드는데 실패했습니다"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "파일을 '%s'(으)로 복사하는데 실패했습니다"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "완료.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4616,117 +4811,127 @@
 "'git status' 명령으로 무엇을 체크아웃했는지 살펴볼 수 있고\n"
 "'git checkout -f HEAD'로 체크아웃을 다시 할 수 있습니다\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "복제할 리모트의 %s 브랜치를 찾을 수 없습니다."
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "연결을 확인하는 중입니다..."
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "리모트에서 필요한 오브젝트를 모두 보내지 않았습니다"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "%s을(를) 업데이트할 수 없습니다"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "리모트 HEAD가 없는 레퍼런스를 참고하므로, 체크아웃할 수 없습니다.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "작업 폴더를 체크아웃할 수 없습니다"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "파라미터를 설정 파일에 쓸 수 없습니다"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "정리용으로 repack할 수 없습니다"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "보조 임시 파일을 삭제할 수 없습니다"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "너무 인자가 많습니다."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "복제할 저장소를 지정해야 합니다."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare 및 --origin %s 옵션은 호환되지 않습니다."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare 및 --separate-git-dir 옵션은 호환되지 않습니다."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "'%s' 저장소가 없습니다"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "깊이가(%s) 0보다 큰 수가 아닙니다"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "대상 경로가('%s') 이미 있고 빈 디렉터리가 아닙니다."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "작업 폴더가('%s') 이미 있습니다."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "'%s'의 앞 디렉터리를 만들 수 없습니다"
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "작업 디렉터리를('%s') 만들 수 없습니다"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "간략한 저장소로('%s') 복제합니다...\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "'%s'에 복제합니다...\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
-msgstr "--depth 옵션은 로컬 복제에서 무시됩니다. 대신에 'file://'을 사용하십시오."
+msgstr ""
+"--depth 옵션은 로컬 복제에서 무시됩니다. 대신에 'file://'을 사용하십시오."
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "원본 저장소가 얕은 저장소이므로, --local 옵션을 무시합니다"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local 옵션은 무시됩니다"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "%s의 복제 방법을 알지 못합니다"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "리모트의 %s 브랜치가 업스트림 %s에 없습니다"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "빈 저장소를 복제한 것처럼 보입니다."
 
@@ -4938,7 +5143,7 @@
 msgid "could not lookup commit %s"
 msgstr "%s 커밋을 찾아볼 수 없습니다"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(표준 입력에서 로그 메시지를 읽음)\n"
@@ -5105,7 +5310,8 @@
 
 #: builtin/commit.c:1197
 msgid "Explicit paths specified without -i or -o; assuming --only paths..."
-msgstr "-i 또는 -o 없이 명시적인 경로를 지정했습니다. --only 경로를 가정합니다..."
+msgstr ""
+"-i 또는 -o 없이 명시적인 경로를 지정했습니다. --only 경로를 가정합니다..."
 
 #: builtin/commit.c:1209 builtin/tag.c:475
 #, c-format
@@ -5124,8 +5330,8 @@
 msgid "show branch information"
 msgstr "브랜치 정보를 표시합니다"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "컴퓨터가 읽을 수 있는 형식"
 
@@ -5144,7 +5350,8 @@
 
 #: builtin/commit.c:1337 builtin/commit.c:1617
 msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
-msgstr "추적되지 않는 파일을 표시합니다. 추가 옵션: all, normal, no (기본값: all)"
+msgstr ""
+"추적되지 않는 파일을 표시합니다. 추가 옵션: all, normal, no (기본값: all)"
 
 #: builtin/commit.c:1340
 msgid "show ignored files"
@@ -5158,7 +5365,9 @@
 msgid ""
 "ignore changes to submodules, optional when: all, dirty, untracked. "
 "(Default: all)"
-msgstr "하위 모듈의 변경을 무시합니다. 추가 옵션: all, dirty, untracked. (기본값: all)"
+msgstr ""
+"하위 모듈의 변경을 무시합니다. 추가 옵션: all, dirty, untracked. (기본값: "
+"all)"
 
 #: builtin/commit.c:1344
 msgid "list untracked files in columns"
@@ -5212,8 +5421,8 @@
 msgid "override date for commit"
 msgstr "커밋의 시각을 지정합니다"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "메시지"
 
@@ -5246,7 +5455,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "커밋을 내가 작성한 것으로 만듭니다 (-C/-c/--amend와 같이 사용)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "Signed-off-by: 줄을 추가합니다"
 
@@ -5270,7 +5479,7 @@
 msgid "include status in commit message template"
 msgstr "커밋 메시지 서식에 상태를 포함합니다"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "GPG 서명 커밋"
@@ -5361,139 +5570,143 @@
 "없습니다. 디스크가 꽉 차지 않았고 제한 용량을 넘어가지\n"
 "않았는지 확인하십시오. 그리고 'git reset HEAD'로 복구하십시오."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<옵션>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "설정 파일 위치"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "공통 설정 파일을 사용합니다"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "시스템 설정 파일을 사용합니다"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "저장소 설정 파일을 사용합니다"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "지정한 설정 파일을 사용합니다"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "블롭-id"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "지정한 블롭 오브젝트에서 설정을 읽습니다"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "동작"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "값을 가져옵니다: <이름> [<값-정규식>]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "모든 값을 가져옵니다: <키> [<값-정규식>]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "정규식에 대한 값을 가져옵니다: <이름-정규식> [<값-정규식>]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "<URL>에 특정되는 값을 가져옵니다: <섹션>[.<변수>] <URL>"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "해당하는 변수를 모두 제거합니다: <이름> <값> [<값-정규식>]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "새 변수를 추가합니다: <이름> <값>"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "변수를 제거합니다: <이름> [<값-정규식>]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "해당하는 항목을 모두 제거합니다: <이름> [<값-정규식>]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "섹션의 이름을 바꿉니다: <옛-이름> <새-이름>"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "섹션을 제거합니다: <이름>"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "전체 목록을 표시합니다"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "편집기를 엽니다"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "설정한 색을 찾습니다: slot [<기본값>]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "색 설정을 찾습니다: slot [<표준출력이-TTY인지-여부>]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "값 종류"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "값이 \"true\" 또는 \"false\"입니다"
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "값이 십진수입니다"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "값이 --bool 또는 --int입니다"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "값이 경로(파일 또는 디렉터리 이름)입니다"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "기타"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "값을 NUL 바이트로 끝냅니다"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "변수 이름만 표시합니다"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "찾아볼 때 include 지시어를 고려합니다"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "설정의 출처를 표시합니다 (파일, 표준 입력, 블롭, 명령행)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "기본 색 값을 파싱할 수 없습니다"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5508,7 +5721,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "%s 설정 파일을 만들 수 없습니다"
@@ -5758,161 +5971,165 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<옵션>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "모든 리모트에서 가져옵니다"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "덮어쓰지 말고 .git/FETCH_HEAD에 덧붙입니다"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "리모트 쪽에 묶음을 업로드할 경로"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "로컬 브랜치를 강제로 덮어씁니다"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "여러 리모트에서 가져옵니다"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "모든 태그와 관련 오브젝트를 가져옵니다"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "모든 태그를 가져오지 않습니다 (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "병렬적으로 받아오는 하위모듈 개수"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "리모트에 이제 없는 리모트 추적 브랜치를 잘라냅니다"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "주문형"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "하위 모듈 재귀적으로 가져오기 방식을 설정합니다"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "다운로드한 묶음을 보존합니다"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "HEAD 레퍼런스 업데이트를 허용합니다"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "얕은 복제의 커밋 내역을 깊게 만듭니다"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "완전한 저장소로 전환합니다"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "디렉터리"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "하위 모듈 경로 출력의 앞에 이 디렉터리를 붙입니다"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "재귀 기본 모드"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr ".git/shallow를 업데이트하는 레퍼런스를 허용합니다"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "레퍼런스맵"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "레퍼런스맵 가져오기를 지정합니다"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "리모트 레퍼런스 HEAD를 찾을 수 없습니다"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "%s 오브젝트가 없습니다"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[최신 상태]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s -> %s  (현재 브랜치에서 가져올 수 없음)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[거부됨]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[태그 업데이트]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (로컬 레퍼런스를 업데이트할 수 없음)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[새로운 태그]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[새로운 브랜치]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[새로운 레퍼런스]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "로컬 레퍼런스를 업데이트할 수 없습니다"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "강제 업데이트"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(정방향 진행이 아님)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "%s을(를) 열 수 없습니다: %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s이(가) 모든 필요한 오브젝트를 보내지 않았습니다\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "얕은 최상위의 업데이트가 허용되지 않으므로 %s을(를) 거부합니다"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "%.*s URL에서\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -5921,55 +6138,55 @@
 "업데이트할 수 없는 로컬 레퍼런스가 있습니다. 과거 충돌 브랜치를\n"
 " 제거하려면 'git remote prune %s' 명령을 실행해 보십시오"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s 레퍼런스가 연결이 끊어지게 됩니다)"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s 레퍼런스가 연결이 끊어졌습니다)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[삭제됨]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(없음)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "간략한 저장소가 아닌 저장소의 현재 %s 브랜치로 가져오기를 거절합니다"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "\"%s\" 옵션의 \"%s\" 값은 %s에 대해 올바르지 않습니다"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "\"%s\" 옵션은 '%s'에 대해 무시됩니다\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "'%s'에서 가져오는 방법을 알 수 없습니다"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "%s을(를) 가져오는 중\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "%s을(를) 가져올 수 없습니다"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -5977,32 +6194,33 @@
 "리모트 저장소를 지정하지 않았습니다. 새 리비전을 가져올 수 있는\n"
 "URL이나 리모트 이름을 지정하십시오."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "태그 이름을 지정해야 합니다."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth 및 --unshallow 옵션은 같이 쓸 수 없습니다"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
-msgstr "완전한 저장소에 대해 --unshallow 옵션을 사용하는 건 앞뒤가 맞지 않습니다"
+msgstr ""
+"완전한 저장소에 대해 --unshallow 옵션을 사용하는 건 앞뒤가 맞지 않습니다"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all 명령에 저장소 인자가 없습니다"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all 명령은 레퍼런스명세 인자와 같이 쓰면 앞뒤가 맞지 않습니다"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "그런 리모트나 리모트 그룹이 없습니다: %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "그룹을 가져오고 레퍼런스명세를 지정하면 앞뒤가 맞지 않습니다"
 
@@ -6212,235 +6430,253 @@
 #, c-format
 msgid ""
 "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
-msgstr "가비지컬렉터가 이미 '%s' 컴퓨터에서 %<PRIuMAX> PID로 실행 중입니다 (아니면 --force를 사용하십시오)"
+msgstr ""
+"가비지컬렉터가 이미 '%s' 컴퓨터에서 %<PRIuMAX> PID로 실행 중입니다 (아니면 --"
+"force를 사용하십시오)"
 
 #: builtin/gc.c:441
 msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
-msgstr "느슨한 오브젝트가 너무 많습니다. 제거하려면 'git prune'을 실행하십시오."
+msgstr ""
+"느슨한 오브젝트가 너무 많습니다. 제거하려면 'git prune'을 실행하십시오."
 
 #: builtin/grep.c:23
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<옵션>] [-e] <패턴> [<리비전>...] [[--] <경로>...]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: 스레드를 만드는데 실패했습니다: %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "잘못된 스레드 수를 %2$s에 대해 지정했습니다 (%1$d)"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "트리를 읽을 수 없습니다 (%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "종류가 %s인 오브젝트에서 grep을 할 수 없습니다"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "`%c' 옵션에는 숫자 값이 와야 합니다"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "'%s'을(를) 열 수 없습니다"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "작업 폴더 대신에 인덱스에서 검색합니다"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "깃으로 관리하지 않은 내용에서 찾습니다"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "추적되는 파일과 추적되지 않는 파일 모두에서 검색합니다"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "'.gitignore'로 지정한 파일을 무시합니다"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "일치하지 않는 줄을 표시합니다"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "대소문자 구별하지 않고 맞춥니다"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "단어 경계 부분에 대해서만 패턴을 맞춥니다"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "바이너리 파일을 텍스트로 처리합니다"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "바이너리 파일에서 패턴을 맞추지 않습니다"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "textconv 필터를 사용해 바이너리 파일을 처리합니다"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "최대 <깊이> 단계만큼 내려갑니다"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "POSIX 확장 정규식을 사용합니다"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "기본 POSIX 정규식을 사용합니다 (기본값)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "패턴을 고정 문자열로 해석합니다"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "펄과 호환되는 정규식을 사용합니다"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "줄 번호를 표시합니다"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "파일 이름을 표시하지 않습니다"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "파일 이름을 표시합니다"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "파일 이름을 최상위 디렉터리 상대 경로로 표시합니다"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "일치하는 줄을 표시하지 않고 파일 이름만 표시합니다"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "--files-with-matches 옵션과 동일"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "일치하지 않는 파일의 이름만 표시합니다"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "파일 이름 다음에 NUL을 출력합니다"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "일치하는 줄을 표시하지 않고 일치하는 수를 표시합니다"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "일치하는 부분을 강조합니다"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr "다른 파일 사이에 일치하는 부분의 사이에 빈 줄을 출력합니다"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr "같은 파일에서 여러 개가 일치하면 파일 이름을 한 번만 표시합니다"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "일치하는 부분 앞뒤에 컨텍스트를 <n>줄 표시합니다"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "일치하는 부분 앞에 컨텍스트를 <n>줄 표시합니다"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "일치하는 부분 뒤에 컨텍스트를 <n>줄 표시합니다"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "<n>개의 작업 스레드를 사용합니다"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "-C NUM 옵션의 줄임"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "일치 항목 앞에 함수 이름 줄을 표시합니다"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "들어 있는 함수를 표시합니다"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "파일에서 패턴을 읽습니다"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "<패턴>과 일치"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "-e 옵션으로 지정한 패턴을 결합합니다"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "출력하지 않고 일치하는 항목을 exit() 상태 번호로 리턴합니다"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr "모든 패턴과 일치하는 파일의 일치하는 부분만 표시합니다"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "grep 표현식에 대한 파싱 트리를 표시합니다"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "페이저"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "일치하는 파일을 페이저 프로그램에서 표시합니다"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "grep(1) 실행을 허용합니다 (이 빌드에서는 무시)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "패턴을 지정하지 않았습니다."
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "잘못된 스레드 수를 지정했습니다 (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager 옵션은 작업 폴더에서만 동작합니다"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
-msgstr "--cached 또는 --untracked 옵션은 --no-index 옵션과 같이 쓸 수 없습니다."
+msgstr ""
+"--cached 또는 --untracked 옵션은 --no-index 옵션과 같이 쓸 수 없습니다."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index 또는 --untracked 옵션은 리비전과 같이 쓸 수 없습니다."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard 옵션은 추적되는 내용에 대해 쓸 수 없습니다."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "--cached 옵션과 트리를 모두 지정했습니다."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6448,36 +6684,36 @@
 "git hash-object [-t <종류>] [-w] [--path=<파일> | --no-filters] [--stdin] "
 "[--] <파일>..."
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "종류"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "오브젝트 종류"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "오브젝트를 오브젝트 데이터베이스로 씁니다"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "표준 입력에서 오브젝트를 읽습니다"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "파일을 필터 없이 그대로 저장합니다"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr "임의의 쓰레기 데이터를 해시해 손상된 오브젝트를 만듭니다 (디버깅용)"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "파일이 이 경로에서 온 것처럼 처리합니다"
 
@@ -6528,7 +6764,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "실행 실패: '%s': %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6537,7 +6773,7 @@
 "'%s': 지원하지 않는 맨 페이지 보기 프로그램 경로.\n"
 "대신에 'man.<도구>.cmd' 옵션을 사용해 보십시오."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -6546,61 +6782,61 @@
 "'%s': 지원하지 않는 맨 페이지 보기 프로그램 명령.\n"
 "대신에 'man.<도구>.path' 옵션을 사용해 보십시오."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s': 알 수 없는 맨 페이지 보기 프로그램."
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "요청을 처리한 맨 페이지 보기 프로그램이 없습니다"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "요청을 처리한 인포 페이지 보기 프로그램이 없습니다"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "경로마다 속성 정의하기"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "매일매일 사용하는 20개 내외의 깃 명령"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "깃 용어 사전"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "의도적으로 추적하지 않는 파일을 무시하게 지정하기"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "하위 모듈 속성 정의하기"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "깃의 리비전 및 범위를 지정하기"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "깃 따라하기 안내서 (버전 1.5.1 이후)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "추천하는 깃 활용 작업 순서의 개요"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "자주 사용하는 깃 안내서는 다음과 같습니다:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "사용법: %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "`git %s' 명령은 `%s' 명령의 단축입니다"
@@ -6833,58 +7069,53 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "잘못된 pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "잘못된 스레드 수를 지정했습니다 (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "스레드 기능이 없습니다. %s 무시"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "기존 '%s' 묶음 파일을 열 수 없습니다"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "'%s'에 대한 기존 묶음 idx 파일을 열 수 없습니다"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "델타 아님: 오브젝트 %d개"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "체인 길이 = %d: 오브젝트 %lu개"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "현재 디렉터리로 돌아올 수 없습니다"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "잘못된 %s"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin 옵션은 --stdin 옵션과 같이 쓸 수 없습니다"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "'%s' 묶음파일 이름이 '.pack'으로 끝나지 않습니다"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "--verify 옵션에 묶음파일 이름을 지정하지 않았습니다"
 
@@ -7010,24 +7241,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <토큰>[(=|:)<값>])...] [<파"
-"일>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer <토큰>[(=|:)<"
+"값>])...] [<파일>...]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "파일을 직접 편집합니다"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "빈 트레일러를 잘라냅니다"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "트레일러"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "추가할 트레일러"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "파일 직접 편집에 입력 파일을 지정하지 않았습니다"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<옵션>] [<리비전-범위>] [[--] <경로>...]"
@@ -7081,325 +7320,377 @@
 msgid "Unknown type: %d"
 msgstr "알 수 없는 종류: %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers 설정에 값이 없음"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "출력 디렉터리의 이름이 너무 깁니다"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "%s 패치 파일을 열 수 없습니다"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "정확히 하나의 범위가 필요합니다."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "범위가 아닙니다."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "커버레터는 전자메일 형식이어야 합니다"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "정신나간 in-reply-to 헤더: %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<옵션>] [<시작시각> | <리비전-범위>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "출력 디렉터리가 두개?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "하나의 패치에 대해서도 [PATCh n/m]을 붙입니다"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "여러 개 패치에 대해서도 [PATCH]를 붙입니다"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "패치를 표준 출력으로 표시합니다"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "커버레터를 만듭니다"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "출력 파일 이름에 간단한 일련 번호를 사용합니다"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "확장자"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "'.patch' 대신 <확장자>를 사용합니다"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "패치 번호를 1 대신 <n>에서 시작합니다"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "시리즈를 N번째 re-roll로 표시합니다"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "[PATCH] 대신 [<접두어>]를 사용합니다"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "결과 파일을 <디렉터리>에 저장합니다"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "[PATCH]를 자르거나 추가하지 않습니다"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "바이너리 diff를 만들지 않습니다"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr "From 헤더에서 모두 0인 해시를 출력합니다"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "업스트림에 있는 패치를 포함하지 않습니다"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "기본값 (패치 + 통계) 대신 패치 형식을 표시합니다"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "메시징"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "헤더"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "전자메일 헤더"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "전자메일"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "To: 헤더를 추가합니다"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "Cc: 헤더를 추가합니다"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "신원"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "<신원>에서 From 주소를 설정합니다 (없으면 커미터 주소 신원 사용)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "메시지-ID"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "첫 메일을 <메시지-ID>에 대한 답장 메일로 만듭니다"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "경계"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "패치를 첨부합니다"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "패치를 본문에 포함합니다"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "메시지에 스레드를 사용, 스타일: shallow, deep"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "서명"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "서명을 추가합니다"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "파일에서 서명을 추가합니다"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "패치 파일 이름을 표시하지 않습니다"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n 및 -k 옵션은 하나만 써야 합니다."
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix 및 -k 옵션은 하나만 써야 합니다."
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "--name-only 옵션은 앞뒤가 맞지 않습니다"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "--name-status 옵션은 앞뒤가 맞지 않습니다"
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "--check 옵션은 앞뒤가 맞지 않습니다"
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "표준 출력이나 디렉터리 중에 하나만 지정해야 합니다."
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "'%s' 디렉터리를 만들 수 없습니다"
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "'%s' 서명 파일을 읽을 수 없습니다"
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "출력 파일을 만드는데 실패했습니다"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<업스트림> [<헤드> [<한계값>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
-msgstr "추적되는 리모트 브랜치를 찾을 수 없습니다. <업스트림>을 수동으로 지정하십시오.\n"
+msgstr ""
+"추적되는 리모트 브랜치를 찾을 수 없습니다. <업스트림>을 수동으로 지정하십시"
+"오.\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "알 수 없는 커밋 %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<옵션>] [<파일>...]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "파일 상태를 태그와 같이 표시합니다"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "'변경되지 않았다고 가정' 파일에 소문자를 사용합니다"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "출력에 캐시된 파일을 표시합니다 (기본값)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "출력에 삭제된 파일을 표시합니다"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "출력에 수정된 파일을 표시합니다"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "출력에 기타 파일을 표시합니다"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "출력에 무시된 파일을 표시합니다"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "출력에 커밋 표시된 내용의 오브젝트 이름을 표시합니다"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "파일 시스템에서 제거해야 하는 파일을 표시합니다"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "기타 디렉터리의 이름만 표시합니다"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "파일의 줄 끝을 표시합니다"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "빈 디렉터리 표시하지 않기"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "출력에 병합하지 않은 파일을 표시합니다"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "resolve-undo 정보를 표시합니다"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "패턴에 일치하는 파일을 건너뜁니다"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "제외할 패턴을 <파일>에서 읽습니다"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "<파일>에서 추가적인 디렉토리별 제외 패턴을 읽습니다"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "표준 깃 제외 패턴을 추가합니다"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "최상위 디렉토리 상대 경로로 출력합니다"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "<파일>이 인덱스 안에 없으면 오류로 취급합니다"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "트리-따위"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr "<트리-따위> 뒤로 제거한 경로가 있다고 가정합니다"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "디버깅 데이터를 표시합니다"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<실행>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<저장소> [<레퍼런스>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "원격 URL을 표시하지 않습니다"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "실행"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "원격 호스트의 git-upload-pack 경로"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "태그에 한정"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "헤드에 한정"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "벗겨진 태그를 표시하지 않습니다"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "url.<베이스>.insteadOf 설정을 고려합니다"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "해당하는 레퍼런스가 없으면 코드 2번으로 끝냅니다"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "레퍼런스와 레퍼런스가 가리키는 오브젝트를 표시합니다"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<옵션>] <트리-따위> [<경로>...]"
@@ -7467,31 +7758,31 @@
 msgid "Available custom strategies are:"
 msgstr "사용 가능한 사용자 설정 전략은:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "병합이 끝날 때 diffstat을 표시하지 않습니다"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "병합이 끝날 때 diffstat을 표시합니다"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(--stat 옵션과 동일)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "병합 커밋의 메시지에 shortlog 항목을 (최대 <n>개) 추가합니다"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "병합하는 대신 하나의 커밋을 만듭니다"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "병합이 성공하면 커밋을 합니다 (기본값)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "커밋 전에 메시지를 편집합니다"
 
@@ -7499,7 +7790,7 @@
 msgid "allow fast-forward (default)"
 msgstr "정방향 진행을 허용합니다 (기본값)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "정방향 진행이 불가능하면 중지합니다"
 
@@ -7507,20 +7798,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "이름 붙인 커밋에 올바른 GPG 서명이 있는지 검증합니다"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "전략"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "사용할 병합 전략"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "옵션=값"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "선택한 병합 전략에 대한 옵션"
 
@@ -7558,8 +7849,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "커밋 합치기 -- HEAD를 업데이트하지 않습니다\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "'%s'에 쓸 수 없습니다"
@@ -7577,41 +7868,42 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "병합 메시지가 없습니다 -- HEAD를 업데이트하지 않습니다\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s'이(가) 커밋을 가리키지 않습니다"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "잘못된 branch.%s.mergeoptions 문자열: %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "두 개의 헤드 병합 외에는 처리하지 않습니다."
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "merge-recursive에 대해 알 수 없는 옵션: -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "%s에 쓸 수 없습니다"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "'%s'에서 읽을 수 없습니다"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
-msgstr "병합을 커밋하지 않습니다. 병합을 마치려면 'git commit'을 사용하십시오.\n"
+msgstr ""
+"병합을 커밋하지 않습니다. 병합을 마치려면 'git commit'을 사용하십시오.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7627,52 +7919,52 @@
 "'%c' 문자로 시작하는 줄은 무시되고, 메시지가 비어 있으면 커밋을\n"
 "중지합니다.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "빈 커밋 메시지."
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "훌륭합니다.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "자동 병합이 실패했습니다. 충돌을 바로잡고 결과물을 커밋하십시오.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s'은(는) 커밋이 아닙니다"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "현재 브랜치가 없습니다."
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "현재 브랜치에 대한 리모트가 없습니다."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "현재 브랜치에 대해 기본 업스트림을 지정하지 않았습니다."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "리모트 %2$s에서 %1$s에 대한 리모트 추적 브랜치가 없습니다"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "'%s'을(를) 닫을 수 없습니다"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "중지할 병합 작업이 없습니다. (MERGE_HEAD가 없음)"
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7680,7 +7972,7 @@
 "병합을 마치지 않았습니다. (MERGE_HEAD 있음)\n"
 "병합하기 전에 변경 사항을 커밋하십시오."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7688,100 +7980,100 @@
 "커밋 빼오기를 마치지 않았습니다. (COMMIT_PICK_HEAD 있음)\n"
 "병합하기 전에 변경 사항을 커밋하십시오."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "커밋 빼오기를 마치지 않았습니다. (CHERRY_PICK_HEAD 있음)"
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "--squash 옵션을 --no-ff 옵션과 같이 쓸 수 없습니다."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "커밋을 지정하지 않았고  merge.defaultToUpstream를 설정하지 않았습니다."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr "빈 헤드로 커밋을 합치기는 지원하지 않습니다"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "정방향이 아닌 커밋은 빈 헤드에서는 앞뒤가 맞지 않습니다"
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - 병합할 수 있는 항목이 아닙니다"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr "빈 헤드에는 정확히 하나의 커밋만 병합할 수 있습니다"
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "%s 커밋에 신뢰하지 않는 (서명자가 %s라고 하는) GPG 서명이 있습니다."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "%s 커밋에 잘못된 (서명자가 %s라고 하는) GPG 서명이 있습니다."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "%s 커밋에 GPG 서명이 없습니다."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "%s 커밋에 %s의 올바른 GPG 서명이 없습니다\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "업데이트 중 %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "아주 간단한 인덱스 내부 병합을 시도합니다...\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "아님.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "정방향이 불가능하므로, 중지합니다."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "트리를 본래 위치로 되돌립니다...\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "병합 전략 %s 시도...\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "병합을 처리한 전략이 없습니다.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "전략 %s(으)로 병합이 실패했습니다.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "수동 해결의 준비를 위해 %s 전략을 사용합니다.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "자동 병합이 잘 진행되었습니다. 요청한대로 커밋 전에 중지합니다\n"
@@ -7830,7 +8122,9 @@
 msgid ""
 "git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> "
 "<orig-file> <file2>"
-msgstr "git merge-file [<옵션>] [-L <이름1> [-L <orig> [-L <이름2>]]] <파일1> <본래-파일> <파일2>"
+msgstr ""
+"git merge-file [<옵션>] [-L <이름1> [-L <orig> [-L <이름2>]]] <파일1> <본래-"
+"파일> <파일2>"
 
 #: builtin/merge-file.c:33
 msgid "send results to standard output"
@@ -7864,19 +8158,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "<파일1>/<본래-파일>/<파일2>에 대한 레이블을 설정합니다"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "입력이 NUL로 끝납니다"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "없는 오브젝트를 허용합니다"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "여러개 트리 만들기를 허용합니다"
 
@@ -7884,90 +8178,90 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<옵션>] <원본>... <대상>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "%s 디렉터리가 인덱스에 있고 하위 모듈이 없습니다?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr "계속하려면 .gitmodules의 변경 사항을 스테이지에 넣거나 stash 하십시오"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s이(가) 인덱스에 있습니다"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "대상이 이미 있어도 강제로 옮기기/이름 바꾸기를 합니다"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "옮기기/이름 바꾸기 오류를 건너 뜁니다"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "대상이 ('%s') 디렉터리가 아닙니다"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "'%s'을(를) '%s'(으)로 이름 바꾸기합니다\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "잘못된 원본"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "디렉터리를 자기 자신으로 옮길 수 없습니다"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "디렉터리를 파일로 옮길 수 없습니다"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "원본 디렉터리가 비어 있습니다"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "버전 컨트롤 중이 아닙니다"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "대상이 있습니다"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "'%s' 덮어쓰기"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "덮어쓸 수 없습니다"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "동일한 대상에 대해 여러 개 원본"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "대상 디렉터리가 없습니다"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, 원본=%s, 대상=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "이름 바꾸기, '%s'에서 '%s'(으)로\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "'%s'의 이름 바꾸기가 실패했습니다"
@@ -8026,7 +8320,8 @@
 
 #: builtin/notes.c:27
 msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
-msgstr "git notes [--ref <노트-레퍼런스>] copy [-f] <원본-오브젝트> <대상-오브젝트>"
+msgstr ""
+"git notes [--ref <노트-레퍼런스>] copy [-f] <원본-오브젝트> <대상-오브젝트>"
 
 #: builtin/notes.c:28
 msgid ""
@@ -8047,7 +8342,8 @@
 #: builtin/notes.c:31
 msgid ""
 "git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
-msgstr "git notes [--ref <노트-레퍼런스>] merge [-v | -q] [-s <전략>] <노트-레퍼런스>"
+msgstr ""
+"git notes [--ref <노트-레퍼런스>] merge [-v | -q] [-s <전략>] <노트-레퍼런스>"
 
 #: builtin/notes.c:32
 msgid "git notes merge --commit [-v | -q]"
@@ -8164,9 +8460,9 @@
 msgstr "'%s'을(를) 열거나 읽을 수 없습니다"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "'%s'을(를) 올바른 레퍼런스로 알아내는데 실패했습니다."
@@ -8181,83 +8477,87 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "블롭이 아닌 '%s' 오브젝트에 대해 노트 데이터를 읽을 수 없습니다."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "파라미터가 너무 많습니다"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "%s 오브젝트에 대해 노트가 없습니다."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "문자열로 노트 내용"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "파일 안에 노트 내용"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "지정한 노트 오브젝트를 재사용하고 편집합니다"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "지정한 노트 오브젝트를 재사용합니다"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "빈 노트 저장을 허용합니다"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "기존 노트를 바꿉니다"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
-msgstr "노트를 추가할 수 없습니다. %s 오브젝트에 대한 기존 노트가 있습니다. 기존 노트를 덮어쓰려면 '-f' 옵션을 사용하십시오"
+msgstr ""
+"노트를 추가할 수 없습니다. %s 오브젝트에 대한 기존 노트가 있습니다. 기존 노트"
+"를 덮어쓰려면 '-f' 옵션을 사용하십시오"
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "%s 오브젝트에 대한 기존 노트를 덮어씁니다\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "%s 오브젝트에 대한 노트를 제거합니다\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "표준 입력에서 오브젝트를 읽습니다"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "<명령>에 대한 다시쓰기 설정을 읽어들입니다 (--stdin 옵션 포함)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "파라미터가 너무 적습니다"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
-msgstr "노트를 복사할 수 없습니다. %s 오브젝트에 대한 기존 노트가 있습니다. 기존 노트를 덮어쓰려면 '-f' 옵션을 사용하십시오"
+msgstr ""
+"노트를 복사할 수 없습니다. %s 오브젝트에 대한 기존 노트가 있습니다. 기존 노트"
+"를 덮어쓰려면 '-f' 옵션을 사용하십시오"
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "원본 %s 오브젝트에 대한 노트가 없습니다. 복사할 수 없습니다."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8266,63 +8566,65 @@
 "-m/-F/-c/-C 옵션은 'edit' 하위 명령에 대해 사용을 권하지 않습니다.\n"
 "대신에 'git notes add -f -m/-F/-c/-C' 명령을 사용하십시오.\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "일반 옵션"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "병합 옵션"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
-msgstr "주어진 전략을 사용해 노트 충돌을 해결합니다 (manual/ours/theirs/union/cat_sort_uniq)"
+msgstr ""
+"주어진 전략을 사용해 노트 충돌을 해결합니다 (manual/ours/theirs/union/"
+"cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "병합하지 않은 노트 커밋"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "병합하지 않은 노트를 커밋해 노트 병합을 마칩니다"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "노트 병합 해결 중지"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "노트 병합을 중지합니다"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "%s 위치로 노트 병합이 이미 %s에서 진행중입니다"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "%s 오브젝트에 노트가 없습니다\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "없는 노트를 제거하려는 시도를 오류가 아닌 것으로 취급합니다"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "표준 입력에서 오브젝트 이름을 읽습니다"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "노트-레퍼런스"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "<노트-레퍼런스>에서 노트를 사용합니다"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "알 수 없는 하위 명령: %s"
@@ -8345,166 +8647,166 @@
 msgid "deflate error (%d)"
 msgstr "deflate 오류 (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "오브젝트 쓰는 중"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "묶음에 들어있지 않은 오브젝트가 있으므로, 비트맵 쓰기를 하지 않습니다"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "오브젝트 압축하는 중"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "지원하지 않는 인덱스 버전 %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "잘못된 인덱스 버전 '%s'"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "진행률을 표시하지 않습니다"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "진행률을 표시합니다"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "오브젝트 쓰기 단계에서 진행률을 표시합니다"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "진행률이 표시될 때 --all-progress와 비슷합니다"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "버전[,오프셋]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr "지정한 버전의 인덱스 형식에 따라 묶음 인덱스 파일을 씁니다"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "출력 묶음 파일의 최대 크기"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "보조 오브젝트 저장소에서 빌려온 오브젝트를 무시합니다"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "묶음 오브젝트를 무시합니다"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "묶음 윈도우를 오브젝트 단위로 제한합니다"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr "묶음 윈도우를 오브젝트 단위에 추가로 메모리 단위로 제한합니다"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "결과물 묶음에서 허용되는 최대 길이의 델타 체인"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "기존 델타를 재사용합니다"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "기존 오브젝트를 재사용합니다"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "OFS_DELTA 오브젝트를 사용합니다"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr "최상의 델타 일치를 검색하는데 스레드를 사용합니다"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "빈 묶음 출력을 만들지 않습니다"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "표준 입력에서 리비전 인자를 읽습니다"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "묶지 않는 오브젝트 수를 제한합니다"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "모든 레퍼런스에서 접근 가능한 오브젝트를 포함합니다"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr "reflog 항목에서 레퍼런스할 수 있는 오브젝트를 포함합니다"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "인덱스에서< 레퍼런스하는 오브젝트를 포함합니다"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "묶음을 표준 출력으로 출력합니다"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "묶음에 들어갈 오브젝트를 레퍼런스하는 태그 오브젝트를 포함합니다"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "접근 불가능 오브젝트를 보존합니다"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "시각"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "<시각>보다 새로운 접근 불가능 오브젝트의 묶음을 풉니다"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "얇은 묶음을 만듭니다"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "얕은 가져오기에 적합한 묶음을 만듭니다"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "해당하는 .keep 파일이 있는 묶음을 무시합니다"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "묶음 압축 단계"
 
 # FIXME: graft?
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "붙어 있는 커밋을 숨기지 않습니다"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "가능하면 비트맵 인덱스를 사용해 오브젝트 세기 속도를 높입니다"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "묶음 인덱스와 같이 비트맵 인덱스를 씁니다"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "오브젝트 개수 세는 중"
 
@@ -8548,59 +8850,65 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "precious-objects 저장소에서 잘라낼 수 없습니다"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<옵션>] [<저장소> [<레퍼런스명세>...]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "병합 관련 옵션"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "변경 사항을 적용할 때 병합하는 대신 리베이스합니다"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "정방향 진행을 허용합니다"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "지정한 커밋에 올바른 GPG 서명이 있는지 검증합니다"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "가져오기 관련 옵션"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "병렬적으로 풀을 실행할 하위모듈 개수"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "pull.ff에 대해 잘못된 값: %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
-msgstr "리베이스로 풀을 할 수 없습니다: 스테이징하지 않은 변경 사항이 있습니다."
+msgstr ""
+"리베이스로 풀을 할 수 없습니다: 스테이징하지 않은 변경 사항이 있습니다."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "추가로, 인덱스에 커밋하지 않은 변경 사항이 있습니다."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
-msgstr "리베이스로 풀을 할 수 없습니다: 인덱스에 커밋하지 않은 변경 사항이 있습니다."
+msgstr ""
+"리베이스로 풀을 할 수 없습니다: 인덱스에 커밋하지 않은 변경 사항이 있습니다."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr "가져온 레퍼런스 중에 리베이스할 대상 후보가 없습니다."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr "가져온 레퍼런스 중에 병합할 대상 후보가 없습니다."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -8608,7 +8916,7 @@
 "보통 이런 경우는 리모트 쪽에는 없는 와일드카드 레퍼런스명세가\n"
 "주어졌을 때 일어납니다."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8619,27 +8927,27 @@
 "이 리모트는 현재 브랜치에 대해 기본으로 설정된 리모트가\n"
 "아니기 때문에, 명령행에서 브랜치를 지정해야 합니다."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "현재 어떤 브랜치 위에도 있지 않습니다."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "어떤 브랜치를 대상으로 리베이스할지 지정하십시오."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "어떤 브랜치를 대상으로 병합할지 지정하십시오."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "자세한 정보는 git-pull(1) 페이지를 참고하십시오."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "현재 브랜치에 추적 정보가 없습니다."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8650,7 +8958,7 @@
 "\n"
 "    git branch --set-upstream-to=%s/<브랜치> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8659,11 +8967,11 @@
 "설정에서 리모트의 '%s' 레퍼런스와 병합하도록 지정했지만,\n"
 "그런 레퍼런스를 가져오지 않았습니다."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "만들어지지 않은 브랜치를 인덱스에 추가된 변경 사항으로 업데이트합니다."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8674,7 +8982,7 @@
 "작업 폴더를 %s 커밋에서 정방향\n"
 "진행합니다."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8691,11 +8999,11 @@
 "$ git reset --hard\n"
 "복구됩니다."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "여러 브랜치를 빈 헤드로 병합할 수 없습니다."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "여러 브랜치로 리베이스할 수 없습니다."
 
@@ -8703,21 +9011,24 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<옵션>] [<저장소> [<레퍼런스명세>...]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "<태그> 없이 태그 줄임"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete 옵션은 일반 대상 레퍼런스 이름만 받습니다"
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
-msgstr "\n어느 한 쪽 옵션만 계속 선택하려면, 'git help config'에서 push.default를 참고하십시오."
+msgstr ""
+"\n"
+"어느 한 쪽 옵션만 계속 선택하려면, 'git help config'에서 push.default를 참고"
+"하십시오."
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8742,7 +9053,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8757,7 +9068,7 @@
 "\n"
 "    git push %s HEAD:<name-of-remote-branch>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8771,12 +9082,12 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "현재 브랜치  %s에 여러 업스트림 브랜치가 있습니다. 푸시를 거절합니다."
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8787,58 +9098,13 @@
 "'%s' 브랜치의 업스트림이 아닙니다. 어떤 리모트 브랜치에 무엇을\n"
 "푸시할지 설정하지 않았습니다."
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default를 설정하지 않았습니다. 묵시적 값은 깃 2.0에서\n"
-"'matching'에서 'simple'로 바뀌었습니다. 이 메시지를 표시하지\n"
-"않고 과거의 동작을 유지하려면 다음과 같이 하십시오:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"이 메시지를 표시하지 않고 새 동작을 받아들이려면 다음과 같이\n"
-"하십시오:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"push.default가 'matching'으로 설정되면, 로컬 브랜치를 이미 같은 이름이\n"
-"있는 리모트 브랜치로 푸시합니다.\n"
-"\n"
-"깃 2.0부터 더 보수적인 'simple' 동작이 기본값입니다. 여기서는 현재\n"
-"브랜치를 'git pull'에서 현재 브랜치를 업데이트할 때 사용하는 해당\n"
-"리모트 브랜치로 푸시합니다.\n"
-"\n"
-"더 자세한 정보는 'git help config'에서 'push.default' 설명을 보십시오.\n"
-"('simple' 모드는 깃 1.7.11에 추가되었습니다. 과거 버전의 깃을 사용하게\n"
-"되면 비슷한 'current' 모드를 사용하십시오.)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
-msgstr "푸시할 레퍼런스명세를 지정하지 않았고, push.default 값이 'nothing'입니다."
+msgstr ""
+"푸시할 레퍼런스명세를 지정하지 않았고, push.default 값이 'nothing'입니다."
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8851,7 +9117,7 @@
 "자세한 정보는 'git push --help'의 \"Note about fast-forwards' 부분을\n"
 "참고하십시오."
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -8864,7 +9130,7 @@
 "자세한 정보는 'git push --help'의 \"Note about fast-forwards' 부분을\n"
 "참고하십시오."
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -8880,11 +9146,11 @@
 "자세한 정보는 'git push --help'의 \"Note about fast-forwards' 부분을\n"
 "참고하십시오."
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr "리모트에 태그가 이미 있기 때문에 업데이트가 거부되었습니다."
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -8894,22 +9160,22 @@
 "레퍼런스를 업데이트하거나, 커밋이 아닌 오브젝트를 가리키도록\n"
 "업데이트할 수 없습니다.\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "다음에 푸시: %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "레퍼런스를 '%s'에 푸시하는데 실패했습니다"
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "잘못된 저장소 '%s'"
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -8930,104 +9196,100 @@
 "\n"
 "    git push <name>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all 및 --tags 옵션은 호환되지 않습니다"
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all 옵션은 레퍼런스명세와 같이 쓸 수 없습니다"
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror 및 --tags 옵션은 호환되지 않습니다"
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror 옵션은 레퍼런스명세와 같이 쓸 수 없습니다"
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all 및 --mirror 옵션은 호환되지 않습니다"
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "저장소"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "모든 레퍼런스 푸시하기"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "모든 레퍼런스 미러"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "레퍼런스 삭제"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "태그 푸시하기 (--all 또는 --mirror 옵션과 같이 쓸 수 없음)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "강제로 업데이트"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "레퍼런스이름>:<예상"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "레퍼런스의 과거 값이 이 값이어야 합니다"
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "재귀적 하위 모듈 푸시 방식을 설정합니다"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "얇은 묶음을 사용합니다"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "receive pack 프로그램"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "git pull/status에 대한 업스트림을 설정합니다"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "로컬에서 제거한 레퍼런스를 잘라냅니다"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "푸시 전 후크를 건너뜁니다"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "빠졌지만 관련된 태그를 푸시합니다"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "푸시에 GPG 서명"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "리모트 쪽에 원자 트랜잭션을 요청합니다"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete 옵션은 --all, --mirror, --tags 옵션과 호환되지 않습니다"
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete 옵션은 레퍼런스 없이 앞뒤가 맞지 않습니다"
 
@@ -9036,7 +9298,10 @@
 "git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>) "
 "[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
 "index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
-msgstr "git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<접두어>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<파일>] (--empty | <트리-따위> [<트리-따위2> [<트리-따위3>]])"
+msgstr ""
+"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<접두어>) "
+"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
+"index-output=<파일>] (--empty | <트리-따위> [<트리-따위2> [<트리-따위3>]])"
 
 #: builtin/read-tree.c:110
 msgid "write resulting index to <file>"
@@ -9102,12 +9367,12 @@
 msgid "debug unpack-trees"
 msgstr "unpack-trees 디버깅"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%s' 값이 '%s'에 대해 올바른 시각 값이 아닙니다"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s'은(는) 올바른 시각 값이 아닙니다"
@@ -9248,55 +9513,45 @@
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr "마스터 브랜치를 지정은 fetch 미러에서만 앞뒤가 맞습니다"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "%s 리모트가 이미 있습니다."
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s'은(는) 올바른 리모트 이름이 아닙니다"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "마스터 '%s'을(를) 설정할 수 없습니다"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "%s 레퍼런스명세에 대한 가져오기 맵을 얻을 수 없습니다"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(일치)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(삭제)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "'%s'을(를) '%s'에 추가할 수 없습니다"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "그런 리모트가 없습니다: %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "설정 섹션을 '%s'에서 '%s'(으)로 바꿀 수 없습니다"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "설정 섹션 '%s'을(를) 제거할 수 없습니다"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9307,27 +9562,17 @@
 "\t%s\n"
 "\t필요하면 설정을 수동으로 업데이트하십시오."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "'%s'에 덧붙일 수 없습니다"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "'%s'을(를) 설정할 수 없습니다"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "'%s' 삭제가 실패했습니다"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "'%s' 만들기가 실패했습니다"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9335,275 +9580,282 @@
 "Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n"
 "to delete them, use:"
 msgstr[0] ""
-"알림: 레퍼런스/리모트/ 계층 구조 밖에 있는 일부 브랜치가 제거되지 않았습니다.\n"
+"알림: 레퍼런스/리모트/ 계층 구조 밖에 있는 일부 브랜치가 제거되지 않았습니"
+"다.\n"
 "삭제하려면 다음을 사용하십시오:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "설정 섹션 '%s'을(를) 제거할 수 없습니다"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " 새 항목 (다음 가져오기는 remotes/%s 아래 저장됩니다)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " 추적됨"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " 오래됨 (제거하려면 'git remote prune'을 사용하십시오)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "잘못된 branch.%s.merge 값. 여러 개 브랜치로 리베이스할 수 없습니다"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "리베이스: 리모트 %s"
+msgid "rebases interactively onto remote %s"
+msgstr "리모트 %s 위로 대화식으로 리베이스합니다"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " 병합: 리모트 %s"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    그리고 리모트"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "병합: 리모트 %s"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   그리고 리모트"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "만들기"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "삭제"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "최신 상태"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "정방향 진행 가능"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "로컬이 뒤떨어짐"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s에서 %-*s(으)로 강제 (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s에서 %-*s(으)로 푸시 (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s에서 %s(으)로 강제"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s에서 %s(으)로 푸시"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "리모트에 질의하지 않습니다"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* 리모트 %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  가져오기 URL: %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(URL 없음)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  푸시  URL: %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  HEAD 브랜치: %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr "  HEAD 브랜치 (리모트 HEAD는 애매하고, 다음 중 하나일 수 있습니다):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] "  리모트 브랜치:%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (상태를 질의하지 않음)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  'git pull'에 사용할 로컬 브랜치를 설정:"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  로컬 레퍼런스를 'git push'로 미러링할 예정"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  로컬 레퍼런스를 'git push'로 미러링%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "레퍼런스/리모트/<이름>/HEAD 값을 리모트에 맞게 설정합니다"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "레퍼런스/리모트/<이름>/HEAD 값을 삭제합니다"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "리모트 HEAD를 결정할 수 없습니다"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
-msgstr "리모트 HEAD 브랜치가 여러개입니다. 다음 중 하나를 명시적으로 지정하십시오:"
+msgstr ""
+"리모트 HEAD 브랜치가 여러개입니다. 다음 중 하나를 명시적으로 지정하십시오:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "%s을(를) 삭제할 수 없습니다"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "올바른 레퍼런스가 아닙니다: %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "%s을(를) 설정할 수 없습니다"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s의 연결이 끊어집니다!"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s의 연결이 끊어졌습니다!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "잘라냄: %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [잘라낼 예정] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [잘라냄] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "가져온 후에 리모트를 잘라냅니다"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "그런 리모트가 없습니다 ('%s')"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "브랜치를 추가합니다"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "리모트를 지정하지 않았습니다"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "가져오기 URL이 아니라 푸시 URL을 질의합니다"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "모든 URL을 리턴합니다"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "'%s' 리모트에 대한 URL을 설정하지 않았습니다"
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "푸시 URL을 지정합니다"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "URL을 추가합니다"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "URL을 삭제합니다"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete 옵션을 둘다 쓰면 안 됩니다"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "잘못된 오래전 URL 패턴: %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "그런 URL이 없습니다: %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "푸시용이 아닌 모든 URL을 삭제하지 않습니다"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "자세히 표시합니다 (하위 명령 앞에 와야 합니다)"
 
@@ -9649,7 +9901,8 @@
 
 #: builtin/repack.c:177
 msgid "with -A, do not loosen objects older than this"
-msgstr "-A에 추가로, 지정한 시각보다 오래된 오브젝트를 느슨하게 만들지 않습니다"
+msgstr ""
+"-A에 추가로, 지정한 시각보다 오래된 오브젝트를 느슨하게 만들지 않습니다"
 
 #: builtin/repack.c:179
 msgid "size of the window used for delta compression"
@@ -9724,7 +9977,9 @@
 msgid ""
 "original commit '%s' contains mergetag '%s' that is discarded; use --edit "
 "instead of --graft"
-msgstr "본래 커밋 '%s'에 버려진 병합태그 '%s'이(가) 들어 있습니다. --graft 대신 --edit 옵션을 사용하십시오"
+msgstr ""
+"본래 커밋 '%s'에 버려진 병합태그 '%s'이(가) 들어 있습니다. --graft 대신 --"
+"edit 옵션을 사용하십시오"
 
 #: builtin/replace.c:401
 #, c-format
@@ -9872,7 +10127,9 @@
 
 #: builtin/reset.c:331
 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
-msgstr "--mixed 옵션을 경로와 같이 쓰기는 제거될 예정입니다. 대신에 'git reset -- <경로>'를 사용하십시오."
+msgstr ""
+"--mixed 옵션을 경로와 같이 쓰기는 제거될 예정입니다. 대신에 'git reset -- <경"
+"로>'를 사용하십시오."
 
 #: builtin/reset.c:333
 #, c-format
@@ -9901,7 +10158,7 @@
 msgid "Could not write new index file."
 msgstr "새 인덱스 파일을 쓸 수 없습니다."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list는 노트 표시를 지원하지 않습니다"
 
@@ -9933,7 +10190,8 @@
 "   or: git rev-parse --sq-quote [<인자>...]\n"
 "   or: git rev-parse [<옵션>] [<인자>...]\n"
 "\n"
-"첫번째 사용방법에 대해 자세히 알고 싶으면, \"git rev-parse --parseopt -h\"를\n"
+"첫번째 사용방법에 대해 자세히 알고 싶으면, \"git rev-parse --parseopt -h"
+"\"를\n"
 "실행해 보십시오."
 
 #: builtin/revert.c:22
@@ -10040,7 +10298,9 @@
 msgid ""
 "\n"
 "(use 'rm -rf' if you really want to remove it including all of its history)"
-msgstr "\n(정말로 그 커밋 내역까지 포함해 제거하려면 'rm -rf'를 사용하십시오)"
+msgstr ""
+"\n"
+"(정말로 그 커밋 내역까지 포함해 제거하려면 'rm -rf'를 사용하십시오)"
 
 #: builtin/rm.c:230
 msgid ""
@@ -10070,7 +10330,9 @@
 msgid ""
 "\n"
 "(use --cached to keep the file, or -f to force removal)"
-msgstr "\n(파일을 유지하려면 --cached 옵션, 강제로 제거하려면 -f 옵션을 사용하십시오)"
+msgstr ""
+"\n"
+"(파일을 유지하려면 --cached 옵션, 강제로 제거하려면 -f 옵션을 사용하십시오)"
 
 #: builtin/rm.c:251
 msgid "the following file has local modifications:"
@@ -10118,7 +10380,9 @@
 "[<ref>...]\n"
 "  --all and explicit <ref> specification are mutually exclusive."
 msgstr ""
-"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<호스트>:]<디렉터리> [<레퍼런스>...]\n"
+"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-"
+"receive-pack>] [--verbose] [--thin] [--atomic] [<호스트>:]<디렉터리> [<레퍼런"
+"스>...]\n"
 "  --all 옵션과 명시적인 <레퍼런스> 명세 중 하나만 사용할 수 있습니다."
 
 #: builtin/send-pack.c:160
@@ -10141,28 +10405,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<옵션>] [<리비전-범위>] [[--] [<경로>...]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "작성자 정보가 없습니다: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "작성자별 커밋 수에 따라 정렬합니다"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "커밋 설명을 생략하고, 커밋 수만 표시합니다"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "작성자의 전자메일 주소를 표시합니다"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "줄바꿈 출력"
 
@@ -10303,43 +10562,43 @@
 msgstr "주석 문자로 시작하는 모든 줄을 건너뛰고 제거합니다"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "각 줄의 앞에 주석 문자를 붙이고 빈 줄로 만듭니다"
+msgid "prepend comment character and space to each line"
+msgstr "각 줄의 앞에 주석 문자와 공백을 붙입니다"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "상대 경로에 사용할 또다른 기준"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<경로>] [<경로>...]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <경로>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "경로 '%s'에 대해 .gitmodules에 있는 하위모듈 매핑이 없습니다"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "새 하위 모듈을 복제할 대상 위치"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "새 하위 모듈 이름"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "하위 모듈을 복제해 올 URL"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "얕은 복제에 사용할 깊이"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10347,38 +10606,38 @@
 "git submodule--helper clone [--prefix=<경로>] [--quiet] [--reference <저장소"
 ">] [--name <이름>] [--url <URL>][--depth <깊이>] [--] [<경로>...]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "'%s' 디렉터리를 만들 수 없습니다"
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "'%s'에서 하위 모듈 경로 '%s'에 복제하는데 실패했습니다"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "'%s' 파일을 열 수 없습니다"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "%s 파일을 닫을 수 없습니다"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "'%s'에 대한 하위 모듈 디렉터리를 가져올 수 없습니다"
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr ""
 "치명적 이상: submodule--helper 하위 명령은 하위 명령으로 호출해야 합니다"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr "치명적 이상: '%s'은(는) 올바른 submodule--helper 하위 명령이 아닙니다"
@@ -10622,188 +10881,202 @@
 msgid "Unpacking objects"
 msgstr "오브젝트 묶음 푸는 중"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "%s 디렉터리 만들기 실패했습니다"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "%s에 stat()하는데 실패했습니다"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "%s 파일을 만드는데 실패했습니다"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "%s 파일을 삭제하는데 실패했습니다"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "%s 디렉터리를 삭제하는데 실패했습니다"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "테스트중 "
+msgid "Testing mtime in '%s' "
+msgstr "'%s' 안의 수정 시각을 확인하는 중입니다"
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr "새 파일을 추가한 후에 디렉터리 정보가 바뀌지 않았습니다"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr "새 디렉터리를 추가한 후에 디렉터리 정보가 바뀌지 않았습니다"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr "파일을 업데이트한 후에 디렉터리 정보가 바뀌지 않았습니다"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr "하위 디렉터리에 파일을 추가한 후에 디렉터리 정보가 바뀌지 않았습니다"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr "파일을 삭제한 후에 디렉터리 정보가 바뀌지 않았습니다"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr "디렉터리를 삭제한 후에 디렉터리 정보가 바뀌지 않았습니다"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " 오케이"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<옵션>] [--] [<파일>...]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr "인덱스에 업데이트가 필요하더라도 새로 고침을 계속합니다"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "새로 고침: 하위 모듈 무시"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "새 파일을 무시할 수 않습니다"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "디렉터리를 파일로, 또는 그 반대로 바꿀 수 있게 허용합니다"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "작업폴더에서 알림 파일이 없습니다"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr "인덱스에 병합하지 않은 항목이 있어도 새로 고칩니다"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "파일 정보를 새로 고칩니다"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "--refresh와 동일하지만, assume-unchanged 설정을 무시합니다"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<모드>,<오브젝트>,<경로>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "지정한 항목을 인덱스에 추가합니다"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "목록의 파일에서 실행 가능 비트를 바꿉니다"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "파일을 \"바꾸지 않음\"으로 표시합니다"
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "바꾸지 않음으로 가정 (assumed-unchanged) 비트를 지웁니다"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "파일을 인덱스 전용으로 (\"index-only\") 표시합니다"
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "작업폴더 건너뛰기 (skip-worktree) 비트를 지웁니다"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
-msgstr "인덱스에만 추가합니다. 내용을 오브젝트 데이터베이스에 추가하지 않습니다"
+msgstr ""
+"인덱스에만 추가합니다. 내용을 오브젝트 데이터베이스에 추가하지 않습니다"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr "작업 폴더에 있어도 해당 경로를 제거합니다"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "--stdin과 같이 사용: 입력 줄은 NUL 바이트로 끝납니다"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "표준 입력에서 업데이트할 경로의 목록을 읽습니다"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "표준 입력에서 읽은 항목을 인덱스에 추가합니다"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "경로 목록에 대해 #2 및 #3 스테이징을 다시 합니다"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "HEAD와 다른 항목만 업데이트합니다"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "작업 폴더에 없는 파일을 무시합니다"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "표준 출력에 동작을 알립니다"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "저장한 해결되지 않은 충돌을 무시합니다 (사용자용 명령 용도)"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "인덱스를 이 형식으로 씁니다"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "스플릿 인덱스를 켜거나 끕니다"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "추적하지 않는 캐시 사용을 켜거나 끕니다"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "파일 시스템이 추적하지 않는 캐시를 지원하는지 검사합니다"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr "파일 시스템 테스트 없이 추적하지 않는 캐시를 사용합니다"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "추적되지 않는 캐시를 사용하지 않습니다"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "'%s'에 대해 추적되지 않는 캐시를 사용하지 않습니다"
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<옵션>] -d <레퍼런스이름> [<과거-값>]"
@@ -10919,33 +11192,33 @@
 msgid "'%s' already exists"
 msgstr "'%s'이(가) 이미 있습니다"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "'%s'의 디렉터리를 만들 수 없습니다"
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "%s 준비 중 (ID %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "다른 작업 폴더에서 체크아웃했더라도 <브랜치>를 체크아웃합니다"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "새 브랜치를 만듭니다"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "브랜치를 만들거나 리셋합니다"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "HEAD를 해당 커밋에서 분리합니다"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B, --detach 옵션 중 하나만 쓸 수 있습니다"
 
@@ -10965,7 +11238,7 @@
 msgid "only useful for debugging"
 msgstr "디버깅 용도로만 사용"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "디버깅 메시지를 표준오류로 출력합니다"
 
@@ -10979,6 +11252,10 @@
 "목록을 볼 수 있습니다. 특정 하위 명령어나 개념에 대해 읽어 보려면 'git help\n"
 "<명령>' 또는 'git help <개념>' 명령을 실행하십시오."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "공개 키 고정은 cURL 7.44.0 앞 버전에서는 지원하지 않습니다"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "작업 공간 시작 (참고: git help tutorial)"
@@ -11060,8 +11337,8 @@
 msgstr "원격 레퍼런스 및 그와 관련된 오브젝트를 업데이트합니다"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "로컬 커밋을 업데이트된 업스트림 head 다음에 맞춰 넣습니다"
+msgid "Reapply commits on top of another base tip"
+msgstr "커밋을 다른 베이스 끝의 최상위에서 적용합니다"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11312,7 +11589,8 @@
 msgstr ""
 "이 문제를 해결하면, \"\"git rebase --continue\"를 실행하십시오.\n"
 "이 패치를 건너뛰려면, 대신에 \"git rebase --skip\"을 실행하십시오.\n"
-"원래 브랜치를 체크아웃하고 리베이스를 중지하려면, \"git rebase --abort\"를 실행하십시오."
+"원래 브랜치를 체크아웃하고 리베이스를 중지하려면, \"git rebase --abort\"를 실"
+"행하십시오."
 
 #: git-rebase.sh:165
 msgid "Applied autostash."
@@ -11685,7 +11963,9 @@
 #: git-submodule.sh:437
 #, sh-format
 msgid "Stopping at '$prefix$displaypath'; script returned non-zero status."
-msgstr "'$prefix$displaypath' 위치에서 멈춤. 스크립트에서 0이 아닌 상태를 리턴했습니다."
+msgstr ""
+"'$prefix$displaypath' 위치에서 멈춤. 스크립트에서 0이 아닌 상태를 리턴했습니"
+"다."
 
 #: git-submodule.sh:483
 #, sh-format
@@ -11705,7 +11985,8 @@
 #: git-submodule.sh:511
 #, sh-format
 msgid "Failed to register update mode for submodule path '$displaypath'"
-msgstr "하위 모듈 경로 '$displaypath'에 대해 업데이트 모드를 등록하는데 실패했습니다"
+msgstr ""
+"하위 모듈 경로 '$displaypath'에 대해 업데이트 모드를 등록하는데 실패했습니다"
 
 #: git-submodule.sh:549
 #, sh-format
@@ -11728,7 +12009,9 @@
 msgid ""
 "Submodule work tree '$displaypath' contains local modifications; use '-f' to "
 "discard them"
-msgstr "하위 모듈 작업 폴더에 ('$displaypath') 로컬 수정 사항이 있습니다. 버리려면 '-f'를 사용하십시오"
+msgstr ""
+"하위 모듈 작업 폴더에 ('$displaypath') 로컬 수정 사항이 있습니다. 버리려면 '-"
+"f'를 사용하십시오"
 
 #: git-submodule.sh:576
 #, sh-format
@@ -11748,9 +12031,10 @@
 #: git-submodule.sh:589
 #, sh-format
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
-msgstr "'$name' 하위 모듈이 ($url) '$displaypath' 경로에 대해 등록되지 않았습니다"
+msgstr ""
+"'$name' 하위 모듈이 ($url) '$displaypath' 경로에 대해 등록되지 않았습니다"
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -11759,101 +12043,103 @@
 "하위 모듈 경로가 ('$displaypath') 초기화되지 않았습니다\n"
 "아마도 'update --init'이 필요합니다?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "하위 모듈 경로에서 ('$displaypath') 현재 리비전을 찾을 수 없습니다"
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "하위 모듈 경로 '$sm_path'에서 가져올 수 없습니다"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "하위 모듈 경로 '$displaypath'에서 가져올 수 없습니다"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "하위 모듈 경로 '$displaypath'에서 '$sha1'을(를) 체크아웃할 수 없습니다"
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "하위 모듈 경로 '$displaypath': '$sha1' 체크아웃"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "하위 모듈 경로 '$displaypath'에서 '$sha1'을(를) 리베이스할 수 없습니다"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "하위 모듈 경로 '$displaypath': '$sha1'(으)로 리베이스"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "하위 모듈 경로 '$displaypath'에서 '$sha1' 병합할 수 없습니다"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "하위 모듈 경로 '$displaypath': '$sha1'에서 병합"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
-msgstr "하위 모듈 경로 '$prefix$sm_path'에서 '$command $sha1' 실행이 실패했습니다"
+msgstr ""
+"하위 모듈 경로 '$prefix$sm_path'에서 '$command $sha1' 실행이 실패했습니다"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "하위 모듈 경로 '$prefix$sm_path': '$command $sha1'"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "재귀적으로 하위 모듈 경로 '$displaypath'에 들어가는데 실패했습니다"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "--cached 옵션은 --files 옵션과 같이 쓸 수 없습니다"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "예상치 못한 모드 $mod_dst"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  경고: '$display_name'에 '$sha1_src' 커밋이 들어있지 않습니다"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  경고: '$display_name'에 '$sha1_dst' 커밋이 들어있지 않습니다"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
-msgstr "  경고: '$display_name'에 '$sha1_src' 및 '$sha1_dst' 커밋이 들어있지 않습니다"
+msgstr ""
+"  경고: '$display_name'에 '$sha1_src' 및 '$sha1_dst' 커밋이 들어있지 않습니다"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "블롭"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "재귀적으로 하위 모듈 경로 '$sm_path'에 들어가는데 실패했습니다"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "하위 모듈 URL을 '$displaypath'에 대해 동기화"
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 689ad1b..321b553 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -2,333 +2,667 @@
 # Copyright (C) 2012 Marco Sousa <marcomsousa AT gmail.com>
 # This file is distributed under the same license as the Git package.
 # Contributers:
-#   - Marco Sousa <marcomsousa AT gmail.com>
-#
+# - Marco Sousa <marcomsousa AT gmail.com>
+# Vasco Almeida <vasco13almeida@gmail.com>, 2016.
 msgid ""
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2012-05-08 16:06+0800\n"
-"PO-Revision-Date: 2012-05-14 21:17+0100\n"
-"Last-Translator: Marco Sousa <marcomsousa AT gmail.com>\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-22 16:00+0000\n"
+"Last-Translator: Vasco Almeida <vasco13almeida@gmail.com>\n"
 "Language-Team: Portuguese\n"
+"Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: pt\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.7.1\n"
 
-#: advice.c:40
+#: advice.c:55
 #, c-format
 msgid "hint: %.*s\n"
-msgstr "dica: %.*s\n"
+msgstr "sugestão: %.*s\n"
 
-#.
-#. * Message used both when 'git commit' fails and when
-#. * other commands doing a merge do.
-#.
-#: advice.c:70
+#: advice.c:88
 msgid ""
-"Fix them up in the work tree,\n"
-"and then use 'git add/rm <file>' as\n"
-"appropriate to mark resolution and make a commit,\n"
-"or use 'git commit -a'."
+"Fix them up in the work tree, and then use 'git add/rm <file>'\n"
+"as appropriate to mark resolution and make a commit."
 msgstr ""
+"Corrija-os na árvore de trabalho e use 'git add/rm <ficheiro>'\n"
+"conforme apropriado para marcá-los como resolvidos e faça commit."
 
-#: bundle.c:36
+#: advice.c:101 builtin/merge.c:1226
+msgid "You have not concluded your merge (MERGE_HEAD exists)."
+msgstr "Merge não concluído (MERGE_HEAD presente)."
+
+#: advice.c:103
+msgid "Please, commit your changes before merging."
+msgstr "Faça commit das suas alterações antes de efetuar merge."
+
+#: advice.c:104
+msgid "Exiting because of unfinished merge."
+msgstr "A terminar por causa de merge incompleto."
+
+#: archive.c:12
+msgid "git archive [<options>] <tree-ish> [<path>...]"
+msgstr "git archive [<opções>] <árvore> [<caminho>...]"
+
+#: archive.c:13
+msgid "git archive --list"
+msgstr "git archive --list"
+
+#: archive.c:14
+msgid ""
+"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]"
+msgstr ""
+"git archive --remote <repo> [--exec <cmd>] [<opções>] <tree-ish> "
+"[<caminho>...]"
+
+#: archive.c:15
+msgid "git archive --remote <repo> [--exec <cmd>] --list"
+msgstr "git archive --remote <repo> [--exec <cmd>] --list"
+
+#: archive.c:344 builtin/add.c:137 builtin/add.c:420 builtin/rm.c:327
+#, c-format
+msgid "pathspec '%s' did not match any files"
+msgstr "o especificador de caminho '%s' não corresponde a nenhum ficheiro"
+
+#: archive.c:429
+msgid "fmt"
+msgstr "fmt"
+
+#: archive.c:429
+msgid "archive format"
+msgstr "formato do arquivo"
+
+#: archive.c:430 builtin/log.c:1232
+msgid "prefix"
+msgstr "prefixo"
+
+#: archive.c:431
+msgid "prepend prefix to each pathname in the archive"
+msgstr "preceder o prefixo a cada nome de caminho dentro do arquivo"
+
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
+msgid "file"
+msgstr "ficheiro"
+
+#: archive.c:433 builtin/archive.c:89
+msgid "write the archive to this file"
+msgstr "escrever o arquivo para este ficheiro"
+
+#: archive.c:435
+msgid "read .gitattributes in working directory"
+msgstr "ler .gitattributes do diretório de trabalho"
+
+#: archive.c:436
+msgid "report archived files on stderr"
+msgstr "listar ficheiros arquivados para stderr"
+
+#: archive.c:437
+msgid "store only"
+msgstr "armazenar apenas"
+
+#: archive.c:438
+msgid "compress faster"
+msgstr "compressão rápida"
+
+#: archive.c:446
+msgid "compress better"
+msgstr "compressão ótima"
+
+#: archive.c:449
+msgid "list supported archive formats"
+msgstr "listar formatos de arquivo suportados"
+
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
+msgid "repo"
+msgstr "repo"
+
+#: archive.c:452 builtin/archive.c:91
+msgid "retrieve the archive from remote repository <repo>"
+msgstr "obter o arquivo a partir do repositório remoto <repo>"
+
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
+msgid "command"
+msgstr "comando"
+
+#: archive.c:454 builtin/archive.c:93
+msgid "path to the remote git-upload-archive command"
+msgstr "caminho para o comando git-upload-archive no remoto"
+
+#: attr.c:263
+msgid ""
+"Negative patterns are ignored in git attributes\n"
+"Use '\\!' for literal leading exclamation."
+msgstr ""
+"Os padrões negativos são ignorados nos atributos do git\n"
+"Use '\\!' para uma exclamação literal à esquerda."
+
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Após resolver a causa do problema, pode tentar corrigir\n"
+"o ramo remoto que deve ser seguido invocando\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+
+#: branch.c:67
+#, c-format
+msgid "Not setting branch %s as its own upstream."
+msgstr "O ramo %s não foi configurado com ramo a montante dele próprio."
+
+#: branch.c:93
+#, c-format
+msgid "Branch %s set up to track remote branch %s from %s by rebasing."
+msgstr "Ramo %s configurado para seguir o ramo remoto %s de %s por rebase."
+
+#: branch.c:94
+#, c-format
+msgid "Branch %s set up to track remote branch %s from %s."
+msgstr "Ramo %s configurado para seguir o ramo remoto %s de %s."
+
+#: branch.c:98
+#, c-format
+msgid "Branch %s set up to track local branch %s by rebasing."
+msgstr "Ramo %s configurado para seguir o ramo local %s por rebase."
+
+#: branch.c:99
+#, c-format
+msgid "Branch %s set up to track local branch %s."
+msgstr "Ramo %s configurado para seguir o ramo local %s."
+
+#: branch.c:104
+#, c-format
+msgid "Branch %s set up to track remote ref %s by rebasing."
+msgstr "Ramo %s configurado para seguir a referência remota %s por rebase."
+
+#: branch.c:105
+#, c-format
+msgid "Branch %s set up to track remote ref %s."
+msgstr "Ramo %s configurado para seguir a referência remota %s."
+
+#: branch.c:109
+#, c-format
+msgid "Branch %s set up to track local ref %s by rebasing."
+msgstr "Ramo %s configurado para seguir a referência local %s por rebase."
+
+#: branch.c:110
+#, c-format
+msgid "Branch %s set up to track local ref %s."
+msgstr "Ramo %s configurado para seguir a referência local %s."
+
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Não foi possível escrever a configuração do ramo a montante"
+
+#: branch.c:156
+#, c-format
+msgid "Not tracking: ambiguous information for ref %s"
+msgstr "Não seguido: informação da referência %s ambígua"
+
+#: branch.c:185
+#, c-format
+msgid "'%s' is not a valid branch name."
+msgstr "'%s' não é um nome válido para um ramo."
+
+#: branch.c:190
+#, c-format
+msgid "A branch named '%s' already exists."
+msgstr "Já existe um ramo designado '%s'."
+
+#: branch.c:198
+msgid "Cannot force update the current branch."
+msgstr "Não é possível forçar a atualização do ramo atual."
+
+#: branch.c:218
+#, c-format
+msgid "Cannot setup tracking information; starting point '%s' is not a branch."
+msgstr ""
+"Não é possível configurar ramo a seguir; o ponto inicial '%s' não é um ramo."
+
+#: branch.c:220
+#, c-format
+msgid "the requested upstream branch '%s' does not exist"
+msgstr "o ramo a montante solicitado '%s' não existe"
+
+#: branch.c:222
+msgid ""
+"\n"
+"If you are planning on basing your work on an upstream\n"
+"branch that already exists at the remote, you may need to\n"
+"run \"git fetch\" to retrieve it.\n"
+"\n"
+"If you are planning to push out a new local branch that\n"
+"will track its remote counterpart, you may want to use\n"
+"\"git push -u\" to set the upstream config as you push."
+msgstr ""
+"\n"
+"Se pretende efetuar rebase do seu trabalho sobre um ramo\n"
+"a montante que já existe no remoto, pode ser necessário\n"
+"executar \"git fetch\" para obtê-lo.\n"
+"\n"
+"Se pretende publicar um novo ramo local que irá seguir\n"
+"o seu homólogo remoto, pode usar \"git push -u\" para configurar\n"
+"o respetivo ramo a montante, ao mesmo tempo que publica."
+
+#: branch.c:266
+#, c-format
+msgid "Not a valid object name: '%s'."
+msgstr "Nome de objeto inválido: '%s'."
+
+#: branch.c:286
+#, c-format
+msgid "Ambiguous object name: '%s'."
+msgstr "Nome de objeto ambíguo: '%s'."
+
+#: branch.c:291
+#, c-format
+msgid "Not a valid branch point: '%s'."
+msgstr "Ponto no ramo inválido: '%s'."
+
+#: branch.c:344
+#, c-format
+msgid "'%s' is already checked out at '%s'"
+msgstr "'%s' já extraído em '%s'"
+
+#: bundle.c:34
 #, c-format
 msgid "'%s' does not look like a v2 bundle file"
-msgstr ""
+msgstr "'%s' não parece ser um ficheiro bundle v2"
 
-#: bundle.c:63
+#: bundle.c:61
 #, c-format
 msgid "unrecognized header: %s%s (%d)"
 msgstr "cabeçalho não reconhecido: %s%s (%d)"
 
-#: bundle.c:89
-#: builtin/commit.c:753
+#: bundle.c:87 builtin/commit.c:766
 #, c-format
 msgid "could not open '%s'"
-msgstr "não é possivel abrir '%s'"
+msgstr "não é possível abrir '%s'"
 
-#: bundle.c:140
+#: bundle.c:139
 msgid "Repository lacks these prerequisite commits:"
-msgstr ""
+msgstr "O repositório não possuí estes commits pré-requisitados:"
 
-#: bundle.c:164
-#: sequencer.c:533
-#: sequencer.c:965
-#: builtin/log.c:289
-#: builtin/log.c:719
-#: builtin/log.c:1335
-#: builtin/log.c:1554
-#: builtin/merge.c:347
-#: builtin/shortlog.c:181
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
-msgstr ""
+msgstr "falha ao configurar percurso de revisões"
 
-#: bundle.c:186
+#: bundle.c:185
 #, c-format
-msgid "The bundle contains %d ref"
-msgid_plural "The bundle contains %d refs"
-msgstr[0] ""
-msgstr[1] ""
+msgid "The bundle contains this ref:"
+msgid_plural "The bundle contains these %d refs:"
+msgstr[0] "O bundle contém esta referência:"
+msgstr[1] "O bundle contém estas %d referências:"
 
 #: bundle.c:192
+msgid "The bundle records a complete history."
+msgstr "O pacote regista um histórico completo."
+
+#: bundle.c:194
 #, c-format
-msgid "The bundle requires this ref"
-msgid_plural "The bundle requires these %d refs"
-msgstr[0] ""
-msgstr[1] ""
+msgid "The bundle requires this ref:"
+msgid_plural "The bundle requires these %d refs:"
+msgstr[0] "O bundle requer esta referência:"
+msgstr[1] "O bundle requer estas %d referências:"
 
-#: bundle.c:290
+#: bundle.c:253
+msgid "Could not spawn pack-objects"
+msgstr "Não foi possível lançar pack-objects"
+
+#: bundle.c:264
+msgid "pack-objects died"
+msgstr "pack-objects terminou inesperadamente"
+
+#: bundle.c:304
 msgid "rev-list died"
-msgstr "rev-list morreu"
+msgstr "rev-list terminou inesperadamente"
 
-#: bundle.c:296
-#: builtin/log.c:1231
-#: builtin/shortlog.c:284
+#: bundle.c:353
+#, c-format
+msgid "ref '%s' is excluded by the rev-list options"
+msgstr "a referência '%s' é excluída pelas opções de rev-list"
+
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "argumento não reconhecido: %s"
 
-#: bundle.c:331
-#, c-format
-msgid "ref '%s' is excluded by the rev-list options"
-msgstr ""
-
-#: bundle.c:376
+#: bundle.c:449
 msgid "Refusing to create empty bundle."
-msgstr ""
+msgstr "Criação de bundle vazio recusada."
 
-#: bundle.c:394
-msgid "Could not spawn pack-objects"
-msgstr "Não foi possível pawn pack-objects"
-
-#: bundle.c:412
-msgid "pack-objects died"
-msgstr ""
-
-#: bundle.c:415
+#: bundle.c:459
 #, c-format
 msgid "cannot create '%s'"
-msgstr "não consegue crear '%s'"
+msgstr "não é possível criar '%s'"
 
-#: bundle.c:437
+#: bundle.c:480
 msgid "index-pack died"
-msgstr ""
+msgstr "index-pack terminou inesperadamente"
 
-#: commit.c:48
+#: color.c:275
+#, c-format
+msgid "invalid color value: %.*s"
+msgstr "valor de cor inválido: %.*s"
+
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
-msgstr "não consigo parsear %s"
+msgstr "não foi possível analisar %s"
 
-#: commit.c:50
+#: commit.c:42
 #, c-format
 msgid "%s %s is not a commit!"
 msgstr "%s %s não é um commit!"
 
-#: compat/obstack.c:406
-#: compat/obstack.c:408
+#: compat/obstack.c:406 compat/obstack.c:408
 msgid "memory exhausted"
 msgstr "memória esgotada"
 
-#: connected.c:39
+#: config.c:475 config.c:477
+#, fuzzy, c-format
+msgid "bad config line %d in %s %s"
+msgstr "linha %d de configuração incorreta em %s %s"
+
+#: config.c:593
+#, c-format
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "valor numérico '%s' da configuração '%s' em %s %s incorreto: %s"
+
+#: config.c:595
+#, c-format
+msgid "bad numeric config value '%s' for '%s': %s"
+msgstr "valor numérico '%s' da configuração '%s' incorreto: %s"
+
+#: config.c:680
+#, c-format
+msgid "failed to expand user dir in: '%s'"
+msgstr "falha ao expandir diretório de utilizador em: '%s'"
+
+#: config.c:758 config.c:769
+#, c-format
+msgid "bad zlib compression level %d"
+msgstr "nível de compressão zlib %d incorreto"
+
+#: config.c:891
+#, c-format
+msgid "invalid mode for object creation: %s"
+msgstr "modo inválido para criação de objeto: %s"
+
+#: config.c:1220
+msgid "unable to parse command-line config"
+msgstr "não é possível analisar configuração de linha de comandos"
+
+#: config.c:1281
+msgid "unknown error occured while reading the configuration files"
+msgstr ""
+"ocorreu um erro desconhecido durante a leitura dos ficheiros de configuração"
+
+#: config.c:1629
+#, c-format
+msgid "unable to parse '%s' from command-line config"
+msgstr "não é possível analisar '%s' da configuração de linha de comandos"
+
+#: config.c:1631
+#, c-format
+msgid "bad config variable '%s' in file '%s' at line %d"
+msgstr "variável de configuração '%s' incorreta no ficheiro '%s' na linha %d"
+
+#: config.c:1690
+#, c-format
+msgid "%s has multiple values"
+msgstr "%s tem múltiplos valores"
+
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Não foi possível definir '%s' como '%s'"
+
+#: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "Não foi possível executar 'git rev-list'"
 
-#: connected.c:48
+#: connected.c:89
 #, c-format
 msgid "failed write to rev-list: %s"
-msgstr ""
+msgstr "falha ao escrever para rev-list: %s"
 
-#: connected.c:56
+#: connected.c:97
 #, c-format
 msgid "failed to close rev-list's stdin: %s"
-msgstr ""
+msgstr "falha ao fechar stdin de rev-list: %s"
 
 #: date.c:95
 msgid "in the future"
-msgstr ""
+msgstr "no futuro"
 
 #: date.c:101
 #, c-format
 msgid "%lu second ago"
 msgid_plural "%lu seconds ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu segundo atrás"
+msgstr[1] "há %lu segundos atrás"
 
 #: date.c:108
 #, c-format
 msgid "%lu minute ago"
 msgid_plural "%lu minutes ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu minuto atrás"
+msgstr[1] "há %lu minutos atrás"
 
 #: date.c:115
 #, c-format
 msgid "%lu hour ago"
 msgid_plural "%lu hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu hora atrás"
+msgstr[1] "há %lu horas atrás"
 
 #: date.c:122
 #, c-format
 msgid "%lu day ago"
 msgid_plural "%lu days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu dia atrás"
+msgstr[1] "há %lu dias atrás"
 
 #: date.c:128
 #, c-format
 msgid "%lu week ago"
 msgid_plural "%lu weeks ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu semana atrás"
+msgstr[1] "há %lu semanas atrás"
 
 #: date.c:135
 #, c-format
 msgid "%lu month ago"
 msgid_plural "%lu months ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu mês atrás"
+msgstr[1] "há %lu meses atrás"
 
 #: date.c:146
 #, c-format
 msgid "%lu year"
 msgid_plural "%lu years"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%lu ano"
+msgstr[1] "%lu anos"
 
+#. TRANSLATORS: "%s" is "<n> years"
 #: date.c:149
 #, c-format
 msgid "%s, %lu month ago"
 msgid_plural "%s, %lu months ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %s e %lu mês"
+msgstr[1] "há %s e %lu meses"
 
-#: date.c:154
-#: date.c:159
+#: date.c:154 date.c:159
 #, c-format
 msgid "%lu year ago"
 msgid_plural "%lu years ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "há %lu ano atrás"
+msgstr[1] "há %lu anos atrás"
 
-#: diff.c:105
+#: diffcore-order.c:24
 #, c-format
-msgid "  Failed to parse dirstat cut-off percentage '%.*s'\n"
-msgstr ""
+msgid "failed to read orderfile '%s'"
+msgstr "falha ao ler o ficheiro de comando '%s'"
 
-#: diff.c:110
+#: diffcore-rename.c:536
+msgid "Performing inexact rename detection"
+msgstr "Deteção de mudança de nome inexata em curso"
+
+#: diff.c:115
 #, c-format
-msgid "  Unknown dirstat parameter '%.*s'\n"
-msgstr ""
+msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
+msgstr "  Falha ao analisar percentagem limite de dirstat '%s'\n"
 
-#: diff.c:210
+#: diff.c:120
+#, c-format
+msgid "  Unknown dirstat parameter '%s'\n"
+msgstr "  Parâmetro de dirstat desconhecido '%s'\n"
+
+#: diff.c:215
+#, c-format
+msgid "Unknown value for 'diff.submodule' config variable: '%s'"
+msgstr "Valor desconhecido na variável de configuração 'diff.submodule': '%s'"
+
+#: diff.c:267
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
 "%s"
 msgstr ""
+"Erros encontrados na variável de configuração 'diff.dirstat':\n"
+"%s"
 
-#: diff.c:1400
-msgid " 0 files changed\n"
-msgstr " 0 ficheros modificados\n"
-
-#: diff.c:1404
+#: diff.c:2997
 #, c-format
-msgid " %d file changed"
-msgid_plural " %d files changed"
-msgstr[0] " %d ficheiro modificado"
-msgstr[1] " %d ficheiros modificados"
+msgid "external diff died, stopping at %s"
+msgstr "o diff externo terminou inesperadamente, interrompido em %s"
 
-#: diff.c:1421
-#, c-format
-msgid ", %d insertion(+)"
-msgid_plural ", %d insertions(+)"
-msgstr[0] ", %d adição(+)"
-msgstr[1] ", %d adições(+)"
+#: diff.c:3393
+msgid "--follow requires exactly one pathspec"
+msgstr "--follow requer exatamente um único especificador de caminho"
 
-#: diff.c:1432
-#, c-format
-msgid ", %d deletion(-)"
-msgid_plural ", %d deletions(-)"
-msgstr[0] ", %d eliminado(-)"
-msgstr[1] ", %d eliminados(-)"
-
-#: diff.c:3478
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
 "%s"
 msgstr ""
+"Falha ao analisar parâmetro da opção --dirstat/-X:\n"
+"%s"
 
-#: gpg-interface.c:59
+#: diff.c:3570
+#, c-format
+msgid "Failed to parse --submodule option parameter: '%s'"
+msgstr "Falha ao analisar parâmetro da opção --submodule: '%s'"
+
+#: dir.c:2004
+msgid "failed to get kernel name and information"
+msgstr "falha ao obter nome e informação do kernel"
+
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "A cache não controlada está desativada neste sistema ou localização."
+
+#: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
-msgstr "não consegue ejecutar gpg."
+msgstr "não foi possível executar gpg."
 
-#: gpg-interface.c:71
+#: gpg-interface.c:178
 msgid "gpg did not accept the data"
-msgstr ""
+msgstr "gpg não aceitou os dados"
 
-#: gpg-interface.c:82
+#: gpg-interface.c:189
 msgid "gpg failed to sign the data"
-msgstr ""
+msgstr "gpg não assinou os dados"
 
-#: grep.c:1280
+#: gpg-interface.c:222
+#, c-format
+msgid "could not create temporary file '%s': %s"
+msgstr "não foi possível criar ficheiro temporário '%s': %s"
+
+#: gpg-interface.c:225
+#, c-format
+msgid "failed writing detached signature to '%s': %s"
+msgstr "falha ao escrever assinatura destacada em '%s': %s"
+
+#: grep.c:1718
 #, c-format
 msgid "'%s': unable to read %s"
-msgstr ""
+msgstr "'%s': não foi possível ler %s"
 
-#: grep.c:1297
+#: grep.c:1735
 #, c-format
 msgid "'%s': %s"
 msgstr "'%s': %s"
 
-#: grep.c:1308
+#: grep.c:1746
 #, c-format
 msgid "'%s': short read %s"
-msgstr ""
+msgstr "'%s': leitura truncada %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
-msgstr ""
+msgstr "comandos do git disponível em '%s'"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
-msgstr ""
+msgstr "comandos do git disponíveis noutras localizações em $PATH"
 
-#: help.c:270
+#: help.c:244
+msgid "These are common Git commands used in various situations:"
+msgstr "Estes são comandos do Git comuns usados em diversas situações:"
+
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
 "able to execute it. Maybe git-%s is broken?"
 msgstr ""
+"'%s' parece ser um comando do git, mas não é possível\n"
+"executá-lo. Talvez git-%s esteja danificado?"
 
-#: help.c:327
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
-msgstr ""
+msgstr "Ai ai. Não há nenhum comando do Git disponível no sistema."
 
-#: help.c:349
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
 "Continuing under the assumption that you meant '%s'"
 msgstr ""
+"AVISO: Invocou um comando do Git designado '%s' que não existe.\n"
+"Continuando, assumindo que queria dizer '%s'"
 
-#: help.c:354
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
-msgstr ""
+msgstr "automaticamente em %0.1f..."
 
-#: help.c:361
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
-msgstr ""
+msgstr "git: '%s' não é um comando do git. Consulte 'git --help'."
 
-#: help.c:365
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -336,23 +670,699 @@
 "\n"
 "Did you mean one of these?"
 msgstr[0] ""
+"\n"
+"Queria dizer isto?"
 msgstr[1] ""
+"\n"
+"Queria dizer deste?"
 
-#: remote.c:1607
+#: help.c:460
+#, c-format
+msgid "%s: %s - %s"
+msgstr "%s: %s - %s"
+
+#: merge.c:41
+msgid "failed to read the cache"
+msgstr "falha ao ler a cache"
+
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
+msgid "unable to write new index file"
+msgstr "não foi possível escrever novo ficheiro de índice"
+
+#: merge-recursive.c:189
+#, c-format
+msgid "(bad commit)\n"
+msgstr "(commit incorreto)\n"
+
+#: merge-recursive.c:209
+#, c-format
+msgid "addinfo_cache failed for path '%s'"
+msgstr "addinfo_cache falhou no caminho '%s'"
+
+#: merge-recursive.c:270
+msgid "error building trees"
+msgstr "erro ao construir árvores"
+
+#: merge-recursive.c:689
+#, c-format
+msgid "failed to create path '%s'%s"
+msgstr "falha ao criar o caminho '%s'%s"
+
+#: merge-recursive.c:700
+#, c-format
+msgid "Removing %s to make room for subdirectory\n"
+msgstr "A remover %s para criar espaço para o subdiretório\n"
+
+#: merge-recursive.c:714 merge-recursive.c:735
+msgid ": perhaps a D/F conflict?"
+msgstr ": talvez um conflito D/F?"
+
+#: merge-recursive.c:725
+#, c-format
+msgid "refusing to lose untracked file at '%s'"
+msgstr "recusando-se a perder ficheiro não controlado em '%s'"
+
+#: merge-recursive.c:765
+#, c-format
+msgid "cannot read object %s '%s'"
+msgstr "não é possível ler o objeto %s: '%s'"
+
+#: merge-recursive.c:767
+#, c-format
+msgid "blob expected for %s '%s'"
+msgstr "blob para %s '%s' esperado"
+
+#: merge-recursive.c:790 builtin/clone.c:374
+#, c-format
+msgid "failed to open '%s'"
+msgstr "falha ao abrir '%s'"
+
+#: merge-recursive.c:798
+#, c-format
+msgid "failed to symlink '%s'"
+msgstr "falha ao criar a ligação simbólica '%s'"
+
+#: merge-recursive.c:801
+#, c-format
+msgid "do not know what to do with %06o %s '%s'"
+msgstr "não sei o que fazer com %06o %s '%s'"
+
+#: merge-recursive.c:939
+msgid "Failed to execute internal merge"
+msgstr "Falha ao executar merge interno"
+
+#: merge-recursive.c:943
+#, c-format
+msgid "Unable to add %s to database"
+msgstr "Não é possível adicionar %s à base de dados"
+
+#: merge-recursive.c:959
+msgid "unsupported object type in the tree"
+msgstr "tipo de objeto sem suporte encontrado na árvore"
+
+#: merge-recursive.c:1034 merge-recursive.c:1048
+#, c-format
+msgid ""
+"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
+"in tree."
+msgstr ""
+"CONFLITO (%s/eliminar): %s eliminado em %s e %s em %s. Versão de %s de %s "
+"deixada na árvore."
+
+#: merge-recursive.c:1040 merge-recursive.c:1053
+#, c-format
+msgid ""
+"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
+"in tree at %s."
+msgstr ""
+"CONFLITO (%s/eliminar): %s eliminado em %s e %s em %s. Versão de %s de %s "
+"deixada na árvore em %s."
+
+#: merge-recursive.c:1094
+msgid "rename"
+msgstr "mudar nome"
+
+#: merge-recursive.c:1094
+msgid "renamed"
+msgstr "nome mudado"
+
+#: merge-recursive.c:1150
+#, c-format
+msgid "%s is a directory in %s adding as %s instead"
+msgstr "%s é um diretório em %s adicionando %s no seu lugar"
+
+#: merge-recursive.c:1172
+#, c-format
+msgid ""
+"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
+"\"->\"%s\" in \"%s\"%s"
+msgstr ""
+"CONFLITO (mudar nome/mudar nome): Mudar o nome \"%s\"->\"%s\" no ramo \"%s\" "
+"mudar o nome \"%s\"->\"%s\" em \"%s\"%s"
+
+#: merge-recursive.c:1177
+msgid " (left unresolved)"
+msgstr " (por resolver)"
+
+#: merge-recursive.c:1231
+#, c-format
+msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
+msgstr ""
+"CONFLITO (mudar nome/mudar nome): Mudar de nome %s->%s em %s. Mudar o nome "
+"%s->%s em %s"
+
+#: merge-recursive.c:1261
+#, c-format
+msgid "Renaming %s to %s and %s to %s instead"
+msgstr "A mudar o nome de %s para %s e de %s para %s, em alternativa"
+
+#: merge-recursive.c:1460
+#, c-format
+msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
+msgstr ""
+"CONFLITO (mudar nome/adicionar): Mudar o nome %s->%s em %s. %s adicionado em "
+"%s"
+
+#: merge-recursive.c:1470
+#, c-format
+msgid "Adding merged %s"
+msgstr "A adicionar %s integrado"
+
+#: merge-recursive.c:1475 merge-recursive.c:1677
+#, c-format
+msgid "Adding as %s instead"
+msgstr "A adicionar como %s, em alternativa."
+
+#: merge-recursive.c:1526
+#, c-format
+msgid "cannot read object %s"
+msgstr "não foi possível ler o objeto %s"
+
+#: merge-recursive.c:1529
+#, c-format
+msgid "object %s is not a blob"
+msgstr "o objeto %s não é um blob"
+
+#: merge-recursive.c:1581
+msgid "modify"
+msgstr "modificar"
+
+#: merge-recursive.c:1581
+msgid "modified"
+msgstr "modificado"
+
+#: merge-recursive.c:1591
+msgid "content"
+msgstr "conteúdo"
+
+#: merge-recursive.c:1598
+msgid "add/add"
+msgstr "adicionar/adicionar"
+
+#: merge-recursive.c:1632
+#, c-format
+msgid "Skipped %s (merged same as existing)"
+msgstr "%s ignorado (integrado é igual ao existente)"
+
+#: merge-recursive.c:1646
+#, c-format
+msgid "Auto-merging %s"
+msgstr "Merge automático de %s"
+
+#: merge-recursive.c:1650 git-submodule.sh:1048
+msgid "submodule"
+msgstr "submódulo"
+
+#: merge-recursive.c:1651
+#, c-format
+msgid "CONFLICT (%s): Merge conflict in %s"
+msgstr "CONFLITO (%s): conflito de merge em %s"
+
+#: merge-recursive.c:1737
+#, c-format
+msgid "Removing %s"
+msgstr "A remover %s"
+
+#: merge-recursive.c:1762
+msgid "file/directory"
+msgstr "ficheiro/diretório"
+
+#: merge-recursive.c:1768
+msgid "directory/file"
+msgstr "diretório/ficheiro"
+
+#: merge-recursive.c:1773
+#, c-format
+msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
+msgstr ""
+"CONFLITO (%s): Há um diretório designado %s em %s. A adicionar %s como %s"
+
+#: merge-recursive.c:1783
+#, c-format
+msgid "Adding %s"
+msgstr "A adicionar %s"
+
+#: merge-recursive.c:1800
+msgid "Fatal merge failure, shouldn't happen."
+msgstr "Falha de merge fatal, não devia acontecer."
+
+#: merge-recursive.c:1819
+msgid "Already up-to-date!"
+msgstr "Já está atualizado!"
+
+#: merge-recursive.c:1828
+#, c-format
+msgid "merging of trees %s and %s failed"
+msgstr "falha ao realizar merge das árvores %s e %s"
+
+#: merge-recursive.c:1858
+#, c-format
+msgid "Unprocessed path??? %s"
+msgstr "Caminho não processado??? %s"
+
+#: merge-recursive.c:1906
+msgid "Merging:"
+msgstr "A realizar merge:"
+
+#: merge-recursive.c:1919
+#, c-format
+msgid "found %u common ancestor:"
+msgid_plural "found %u common ancestors:"
+msgstr[0] "%u antecessor comum encontrado:"
+msgstr[1] "%u antecessores comuns encontrados:"
+
+#: merge-recursive.c:1956
+msgid "merge returned no commit"
+msgstr "merge não retornou nenhum commit"
+
+#: merge-recursive.c:2013
+#, c-format
+msgid "Could not parse object '%s'"
+msgstr "Não foi possível analisar o objeto '%s'"
+
+#: merge-recursive.c:2024 builtin/merge.c:646
+msgid "Unable to write index."
+msgstr "Não é possível escrever no índice."
+
+#: notes-utils.c:41
+msgid "Cannot commit uninitialized/unreferenced notes tree"
+msgstr ""
+"Não é possível fazer commit de árvore de notas não inicializada ou não "
+"referenciada"
+
+#: notes-utils.c:100
+#, c-format
+msgid "Bad notes.rewriteMode value: '%s'"
+msgstr "Valor de notes.rewriteMode incorreto: '%s'"
+
+#: notes-utils.c:110
+#, c-format
+msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
+msgstr "Recusando-se a reescrever notas em %s (fora de refs/notes/)"
+
+#. TRANSLATORS: The first %s is the name of the
+#. environment variable, the second %s is its value
+#: notes-utils.c:137
+#, c-format
+msgid "Bad %s value: '%s'"
+msgstr "Valor incorreto de %s: '%s'"
+
+#: object.c:242
+#, c-format
+msgid "unable to parse object: %s"
+msgstr "não foi possível analisar o objeto: %s"
+
+#: parse-options.c:570
+msgid "..."
+msgstr "..."
+
+#: parse-options.c:588
+#, c-format
+msgid "usage: %s"
+msgstr "utilização: %s"
+
+#. TRANSLATORS: the colon here should align with the
+#. one in "usage: %s" translation
+#: parse-options.c:592
+#, c-format
+msgid "   or: %s"
+msgstr "        ou: %s"
+
+#: parse-options.c:595
+#, c-format
+msgid "    %s"
+msgstr "         %s"
+
+#: parse-options.c:629
+msgid "-NUM"
+msgstr "-NUM"
+
+#: parse-options-cb.c:108
+#, c-format
+msgid "malformed object name '%s'"
+msgstr "nome do objeto malformado '%s'"
+
+#: path.c:752
+#, c-format
+msgid "Could not make %s writable by group"
+msgstr "Não foi possível dar permissão de escrita ao grupo a %s"
+
+#: pathspec.c:133
+msgid "global 'glob' and 'noglob' pathspec settings are incompatible"
+msgstr ""
+"as definições globais 'glob' e 'noglob' de especificador de caminho "
+"(pathspec) são incompatíveis"
+
+#: pathspec.c:143
+msgid ""
+"global 'literal' pathspec setting is incompatible with all other global "
+"pathspec settings"
+msgstr ""
+"a definição global de especificador de caminho 'literal' é incompatível com "
+"todas as outras definições globais de especificador de caminho (pathspec)"
+
+#: pathspec.c:177
+msgid "invalid parameter for pathspec magic 'prefix'"
+msgstr "parâmetro inválido na mágica 'prefix' do especificador de caminho"
+
+#: pathspec.c:183
+#, c-format
+msgid "Invalid pathspec magic '%.*s' in '%s'"
+msgstr "Mágica do especificador de caminho '%.*s' inválida em '%s'"
+
+#: pathspec.c:187
+#, c-format
+msgid "Missing ')' at the end of pathspec magic in '%s'"
+msgstr "Falta um ')' no final da mágica do especificador de caminho em '%s'"
+
+#: pathspec.c:205
+#, c-format
+msgid "Unimplemented pathspec magic '%c' in '%s'"
+msgstr "Mágica de especificador de caminho '%c' em '%s' não implementada"
+
+#: pathspec.c:230
+#, c-format
+msgid "%s: 'literal' and 'glob' are incompatible"
+msgstr "%s: 'literal' e 'glob' são incompatíveis"
+
+#: pathspec.c:241
+#, c-format
+msgid "%s: '%s' is outside repository"
+msgstr "%s: '%s' está fora do repositório"
+
+#: pathspec.c:291
+#, c-format
+msgid "Pathspec '%s' is in submodule '%.*s'"
+msgstr "O caminho '%s' está dentro do submódulo '%.*s'"
+
+#: pathspec.c:353
+#, c-format
+msgid "%s: pathspec magic not supported by this command: %s"
+msgstr ""
+"%s: mágica de especificador de caminho não suportada por este comando: %s"
+
+#: pathspec.c:433
+#, c-format
+msgid "pathspec '%s' is beyond a symbolic link"
+msgstr "o especificador de caminho '%s' é indicado por uma ligação simbólica"
+
+#: pathspec.c:442
+msgid ""
+"There is nothing to exclude from by :(exclude) patterns.\n"
+"Perhaps you forgot to add either ':/' or '.' ?"
+msgstr ""
+"Não há nada para excluir de acordo com o padrão :(excluir).\n"
+"Talvez se tenha esquecido de acrescentar ':/' ou '.' ?"
+
+#: pretty.c:969
+msgid "unable to parse --pretty format"
+msgstr "não foi possível analisar o formato de --pretty"
+
+#: progress.c:235
+msgid "done"
+msgstr "concluído"
+
+#: read-cache.c:1281
+#, c-format
+msgid ""
+"index.version set, but the value is invalid.\n"
+"Using version %i"
+msgstr ""
+"index.version definido, mas com valor inválido.\n"
+"A usar a versão %i"
+
+#: read-cache.c:1291
+#, c-format
+msgid ""
+"GIT_INDEX_VERSION set, but the value is invalid.\n"
+"Using version %i"
+msgstr ""
+"GIT_INDEX_VERSION definido, mas com valor inválido.\n"
+"A usar a versão %i"
+
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
+#, c-format
+msgid "Could not open '%s' for writing"
+msgstr "Não foi possível abrir '%s' para escrita"
+
+#: refs/files-backend.c:2374
+#, c-format
+msgid "could not delete reference %s: %s"
+msgstr "não foi possível eliminar a referência %s: %s"
+
+#: refs/files-backend.c:2377
+#, c-format
+msgid "could not delete references: %s"
+msgstr "não foi possível eliminar as referências: %s"
+
+#: refs/files-backend.c:2386
+#, c-format
+msgid "could not remove reference %s"
+msgstr "não foi possível eliminar a referência %s"
+
+#: ref-filter.c:55
+#, c-format
+msgid "expected format: %%(color:<color>)"
+msgstr "formato esperado: %%(color:<cor>)"
+
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "cor não reconhecida: %%(color:%s)"
+
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "formato não reconhecido: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) não leva argumentos"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) não leva argumentos"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "valor positivo esperado contents:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "argumento de %%(contents) não reconhecido: %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "argumento de %%(objectname) não reconhecido: %s"
+
+#: ref-filter.c:135
+#, c-format
+msgid "expected format: %%(align:<width>,<position>)"
+msgstr "formato esperado: %%(align:<largura>,<posição>)"
+
+#: ref-filter.c:147
+#, c-format
+msgid "unrecognized position:%s"
+msgstr "posição não reconhecida:%s"
+
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "largura não reconhecida:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "argumento de %%(align) não reconhecido: %s"
+
+#: ref-filter.c:161
+#, c-format
+msgid "positive width expected with the %%(align) atom"
+msgstr "largura positiva esperada com o átomo %%(algn)"
+
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "nome de ficheiro malformado: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "nome do campo desconhecido: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "formato: átomo %%(end) utilizado sem átomo correspondente"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "cadeia malformada %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= requer um inteiro positivo como argumento"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "a referência '%s' não tem %ld componentes como se indica em :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "formato de %.*s desconhecido %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "falta o objeto %s de %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "falha ao invocar parse_object_buffer sobre %s de %s"
+
+#: ref-filter.c:1311
+#, c-format
+msgid "malformed object at '%s'"
+msgstr "objeto malformado em '%s'"
+
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "a referência %s com nome danificado foi ignorada"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "a referência %s danificada foi ignorada"
+
+#: ref-filter.c:1651
+#, c-format
+msgid "format: %%(end) atom missing"
+msgstr "formato: falta átomo %%(end)"
+
+#: ref-filter.c:1705
+#, c-format
+msgid "malformed object name %s"
+msgstr "nome de objeto malformado %s"
+
+#: remote.c:745
+#, c-format
+msgid "Cannot fetch both %s and %s to %s"
+msgstr "Não é possível obter %s e %s ao mesmo tempo para %s"
+
+#: remote.c:749
+#, c-format
+msgid "%s usually tracks %s, not %s"
+msgstr "%s geralmente segue %s, não %s"
+
+#: remote.c:753
+#, c-format
+msgid "%s tracks both %s and %s"
+msgstr "%s segue %s e %s em simultâneo"
+
+#: remote.c:761
+msgid "Internal error"
+msgstr "Erro interno"
+
+#: remote.c:1677 remote.c:1720
+msgid "HEAD does not point to a branch"
+msgstr "HEAD não aponta para um ramo"
+
+#: remote.c:1686
+#, c-format
+msgid "no such branch: '%s'"
+msgstr "ramo inexistente: '%s'"
+
+#: remote.c:1689
+#, c-format
+msgid "no upstream configured for branch '%s'"
+msgstr "nenhum ramo a montante configurado para o ramo '%s'"
+
+#: remote.c:1695
+#, c-format
+msgid "upstream branch '%s' not stored as a remote-tracking branch"
+msgstr "o ramo a montante '%s' não está guardado como um ramo remoto seguido"
+
+#: remote.c:1710
+#, c-format
+msgid "push destination '%s' on remote '%s' has no local tracking branch"
+msgstr ""
+"o destino de publicação '%s' no remoto '%s' não é seguido por nenhum ramo "
+"local"
+
+#: remote.c:1725
+#, c-format
+msgid "branch '%s' has no remote for pushing"
+msgstr "o ramo '%s' não tem nenhum remoto para publicar"
+
+#: remote.c:1736
+#, c-format
+msgid "push refspecs for '%s' do not include '%s'"
+msgstr ""
+"'%2$s' não faz parte dos especificadores de referência de '%1$s' para "
+"publicação"
+
+#: remote.c:1749
+msgid "push has no destination (push.default is 'nothing')"
+msgstr "publicação sem destino (push.default é 'nothing')"
+
+#: remote.c:1771
+msgid "cannot resolve 'simple' push to a single destination"
+msgstr "não é possível resolver a publicação 'simple' num único destino"
+
+#: remote.c:2073
+#, c-format
+msgid "Your branch is based on '%s', but the upstream is gone.\n"
+msgstr "A base do seu ramo é '%s', mas o ramo a montante desapareceu.\n"
+
+#: remote.c:2077
+msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
+msgstr "  (use \"git branch --unset-upstream\" para corrigir)\n"
+
+#: remote.c:2080
+#, c-format
+msgid "Your branch is up-to-date with '%s'.\n"
+msgstr "O seu ramo está atualizado com '%s'.\n"
+
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
-msgstr[0] "A sua rama está à frente de '%s' pelo commit %d.\n"
-msgstr[1] "A sua rama está à frente de '%s' pelos commites %d.\n"
+msgstr[0] "O seu ramo está à frente de '%s' por %d commit.\n"
+msgstr[1] "O seu ramo está à frente de '%s' por %d commits.\n"
 
-#: remote.c:1613
+#: remote.c:2090
+msgid "  (use \"git push\" to publish your local commits)\n"
+msgstr "  (use \"git push\" para publicar os commits locais)\n"
+
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
-msgid_plural "Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
+msgid_plural ""
+"Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n"
 msgstr[0] ""
+"O seu ramo está atrás de '%s' por %d commit, podendo ser atualizado com "
+"avanço rápido.\n"
 msgstr[1] ""
+"O seu ramo está atrás de '%s' por %d commits, podendo ser atualizado com "
+"avanço rápido.\n"
 
-#: remote.c:1621
+#: remote.c:2101
+msgid "  (use \"git pull\" to update your local branch)\n"
+msgstr "  (use \"git pull\" para atualizar o seu ramo local)\n"
+
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -361,1264 +1371,2924 @@
 "Your branch and '%s' have diverged,\n"
 "and have %d and %d different commits each, respectively.\n"
 msgstr[0] ""
+"O seu ramo e '%s' divergiram,\n"
+"tendo cada um %d e %d commit diferente, respetivamente.\n"
 msgstr[1] ""
+"O seu ramo e '%s' divergiram,\n"
+"tendo cada um %d e %d commits diferentes, respetivamente.\n"
 
-#: sequencer.c:121
-#: builtin/merge.c:865
-#: builtin/merge.c:978
-#: builtin/merge.c:1088
-#: builtin/merge.c:1098
+#: remote.c:2114
+msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
+msgstr "  (use \"git pull\" para incorporar o ramo remoto no seu)\n"
+
+#: revision.c:2131
+msgid "your current branch appears to be broken"
+msgstr "o ramo atual parece estar danificado"
+
+#: revision.c:2134
 #, c-format
-msgid "Could not open '%s' for writing"
+msgid "your current branch '%s' does not have any commits yet"
+msgstr "o ramo atual '%s' ainda não contém nenhum commit"
+
+#: revision.c:2328
+msgid "--first-parent is incompatible with --bisect"
+msgstr "--first-parent é incompatível com --bisect"
+
+#: run-command.c:92
+msgid "open /dev/null failed"
+msgstr "falha ao abrir /dev/null"
+
+#: run-command.c:94
+#, c-format
+msgid "dup2(%d,%d) failed"
+msgstr "dup2(%d,%d) falhou"
+
+#: send-pack.c:295
+msgid "failed to sign the push certificate"
+msgstr "falha ao assinar o certificado de publicação"
+
+#: send-pack.c:404
+msgid "the receiving end does not support --signed push"
+msgstr "o recetor não suporta publicação com --signed"
+
+#: send-pack.c:406
+msgid ""
+"not sending a push certificate since the receiving end does not support --"
+"signed push"
 msgstr ""
+"certificado de publicação não enviado uma vez que o recetor não suporta "
+"publicação com --signed"
 
-#: sequencer.c:123
-#: builtin/merge.c:333
-#: builtin/merge.c:868
-#: builtin/merge.c:1090
-#: builtin/merge.c:1103
-#, c-format
-msgid "Could not write to '%s'"
-msgstr "Não foi possível escrever para '%s'"
+#: send-pack.c:418
+msgid "the receiving end does not support --atomic push"
+msgstr "o recetor não suporta publicação com --atomic"
 
-#: sequencer.c:144
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
 msgstr ""
+"depois de resolver os conflitos, marque os caminhos corrigidos\n"
+"com 'git add <caminhos>' ou 'git rm <caminhos>'"
 
-#: sequencer.c:147
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
 "and commit the result with 'git commit'"
 msgstr ""
+"depois de resolver os conflitos, marque os caminhos corrigidos\n"
+"com 'git add <caminhos>' ou 'git rm <caminhos>'\n"
+"e faça commit do resultado com 'git commit'"
 
-#: sequencer.c:160
-#: sequencer.c:741
-#: sequencer.c:824
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
-msgstr "Não foi possível gravar para %s"
+msgstr "Não foi possível escrever em %s"
 
-#: sequencer.c:163
-#, c-format
+#: sequencer.c:193
+#, fuzzy, c-format
 msgid "Error wrapping up %s"
-msgstr ""
+msgstr "Erro ao isolar %s"
 
-#: sequencer.c:178
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
-msgstr ""
+msgstr "As suas alterações locais serão substituídas por cherry-pick."
 
-#: sequencer.c:180
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
-msgstr ""
+msgstr "As suas alterações locais serão substituídas por revert."
 
-#: sequencer.c:183
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
-msgstr ""
+msgstr "Faça commit ou stash das suas alterações para continuar."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:233
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
-msgstr ""
+msgstr "%s: Não foi possível escrever novo ficheiro de índice"
 
-#: sequencer.c:261
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
-msgstr ""
+msgstr "Não foi possível resolver o commit HEAD\n"
 
-#: sequencer.c:282
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
-msgstr ""
+msgstr "Não foi possível atualizar a árvore de cache\n"
 
-#: sequencer.c:323
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
-msgstr "Não foi possível analisar commit %s\n"
+msgstr "Não foi possível analisar o commit %s\n"
 
-#: sequencer.c:328
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
-msgstr "Não foi possível analisar commit parent %s\n"
+msgstr "Não foi possível analisar o commit pai %s\n"
 
-#: sequencer.c:358
+#: sequencer.c:460
 msgid "Your index file is unmerged."
-msgstr "O seu ficheiro de índice é não fundido."
+msgstr "Ficheiro de índice não integrado."
 
-#: sequencer.c:361
-msgid "You do not have a valid HEAD"
-msgstr "Você não tem uma HEAD válida"
-
-#: sequencer.c:376
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
-msgstr ""
+msgstr "O commit %s é um merge mas nenhuma opção -m fornecida."
 
-#: sequencer.c:384
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
-msgstr ""
-
-#: sequencer.c:388
-#, c-format
-msgid "Mainline was specified but commit %s is not a merge."
-msgstr ""
-
-#. TRANSLATORS: The first %s will be "revert" or
-#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:399
-#, c-format
-msgid "%s: cannot parse parent commit %s"
-msgstr ""
-
-#: sequencer.c:403
-#, c-format
-msgid "Cannot get commit message for %s"
-msgstr "Não é possível obter mensagem commit para %s"
+msgstr "O commit %s não tem o pai %d"
 
 #: sequencer.c:491
 #, c-format
-msgid "could not revert %s... %s"
-msgstr ""
+msgid "Mainline was specified but commit %s is not a merge."
+msgstr "Linha principal especificada mas o commit %s não é um merge."
 
-#: sequencer.c:492
+#. TRANSLATORS: The first %s will be "revert" or
+#. "cherry-pick", the second %s a SHA1
+#: sequencer.c:504
+#, c-format
+msgid "%s: cannot parse parent commit %s"
+msgstr "%s: não foi possível analisar o commit pai %s"
+
+#: sequencer.c:508
+#, c-format
+msgid "Cannot get commit message for %s"
+msgstr "Não é possível obter a mensagem de commit de %s"
+
+#: sequencer.c:594
+#, c-format
+msgid "could not revert %s... %s"
+msgstr "não foi possível reverter %s... %s"
+
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
-msgstr ""
+msgstr "não foi possível aplicar %s... %s"
 
-#: sequencer.c:536
+#: sequencer.c:630
 msgid "empty commit set passed"
-msgstr "passado commit com o set vazio"
+msgstr "o conjunto de commits especificado está vazio"
 
-#: sequencer.c:544
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
-msgstr ""
+msgstr "git %s: falha ao ler o índice"
 
-#: sequencer.c:549
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
-msgstr ""
+msgstr "git %s: falha ao atualizar o índice"
 
-#: sequencer.c:607
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
-msgstr "Não foi possível abrir %s durante um %s"
+msgstr "Não foi possível efetuar %s durante %s"
 
-#: sequencer.c:629
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
-msgstr "Não foi possível parsear linha %d."
+msgstr "Não foi possível analisar a linha %d."
 
-#: sequencer.c:634
+#: sequencer.c:729
 msgid "No commits parsed."
-msgstr "Nenhum commit parseado."
+msgstr "Nenhum commit analisado."
 
-#: sequencer.c:647
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "Não foi possível abrir %s"
 
-#: sequencer.c:651
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "Não foi possível ler %s."
 
-#: sequencer.c:658
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
-msgstr ""
+msgstr "Folha de instruções inutilizável: %s"
 
-#: sequencer.c:686
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
-msgstr ""
+msgstr "Chave inválida: %s"
 
-#: sequencer.c:689
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
-msgstr "Valor inválido para %s: %s"
+msgstr "Valor inválido de %s: %s"
 
-#: sequencer.c:701
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
-msgstr ""
+msgstr "Folha de opções malformada: %s"
 
-#: sequencer.c:722
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
-msgstr ""
+msgstr "cherry-pick ou revert em curso"
 
-#: sequencer.c:723
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
-msgstr ""
+msgstr "tente \"git cherry-pick (--continue | --quit |--abort)\""
 
-#: sequencer.c:727
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
-msgstr ""
+msgstr "Não foi possível criar o diretório do sequenciador %s"
 
-#: sequencer.c:743
-#: sequencer.c:828
-#, c-format
+#: sequencer.c:835 sequencer.c:917
+#, fuzzy, c-format
 msgid "Error wrapping up %s."
-msgstr ""
+msgstr "Erro ao isolar %s."
 
-#: sequencer.c:762
-#: sequencer.c:896
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
-msgstr ""
+msgstr "nenhum cherry-pick ou revert em curso"
 
-#: sequencer.c:764
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
-msgstr ""
+msgstr "não é possível resolver HEAD"
 
-#: sequencer.c:766
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
-msgstr ""
+msgstr "não é possível abortar um ramo ainda não criado"
 
-#: sequencer.c:788
-#: builtin/apply.c:3682
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
-msgstr "não foi possível abrir %s: %s"
+msgstr "não é possível abrir %s: %s"
 
-#: sequencer.c:791
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
-msgstr "não foi possível ler %s: %s"
+msgstr "não é possível ler %s: %s"
 
-#: sequencer.c:792
+#: sequencer.c:882
 msgid "unexpected end of file"
-msgstr ""
+msgstr "fim de ficheiro inesperado"
 
-#: sequencer.c:798
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
-msgstr ""
+msgstr "o ficheiro HEAD de pre-cherry-pick '%s' está corrompido"
 
-#: sequencer.c:821
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
-msgstr "Não foi possível formatear %s."
+msgstr "Não foi possível formatar %s."
 
-#: sequencer.c:983
+#: sequencer.c:1055
+#, c-format
+msgid "%s: can't cherry-pick a %s"
+msgstr "%s: não é possível efetuar cherry-pick de %s"
+
+#: sequencer.c:1058
+#, c-format
+msgid "%s: bad revision"
+msgstr "%s: revisão incorreta"
+
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
-msgstr ""
+msgstr "Não é possível reverter como commit inicial"
 
-#: sequencer.c:984
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
-msgstr ""
+msgstr "Não é possível efetuar cherry-pick numa cabeça vazia"
 
-#: sha1_name.c:864
-msgid "HEAD does not point to a branch"
-msgstr ""
-
-#: sha1_name.c:867
+#: setup.c:246
 #, c-format
-msgid "No such branch: '%s'"
-msgstr "Não existe rama '%s'"
+msgid "failed to read %s"
+msgstr "falha ao ler %s"
 
-#: sha1_name.c:869
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "offset antes do fim do ficheiro de pacote (.idx danificado?)"
+
+#: sha1_file.c:2459
 #, c-format
-msgid "No upstream configured for branch '%s'"
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "offset antes do início do índice do pacote %s (índice corrompido?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "offset depois do fim do índice do pacote %s (índice truncado?)"
+
+#: sha1_name.c:462
+msgid ""
+"Git normally never creates a ref that ends with 40 hex characters\n"
+"because it will be ignored when you just specify 40-hex. These refs\n"
+"may be created by mistake. For example,\n"
+"\n"
+"  git checkout -b $br $(git rev-parse ...)\n"
+"\n"
+"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n"
+"examine these refs and maybe delete them. Turn this message off by\n"
+"running \"git config advice.objectNameWarning false\""
+msgstr ""
+"Normalmente o Git nunca cria referências que terminem em 40 caracteres "
+"hexadecimais,\n"
+"pois uma referência destas seria ignorada se indicasse só 40 caracteres "
+"hexadecimais.\n"
+"Estas referências podem ser criadas por engano. Como no exemplo,\n"
+"\n"
+"  git checkout -b $br $(git rev-parse ...)\n"
+"\n"
+"onde \"$br\" está vazio e é criada uma referência de 40 caracteres "
+"hexadecimais.\n"
+"Analise estas referências e elimine-as se desejar. Desative esta\n"
+"mensagem executando \"git config advice.objectNameWarning false\""
+
+#: submodule.c:62 submodule.c:96
+msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
+msgstr ""
+"Não é possível alterar .gitmodules não integrado, resolva os conflitos do "
+"merge primeiro"
+
+#: submodule.c:66 submodule.c:100
+#, c-format
+msgid "Could not find section in .gitmodules where path=%s"
+msgstr "Secção de .gitmodules cujo path=%s não encontrada"
+
+#: submodule.c:74
+#, c-format
+msgid "Could not update .gitmodules entry %s"
+msgstr "Não foi possível atualizar o elemento %s de .gitmodules"
+
+#: submodule.c:107
+#, c-format
+msgid "Could not remove .gitmodules entry for %s"
+msgstr "Não foi possível remover o elemento %s de .gitmodules"
+
+#: submodule.c:118
+msgid "staging updated .gitmodules failed"
+msgstr "falha ao preparar .gitmodules atualizado"
+
+#: trailer.c:237
+#, c-format
+msgid "running trailer command '%s' failed"
+msgstr "falha ao executar o comando trailer '%s'"
+
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
+#, c-format
+msgid "unknown value '%s' for key '%s'"
+msgstr "valor desconhecido '%s' da chave '%s'"
+
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
+#, c-format
+msgid "more than one %s"
+msgstr "mais do que um %s"
+
+#: trailer.c:582
+#, c-format
+msgid "empty trailer token in trailer '%.*s'"
 msgstr ""
 
-#: sha1_name.c:872
+#: trailer.c:702
 #, c-format
-msgid "Upstream branch '%s' not stored as a remote-tracking branch"
-msgstr ""
+msgid "could not read input file '%s'"
+msgstr "não foi possível ler o ficheiro de entrada '%s'"
 
-#: wt-status.c:135
+#: trailer.c:705
+msgid "could not read from stdin"
+msgstr "não foi possível ler da entrada padrão"
+
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "não foi possível obter stat de %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "o ficheiro %s não é um ficheiro regular"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "o ficheiro %s não pode ser escrito pelo utilizador"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "não foi possível abrir ficheiro temporário"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "não foi possível mudar o nome do ficheiro temporário para %s"
+
+#: transport-helper.c:1041
+#, c-format
+msgid "Could not read ref %s"
+msgstr "Não foi possível ler a referência %s"
+
+#: unpack-trees.c:203
+msgid "Checking out files"
+msgstr "A extrair ficheiros"
+
+#: urlmatch.c:120
+msgid "invalid URL scheme name or missing '://' suffix"
+msgstr "nome de esquema de URL inválido ou falta do sufixo '://'"
+
+#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356
+#, c-format
+msgid "invalid %XX escape sequence"
+msgstr "sequencia de escape %XX inválida"
+
+#: urlmatch.c:172
+msgid "missing host and scheme is not 'file:'"
+msgstr "sistema anfitrião não indicado e o esquema não é do tipo 'file:'"
+
+#: urlmatch.c:189
+msgid "a 'file:' URL may not have a port number"
+msgstr "um URL do tipo 'file:' não pode ter um número de porta"
+
+#: urlmatch.c:199
+msgid "invalid characters in host name"
+msgstr "caracteres inválidos no nome do anfitrião"
+
+#: urlmatch.c:244 urlmatch.c:255
+msgid "invalid port number"
+msgstr "número de porta inválido"
+
+#: urlmatch.c:322
+msgid "invalid '..' path segment"
+msgstr "segmento de caminho '..' inválido"
+
+#: wrapper.c:222 wrapper.c:381
+#, c-format
+msgid "could not open '%s' for reading and writing"
+msgstr "não foi possível abrir '%s' para leitura e escrita"
+
+#: wrapper.c:224 wrapper.c:383
+#, c-format
+msgid "could not open '%s' for writing"
+msgstr "não foi possível abrir '%s' para escrita"
+
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
+#, c-format
+msgid "could not open '%s' for reading"
+msgstr "não foi possível abrir '%s' para leitura"
+
+#: wrapper.c:611
+#, c-format
+msgid "unable to access '%s': %s"
+msgstr "não é possível aceder a '%s': %s"
+
+#: wrapper.c:632
+#, c-format
+msgid "unable to access '%s'"
+msgstr "não é possível aceder a '%s'"
+
+#: wrapper.c:640
+msgid "unable to get current working directory"
+msgstr "não é possível de obter o diretório de trabalho atual"
+
+#: wrapper.c:667
+#, c-format
+msgid "could not open %s for writing"
+msgstr "não foi possível abrir %s para escrita"
+
+#: wrapper.c:678 builtin/am.c:410
+#, c-format
+msgid "could not write to %s"
+msgstr "não foi possível escrever para %s"
+
+#: wrapper.c:684
+#, c-format
+msgid "could not close %s"
+msgstr "não foi possível fechar %s"
+
+#: wt-status.c:149
 msgid "Unmerged paths:"
-msgstr "caminhos não fundidos:"
+msgstr "Caminhos não integrados:"
 
-#: wt-status.c:141
-#: wt-status.c:158
+#: wt-status.c:176 wt-status.c:203
 #, c-format
 msgid "  (use \"git reset %s <file>...\" to unstage)"
-msgstr ""
+msgstr "  (use \"git reset %s <ficheiro>...\" para retirar do índice)"
 
-#: wt-status.c:143
-#: wt-status.c:160
+#: wt-status.c:178 wt-status.c:205
 msgid "  (use \"git rm --cached <file>...\" to unstage)"
-msgstr ""
+msgstr "  (use \"git rm --cached <ficheiro>...\" para retirar do índice)"
 
-#: wt-status.c:144
+#: wt-status.c:182
+msgid "  (use \"git add <file>...\" to mark resolution)"
+msgstr "  (use \"git add <ficheiro>...\" para marcar como resolvido)"
+
+#: wt-status.c:184 wt-status.c:188
 msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
-msgstr "  (usa \"git add/rm <ficheiro>...\" para marcar como resolvido)"
+msgstr ""
+"  (use \"git add/rm <ficheiro>...\" conforme apropriado para marcar como "
+"resolvido)"
 
-#: wt-status.c:152
+#: wt-status.c:186
+msgid "  (use \"git rm <file>...\" to mark resolution)"
+msgstr "  (use \"git rm <ficheiro>...\" para marcar como resolvido)"
+
+#: wt-status.c:197 wt-status.c:880
 msgid "Changes to be committed:"
-msgstr "Mudanças a serem commitadas"
+msgstr "Alterações incluídas no próximo commit:"
 
-#: wt-status.c:170
+#: wt-status.c:215 wt-status.c:889
 msgid "Changes not staged for commit:"
-msgstr ""
+msgstr "Alterações não preparadas para commit:"
 
-#: wt-status.c:174
+#: wt-status.c:219
 msgid "  (use \"git add <file>...\" to update what will be committed)"
-msgstr "  (usa \"git add <ficheiro>...\" para actualizar o que vai ser commitado)"
-
-#: wt-status.c:176
-msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
-msgstr "  (usa \"git add/rm <ficheiro>...\" para actualizar o que vai ser commitado)"
-
-#: wt-status.c:177
-msgid "  (use \"git checkout -- <file>...\" to discard changes in working directory)"
 msgstr ""
+"  (use \"git add <ficheiro>...\" para atualizar o que será incluído no "
+"commit)"
 
-#: wt-status.c:179
+#: wt-status.c:221
+msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
+msgstr ""
+"  (use \"git add/rm <ficheiro>...\" para atualizar o que será incluído no "
+"commit)"
+
+#: wt-status.c:222
+msgid ""
+"  (use \"git checkout -- <file>...\" to discard changes in working directory)"
+msgstr ""
+"  (use \"git checkout -- <ficheiro>...\" para descartar alterações no "
+"diretório de trabalho)"
+
+#: wt-status.c:224
 msgid "  (commit or discard the untracked or modified content in submodules)"
 msgstr ""
+"  (faça commit ou descarte o conteúdo modificado ou não controlado nos "
+"submódulos)"
 
-#: wt-status.c:188
-#, c-format
-msgid "%s files:"
-msgstr "%s ficheros:"
-
-#: wt-status.c:191
+#: wt-status.c:236
 #, c-format
 msgid "  (use \"git %s <file>...\" to include in what will be committed)"
-msgstr ""
+msgstr "  (use \"git %s <ficheiro>...\" para incluir no próximo commit)"
 
-#: wt-status.c:208
-msgid "bug"
-msgstr "erro"
-
-#: wt-status.c:213
+#: wt-status.c:251
 msgid "both deleted:"
-msgstr "eliminados em ambos:"
+msgstr "eliminado por ambos:"
 
-#: wt-status.c:214
+#: wt-status.c:253
 msgid "added by us:"
 msgstr "adicionado por nós:"
 
-#: wt-status.c:215
+#: wt-status.c:255
 msgid "deleted by them:"
-msgstr "eliminados por eles:"
+msgstr "eliminado por eles:"
 
-#: wt-status.c:216
+#: wt-status.c:257
 msgid "added by them:"
-msgstr "adicionados por eles:"
+msgstr "adicionado por eles:"
 
-#: wt-status.c:217
+#: wt-status.c:259
 msgid "deleted by us:"
-msgstr "eliminados por nós:"
+msgstr "eliminado por nós:"
 
-#: wt-status.c:218
+#: wt-status.c:261
 msgid "both added:"
-msgstr "adicionados em ambos:"
+msgstr "adicionado por ambos:"
 
-#: wt-status.c:219
+#: wt-status.c:263
 msgid "both modified:"
-msgstr "modificados em ambos:"
+msgstr "modificado por ambos:"
 
-#: wt-status.c:249
+#: wt-status.c:265
+#, c-format
+msgid "bug: unhandled unmerged status %x"
+msgstr ""
+
+#: wt-status.c:273
+msgid "new file:"
+msgstr "novo ficheiro:"
+
+#: wt-status.c:275
+msgid "copied:"
+msgstr "copiado:"
+
+#: wt-status.c:277
+msgid "deleted:"
+msgstr "eliminado:"
+
+#: wt-status.c:279
+msgid "modified:"
+msgstr "modificado:"
+
+#: wt-status.c:281
+msgid "renamed:"
+msgstr "nome mudado:"
+
+#: wt-status.c:283
+msgid "typechange:"
+msgstr "tipo alterado:"
+
+#: wt-status.c:285
+msgid "unknown:"
+msgstr "desconhecido:"
+
+#: wt-status.c:287
+msgid "unmerged:"
+msgstr "não integrado:"
+
+#: wt-status.c:369
 msgid "new commits, "
 msgstr "novos commits, "
 
-#: wt-status.c:251
+#: wt-status.c:371
 msgid "modified content, "
 msgstr "conteúdo modificado, "
 
-#: wt-status.c:253
+#: wt-status.c:373
 msgid "untracked content, "
-msgstr "conteúdo não seguido"
+msgstr "conteúdo não controlado, "
 
-#: wt-status.c:267
-#, c-format
-msgid "new file:   %s"
-msgstr "novo ficheiro:   %s"
-
-#: wt-status.c:270
-#, c-format
-msgid "copied:     %s -> %s"
-msgstr "copiado:     %s -> %s"
-
-#: wt-status.c:273
-#, c-format
-msgid "deleted:    %s"
-msgstr "eliminado:    %s"
-
-#: wt-status.c:276
-#, c-format
-msgid "modified:   %s"
-msgstr "modificado:   %s"
-
-#: wt-status.c:279
-#, c-format
-msgid "renamed:    %s -> %s"
-msgstr "mudado de nome:    %s -> %s"
-
-#: wt-status.c:282
-#, c-format
-msgid "typechange: %s"
-msgstr ""
-
-#: wt-status.c:285
-#, c-format
-msgid "unknown:    %s"
-msgstr "desconhecido:    %s"
-
-#: wt-status.c:288
-#, c-format
-msgid "unmerged:   %s"
-msgstr "não fundidos:   %s"
-
-#: wt-status.c:291
+#: wt-status.c:390
 #, c-format
 msgid "bug: unhandled diff status %c"
 msgstr ""
 
-#: wt-status.c:737
+#: wt-status.c:754
+msgid "Submodules changed but not updated:"
+msgstr "Submódulos alterados mas não atualizados:"
+
+#: wt-status.c:756
+msgid "Submodule changes to be committed:"
+msgstr "Alterações em submódulos incluídas no próximo commit:"
+
+#: wt-status.c:837
+msgid ""
+"Do not touch the line above.\n"
+"Everything below will be removed."
+msgstr ""
+"Não altere a linha acima.\n"
+"Tudo o que estiver abaixo será removido."
+
+#: wt-status.c:948
+msgid "You have unmerged paths."
+msgstr "Há caminhos não integrados."
+
+#: wt-status.c:951
+msgid "  (fix conflicts and run \"git commit\")"
+msgstr "  (corrija os conflitos e execute \"git commit\")"
+
+#: wt-status.c:954
+msgid "All conflicts fixed but you are still merging."
+msgstr "Todos os conflitos foram corrigidos mas o merge continua em curso."
+
+#: wt-status.c:957
+msgid "  (use \"git commit\" to conclude merge)"
+msgstr "  (use \"git commit\" para concluir o merge)"
+
+#: wt-status.c:967
+msgid "You are in the middle of an am session."
+msgstr "Sessão am em curso."
+
+#: wt-status.c:970
+msgid "The current patch is empty."
+msgstr "O patch atual está vazio."
+
+#: wt-status.c:974
+msgid "  (fix conflicts and then run \"git am --continue\")"
+msgstr "  (corrija os conflitos e execute \"git am --continue\")"
+
+#: wt-status.c:976
+msgid "  (use \"git am --skip\" to skip this patch)"
+msgstr "  (use \"git am --skip\" para ignorar este patch)"
+
+#: wt-status.c:978
+msgid "  (use \"git am --abort\" to restore the original branch)"
+msgstr "  (use \"git am --abort\" para restaurar o ramo original)"
+
+#: wt-status.c:1105
+msgid "No commands done."
+msgstr "Nenhum comando concluído."
+
+#: wt-status.c:1108
+#, c-format
+msgid "Last command done (%d command done):"
+msgid_plural "Last commands done (%d commands done):"
+msgstr[0] "Último comando concluído (%d comando concluído):"
+msgstr[1] "Últimos comandos concluídos (%d comandos concluídos):"
+
+#: wt-status.c:1119
+#, c-format
+msgid "  (see more in file %s)"
+msgstr "  (veja mais no ficheiro %s)"
+
+#: wt-status.c:1124
+msgid "No commands remaining."
+msgstr "Nenhum comando por concluir."
+
+#: wt-status.c:1127
+#, c-format
+msgid "Next command to do (%d remaining command):"
+msgid_plural "Next commands to do (%d remaining commands):"
+msgstr[0] "Próximo comando a executar (%d comando restante):"
+msgstr[1] "Próximos comandos a executar (%d comandos restantes):"
+
+#: wt-status.c:1135
+msgid "  (use \"git rebase --edit-todo\" to view and edit)"
+msgstr "  (use \"git rebase --edit-todo\" para visualizar e editar)"
+
+#: wt-status.c:1148
+#, c-format
+msgid "You are currently rebasing branch '%s' on '%s'."
+msgstr "A realizar rebase do ramo '%s' sobre '%s'."
+
+#: wt-status.c:1153
+msgid "You are currently rebasing."
+msgstr "Rebase em curso."
+
+#: wt-status.c:1167
+msgid "  (fix conflicts and then run \"git rebase --continue\")"
+msgstr "  (corrija os conflitos e execute \"git rebase --continue\")"
+
+#: wt-status.c:1169
+msgid "  (use \"git rebase --skip\" to skip this patch)"
+msgstr "  (use \"git rebase --skip\" para ignorar este patch)"
+
+#: wt-status.c:1171
+msgid "  (use \"git rebase --abort\" to check out the original branch)"
+msgstr "  (use \"git rebase --abort\" para restaurar o ramo original)"
+
+#: wt-status.c:1177
+msgid "  (all conflicts fixed: run \"git rebase --continue\")"
+msgstr ""
+"  (todos os conflitos foram corrigidos: execute \"git rebase --continue\")"
+
+#: wt-status.c:1181
+#, c-format
+msgid ""
+"You are currently splitting a commit while rebasing branch '%s' on '%s'."
+msgstr ""
+"A dividir um commit ao mesmo tempo que efetua rebase do ramo '%s' sobre '%s'."
+
+#: wt-status.c:1186
+msgid "You are currently splitting a commit during a rebase."
+msgstr "A dividir um commit durante um rebase."
+
+#: wt-status.c:1189
+msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
+msgstr ""
+"  (Assim que o diretório de trabalho estiver limpo, execute \"git rebase --"
+"continue\")"
+
+#: wt-status.c:1193
+#, c-format
+msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
+msgstr ""
+"A editar um commit ao mesmo tempo que efetua rebase do ramo '%s' sobre '%s'."
+
+#: wt-status.c:1198
+msgid "You are currently editing a commit during a rebase."
+msgstr "A editar um commit durante um rebase."
+
+#: wt-status.c:1201
+msgid "  (use \"git commit --amend\" to amend the current commit)"
+msgstr "  (use \"git commit --amend\" para emendar o commit atual)"
+
+#: wt-status.c:1203
+msgid ""
+"  (use \"git rebase --continue\" once you are satisfied with your changes)"
+msgstr ""
+"  (use \"git rebase --continue\" assim que estiver satisfeito com as "
+"alterações)"
+
+#: wt-status.c:1213
+#, c-format
+msgid "You are currently cherry-picking commit %s."
+msgstr "A realizar cherry-pick do commit %s."
+
+#: wt-status.c:1218
+msgid "  (fix conflicts and run \"git cherry-pick --continue\")"
+msgstr "  (corrija os conflitos e execute \"git cherry-pick --continue\")"
+
+#: wt-status.c:1221
+msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
+msgstr ""
+"  (todos os conflitos foram corrigidos: execute \"git cherry-pick --continue"
+"\")"
+
+#: wt-status.c:1223
+msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
+msgstr ""
+"  (use \"git cherry-pick --abort\" para cancelar a operação de cherry-pick)"
+
+#: wt-status.c:1232
+#, c-format
+msgid "You are currently reverting commit %s."
+msgstr "A reverter o commit %s."
+
+#: wt-status.c:1237
+msgid "  (fix conflicts and run \"git revert --continue\")"
+msgstr "  (corrija dos conflitos e execute \"git revert --continue\")"
+
+#: wt-status.c:1240
+msgid "  (all conflicts fixed: run \"git revert --continue\")"
+msgstr ""
+"  (todos os conflitos foram corrigidos: execute \"git revert --continue\")"
+
+#: wt-status.c:1242
+msgid "  (use \"git revert --abort\" to cancel the revert operation)"
+msgstr "  (use \"git rever --abort\" para cancelar a operação de reversão)"
+
+#: wt-status.c:1253
+#, c-format
+msgid "You are currently bisecting, started from branch '%s'."
+msgstr "Bissecção em curso, iniciada a partir do ramo '%s'."
+
+#: wt-status.c:1257
+msgid "You are currently bisecting."
+msgstr "Bissecção em curso."
+
+#: wt-status.c:1260
+msgid "  (use \"git bisect reset\" to get back to the original branch)"
+msgstr "  (use \"git bisect reset\" para voltar ao ramo original)"
+
+#: wt-status.c:1438
 msgid "On branch "
-msgstr "Na rama"
+msgstr "No ramo "
 
-#: wt-status.c:744
+#: wt-status.c:1444
+msgid "interactive rebase in progress; onto "
+msgstr "rebase interativo em curso; sobre "
+
+#: wt-status.c:1446
+msgid "rebase in progress; onto "
+msgstr "rebase em curso; sobre "
+
+#: wt-status.c:1451
+msgid "HEAD detached at "
+msgstr "HEAD destacada em "
+
+#: wt-status.c:1453
+msgid "HEAD detached from "
+msgstr "HEAD destacada de "
+
+#: wt-status.c:1456
 msgid "Not currently on any branch."
-msgstr "Não está em nenhuma rama."
+msgstr "Não se encontra em nenhum ramo neste momento."
 
-#: wt-status.c:755
+#: wt-status.c:1474
 msgid "Initial commit"
 msgstr "Commit inicial"
 
-#: wt-status.c:769
-msgid "Untracked"
-msgstr "Não seguido"
+#: wt-status.c:1488
+msgid "Untracked files"
+msgstr "Ficheiros não controlados"
 
-#: wt-status.c:771
-msgid "Ignored"
-msgstr "Ignorado"
+#: wt-status.c:1490
+msgid "Ignored files"
+msgstr "Ficheiros ignorados"
 
-#: wt-status.c:773
+#: wt-status.c:1494
+#, c-format
+msgid ""
+"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
+"may speed it up, but you have to be careful not to forget to add\n"
+"new files yourself (see 'git help status')."
+msgstr ""
+"A enumeração dos ficheiros não controlados demorou %.2f segundos\n"
+"a concluir. 'status -uno' pode acelerar o processo, mas deve ter\n"
+"cuidado de não se esquecer de adicionar novos ficheiros\n"
+"(consulte 'git help status')."
+
+#: wt-status.c:1500
 #, c-format
 msgid "Untracked files not listed%s"
-msgstr ""
+msgstr "Ficheiros não controlados não listados%s"
 
-#: wt-status.c:775
+#: wt-status.c:1502
 msgid " (use -u option to show untracked files)"
-msgstr ""
+msgstr " (use a opção -u para mostrar os ficheiros não controlados)"
 
-#: wt-status.c:781
+#: wt-status.c:1508
 msgid "No changes"
-msgstr "Sem mudanças"
+msgstr "Sem alterações"
 
-#: wt-status.c:785
+#: wt-status.c:1513
 #, c-format
-msgid "no changes added to commit%s\n"
-msgstr "nenhuma alteração adicionado ao commit%s\n"
+msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
+msgstr ""
+"nenhuma alteração adicionada para commit (use \"git add\" e/ou \"git commit -"
+"a\")\n"
 
-#: wt-status.c:787
-msgid " (use \"git add\" and/or \"git commit -a\")"
-msgstr " (usa \"git add\" e/ou \"git commit -a\")"
-
-#: wt-status.c:789
+#: wt-status.c:1516
 #, c-format
-msgid "nothing added to commit but untracked files present%s\n"
-msgstr ""
+msgid "no changes added to commit\n"
+msgstr "nenhuma alteração adicionada para commit\n"
 
-#: wt-status.c:791
-msgid " (use \"git add\" to track)"
-msgstr " (usa \"git add\" para seguir)"
-
-#: wt-status.c:793
-#: wt-status.c:796
-#: wt-status.c:799
+#: wt-status.c:1519
 #, c-format
-msgid "nothing to commit%s\n"
-msgstr "nada para fazer commit%s\n"
-
-#: wt-status.c:794
-msgid " (create/copy files and use \"git add\" to track)"
+msgid ""
+"nothing added to commit but untracked files present (use \"git add\" to "
+"track)\n"
 msgstr ""
+"não foi adicionado nada para commit, mas existem ficheiros não controlados "
+"(use \"git add\" para controlá-los)\n"
 
-#: wt-status.c:797
-msgid " (use -u to show untracked files)"
+#: wt-status.c:1522
+#, c-format
+msgid "nothing added to commit but untracked files present\n"
 msgstr ""
+"não foi adicionado nada para commit, mas existem ficheiros não controlados\n"
 
-#: wt-status.c:800
-msgid " (working directory clean)"
-msgstr " (directório de trabalho vacio)"
+#: wt-status.c:1525
+#, c-format
+msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
+msgstr ""
+"não há nada para fazer commit (crie/copie ficheiros e use \"git add\" para "
+"controlá-los)\n"
 
-#: wt-status.c:908
-msgid "HEAD (no branch)"
-msgstr "HEAD (Não é rama)"
+#: wt-status.c:1528 wt-status.c:1533
+#, c-format
+msgid "nothing to commit\n"
+msgstr "não há nada para fazer commit\n"
 
-#: wt-status.c:914
+#: wt-status.c:1531
+#, c-format
+msgid "nothing to commit (use -u to show untracked files)\n"
+msgstr ""
+"não há nada para fazer commit (use -u para mostrar os ficheiros não "
+"controlados)\n"
+
+#: wt-status.c:1535
+#, c-format
+msgid "nothing to commit, working directory clean\n"
+msgstr "não há nada para fazer commit, diretório de trabalho limpo\n"
+
+#: wt-status.c:1642
 msgid "Initial commit on "
 msgstr "Commit inicial em "
 
-#: wt-status.c:929
+#: wt-status.c:1646
+msgid "HEAD (no branch)"
+msgstr "HEAD (nenhum ramo)"
+
+#: wt-status.c:1675
+msgid "gone"
+msgstr "desaparecido"
+
+#: wt-status.c:1677 wt-status.c:1685
 msgid "behind "
 msgstr "atrás "
 
-#: wt-status.c:932
-#: wt-status.c:935
+#: wt-status.c:1680 wt-status.c:1683
 msgid "ahead "
-msgstr "a frente "
+msgstr "à frente "
 
-#: wt-status.c:937
-msgid ", behind "
-msgstr ", atrás "
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
+#, c-format
+msgid "failed to unlink '%s'"
+msgstr "falha ao invocar unlink de '%s'"
 
-#: builtin/add.c:62
+#: builtin/add.c:22
+msgid "git add [<options>] [--] <pathspec>..."
+msgstr "git add [<opções>] [--] <caminho>..."
+
+#: builtin/add.c:65
 #, c-format
 msgid "unexpected diff status %c"
-msgstr ""
+msgstr "diff status inesperado %c"
 
-#: builtin/add.c:67
-#: builtin/commit.c:282
+#: builtin/add.c:70 builtin/commit.c:278
 msgid "updating files failed"
-msgstr "Falou a atualização dos ficheiros"
+msgstr "falha ao atualizar os ficheiros"
 
-#: builtin/add.c:77
+#: builtin/add.c:80
 #, c-format
 msgid "remove '%s'\n"
-msgstr "eliminar '%s'\n"
+msgstr "remover '%s'\n"
 
-#: builtin/add.c:176
-#, c-format
-msgid "Path '%s' is in submodule '%.*s'"
-msgstr ""
-
-#: builtin/add.c:192
+#: builtin/add.c:134
 msgid "Unstaged changes after refreshing the index:"
-msgstr ""
+msgstr "Alterações não preparadas depois de atualizar o índice:"
 
-#: builtin/add.c:195
-#: builtin/add.c:456
-#: builtin/rm.c:186
-#, c-format
-msgid "pathspec '%s' did not match any files"
-msgstr ""
-
-#: builtin/add.c:209
-#, c-format
-msgid "'%s' is beyond a symbolic link"
-msgstr ""
-
-#: builtin/add.c:276
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
-msgstr "Não foi possível ler o indíce"
+msgstr "Não foi possível ler o índice"
 
-#: builtin/add.c:286
+#: builtin/add.c:205
 #, c-format
 msgid "Could not open '%s' for writing."
-msgstr "Não foi possível abrir '%s' para escrever."
+msgstr "Não foi possível abrir '%s' para escrita."
 
-#: builtin/add.c:290
+#: builtin/add.c:209
 msgid "Could not write patch"
-msgstr "Não consegue escrever patch"
+msgstr "Não foi possível escrever patch"
 
-#: builtin/add.c:295
+#: builtin/add.c:212
+msgid "editing patch failed"
+msgstr "falha ao editar patch"
+
+#: builtin/add.c:215
 #, c-format
 msgid "Could not stat '%s'"
-msgstr ""
+msgstr "Não foi possível obter stat de '%s'"
 
-#: builtin/add.c:297
+#: builtin/add.c:217
 msgid "Empty patch. Aborted."
-msgstr "Patch vazio. Aborted."
+msgstr "Patch vazio. Abortado."
 
-#: builtin/add.c:303
+#: builtin/add.c:222
 #, c-format
 msgid "Could not apply '%s'"
-msgstr "Não foi possível aplicar o '%s'"
+msgstr "Não foi possível aplicar '%s'"
 
-#: builtin/add.c:312
+#: builtin/add.c:232
 msgid "The following paths are ignored by one of your .gitignore files:\n"
+msgstr "Os seguintes caminhos estão ignorados por algum ficheiro .gitignore:\n"
+
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
+msgid "dry run"
+msgstr "simular ação"
+
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
+#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
+msgid "be verbose"
+msgstr "ser verboso"
+
+#: builtin/add.c:252
+msgid "interactive picking"
+msgstr "seleção interativa"
+
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
+msgid "select hunks interactively"
+msgstr "selecionar blocos interativamente"
+
+#: builtin/add.c:254
+msgid "edit current diff and apply"
+msgstr "editar o diff atual e aplicá-lo"
+
+#: builtin/add.c:255
+msgid "allow adding otherwise ignored files"
+msgstr "permitir adicionar ficheiros ignorados"
+
+#: builtin/add.c:256
+msgid "update tracked files"
+msgstr "atualizar ficheiros controlados"
+
+#: builtin/add.c:257
+msgid "record only the fact that the path will be added later"
+msgstr "registar apenas o facto de que o caminho será adicionado mais tarde"
+
+#: builtin/add.c:258
+msgid "add changes from all tracked and untracked files"
 msgstr ""
+"adicionar alterações de todos os ficheiros controlados ou não controlados"
+
+#: builtin/add.c:261
+msgid "ignore paths removed in the working tree (same as --no-all)"
+msgstr ""
+"ignorar caminhos removidos na árvore de trabalho (o mesmo que --no-all)"
+
+#: builtin/add.c:263
+msgid "don't add, only refresh the index"
+msgstr "não adicionar, apenas atualizar o índice"
+
+#: builtin/add.c:264
+msgid "just skip files which cannot be added because of errors"
+msgstr "ignorar ficheiros que não podem ser adicionados por causa de erros"
+
+#: builtin/add.c:265
+msgid "check if - even missing - files are ignored in dry run"
+msgstr "verificar quais os ficheiros ignorados na simulação"
+
+#: builtin/add.c:287
+#, c-format
+msgid "Use -f if you really want to add them.\n"
+msgstr "Use -f se deseja mesmo adicioná-los.\n"
+
+#: builtin/add.c:294
+msgid "adding files failed"
+msgstr "falha ao adicionar ficheiros"
+
+#: builtin/add.c:330
+msgid "-A and -u are mutually incompatible"
+msgstr "-A e -u são mutuamente incompatíveis"
+
+#: builtin/add.c:337
+msgid "Option --ignore-missing can only be used together with --dry-run"
+msgstr "A opção --ignore-missing só pode ser usada em conjunto com --dry-run"
 
 #: builtin/add.c:352
 #, c-format
-msgid "Use -f if you really want to add them.\n"
-msgstr ""
+msgid "Nothing specified, nothing added.\n"
+msgstr "Não foi especificado nada, nada adicionado.\n"
 
 #: builtin/add.c:353
-msgid "no files added"
-msgstr "nenhum ficheiros adicionado"
-
-#: builtin/add.c:359
-msgid "adding files failed"
-msgstr "falhou a adicionar ficheiros"
-
-#: builtin/add.c:391
-msgid "-A and -u are mutually incompatible"
-msgstr ""
-
-#: builtin/add.c:393
-msgid "Option --ignore-missing can only be used together with --dry-run"
-msgstr ""
-
-#: builtin/add.c:413
-#, c-format
-msgid "Nothing specified, nothing added.\n"
-msgstr ""
-
-#: builtin/add.c:414
 #, c-format
 msgid "Maybe you wanted to say 'git add .'?\n"
-msgstr ""
+msgstr "Queria dizer 'git add .'?\n"
 
-#: builtin/add.c:420
-#: builtin/clean.c:95
-#: builtin/commit.c:342
-#: builtin/mv.c:82
-#: builtin/rm.c:162
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
-msgstr "ficheiro index corrupto"
+msgstr "ficheiro de índice corrompido"
 
-#: builtin/add.c:476
-#: builtin/apply.c:4093
-#: builtin/mv.c:229
-#: builtin/rm.c:260
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
-msgstr ""
+msgstr "Não foi possível escrever novo ficheiro de índice"
 
-#: builtin/apply.c:106
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
+#, c-format
+msgid "could not read '%s'"
+msgstr "não foi possível ler '%s'"
+
+#: builtin/am.c:430
+msgid "could not parse author script"
+msgstr "não foi possível analisar o autor do script"
+
+#: builtin/am.c:507
+#, c-format
+msgid "'%s' was deleted by the applypatch-msg hook"
+msgstr "'%s' foi eliminado pelo hook applypatch-msg"
+
+#: builtin/am.c:548 builtin/notes.c:300
+#, c-format
+msgid "Malformed input line: '%s'."
+msgstr "Linha de entrada malformada: '%s'."
+
+#: builtin/am.c:585 builtin/notes.c:315
+#, c-format
+msgid "Failed to copy notes from '%s' to '%s'"
+msgstr "Falha ao copiar notas de '%s' para '%s'"
+
+#: builtin/am.c:611
+msgid "fseek failed"
+msgstr "falha ao invocar fseek"
+
+#: builtin/am.c:772 builtin/am.c:860
+#, c-format
+msgid "could not open '%s' for reading: %s"
+msgstr "não foi possível abrir '%s' para leitura: %s"
+
+#: builtin/am.c:779
+#, c-format
+msgid "could not open '%s' for writing: %s"
+msgstr "não foi possível abrir '%s' para escrita: %s"
+
+#: builtin/am.c:788
+#, c-format
+msgid "could not parse patch '%s'"
+msgstr "não foi possível analisar o patch '%s'"
+
+#: builtin/am.c:853
+msgid "Only one StGIT patch series can be applied at once"
+msgstr "Só pode ser aplicada uma série de patches StGIT duma só vez"
+
+#: builtin/am.c:901
+msgid "invalid timestamp"
+msgstr "carimbo de data/hora inválido"
+
+#: builtin/am.c:904 builtin/am.c:912
+msgid "invalid Date line"
+msgstr "linha de Data inválida"
+
+#: builtin/am.c:909
+msgid "invalid timezone offset"
+msgstr "mudança de fuso horário inválida"
+
+#: builtin/am.c:996
+msgid "Patch format detection failed."
+msgstr "Falha ao detetar o formato do patch."
+
+#: builtin/am.c:1001 builtin/clone.c:378
+#, c-format
+msgid "failed to create directory '%s'"
+msgstr "falha ao criar o diretório '%s'"
+
+#: builtin/am.c:1005
+msgid "Failed to split patches."
+msgstr "Falha ao dividir patches."
+
+#: builtin/am.c:1137 builtin/commit.c:363
+msgid "unable to write index file"
+msgstr "não é possível escrever o ficheiro de índice"
+
+#: builtin/am.c:1188
+#, c-format
+msgid "When you have resolved this problem, run \"%s --continue\"."
+msgstr "Após resolver este problema, execute \"%s --continue\"."
+
+#: builtin/am.c:1189
+#, c-format
+msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
+msgstr "Se preferir ignorar este patch, execute \"%s --skip\"."
+
+#: builtin/am.c:1190
+#, c-format
+msgid "To restore the original branch and stop patching, run \"%s --abort\"."
+msgstr ""
+"Para restaurar o ramo original e interromper a aplicação dos patches, "
+"execute \"%s --abort\"."
+
+#: builtin/am.c:1328
+msgid "Patch is empty. Was it split wrong?"
+msgstr "O patch está vazio. Foi dividido incorretamente?"
+
+#: builtin/am.c:1402 builtin/log.c:1350
+#, c-format
+msgid "invalid ident line: %s"
+msgstr "linha de identidade inválida: %s"
+
+#: builtin/am.c:1429
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "não foi possível analisar o commit %s"
+
+#: builtin/am.c:1631
+msgid "Repository lacks necessary blobs to fall back on 3-way merge."
+msgstr ""
+"O repositório não tem os blobs necessários para recorrer a merge com 3 "
+"pontos."
+
+#: builtin/am.c:1633
+msgid "Using index info to reconstruct a base tree..."
+msgstr "A usar informação do índice para reconstruir uma árvore de base..."
+
+#: builtin/am.c:1652
+msgid ""
+"Did you hand edit your patch?\n"
+"It does not apply to blobs recorded in its index."
+msgstr ""
+"Editou o patch manualmente?\n"
+"Não é possível aplicá-lo aos blobs registados no índice."
+
+#: builtin/am.c:1658
+msgid "Falling back to patching base and 3-way merge..."
+msgstr ""
+"A recorrer a uma de base para aplicação de patches e merge com 3 pontos..."
+
+#: builtin/am.c:1673
+msgid "Failed to merge in the changes."
+msgstr "Falha ao efetuar merge das alterações."
+
+#: builtin/am.c:1697 builtin/merge.c:633
+msgid "git write-tree failed to write a tree"
+msgstr "git write-tree falhou ao escrever uma árvore"
+
+#: builtin/am.c:1704
+msgid "applying to an empty history"
+msgstr "a aplicar a um histórico vazio"
+
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
+msgid "failed to write commit object"
+msgstr "falha ao escrever objeto de commit"
+
+#: builtin/am.c:1749 builtin/am.c:1753
+#, c-format
+msgid "cannot resume: %s does not exist."
+msgstr "não é possível continuar: %s não existe."
+
+#: builtin/am.c:1769
+msgid "cannot be interactive without stdin connected to a terminal."
+msgstr ""
+"não é possível entrar em modo interativo sem um entrada padrão conectada a "
+"um terminal."
+
+#: builtin/am.c:1774
+msgid "Commit Body is:"
+msgstr "Corpo do commit:"
+
+#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
+#. in your translation. The program will only accept English
+#. input at this point.
+#.
+#: builtin/am.c:1784
+msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
+msgstr "Aplicar? [y]sim/[n]ão/[e]ditar/[v]er patch/[a]ceitar todos: "
+
+#: builtin/am.c:1834
+#, c-format
+msgid "Dirty index: cannot apply patches (dirty: %s)"
+msgstr "Índice modificado: não é possível aplicar patches (modificado: %s)"
+
+#: builtin/am.c:1869 builtin/am.c:1941
+#, c-format
+msgid "Applying: %.*s"
+msgstr "A aplicar: %.*s"
+
+#: builtin/am.c:1885
+msgid "No changes -- Patch already applied."
+msgstr "Nenhuma alteração -- Já foi aplicado o patch."
+
+#: builtin/am.c:1893
+#, c-format
+msgid "Patch failed at %s %.*s"
+msgstr "Falha ao aplicar o patch em %s %.*s"
+
+#: builtin/am.c:1899
+#, c-format
+msgid "The copy of the patch that failed is found in: %s"
+msgstr "A cópia do patch que falhou encontra-se em: %s"
+
+#: builtin/am.c:1944
+msgid ""
+"No changes - did you forget to use 'git add'?\n"
+"If there is nothing left to stage, chances are that something else\n"
+"already introduced the same changes; you might want to skip this patch."
+msgstr ""
+"Sem alterações - esqueceu-se de usar 'git add'?\n"
+"Se não há nada por preparar, provavelmente essas mesmas alterações\n"
+"já foram introduzidas; pode querer ignorar este patch."
+
+#: builtin/am.c:1951
+msgid ""
+"You still have unmerged paths in your index.\n"
+"Did you forget to use 'git add'?"
+msgstr ""
+"Ainda há caminhos não integrados no índice.\n"
+"Esqueceu-se de usar 'git add'?"
+
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
+#: builtin/reset.c:316
+#, c-format
+msgid "Could not parse object '%s'."
+msgstr "Não foi possível analisar o objeto '%s'."
+
+#: builtin/am.c:2111
+msgid "failed to clean index"
+msgstr "falha ao limpar o índice"
+
+#: builtin/am.c:2145
+msgid ""
+"You seem to have moved HEAD since the last 'am' failure.\n"
+"Not rewinding to ORIG_HEAD"
+msgstr ""
+"Parece que a HEAD foi movida desde a última vez que o 'am' falhou.\n"
+"Não recuando a ORIG_HEAD"
+
+#: builtin/am.c:2206
+#, c-format
+msgid "Invalid value for --patch-format: %s"
+msgstr "Valor inválido de --patch-format: %s"
+
+#: builtin/am.c:2239
+msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
+msgstr "git am [<opções>] [(<mbox>|<Maildir>)...]"
+
+#: builtin/am.c:2240
+msgid "git am [<options>] (--continue | --skip | --abort)"
+msgstr "git am [<opções>] (--continue | --skip | --abort)"
+
+#: builtin/am.c:2246
+msgid "run interactively"
+msgstr "executar interativamente"
+
+#: builtin/am.c:2248
+msgid "historical option -- no-op"
+msgstr "opção histórica -- sem-ação"
+
+#: builtin/am.c:2250
+msgid "allow fall back on 3way merging if needed"
+msgstr "permitir recorrer a merge com 3 pontos se necessário"
+
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/repack.c:171
+msgid "be quiet"
+msgstr "silencioso"
+
+#: builtin/am.c:2253
+msgid "add a Signed-off-by line to the commit message"
+msgstr "adicionar uma linha com Signed-of-by no fim da mensagem de commit"
+
+#: builtin/am.c:2256
+msgid "recode into utf8 (default)"
+msgstr "recodificar em utf8 (predefinição)"
+
+#: builtin/am.c:2258
+msgid "pass -k flag to git-mailinfo"
+msgstr "passar a opção -k ao git-mailinfo"
+
+#: builtin/am.c:2260
+msgid "pass -b flag to git-mailinfo"
+msgstr "passar a opção -b ao git-mailinfo"
+
+#: builtin/am.c:2262
+msgid "pass -m flag to git-mailinfo"
+msgstr "passar a opção -m ao git-mailinfo"
+
+#: builtin/am.c:2264
+msgid "pass --keep-cr flag to git-mailsplit for mbox format"
+msgstr "passar a opção --keep-cr ao gitmailsplit para formato de mbox"
+
+#: builtin/am.c:2267
+msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
+msgstr ""
+"não passar a opção --keep-cr ao git-mailsplit independentemente de am.keepcr"
+
+#: builtin/am.c:2270
+msgid "strip everything before a scissors line"
+msgstr "retirar todo o conteúdo antes da linha de tesoura"
+
+#: builtin/am.c:2271 builtin/apply.c:4544
+msgid "action"
+msgstr "ação"
+
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
+msgid "pass it through git-apply"
+msgstr "transmitir ao git-apply"
+
+#: builtin/am.c:2280 builtin/apply.c:4568
+msgid "root"
+msgstr "raiz"
+
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
+msgid "path"
+msgstr "caminho"
+
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
+msgid "n"
+msgstr "n"
+
+#: builtin/am.c:2292 builtin/apply.c:4512
+msgid "num"
+msgstr "num"
+
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/tag.c:372
+msgid "format"
+msgstr "formato"
+
+#: builtin/am.c:2296
+msgid "format the patch(es) are in"
+msgstr "formato de apresentação de patches"
+
+#: builtin/am.c:2302
+msgid "override error message when patch failure occurs"
+msgstr "substituir a mensagem de erro quando a aplicação do patch falha"
+
+#: builtin/am.c:2304
+msgid "continue applying patches after resolving a conflict"
+msgstr "continuar a aplicar os patches depois de resolver os conflitos"
+
+#: builtin/am.c:2307
+msgid "synonyms for --continue"
+msgstr "sinónimo de --continue"
+
+#: builtin/am.c:2310
+msgid "skip the current patch"
+msgstr "ignorar o patch atual"
+
+#: builtin/am.c:2313
+msgid "restore the original branch and abort the patching operation."
+msgstr "restaurar o ramo original e abortar a operação de patch"
+
+#: builtin/am.c:2317
+msgid "lie about committer date"
+msgstr "mentir sobre a data de commit"
+
+#: builtin/am.c:2319
+msgid "use current timestamp for author date"
+msgstr "usar a data e hora atual como data de autor"
+
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
+msgid "key-id"
+msgstr "id-chave"
+
+#: builtin/am.c:2322
+msgid "GPG-sign commits"
+msgstr "assinar os commits com GPG"
+
+#: builtin/am.c:2325
+msgid "(internal use for git-rebase)"
+msgstr "(uso interno de git-rebase)"
+
+#: builtin/am.c:2340
+msgid ""
+"The -b/--binary option has been a no-op for long time, and\n"
+"it will be removed. Please do not use it anymore."
+msgstr ""
+"A opção -b/--binary há muito que é ignorada e será\n"
+"futuramente removida. Por favor não a use."
+
+#: builtin/am.c:2347
+msgid "failed to read the index"
+msgstr "falha ao ler o índice"
+
+#: builtin/am.c:2362
+#, c-format
+msgid "previous rebase directory %s still exists but mbox given."
+msgstr ""
+"o diretório de rebesa anterior %s ainda existe, mas foi fornecida uma mbox."
+
+#: builtin/am.c:2386
+#, c-format
+msgid ""
+"Stray %s directory found.\n"
+"Use \"git am --abort\" to remove it."
+msgstr ""
+"Diretório abandonado %s encontrado.\n"
+"Use \"git am --abort\" para o remover."
+
+#: builtin/am.c:2392
+msgid "Resolve operation not in progress, we are not resuming."
+msgstr "A operação de resolução não está em curso, não retomando."
+
+#: builtin/apply.c:59
+msgid "git apply [<options>] [<patch>...]"
+msgstr "git apply [<opções>] [<patch>...]"
+
+#: builtin/apply.c:111
 #, c-format
 msgid "unrecognized whitespace option '%s'"
-msgstr "espaço em braco não reconhecido: '%s'"
+msgstr "opção de espaço em branco não reconhecida '%s'"
 
-#: builtin/apply.c:121
+#: builtin/apply.c:126
 #, c-format
 msgid "unrecognized whitespace ignore option '%s'"
-msgstr ""
+msgstr "opção de ignorar espaço em branco não reconhecida '%s'"
 
-#: builtin/apply.c:815
+#: builtin/apply.c:818
 #, c-format
 msgid "Cannot prepare timestamp regexp %s"
-msgstr ""
+msgstr "Não é possível preparar a regexp de carimbo de data/hora %s"
 
-#: builtin/apply.c:824
+#: builtin/apply.c:827
 #, c-format
 msgid "regexec returned %d for input: %s"
-msgstr ""
+msgstr "regexec retornou %d para a entra: %s"
 
-#: builtin/apply.c:905
+#: builtin/apply.c:908
 #, c-format
 msgid "unable to find filename in patch at line %d"
-msgstr ""
+msgstr "não foi possível encontrar o nome do ficheiro no patch na linha %d"
 
-#: builtin/apply.c:934
+#: builtin/apply.c:940
 #, c-format
 msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d"
 msgstr ""
-
-#: builtin/apply.c:937
-#, c-format
-msgid "git apply: bad git-diff - inconsistent %s filename on line %d"
-msgstr ""
+"git apply: git-diff incorreto - esperava-se /dev/null, obteve-se %s na linha "
+"%d"
 
 #: builtin/apply.c:944
 #, c-format
-msgid "git apply: bad git-diff - expected /dev/null on line %d"
+msgid "git apply: bad git-diff - inconsistent new filename on line %d"
 msgstr ""
+"git apply: git-diff incorreto - o nome do novo ficheiro na linha %d é "
+"inconsistente"
 
-#: builtin/apply.c:1387
+#: builtin/apply.c:945
+#, c-format
+msgid "git apply: bad git-diff - inconsistent old filename on line %d"
+msgstr ""
+"git apply: git-diff incorreto - o nome do ficheiro antigo na linha %d é "
+"inconsistente"
+
+#: builtin/apply.c:952
+#, c-format
+msgid "git apply: bad git-diff - expected /dev/null on line %d"
+msgstr "git apply: git-diff incorreto - esperava-se /dev/null na linha %d"
+
+#: builtin/apply.c:1415
 #, c-format
 msgid "recount: unexpected line: %.*s"
-msgstr ""
+msgstr "recontagem: linha inesperada: %.*s"
 
-#: builtin/apply.c:1444
+#: builtin/apply.c:1472
 #, c-format
 msgid "patch fragment without header at line %d: %.*s"
-msgstr ""
+msgstr "fragmento de patch sem cabeçalho na linha %d: %.*s"
 
-#: builtin/apply.c:1461
+#: builtin/apply.c:1489
 #, c-format
-msgid "git diff header lacks filename information when removing %d leading pathname component (line %d)"
-msgid_plural "git diff header lacks filename information when removing %d leading pathname components (line %d)"
+msgid ""
+"git diff header lacks filename information when removing %d leading pathname "
+"component (line %d)"
+msgid_plural ""
+"git diff header lacks filename information when removing %d leading pathname "
+"components (line %d)"
 msgstr[0] ""
+"o cabeçalho do git diff não revelou o nome do ficheiro depois de se remover "
+"%d componente do caminho (linha %d)"
 msgstr[1] ""
+"o cabeçalho do git diff não revelou o nome do ficheiro depois de se remover "
+"%d componentes de caminho (linha %d)"
 
-#: builtin/apply.c:1621
+#: builtin/apply.c:1655
 msgid "new file depends on old contents"
-msgstr ""
+msgstr "o novo ficheiro depende de conteúdos antigos"
 
-#: builtin/apply.c:1623
+#: builtin/apply.c:1657
 msgid "deleted file still has contents"
-msgstr ""
+msgstr "o ficheiro eliminado ainda tem conteúdos"
 
-#: builtin/apply.c:1649
+#: builtin/apply.c:1683
 #, c-format
 msgid "corrupt patch at line %d"
-msgstr ""
+msgstr "patch corrompido na linha %d"
 
-#: builtin/apply.c:1685
+#: builtin/apply.c:1719
 #, c-format
 msgid "new file %s depends on old contents"
-msgstr ""
+msgstr "o novo ficheiro %s depende de conteúdos antigos"
 
-#: builtin/apply.c:1687
+#: builtin/apply.c:1721
 #, c-format
 msgid "deleted file %s still has contents"
-msgstr ""
+msgstr "o ficheiro eliminado %s ainda tem conteúdos"
 
-#: builtin/apply.c:1690
+#: builtin/apply.c:1724
 #, c-format
 msgid "** warning: file %s becomes empty but is not deleted"
-msgstr ""
+msgstr "** aviso: o ficheiro %s ficará vazio, mas não será eliminado"
 
-#: builtin/apply.c:1836
+#: builtin/apply.c:1870
 #, c-format
 msgid "corrupt binary patch at line %d: %.*s"
-msgstr ""
+msgstr "patch binário corrompido na linha %d: %.*s"
 
-#. there has to be one hunk (forward hunk)
-#: builtin/apply.c:1865
+#: builtin/apply.c:1899
 #, c-format
 msgid "unrecognized binary patch at line %d"
-msgstr ""
+msgstr "patch binário não reconhecido na linha %d"
 
-#: builtin/apply.c:1951
+#: builtin/apply.c:2050
 #, c-format
 msgid "patch with only garbage at line %d"
-msgstr ""
+msgstr "patch incompreensível na linha %d"
 
-#: builtin/apply.c:2041
+#: builtin/apply.c:2140
 #, c-format
 msgid "unable to read symlink %s"
-msgstr ""
+msgstr "não é possível ler a ligação simbólica %s"
 
-#: builtin/apply.c:2045
+#: builtin/apply.c:2144
 #, c-format
 msgid "unable to open or read %s"
-msgstr "Não foi possível abrir o ler %s"
+msgstr "não é possível abrir ou ler %s"
 
-#: builtin/apply.c:2116
-msgid "oops"
-msgstr ""
-
-#: builtin/apply.c:2638
+#: builtin/apply.c:2777
 #, c-format
 msgid "invalid start of line: '%c'"
-msgstr "começo de linha inválido: '%c'"
+msgstr "início de linha inválido: '%c'"
 
-#: builtin/apply.c:2756
+#: builtin/apply.c:2896
 #, c-format
 msgid "Hunk #%d succeeded at %d (offset %d line)."
 msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Excerto nº%d bem sucedido na linha %d (%d linha deslocada)"
+msgstr[1] "Excerto nº%d bem sucedido na linha %d (%d linhas deslocadas)"
 
-#: builtin/apply.c:2768
+#: builtin/apply.c:2908
 #, c-format
 msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
-msgstr ""
+msgstr "Contexto reduzido para (%ld/%ld) para aplicar o fragmento em %d"
 
-#: builtin/apply.c:2774
+#: builtin/apply.c:2914
 #, c-format
 msgid ""
 "while searching for:\n"
 "%.*s"
 msgstr ""
+"ao procura por:\n"
+"%.*s"
 
-#: builtin/apply.c:2793
+#: builtin/apply.c:2934
 #, c-format
 msgid "missing binary patch data for '%s'"
-msgstr ""
+msgstr "falta de dados do patch binário '%s'"
 
-#: builtin/apply.c:2896
+#: builtin/apply.c:3035
 #, c-format
 msgid "binary patch does not apply to '%s'"
-msgstr ""
+msgstr "o patch binário não foi aplicado corretamente a '%s'"
 
-#: builtin/apply.c:2902
+#: builtin/apply.c:3041
 #, c-format
 msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
 msgstr ""
+"o patch binário aplicado a '%s' gera resultados incorretos (esperava-se %s, "
+"obteve-se %s)"
 
-#: builtin/apply.c:2923
-#, c-format
-msgid "patch failed: %s:%ld"
-msgstr ""
-
-#: builtin/apply.c:3038
-#, c-format
-msgid "patch %s has been renamed/deleted"
-msgstr ""
-
-#: builtin/apply.c:3045
 #: builtin/apply.c:3062
 #, c-format
+msgid "patch failed: %s:%ld"
+msgstr "falha ao aplicar o patch: %s:%ld"
+
+#: builtin/apply.c:3186
+#, c-format
+msgid "cannot checkout %s"
+msgstr "não é possível extrair %s"
+
+#: builtin/apply.c:3231 builtin/apply.c:3242 builtin/apply.c:3287
+#, c-format
 msgid "read of %s failed"
-msgstr "ler %s falhou"
+msgstr "falha ao ler %s"
 
-#: builtin/apply.c:3077
-msgid "removal patch leaves file contents"
-msgstr ""
-
-#: builtin/apply.c:3098
+#: builtin/apply.c:3239
 #, c-format
-msgid "%s: already exists in working directory"
-msgstr "%s: já existe no espaço de trabalho"
+msgid "reading from '%s' beyond a symbolic link"
+msgstr "a ler '%s' indicado por uma ligação simbólica"
 
-#: builtin/apply.c:3136
+#: builtin/apply.c:3267 builtin/apply.c:3489
 #, c-format
-msgid "%s: has been deleted/renamed"
-msgstr ""
+msgid "path %s has been renamed/deleted"
+msgstr "o caminho %s foi eliminado ou mudou de nome"
 
-#: builtin/apply.c:3141
-#: builtin/apply.c:3172
+#: builtin/apply.c:3348 builtin/apply.c:3503
+#, c-format
+msgid "%s: does not exist in index"
+msgstr "%s: não existe no índice"
+
+#: builtin/apply.c:3352 builtin/apply.c:3495 builtin/apply.c:3517
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: builtin/apply.c:3152
-#, c-format
-msgid "%s: does not exist in index"
-msgstr ""
-
-#: builtin/apply.c:3166
+#: builtin/apply.c:3357 builtin/apply.c:3511
 #, c-format
 msgid "%s: does not match index"
-msgstr "%s: não tem correspondencia ao index"
+msgstr "%s: não tem correspondência no índice"
 
-#: builtin/apply.c:3183
+#: builtin/apply.c:3459
+msgid "removal patch leaves file contents"
+msgstr "patch de remoção deixa conteúdos no ficheiro"
+
+#: builtin/apply.c:3528
 #, c-format
 msgid "%s: wrong type"
-msgstr ""
+msgstr "%s: tipo errado"
 
-#: builtin/apply.c:3185
+#: builtin/apply.c:3530
 #, c-format
 msgid "%s has type %o, expected %o"
-msgstr ""
+msgstr "%s é do tipo %o, esperado %o"
 
-#: builtin/apply.c:3240
+#: builtin/apply.c:3689 builtin/apply.c:3691
+#, c-format
+msgid "invalid path '%s'"
+msgstr "caminho inválido '%s'"
+
+#: builtin/apply.c:3746
 #, c-format
 msgid "%s: already exists in index"
-msgstr "%s: já existe no indíce"
+msgstr "%s: já existe no índice"
 
-#: builtin/apply.c:3259
+#: builtin/apply.c:3749
 #, c-format
-msgid "new mode (%o) of %s does not match old mode (%o)%s%s"
-msgstr ""
+msgid "%s: already exists in working directory"
+msgstr "%s: já existe no diretório de trabalho"
 
-#: builtin/apply.c:3265
+#: builtin/apply.c:3769
+#, c-format
+msgid "new mode (%o) of %s does not match old mode (%o)"
+msgstr "o novo modo (%o) de %s não corresponde ao modo antigo (%o)"
+
+#: builtin/apply.c:3774
+#, c-format
+msgid "new mode (%o) of %s does not match old mode (%o) of %s"
+msgstr "o novo modo (%o) de %s não corresponde ao modo antigo (%o) de %s"
+
+#: builtin/apply.c:3794
+#, c-format
+msgid "affected file '%s' is beyond a symbolic link"
+msgstr "o ficheiro afetado '%s' é indicado por uma ligação simbólica"
+
+#: builtin/apply.c:3798
 #, c-format
 msgid "%s: patch does not apply"
-msgstr ""
+msgstr "%s: patch não se aplica com sucesso"
 
-#: builtin/apply.c:3278
+#: builtin/apply.c:3812
 #, c-format
 msgid "Checking patch %s..."
-msgstr ""
+msgstr "A verificar o patch %s..."
 
-#: builtin/apply.c:3333
-#: builtin/checkout.c:212
-#: builtin/reset.c:158
+#: builtin/apply.c:3905 builtin/checkout.c:233 builtin/reset.c:135
 #, c-format
 msgid "make_cache_entry failed for path '%s'"
-msgstr ""
+msgstr "falha ao invocar make_cache_entry em '%s'"
 
-#: builtin/apply.c:3476
+#: builtin/apply.c:4048
 #, c-format
 msgid "unable to remove %s from index"
-msgstr ""
+msgstr "não é possível remover %s do índice"
 
-#: builtin/apply.c:3503
+#: builtin/apply.c:4077
 #, c-format
-msgid "corrupt patch for subproject %s"
-msgstr ""
+msgid "corrupt patch for submodule %s"
+msgstr "patch corrompido no submódulo %s"
 
-#: builtin/apply.c:3507
+#: builtin/apply.c:4081
 #, c-format
 msgid "unable to stat newly created file '%s'"
-msgstr "não é possivel 'stat' o novo ficheiro creado '%s'"
+msgstr "não é possível obter estado do novo ficheiro criado '%s'"
 
-#: builtin/apply.c:3512
+#: builtin/apply.c:4086
 #, c-format
 msgid "unable to create backing store for newly created file %s"
 msgstr ""
+"não é possível criar armazenamento de segurança do ficheiro recém-criado %s"
 
-#: builtin/apply.c:3515
+#: builtin/apply.c:4089 builtin/apply.c:4197
 #, c-format
 msgid "unable to add cache entry for %s"
-msgstr ""
+msgstr "não é possível adicionar %s à cache"
 
-#: builtin/apply.c:3548
+#: builtin/apply.c:4122
 #, c-format
 msgid "closing file '%s'"
-msgstr "fechar fichero '%s'"
+msgstr "a fechar o ficheiro '%s'"
 
-#: builtin/apply.c:3597
+#: builtin/apply.c:4171
 #, c-format
 msgid "unable to write file '%s' mode %o"
-msgstr ""
+msgstr "não é possível escrever o ficheiro '%s' com o modo %o"
 
-#: builtin/apply.c:3653
+#: builtin/apply.c:4258
 #, c-format
 msgid "Applied patch %s cleanly."
-msgstr ""
+msgstr "Patch %s aplicado com sucesso."
 
-#: builtin/apply.c:3661
+#: builtin/apply.c:4266
 msgid "internal error"
-msgstr ""
+msgstr "erro interno"
 
-#. Say this even without --verbose
-#: builtin/apply.c:3664
+#: builtin/apply.c:4269
 #, c-format
 msgid "Applying patch %%s with %d reject..."
 msgid_plural "Applying patch %%s with %d rejects..."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "A aplicar patch %%s com %d rejeição..."
+msgstr[1] "A aplicar patch %%s com %d rejeições..."
 
-#: builtin/apply.c:3674
+#: builtin/apply.c:4279
 #, c-format
 msgid "truncating .rej filename to %.*s.rej"
-msgstr ""
+msgstr "a truncar o nome do ficheiro .rej em %.*s.rej "
 
-#: builtin/apply.c:3695
+#: builtin/apply.c:4300
 #, c-format
 msgid "Hunk #%d applied cleanly."
-msgstr ""
+msgstr "Excerto nº%d aplicado com sucesso."
 
-#: builtin/apply.c:3698
+#: builtin/apply.c:4303
 #, c-format
 msgid "Rejected hunk #%d."
-msgstr ""
+msgstr "Excerto nº%d rejeitado."
 
-#: builtin/apply.c:3829
+#: builtin/apply.c:4393
 msgid "unrecognized input"
 msgstr "entrada não reconhecida"
 
-#: builtin/apply.c:3840
+#: builtin/apply.c:4404
 msgid "unable to read index file"
-msgstr "Não foi possível ler o fichero indíce"
+msgstr "não foi possível ler o ficheiro de índice"
 
-#: builtin/apply.c:4035
+#: builtin/apply.c:4507
+msgid "don't apply changes matching the given path"
+msgstr "não aplicar alterações que correspondam ao caminho fornecido"
+
+#: builtin/apply.c:4510
+msgid "apply changes matching the given path"
+msgstr "aplicar alterações que correspondam ao caminho fornecido"
+
+#: builtin/apply.c:4513
+msgid "remove <num> leading slashes from traditional diff paths"
+msgstr "remover <num> barras à esquerda dos caminhos de diff tradicional"
+
+#: builtin/apply.c:4516
+msgid "ignore additions made by the patch"
+msgstr "ignorar adições feitas pelo patch"
+
+#: builtin/apply.c:4518
+msgid "instead of applying the patch, output diffstat for the input"
+msgstr "em vez de aplicar o patch, mostrar o diffstat da entrada"
+
+#: builtin/apply.c:4522
+msgid "show number of added and deleted lines in decimal notation"
+msgstr "mostrar número de linhas adicionadas e removidas em notação decimal"
+
+#: builtin/apply.c:4524
+msgid "instead of applying the patch, output a summary for the input"
+msgstr "em vez de aplicar o patch, mostrar um resumo da entrada"
+
+#: builtin/apply.c:4526
+msgid "instead of applying the patch, see if the patch is applicable"
+msgstr "em vez de aplicar o patch, verificar se o patch pode ser aplicado"
+
+#: builtin/apply.c:4528
+msgid "make sure the patch is applicable to the current index"
+msgstr "garantir que o patch pode ser aplicado ao índice atual"
+
+#: builtin/apply.c:4530
+msgid "apply a patch without touching the working tree"
+msgstr "aplicar um patch sem tocar na árvore de trabalho"
+
+#: builtin/apply.c:4532
+msgid "accept a patch that touches outside the working area"
+msgstr "aceitar patches que alteram ficheiros fora da área de trabalho"
+
+#: builtin/apply.c:4534
+msgid "also apply the patch (use with --stat/--summary/--check)"
+msgstr "aplicar o patch também (use com --stat/--summary/--check)"
+
+#: builtin/apply.c:4536
+msgid "attempt three-way merge if a patch does not apply"
+msgstr "tentar merge com três pontos se um patch não for aplicado corretamente"
+
+#: builtin/apply.c:4538
+msgid "build a temporary index based on embedded index information"
+msgstr ""
+"construir um índice temporário baseado na informação incorporada do índice"
+
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
+msgid "paths are separated with NUL character"
+msgstr "os caminhos estão separados por caracteres NUL"
+
+#: builtin/apply.c:4543
+msgid "ensure at least <n> lines of context match"
+msgstr "garantir que, pelo menos, <n> linhas de contexto coincidem"
+
+#: builtin/apply.c:4545
+msgid "detect new or modified lines that have whitespace errors"
+msgstr "detetar linhas novas ou modificadas que tenham espaços em branco"
+
+#: builtin/apply.c:4548 builtin/apply.c:4551
+msgid "ignore changes in whitespace when finding context"
+msgstr "ignorar alterações de espaço em branco ao procurar contexto"
+
+#: builtin/apply.c:4554
+msgid "apply the patch in reverse"
+msgstr "aplicar o patch em reverso"
+
+#: builtin/apply.c:4556
+msgid "don't expect at least one line of context"
+msgstr "não esperar nenhuma linha de contexto"
+
+#: builtin/apply.c:4558
+msgid "leave the rejected hunks in corresponding *.rej files"
+msgstr "deixar os excertos rejeitados nos respetivos ficheiros *.rej"
+
+#: builtin/apply.c:4560
+msgid "allow overlapping hunks"
+msgstr "permitir a sobreposição de excertos"
+
+#: builtin/apply.c:4563
+msgid "tolerate incorrectly detected missing new-line at the end of file"
+msgstr ""
+"tolerar deteções incorretas de falta de nova linha no final do ficheiro"
+
+#: builtin/apply.c:4566
+msgid "do not trust the line counts in the hunk headers"
+msgstr "não confiar na contagem de linhas no cabeçalho dos excertos"
+
+#: builtin/apply.c:4569
+msgid "prepend <root> to all filenames"
+msgstr "preceder <root> a todos os nomes de ficheiro"
+
+#: builtin/apply.c:4591
+msgid "--3way outside a repository"
+msgstr "--3way fora de um repositório"
+
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
-msgstr "--index fora de um repositorio"
+msgstr "--index fora de um repositório"
 
-#: builtin/apply.c:4038
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
-msgstr "--cached fora de um repositorio"
+msgstr "--cached fora de um repositório"
 
-#: builtin/apply.c:4054
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
-msgstr "não é possivel abrir patch '%s'"
+msgstr "não é possível abrir o patch '%s'"
 
-#: builtin/apply.c:4068
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d erro de espaço em branco reprimido"
+msgstr[1] "%d erros de espaço em branco repimidos"
 
-#: builtin/apply.c:4074
-#: builtin/apply.c:4084
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d linha adiciona erros de espaço em branco."
+msgstr[1] "%d linhas adicionam erros de espaço em branco."
 
 #: builtin/archive.c:17
 #, c-format
 msgid "could not create archive file '%s'"
-msgstr ""
+msgstr "não foi possível criar o ficheiro de arquivo '%s'"
 
 #: builtin/archive.c:20
 msgid "could not redirect output"
-msgstr ""
+msgstr "não foi possível redirecionar a saída"
 
 #: builtin/archive.c:37
 msgid "git archive: Remote with no URL"
-msgstr ""
+msgstr "git archive: Remoto sem URL"
 
 #: builtin/archive.c:58
 msgid "git archive: expected ACK/NAK, got EOF"
-msgstr ""
+msgstr "git archive: esperava-se ACK/NAK, obteve-se EOF"
 
-#: builtin/archive.c:63
+#: builtin/archive.c:61
 #, c-format
 msgid "git archive: NACK %s"
-msgstr ""
+msgstr "git archive: NACK %s"
 
-#: builtin/archive.c:65
+#: builtin/archive.c:63
 #, c-format
 msgid "remote error: %s"
 msgstr "erro remoto: %s"
 
-#: builtin/archive.c:66
+#: builtin/archive.c:64
 msgid "git archive: protocol error"
-msgstr ""
+msgstr "git archive: erro de protocolo"
 
-#: builtin/archive.c:71
+#: builtin/archive.c:68
 msgid "git archive: expected a flush"
-msgstr ""
+msgstr "git archive: esvaziamento de cache (flush) esperado"
 
-#: builtin/branch.c:144
+#: builtin/bisect--helper.c:7
+msgid "git bisect--helper --next-all [--no-checkout]"
+msgstr "git bisect--helper --next-all [--no-checkout]"
+
+#: builtin/bisect--helper.c:17
+msgid "perform 'git bisect next'"
+msgstr "executar 'git bisect next'"
+
+#: builtin/bisect--helper.c:19
+msgid "update BISECT_HEAD instead of checking out the current commit"
+msgstr "atualizar BISECT_HEAD em vez de extrair o commit atual"
+
+#: builtin/blame.c:33
+msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
+msgstr "git blame [<opções>] [<rev-opções>] [<rev>] [--] <ficheiro>"
+
+#: builtin/blame.c:38
+msgid "<rev-opts> are documented in git-rev-list(1)"
+msgstr "<rev-opções> estão documentadas em git-rev-list(1)"
+
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Linhas de culpa"
+
+#: builtin/blame.c:2530
+msgid "Show blame entries as we find them, incrementally"
+msgstr ""
+"Mostrar entradas de culpa à medida que forem encontradas, incrementalmente"
+
+#: builtin/blame.c:2531
+msgid "Show blank SHA-1 for boundary commits (Default: off)"
+msgstr ""
+"Mostar SHA-1 dos commits de limite em branco (Predefinição: desativado)"
+
+#: builtin/blame.c:2532
+msgid "Do not treat root commits as boundaries (Default: off)"
+msgstr "Não tratar os commits raiz como limites (Predefinição: desativado)"
+
+#: builtin/blame.c:2533
+msgid "Show work cost statistics"
+msgstr "Mostrar estatísticas de custo de atividade"
+
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Forçar informação de progresso"
+
+#: builtin/blame.c:2535
+msgid "Show output score for blame entries"
+msgstr "Mostrar a pontuação das entradas de culpa"
+
+#: builtin/blame.c:2536
+msgid "Show original filename (Default: auto)"
+msgstr "Mostrar o nome do ficheiro original (Predefinição: auto)"
+
+#: builtin/blame.c:2537
+msgid "Show original linenumber (Default: off)"
+msgstr "Mostrar números de linha originais (Predefinição: desativado)"
+
+#: builtin/blame.c:2538
+msgid "Show in a format designed for machine consumption"
+msgstr "Mostrar em formato próprio para ser consumo por uma máquina"
+
+#: builtin/blame.c:2539
+msgid "Show porcelain format with per-line commit information"
+msgstr "Mostrar em formato de porcelana com informações de commit por linha"
+
+#: builtin/blame.c:2540
+msgid "Use the same output mode as git-annotate (Default: off)"
+msgstr "Usar o mesmo modo de saída que git-annotate (Predefinição: desativado)"
+
+#: builtin/blame.c:2541
+msgid "Show raw timestamp (Default: off)"
+msgstr "Mostrar carimbo de data/hora em bruto (Predefinição: desativado)"
+
+#: builtin/blame.c:2542
+msgid "Show long commit SHA1 (Default: off)"
+msgstr "Mostrar SHA1 longo de commit (Predefinição: desativado)"
+
+#: builtin/blame.c:2543
+msgid "Suppress author name and timestamp (Default: off)"
+msgstr ""
+"Suprimir nome de autor e carimbo de data/hora (Predefinição: desativado)"
+
+#: builtin/blame.c:2544
+msgid "Show author email instead of name (Default: off)"
+msgstr "Mostrar o email do autor em vez do nome (Predefinição: desativado)"
+
+#: builtin/blame.c:2545
+msgid "Ignore whitespace differences"
+msgstr "Ignorar as diferenças de espaço em branco"
+
+#: builtin/blame.c:2546
+msgid "Spend extra cycles to find better match"
+msgstr "Despender ciclos extra para encontrar uma melhor correspondência"
+
+#: builtin/blame.c:2547
+msgid "Use revisions from <file> instead of calling git-rev-list"
+msgstr "Usar revisões do <ficheiro> em vez de invocar git-rev-list"
+
+#: builtin/blame.c:2548
+msgid "Use <file>'s contents as the final image"
+msgstr "Usar o conteúdo do <ficheiro> como imagem final"
+
+#: builtin/blame.c:2549 builtin/blame.c:2550
+msgid "score"
+msgstr "pontuação"
+
+#: builtin/blame.c:2549
+msgid "Find line copies within and across files"
+msgstr "Localizar linhas copiadas dentro e entre ficheiros"
+
+#: builtin/blame.c:2550
+msgid "Find line movements within and across files"
+msgstr "Localizar linhas movidas dentro e entre ficheiros"
+
+#: builtin/blame.c:2551
+msgid "n,m"
+msgstr "n,m"
+
+#: builtin/blame.c:2551
+msgid "Process only line range n,m, counting from 1"
+msgstr "Processar apenas o intervalo de linhas n,m, a cantar de 1"
+
+#. TRANSLATORS: This string is used to tell us the maximum
+#. display width for a relative timestamp in "git blame"
+#. output.  For C locale, "4 years, 11 months ago", which
+#. takes 22 places, is the longest among various forms of
+#. relative timestamps, but your language may need more or
+#. fewer display columns.
+#: builtin/blame.c:2640
+msgid "4 years, 11 months ago"
+msgstr "há 4 anos e 11 meses atrás"
+
+#: builtin/branch.c:25
+msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]"
+msgstr "git branch [<opções>] [-r | -a] [--merged | --no-merged]"
+
+#: builtin/branch.c:26
+msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]"
+msgstr "git branch [<opções>] [-l] [-f] <nome-ramo> [<ponto-de-partida>]"
+
+#: builtin/branch.c:27
+msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..."
+msgstr "git branch [<opções>] [-r] (-d | -D) <nome-do-ramo>..."
+
+#: builtin/branch.c:28
+msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>"
+msgstr "git branch [<opções>] (-m | -M) [<ramo-antigo>] <novo-ramo>"
+
+#: builtin/branch.c:29
+msgid "git branch [<options>] [-r | -a] [--points-at]"
+msgstr "git branch [<opções>] [-r | -a] [--points-at]"
+
+#: builtin/branch.c:142
 #, c-format
 msgid ""
 "deleting branch '%s' that has been merged to\n"
 "         '%s', but not yet merged to HEAD."
 msgstr ""
+"a eliminar o ramo '%s' incorporado em\n"
+"         '%s', mas ainda não incorporado em HEAD."
 
-#: builtin/branch.c:148
+#: builtin/branch.c:146
 #, c-format
 msgid ""
 "not deleting branch '%s' that is not yet merged to\n"
 "         '%s', even though it is merged to HEAD."
 msgstr ""
+"ramo '%s' não eliminado, visto que ainda não foi incorporado em\n"
+"         '%s', apesar de já ter sido incorporado em HEAD."
 
-#: builtin/branch.c:180
-msgid "cannot use -a with -d"
-msgstr "Não é possível usar -a com um -d"
-
-#: builtin/branch.c:186
-msgid "Couldn't look up commit object for HEAD"
-msgstr ""
-
-#: builtin/branch.c:191
-#, c-format
-msgid "Cannot delete the branch '%s' which you are currently on."
-msgstr ""
-
-#: builtin/branch.c:202
-#, c-format
-msgid "remote branch '%s' not found."
-msgstr "rama remota '%s não encontrada."
-
-#: builtin/branch.c:203
-#, c-format
-msgid "branch '%s' not found."
-msgstr "rama '%s' não encontrado."
-
-#: builtin/branch.c:210
+#: builtin/branch.c:160
 #, c-format
 msgid "Couldn't look up commit object for '%s'"
-msgstr ""
+msgstr "Não foi possível pesquisar pelo objeto commit de '%s'"
 
-#: builtin/branch.c:216
+#: builtin/branch.c:164
 #, c-format
 msgid ""
 "The branch '%s' is not fully merged.\n"
 "If you are sure you want to delete it, run 'git branch -D %s'."
 msgstr ""
+"O ramo '%s' não foi totalmente incorporado.\n"
+"Se tem a certeza que o quer eliminar, execute 'git branch -D %s'."
 
-#: builtin/branch.c:225
+#: builtin/branch.c:177
+msgid "Update of config-file failed"
+msgstr "Falha ao atualizar o ficheiro de configuração"
+
+#: builtin/branch.c:205
+msgid "cannot use -a with -d"
+msgstr "não é possível usar -a com -d"
+
+#: builtin/branch.c:211
+msgid "Couldn't look up commit object for HEAD"
+msgstr "Não foi possível pesquisar pelo objeto commit de HEAD"
+
+#: builtin/branch.c:219
 #, c-format
-msgid "Error deleting remote branch '%s'"
-msgstr ""
+msgid "Cannot delete the branch '%s' which you are currently on."
+msgstr "Não é possível eliminar o ramo '%s' no qual se encontra neste momento."
 
-#: builtin/branch.c:226
+#: builtin/branch.c:235
+#, c-format
+msgid "remote-tracking branch '%s' not found."
+msgstr "ramo remoto seguido '%s' não encontrado."
+
+#: builtin/branch.c:236
+#, c-format
+msgid "branch '%s' not found."
+msgstr "ramo '%s' não encontrado."
+
+#: builtin/branch.c:251
+#, c-format
+msgid "Error deleting remote-tracking branch '%s'"
+msgstr "Erro a eliminar o ramo remoto seguido '%s'"
+
+#: builtin/branch.c:252
 #, c-format
 msgid "Error deleting branch '%s'"
-msgstr "Erro a eliminar rama '%s'"
+msgstr "Erro a eliminar ramo '%s'"
 
-#: builtin/branch.c:233
+#: builtin/branch.c:259
 #, c-format
-msgid "Deleted remote branch %s (was %s).\n"
-msgstr ""
+msgid "Deleted remote-tracking branch %s (was %s).\n"
+msgstr "Ramo remoto seguido %s eliminado (era %s).\n"
 
-#: builtin/branch.c:234
+#: builtin/branch.c:260
 #, c-format
 msgid "Deleted branch %s (was %s).\n"
-msgstr "Eliminar rama %s (era %s).\n"
+msgstr "Ramo %s eliminado (era %s).\n"
 
-#: builtin/branch.c:239
-msgid "Update of config-file failed"
-msgstr ""
-
-#: builtin/branch.c:337
+#: builtin/branch.c:303
 #, c-format
-msgid "branch '%s' does not point at a commit"
-msgstr ""
+msgid "[%s: gone]"
+msgstr "[%s: desaparecido]"
 
-#: builtin/branch.c:409
+#: builtin/branch.c:308
 #, c-format
-msgid "behind %d] "
-msgstr "atrás %d] "
+msgid "[%s]"
+msgstr "[%s]"
 
-#: builtin/branch.c:411
+#: builtin/branch.c:313
 #, c-format
-msgid "ahead %d] "
-msgstr "a frente %d] "
+msgid "[%s: behind %d]"
+msgstr "[%s: atrás %d]"
 
-#: builtin/branch.c:413
+#: builtin/branch.c:315
 #, c-format
-msgid "ahead %d, behind %d] "
-msgstr "a frente %d, atrás %d] "
+msgid "[behind %d]"
+msgstr "[atrás %d]"
 
-#: builtin/branch.c:521
+#: builtin/branch.c:319
+#, c-format
+msgid "[%s: ahead %d]"
+msgstr "[%s: à frente %d]"
+
+#: builtin/branch.c:321
+#, c-format
+msgid "[ahead %d]"
+msgstr "[à frente %d]"
+
+#: builtin/branch.c:324
+#, c-format
+msgid "[%s: ahead %d, behind %d]"
+msgstr "[%s: à frente %d, atrás %d]"
+
+#: builtin/branch.c:327
+#, c-format
+msgid "[ahead %d, behind %d]"
+msgstr "[à frente %d, atrás %d]"
+
+#: builtin/branch.c:340
+msgid " **** invalid ref ****"
+msgstr " **** referências inválida ****"
+
+#: builtin/branch.c:366
+#, c-format
+msgid "(no branch, rebasing %s)"
+msgstr "(nenhum ramo, a efetuar rebase de %s)"
+
+#: builtin/branch.c:369
+#, c-format
+msgid "(no branch, bisect started on %s)"
+msgstr "(nenhum ramo, bissecção iniciada em %s)"
+
+#: builtin/branch.c:375
+#, c-format
+msgid "(HEAD detached at %s)"
+msgstr "(HEAD destacada em %s)"
+
+#: builtin/branch.c:378
+#, c-format
+msgid "(HEAD detached from %s)"
+msgstr "(HEAD destacada de %s)"
+
+#: builtin/branch.c:382
 msgid "(no branch)"
-msgstr "(não é rama)"
+msgstr "(nenhum ramo)"
 
-#: builtin/branch.c:586
-msgid "some refs could not be read"
-msgstr ""
-
-#: builtin/branch.c:599
+#: builtin/branch.c:524
 msgid "cannot rename the current branch while not on any."
 msgstr ""
+"não é possível mudar o nome do ramo atual vista que não se encontra num ramo."
 
-#: builtin/branch.c:609
+#: builtin/branch.c:534
 #, c-format
 msgid "Invalid branch name: '%s'"
-msgstr "Nome da rama inválida: '%s'"
+msgstr "Nome de ramo inválido: '%s'"
 
-#: builtin/branch.c:624
+#: builtin/branch.c:549
 msgid "Branch rename failed"
-msgstr "Falhou renomeação da rama"
+msgstr "Falha ao mudar o nome do ramo"
 
-#: builtin/branch.c:628
+#: builtin/branch.c:553
 #, c-format
 msgid "Renamed a misnamed branch '%s' away"
-msgstr "Renomeado uma rama erronea '%s'"
+msgstr "O ramo incorretamente denominado '%s' mudou de nome"
 
-#: builtin/branch.c:632
+#: builtin/branch.c:557
 #, c-format
 msgid "Branch renamed to %s, but HEAD is not updated!"
-msgstr ""
+msgstr "O nome do ramo mudou para %s, mas a HEAD não está atualizada!"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:564
 msgid "Branch is renamed, but update of config-file failed"
 msgstr ""
+"O ramo mudou de nome, mas a atualização do ficheiro de configuração falhou"
 
-#: builtin/branch.c:654
-#, c-format
-msgid "malformed object name %s"
-msgstr ""
-
-#: builtin/branch.c:678
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
-msgstr ""
+msgstr "não foi possível escrever o modelo da descrição de ramo: %s"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:615
+msgid "Generic options"
+msgstr "Opções genéricas"
+
+#: builtin/branch.c:617
+msgid "show hash and subject, give twice for upstream branch"
+msgstr "apresentar hash e assunto, duplique para ramos a montante"
+
+#: builtin/branch.c:618
+msgid "suppress informational messages"
+msgstr "suprimir mensagens informativas"
+
+#: builtin/branch.c:619
+msgid "set up tracking mode (see git-pull(1))"
+msgstr "configurar modo de seguimento (consulte git-pull(1))"
+
+#: builtin/branch.c:621
+msgid "change upstream info"
+msgstr "alterar a informação do ramo a montante"
+
+#: builtin/branch.c:625
+msgid "use colored output"
+msgstr "usar saída colorida"
+
+#: builtin/branch.c:626
+msgid "act on remote-tracking branches"
+msgstr "atuar sobre ramos remotos seguidos"
+
+#: builtin/branch.c:628 builtin/branch.c:629
+msgid "print only branches that contain the commit"
+msgstr "imprimir apenas ramos que contenham o commit"
+
+#: builtin/branch.c:632
+msgid "Specific git-branch actions:"
+msgstr "Ações específicas do git-branch:"
+
+#: builtin/branch.c:633
+msgid "list both remote-tracking and local branches"
+msgstr "listar ramos remotos seguidos e ramos locais"
+
+#: builtin/branch.c:635
+msgid "delete fully merged branch"
+msgstr "eliminar um ramo totalmente incorporado"
+
+#: builtin/branch.c:636
+msgid "delete branch (even if not merged)"
+msgstr "eliminar um ramo (mesmo que não tenha sido incorporado)"
+
+#: builtin/branch.c:637
+msgid "move/rename a branch and its reflog"
+msgstr "mover ou mudar o nome de um ramo e o seu reflog"
+
+#: builtin/branch.c:638
+msgid "move/rename a branch, even if target exists"
+msgstr "mover ou mudar o nome de um ramo, mesmo que o destino já exista"
+
+#: builtin/branch.c:639
+msgid "list branch names"
+msgstr "listar os nomes dos ramos"
+
+#: builtin/branch.c:640
+msgid "create the branch's reflog"
+msgstr "criar reflog do ramo"
+
+#: builtin/branch.c:642
+msgid "edit the description for the branch"
+msgstr "editar a descrição do ramo"
+
+#: builtin/branch.c:643
+msgid "force creation, move/rename, deletion"
+msgstr "forçar criação, mover/mudar o nome ou exclusão"
+
+#: builtin/branch.c:644
+msgid "print only branches that are merged"
+msgstr "imprimir apenas os ramos que foram incorporados"
+
+#: builtin/branch.c:645
+msgid "print only branches that are not merged"
+msgstr "imprimir apenas os ramos que não foram incorporados"
+
+#: builtin/branch.c:646
+msgid "list branches in columns"
+msgstr "listar os ramos em colunas"
+
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
+msgid "key"
+msgstr "chave"
+
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
+msgid "field name to sort on"
+msgstr "nome do campo pelo qual ordernar"
+
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
+#: builtin/tag.c:369
+msgid "object"
+msgstr "objeto"
+
+#: builtin/branch.c:651
+msgid "print only branches of the object"
+msgstr "imprimir apenas os ramos do objeto"
+
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
-msgstr ""
+msgstr "Falha ao resolver HEAD numa referência válida."
 
-#: builtin/branch.c:774
-#: builtin/clone.c:558
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
-msgstr ""
+msgstr "HEAD não encontrada em refs/heads!"
 
-#: builtin/branch.c:794
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column e --verbose são incompatíveis"
 
-#: builtin/branch.c:843
+#: builtin/branch.c:704 builtin/branch.c:746
+msgid "branch name required"
+msgstr "nome do ramo é obrigatório"
+
+#: builtin/branch.c:722
+msgid "Cannot give description to detached HEAD"
+msgstr "Não é possível atribuir descrição a HEAD destacada"
+
+#: builtin/branch.c:727
+msgid "cannot edit description of more than one branch"
+msgstr "não é possível editar a descrição de mais do que um ramo"
+
+#: builtin/branch.c:734
+#, c-format
+msgid "No commit on branch '%s' yet."
+msgstr "Ainda não há commits no ramo '%s'."
+
+#: builtin/branch.c:737
+#, c-format
+msgid "No branch named '%s'."
+msgstr "Não há nenhum ramo denominado '%s'."
+
+#: builtin/branch.c:752
+msgid "too many branches for a rename operation"
+msgstr "demasiados ramos para uma operação de mudança de nome"
+
+#: builtin/branch.c:757
+msgid "too many branches to set new upstream"
+msgstr "demasiados ramos para definir novo ramo a montante"
+
+#: builtin/branch.c:761
+#, c-format
+msgid ""
+"could not set upstream of HEAD to %s when it does not point to any branch."
+msgstr ""
+"não foi possível definir %s como ramo a montante de HEAD visto que esta não "
+"aponta para um ramo."
+
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
+#, c-format
+msgid "no such branch '%s'"
+msgstr "o ramo '%s' não existe"
+
+#: builtin/branch.c:768
+#, c-format
+msgid "branch '%s' does not exist"
+msgstr "o ramo '%s' não existe"
+
+#: builtin/branch.c:780
+msgid "too many branches to unset upstream"
+msgstr "demasiados ramos para remover a definição de ramo a montante"
+
+#: builtin/branch.c:784
+msgid "could not unset upstream of HEAD when it does not point to any branch."
+msgstr ""
+"não foi possível remover a definição de ramo a montante de HEAD visto que "
+"esta não aponta para um ramo."
+
+#: builtin/branch.c:790
+#, c-format
+msgid "Branch '%s' has no upstream information"
+msgstr "O ramo '%s' não tem informação sobre o ramo a montante"
+
+#: builtin/branch.c:804
+msgid "it does not make sense to create 'HEAD' manually"
+msgstr "não faz sentido criar 'HEAD' manualmente"
+
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
+"as opções -a e -r de 'git branch' não fazem sentido com um nome de ramo"
 
-#: builtin/bundle.c:47
+#: builtin/branch.c:813
+#, c-format
+msgid ""
+"The --set-upstream flag is deprecated and will be removed. Consider using --"
+"track or --set-upstream-to\n"
+msgstr ""
+"A opção --set-upstream é obsoleta e será removida. Considere o uso de --"
+"track ou --set-upstream-to\n"
+
+#: builtin/branch.c:830
+#, c-format
+msgid ""
+"\n"
+"If you wanted to make '%s' track '%s', do this:\n"
+"\n"
+msgstr ""
+"\n"
+"Se quer que '%s' siga '%s', faça:\n"
+"\n"
+
+#: builtin/branch.c:831
+#, c-format
+msgid "    git branch -d %s\n"
+msgstr "    git branch -d %s\n"
+
+#: builtin/branch.c:832
+#, c-format
+msgid "    git branch --set-upstream-to %s\n"
+msgstr "    git branch --set-upstream-to %s\n"
+
+#: builtin/bundle.c:51
 #, c-format
 msgid "%s is okay\n"
-msgstr "%s está bem\n"
+msgstr "%s está correto\n"
 
-#: builtin/bundle.c:56
+#: builtin/bundle.c:64
 msgid "Need a repository to create a bundle."
-msgstr ""
+msgstr "É necessário um repositório para criar um bundle."
 
-#: builtin/bundle.c:60
+#: builtin/bundle.c:68
 msgid "Need a repository to unbundle."
-msgstr ""
+msgstr "É preciso um repositório para desempacotar."
 
-#: builtin/checkout.c:113
-#: builtin/checkout.c:146
+#: builtin/cat-file.c:428
+msgid ""
+"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|"
+"<type>|--textconv) <object>"
+msgstr ""
+"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|"
+"<tipo>|--textconv) <objeto>"
+
+#: builtin/cat-file.c:429
+msgid "git cat-file (--batch | --batch-check) [--follow-symlinks]"
+msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks]"
+
+#: builtin/cat-file.c:466
+msgid "<type> can be one of: blob, tree, commit, tag"
+msgstr "<tipo> pode ser um de: blob, tree, commit, tag"
+
+#: builtin/cat-file.c:467
+msgid "show object type"
+msgstr "mostrar tipo do objeto"
+
+#: builtin/cat-file.c:468
+msgid "show object size"
+msgstr "mostrar tamanho do objeto"
+
+#: builtin/cat-file.c:470
+msgid "exit with zero when there's no error"
+msgstr "sair com retorno zero quando não houver erros"
+
+#: builtin/cat-file.c:471
+msgid "pretty-print object's content"
+msgstr "mostrar conteúdo do objeto com impressão bonita"
+
+#: builtin/cat-file.c:473
+msgid "for blob objects, run textconv on object's content"
+msgstr "executar textconv no conteúdo de objetos blob"
+
+#: builtin/cat-file.c:475
+msgid "allow -s and -t to work with broken/corrupt objects"
+msgstr "permitir que -s e -t funcionem com objetos danificados/corrompidos"
+
+#: builtin/cat-file.c:476
+msgid "buffer --batch output"
+msgstr "carregar a saída de --batch"
+
+#: builtin/cat-file.c:478
+msgid "show info and content of objects fed from the standard input"
+msgstr "mostrar informação e conteúdo dos objetos fornecidos na entrada padrão"
+
+#: builtin/cat-file.c:481
+msgid "show info about objects fed from the standard input"
+msgstr "mostrar informação sobre os objetos fornecidos na entrada padrão"
+
+#: builtin/cat-file.c:484
+msgid "follow in-tree symlinks (used with --batch or --batch-check)"
+msgstr ""
+"seguir ligações simbólica no interior da árvore (usado com --batch ou --"
+"batch-check)"
+
+#: builtin/cat-file.c:486
+msgid "show all objects with --batch or --batch-check"
+msgstr "mostrar todos os objetos com --batch ou --batch-check"
+
+#: builtin/check-attr.c:11
+msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
+msgstr "git check-attr [-a | --all | <atributo>...] [--] <caminho>..."
+
+#: builtin/check-attr.c:12
+msgid "git check-attr --stdin [-z] [-a | --all | <attr>...]"
+msgstr "git check-attr --stdin [-z] [-a | --all | <atributo>...]"
+
+#: builtin/check-attr.c:19
+msgid "report all attributes set on file"
+msgstr "apresentar todos os atributos definidos no ficheiro"
+
+#: builtin/check-attr.c:20
+msgid "use .gitattributes only from the index"
+msgstr "usar .gitattributes apenas a partir do índice"
+
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
+msgid "read file names from stdin"
+msgstr "ler os nomes dos ficheiros da entrada padrão"
+
+#: builtin/check-attr.c:23 builtin/check-ignore.c:24
+msgid "terminate input and output records by a NUL character"
+msgstr "terminar registos da entrada e da saída com um carácter NUL"
+
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
+msgid "suppress progress reporting"
+msgstr "suprimir informação de progresso"
+
+#: builtin/check-ignore.c:26
+msgid "show non-matching input paths"
+msgstr "mostrar caminhos de entrada sem correspondência"
+
+#: builtin/check-ignore.c:28
+msgid "ignore index when checking"
+msgstr "ignorar o índice ao verificar"
+
+#: builtin/check-ignore.c:154
+msgid "cannot specify pathnames with --stdin"
+msgstr "não é possível especificar caminhos com --stdin"
+
+#: builtin/check-ignore.c:157
+msgid "-z only makes sense with --stdin"
+msgstr "-z só faz sentido com --stdin"
+
+#: builtin/check-ignore.c:159
+msgid "no path specified"
+msgstr "nenhum caminho especificado"
+
+#: builtin/check-ignore.c:163
+msgid "--quiet is only valid with a single pathname"
+msgstr "--quiet só é válido com um único caminho"
+
+#: builtin/check-ignore.c:165
+msgid "cannot have both --quiet and --verbose"
+msgstr "não é possível usar --quiet e --verbose simultaneamente"
+
+#: builtin/check-ignore.c:168
+msgid "--non-matching is only valid with --verbose"
+msgstr "--non-matching só é válido com --verbose"
+
+#: builtin/check-mailmap.c:8
+msgid "git check-mailmap [<options>] <contact>..."
+msgstr "git check-mailmap [<opções>] <contacto>..."
+
+#: builtin/check-mailmap.c:13
+msgid "also read contacts from stdin"
+msgstr "também ler contactos da entrada padrão"
+
+#: builtin/check-mailmap.c:24
+#, c-format
+msgid "unable to parse contact: %s"
+msgstr "não é possível analisar o contacto: %s"
+
+#: builtin/check-mailmap.c:47
+msgid "no contacts specified"
+msgstr "nenhum contacto especificado"
+
+#: builtin/checkout-index.c:127
+msgid "git checkout-index [<options>] [--] [<file>...]"
+msgstr "git checkout-index [<opções>] [--] [<ficheiro>...]"
+
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "stage deve ser um número entre 1 e 3 ou o parâmetro all"
+
+#: builtin/checkout-index.c:160
+msgid "check out all files in the index"
+msgstr "extrair todos os ficheiros presentes no índice"
+
+#: builtin/checkout-index.c:161
+msgid "force overwrite of existing files"
+msgstr "forçar substituição dos ficheiros existentes"
+
+#: builtin/checkout-index.c:163
+msgid "no warning for existing files and files not in index"
+msgstr ""
+"não mostrar aviso para ficheiros existentes e ficheiros não presentes no "
+"índice"
+
+#: builtin/checkout-index.c:165
+msgid "don't checkout new files"
+msgstr "não extrair novos ficheiros"
+
+#: builtin/checkout-index.c:167
+msgid "update stat information in the index file"
+msgstr "atualizar informação de stat no ficheiro de índice"
+
+#: builtin/checkout-index.c:171
+msgid "read list of paths from the standard input"
+msgstr "ler lista de caminhos da entrada padrão"
+
+#: builtin/checkout-index.c:173
+msgid "write the content to temporary files"
+msgstr "escrever o conteúdo em ficheiros temporários"
+
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
+msgid "string"
+msgstr "cadeia"
+
+#: builtin/checkout-index.c:175
+msgid "when creating files, prepend <string>"
+msgstr "preceder <cadeia> ao criar ficheiros"
+
+#: builtin/checkout-index.c:177
+msgid "copy out the files from named stage"
+msgstr "copiar os ficheiros do estágio indicado"
+
+#: builtin/checkout.c:25
+msgid "git checkout [<options>] <branch>"
+msgstr "git checkout [<opções>] <ramo>"
+
+#: builtin/checkout.c:26
+msgid "git checkout [<options>] [<branch>] -- <file>..."
+msgstr "git checkout [<opções>] [<ramo>] -- <ficheiro>..."
+
+#: builtin/checkout.c:134 builtin/checkout.c:167
 #, c-format
 msgid "path '%s' does not have our version"
-msgstr ""
+msgstr "o caminho '%s' não tem a nossa versão"
 
-#: builtin/checkout.c:115
-#: builtin/checkout.c:148
+#: builtin/checkout.c:136 builtin/checkout.c:169
 #, c-format
 msgid "path '%s' does not have their version"
-msgstr ""
+msgstr "o caminho '%s' não tem a versão deles"
 
-#: builtin/checkout.c:131
+#: builtin/checkout.c:152
 #, c-format
 msgid "path '%s' does not have all necessary versions"
-msgstr ""
+msgstr "o caminho '%s' não tem todas as versões necessárias"
 
-#: builtin/checkout.c:175
+#: builtin/checkout.c:196
 #, c-format
 msgid "path '%s' does not have necessary versions"
-msgstr ""
+msgstr "o caminho '%s' não tem as versões necessárias"
 
-#: builtin/checkout.c:192
+#: builtin/checkout.c:213
 #, c-format
 msgid "path '%s': cannot merge"
-msgstr ""
+msgstr "caminho '%s': não é possível integrar"
 
-#: builtin/checkout.c:209
+#: builtin/checkout.c:230
 #, c-format
 msgid "Unable to add merge result for '%s'"
+msgstr "Não é possível integrar os resultados do merge de '%s'"
+
+#: builtin/checkout.c:251 builtin/checkout.c:254 builtin/checkout.c:257
+#: builtin/checkout.c:260
+#, c-format
+msgid "'%s' cannot be used with updating paths"
+msgstr "'%s' não pode ser usado com caminhos em atualização"
+
+#: builtin/checkout.c:263 builtin/checkout.c:266
+#, c-format
+msgid "'%s' cannot be used with %s"
+msgstr "'%s' não pode ser usado com %s"
+
+#: builtin/checkout.c:269
+#, c-format
+msgid "Cannot update paths and switch to branch '%s' at the same time."
 msgstr ""
+"Não é possível atualizar os caminhos e mudar para o ramo '%s' ao mesmo tempo."
 
-#: builtin/checkout.c:234
-#: builtin/checkout.c:392
+#: builtin/checkout.c:280 builtin/checkout.c:474
 msgid "corrupt index file"
-msgstr "ficheiro index corrupto"
+msgstr "ficheiro de índice corrompido"
 
-#: builtin/checkout.c:264
-#: builtin/checkout.c:271
+#: builtin/checkout.c:340 builtin/checkout.c:347
 #, c-format
 msgid "path '%s' is unmerged"
-msgstr ""
+msgstr "o caminho '%s' não foi integrado"
 
-#: builtin/checkout.c:302
-#: builtin/checkout.c:498
-#: builtin/clone.c:583
-#: builtin/merge.c:812
-msgid "unable to write new index file"
-msgstr ""
-
-#: builtin/checkout.c:319
-#: builtin/diff.c:302
-#: builtin/merge.c:408
-msgid "diff_setup_done failed"
-msgstr ""
-
-#: builtin/checkout.c:414
+#: builtin/checkout.c:496
 msgid "you need to resolve your current index first"
-msgstr ""
+msgstr "primeiro deve resolver o índice atual"
 
-#: builtin/checkout.c:533
+#: builtin/checkout.c:623
 #, c-format
-msgid "Can not do reflog for '%s'\n"
-msgstr ""
+msgid "Can not do reflog for '%s': %s\n"
+msgstr "Não é possível efetuar reflog de '%s': %s\n"
 
-#: builtin/checkout.c:566
+#: builtin/checkout.c:661
 msgid "HEAD is now at"
-msgstr "HEAD é agora em "
+msgstr "HEAD está agora em"
 
-#: builtin/checkout.c:573
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "não foi possível atualizar HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
-msgstr "Reset rama '%s'\n"
+msgstr "Repor ramo '%s'\n"
 
-#: builtin/checkout.c:576
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Já em '%s'\n"
 
-#: builtin/checkout.c:580
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
-msgstr ""
+msgstr "Mudou para e repôs o ramo '%s'\n"
 
-#: builtin/checkout.c:582
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
-msgstr "Mudado para a nova rama '%s'\n"
+msgstr "Mudou para o novo ramo '%s'\n"
 
-#: builtin/checkout.c:584
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
-msgstr "Mudado para a rama '%s'\n"
+msgstr "Mudou para o ramo '%s'\n"
 
-#: builtin/checkout.c:640
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
-msgstr " ... e %d mais.\n"
+msgstr " ... e mais %d.\n"
 
-#. The singular version
-#: builtin/checkout.c:646
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -1631,283 +4301,752 @@
 "\n"
 "%s\n"
 msgstr[0] ""
+"Aviso: deixa %d commit para trás, não ligado a nenhum ramo:\n"
+"\n"
+"%s\n"
 msgstr[1] ""
+"Aviso: deixa %d commits para trás, não ligados a nenhum ramo:\n"
+"\n"
+"%s\n"
 
-#: builtin/checkout.c:664
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
+"If you want to keep it by creating a new branch, this may be a good time\n"
+"to do so with:\n"
+"\n"
+" git branch <new-branch-name> %s\n"
+"\n"
+msgid_plural ""
 "If you want to keep them by creating a new branch, this may be a good time\n"
 "to do so with:\n"
 "\n"
-" git branch new_branch_name %s\n"
+" git branch <new-branch-name> %s\n"
 "\n"
-msgstr ""
+msgstr[0] ""
+"Se deseja mantê-lo, criando um novo ramo, agora seria uma boa altura\n"
+"para fazê-lo com:\n"
+"\n"
+" git branch <nome-do-novo-ramo> %s\n"
+"\n"
+msgstr[1] ""
+"Se deseja mantê-los, criando um novo ramo, agora seria uma boa altura\n"
+"para fazê-lo com:\n"
+"\n"
+" git branch <nome-do-novo-ramo> %s\n"
+"\n"
 
-#: builtin/checkout.c:693
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
-msgstr ""
+msgstr "erro interno durante o curso de revisões"
 
-#: builtin/checkout.c:697
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
-msgstr ""
+msgstr "A posição anterior de HEAD era"
 
-#: builtin/checkout.c:723
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
-msgstr ""
+msgstr "Está num ramo ainda não criado"
 
-#. case (1)
-#: builtin/checkout.c:854
+#: builtin/checkout.c:969
+#, c-format
+msgid "only one reference expected, %d given."
+msgstr "esperava-se apenas uma referência, %d fornecidas."
+
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
-msgstr ""
+msgstr "referência inválida: %s"
 
-#. case (1): want a tree
-#: builtin/checkout.c:893
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
-msgstr ""
+msgstr "a referência não é uma árvore: %s"
 
-#: builtin/checkout.c:973
-msgid "-B cannot be used with -b"
-msgstr ""
+#: builtin/checkout.c:1077
+msgid "paths cannot be used with switching branches"
+msgstr "não podem ser usados caminhos ao mudar de ramo"
 
-#: builtin/checkout.c:982
-msgid "--patch is incompatible with all other options"
-msgstr ""
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
+#, c-format
+msgid "'%s' cannot be used with switching branches"
+msgstr "'%s' não pode ser usado ao mudar de ramo"
 
-#: builtin/checkout.c:985
-msgid "--detach cannot be used with -b/-B/--orphan"
-msgstr ""
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
+#, c-format
+msgid "'%s' cannot be used with '%s'"
+msgstr "'%s' não pode ser usado com '%s'"
 
-#: builtin/checkout.c:987
-msgid "--detach cannot be used with -t"
-msgstr ""
+#: builtin/checkout.c:1104
+#, c-format
+msgid "Cannot switch branch to a non-commit '%s'"
+msgstr "Não é possível mudar de ramo para '%s', visto que não é um commit"
 
-#: builtin/checkout.c:993
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
+msgid "branch"
+msgstr "ramo"
+
+#: builtin/checkout.c:1138
+msgid "create and checkout a new branch"
+msgstr "criar e extrair um novo ramo"
+
+#: builtin/checkout.c:1140
+msgid "create/reset and checkout a branch"
+msgstr "criar/repor e extrair um ramo"
+
+#: builtin/checkout.c:1141
+msgid "create reflog for new branch"
+msgstr "criar reflog do novo ramo"
+
+#: builtin/checkout.c:1142
+msgid "detach the HEAD at named commit"
+msgstr "destacar HEAD no commit indicado"
+
+#: builtin/checkout.c:1143
+msgid "set upstream info for new branch"
+msgstr "definir a informação do ramo a montante do novo ramo"
+
+#: builtin/checkout.c:1145
+msgid "new-branch"
+msgstr "novo-ramo"
+
+#: builtin/checkout.c:1145
+msgid "new unparented branch"
+msgstr "novo ramo sem pai"
+
+#: builtin/checkout.c:1146
+msgid "checkout our version for unmerged files"
+msgstr "extrair a nossa versão dos ficheiros não integrados"
+
+#: builtin/checkout.c:1148
+msgid "checkout their version for unmerged files"
+msgstr "extrair a versão deles dos ficheiros não integrados"
+
+#: builtin/checkout.c:1150
+msgid "force checkout (throw away local modifications)"
+msgstr "forçar extração (descartar modificações locais)"
+
+#: builtin/checkout.c:1151
+msgid "perform a 3-way merge with the new branch"
+msgstr "realizar um merge com 3 pontos com o novo ramo"
+
+#: builtin/checkout.c:1152 builtin/merge.c:227
+msgid "update ignored files (default)"
+msgstr "atualizar ficheiros ignorados (predefinição)"
+
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
+msgid "style"
+msgstr "estilo"
+
+#: builtin/checkout.c:1154
+msgid "conflict style (merge or diff3)"
+msgstr "estilo de conflito (merge ou diff3)"
+
+#: builtin/checkout.c:1157
+msgid "do not limit pathspecs to sparse entries only"
+msgstr "não restringir especificadores de caminho a entradas esparsas"
+
+#: builtin/checkout.c:1159
+msgid "second guess 'git checkout <no-such-branch>'"
+msgstr "tentar adivinhar 'git checkout <ramo-inexistente>'"
+
+#: builtin/checkout.c:1161
+msgid "do not check if another worktree is holding the given ref"
+msgstr ""
+"não verificar se outra árvore de trabalho contém a referência fornecida"
+
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
+#: builtin/send-pack.c:168
+msgid "force progress reporting"
+msgstr "forçar informação de progresso"
+
+#: builtin/checkout.c:1193
+msgid "-b, -B and --orphan are mutually exclusive"
+msgstr "-b, -B e --orphan são mutuamente exclusivos"
+
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
-msgstr ""
+msgstr "--track requer um nome dum ramo"
 
-#: builtin/checkout.c:1000
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
-msgstr ""
+msgstr "Falta um nome dum ramo; tente -b"
 
-#: builtin/checkout.c:1006
-msgid "--orphan and -b|-B are mutually exclusive"
-msgstr ""
-
-#: builtin/checkout.c:1008
-msgid "--orphan cannot be used with -t"
-msgstr ""
-
-#: builtin/checkout.c:1018
-msgid "git checkout: -f and -m are incompatible"
-msgstr ""
-
-#: builtin/checkout.c:1052
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
-msgstr ""
+msgstr "especificação de caminho inválida"
 
-#: builtin/checkout.c:1060
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
-"git checkout: updating paths is incompatible with switching branches.\n"
+"Cannot update paths and switch to branch '%s' at the same time.\n"
 "Did you intend to checkout '%s' which can not be resolved as commit?"
 msgstr ""
+"Não é possível atualizar os caminho e mudar para o ramo '%s' ao mesmo "
+"tempo.\n"
+"Pretendia extrair '%s' podendo ser resolvido num commit?"
 
-#: builtin/checkout.c:1062
-msgid "git checkout: updating paths is incompatible with switching branches."
-msgstr ""
+#: builtin/checkout.c:1263
+#, c-format
+msgid "git checkout: --detach does not take a path argument '%s'"
+msgstr "git checkout: --detach não aceita um caminho como argumento '%s'"
 
-#: builtin/checkout.c:1067
-msgid "git checkout: --detach does not take a path argument"
-msgstr ""
-
-#: builtin/checkout.c:1070
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
 msgstr ""
+"git checkout: --ours/--theirs, --force e --merge são incompatíveis\n"
+"durante a extração do índice."
 
-#: builtin/checkout.c:1089
-msgid "Cannot switch branch to a non-commit."
+#: builtin/clean.c:25
+msgid ""
+"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
 msgstr ""
+"git clean [-d] [-f] [-i] [-n] [-q] [-e <padrão>] [-x | -X] [--] <caminhos>..."
 
-#: builtin/checkout.c:1092
-msgid "--ours/--theirs is incompatible with switching branches."
-msgstr ""
-
-#: builtin/clean.c:78
-msgid "-x and -X cannot be used together"
-msgstr ""
-
-#: builtin/clean.c:82
-msgid "clean.requireForce set to true and neither -n nor -f given; refusing to clean"
-msgstr ""
-
-#: builtin/clean.c:85
-msgid "clean.requireForce defaults to true and neither -n nor -f given; refusing to clean"
-msgstr ""
-
-#: builtin/clean.c:155
-#: builtin/clean.c:176
-#, c-format
-msgid "Would remove %s\n"
-msgstr ""
-
-#: builtin/clean.c:159
-#: builtin/clean.c:179
+#: builtin/clean.c:29
 #, c-format
 msgid "Removing %s\n"
-msgstr "Eliminando %s\n"
+msgstr "A remover %s\n"
 
-#: builtin/clean.c:162
-#: builtin/clean.c:182
+#: builtin/clean.c:30
+#, c-format
+msgid "Would remove %s\n"
+msgstr "Removeria %s\n"
+
+#: builtin/clean.c:31
+#, c-format
+msgid "Skipping repository %s\n"
+msgstr "A ignorar o repositório %s\n"
+
+#: builtin/clean.c:32
+#, c-format
+msgid "Would skip repository %s\n"
+msgstr "Ignoraria o repositório %s\n"
+
+#: builtin/clean.c:33
 #, c-format
 msgid "failed to remove %s"
+msgstr "falha ao remover %s"
+
+#: builtin/clean.c:291
+msgid ""
+"Prompt help:\n"
+"1          - select a numbered item\n"
+"foo        - select item based on unique prefix\n"
+"           - (empty) select nothing"
 msgstr ""
+"Ajuda de linha de comandos:\n"
+"1          - selecionar um item numerado\n"
+"foo        - selecionar item baseado no prefixo único\n"
+"           - (vazio) não seleciona nada"
 
-#: builtin/clean.c:166
-#, c-format
-msgid "Would not remove %s\n"
+#: builtin/clean.c:295
+msgid ""
+"Prompt help:\n"
+"1          - select a single item\n"
+"3-5        - select a range of items\n"
+"2-3,6-9    - select multiple ranges\n"
+"foo        - select item based on unique prefix\n"
+"-...       - unselect specified items\n"
+"*          - choose all items\n"
+"           - (empty) finish selecting"
 msgstr ""
+"Ajuda de linha de comandos:\n"
+"1          - selecionar um único item\n"
+"3-5        - selecionar um intervalo de items\n"
+"2-3,6-9    - selecionar múltiplos intervalos\n"
+"foo        - selecionar item baseado no prefixo único\n"
+"-...       - desselecionar itens especificados\n"
+"*          - escolher todos os itens\n"
+"           - (vazio) concluir seleção"
 
-#: builtin/clean.c:168
+#: builtin/clean.c:511
 #, c-format
-msgid "Not removing %s\n"
+msgid "Huh (%s)?"
+msgstr "O quê (%s)?"
+
+#: builtin/clean.c:653
+#, c-format
+msgid "Input ignore patterns>> "
+msgstr "Introduza padrões a ignorar>> "
+
+#: builtin/clean.c:690
+#, c-format
+msgid "WARNING: Cannot find items matched by: %s"
+msgstr "AVISO: não foram encontrados itens correspondentes a %s"
+
+#: builtin/clean.c:711
+msgid "Select items to delete"
+msgstr "Selecione itens para eliminar"
+
+#. TRANSLATORS: Make sure to keep [y/N] as is
+#: builtin/clean.c:752
+#, c-format
+msgid "Remove %s [y/N]? "
+msgstr "Remover %s [y/N]? "
+
+#: builtin/clean.c:777
+msgid "Bye."
+msgstr "Adeus."
+
+#: builtin/clean.c:785
+msgid ""
+"clean               - start cleaning\n"
+"filter by pattern   - exclude items from deletion\n"
+"select by numbers   - select items to be deleted by numbers\n"
+"ask each            - confirm each deletion (like \"rm -i\")\n"
+"quit                - stop cleaning\n"
+"help                - this screen\n"
+"?                   - help for prompt selection"
 msgstr ""
+"clean               - começar a limpar\n"
+"filter by pattern   - excluir itens da eliminação\n"
+"select by numbers   - selecionar itens para serem eliminados por número\n"
+"ask each            - confirmar cada eliminação (como \"rm -i\")\n"
+"quit                - parar limpeza\n"
+"help                - esta ajuda\n"
+"?                   - ajuda para seleção em linha de comandos"
 
-#: builtin/clone.c:243
-#, c-format
-msgid "reference repository '%s' is not a local directory."
+#: builtin/clean.c:812
+msgid "*** Commands ***"
+msgstr "*** Comandos ***"
+
+#: builtin/clean.c:813
+msgid "What now"
+msgstr "E agora"
+
+#: builtin/clean.c:821
+msgid "Would remove the following item:"
+msgid_plural "Would remove the following items:"
+msgstr[0] "Removeria o seguinte item:"
+msgstr[1] "Removeria os seguintes itens:"
+
+#: builtin/clean.c:838
+msgid "No more files to clean, exiting."
+msgstr "Não há mais ficheiros por limpar, a terminar."
+
+#: builtin/clean.c:869
+msgid "do not print names of files removed"
+msgstr "não imprimir os nomes dos ficheiros removidos"
+
+#: builtin/clean.c:871
+msgid "force"
+msgstr "forçar"
+
+#: builtin/clean.c:872
+msgid "interactive cleaning"
+msgstr "limpeza interativa"
+
+#: builtin/clean.c:874
+msgid "remove whole directories"
+msgstr "remover diretórios inteiros"
+
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
+msgid "pattern"
+msgstr "padrão"
+
+#: builtin/clean.c:876
+msgid "add <pattern> to ignore rules"
+msgstr "adicionar <padrão> às regras ignoradas"
+
+#: builtin/clean.c:877
+msgid "remove ignored files, too"
+msgstr "também remover ficheiros ignorados"
+
+#: builtin/clean.c:879
+msgid "remove only ignored files"
+msgstr "remover apenas ficheiros ignorados"
+
+#: builtin/clean.c:897
+msgid "-x and -X cannot be used together"
+msgstr "-x e -X não pode ser usados juntos"
+
+#: builtin/clean.c:901
+msgid ""
+"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
+"clean"
 msgstr ""
+"clean.requireForce definido como true e nenhum -i, -n, ou -f fornecido; "
+"recusando-se a limpar"
 
-#: builtin/clone.c:302
+#: builtin/clean.c:904
+msgid ""
+"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
+"refusing to clean"
+msgstr ""
+"clean.requireForce predefinido como true e nenhum -i, -n, ou -f fornecido; "
+"recusando-se a limpar"
+
+#: builtin/clone.c:37
+msgid "git clone [<options>] [--] <repo> [<dir>]"
+msgstr "git clone [<opções>] [--] <repo> [<dir>]"
+
+#: builtin/clone.c:60
+msgid "don't create a checkout"
+msgstr "não realizar extração"
+
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
+msgid "create a bare repository"
+msgstr "criar um repositório nu"
+
+#: builtin/clone.c:65
+msgid "create a mirror repository (implies bare)"
+msgstr "criar um repositório espelhado (implica repositório nu)"
+
+#: builtin/clone.c:67
+msgid "to clone from a local repository"
+msgstr "para clonar de um repositório local"
+
+#: builtin/clone.c:69
+msgid "don't use local hardlinks, always copy"
+msgstr "não usar ligações fixas, copiar sempre"
+
+#: builtin/clone.c:71
+msgid "setup as shared repository"
+msgstr "configurar como repositório partilhado"
+
+#: builtin/clone.c:73 builtin/clone.c:75
+msgid "initialize submodules in the clone"
+msgstr "inicializar submódulos no clone"
+
+#: builtin/clone.c:76 builtin/init-db.c:466
+msgid "template-directory"
+msgstr "diretório-modelo"
+
+#: builtin/clone.c:77 builtin/init-db.c:467
+msgid "directory from which templates will be used"
+msgstr "diretório que contém os modelos usados"
+
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
+msgid "reference repository"
+msgstr "repositório de referência"
+
+#: builtin/clone.c:81
+msgid "use --reference only while cloning"
+msgstr "usar --reference apenas para clonar"
+
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
+msgid "name"
+msgstr "nome"
+
+#: builtin/clone.c:83
+msgid "use <name> instead of 'origin' to track upstream"
+msgstr "usar <nome> em vez de 'origin' para seguir o ramo a montante"
+
+#: builtin/clone.c:85
+msgid "checkout <branch> instead of the remote's HEAD"
+msgstr "extrair <ramo> em vez da HEAD do remoto"
+
+#: builtin/clone.c:87
+msgid "path to git-upload-pack on the remote"
+msgstr "caminho para git-upload-pack no remoto"
+
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
+msgid "depth"
+msgstr "profundidade"
+
+#: builtin/clone.c:89
+msgid "create a shallow clone of that depth"
+msgstr "criar um clone raso com essa profundidade"
+
+#: builtin/clone.c:91
+msgid "clone only one branch, HEAD or --branch"
+msgstr "clonar apenas um ramo, HEAD ou --branch"
+
+#: builtin/clone.c:92 builtin/init-db.c:475
+msgid "gitdir"
+msgstr "gitdir"
+
+#: builtin/clone.c:93 builtin/init-db.c:476
+msgid "separate git dir from working tree"
+msgstr "separar o repositório git da árvore de trabalho"
+
+#: builtin/clone.c:94
+msgid "key=value"
+msgstr "chave=valor"
+
+#: builtin/clone.c:95
+msgid "set config inside the new repository"
+msgstr "definir configuração dentro do novo repositório"
+
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "usar apenas endereços IPv4"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "usar apenas endereços IPv6"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"Não foi possível adivinhar o nome do diretório.\n"
+"Especifique um diretório na linha de comandos"
+
+#: builtin/clone.c:305
 #, c-format
-msgid "failed to open '%s'"
-msgstr "falhou a abrir '%s'"
+msgid "reference repository '%s' as a linked checkout is not supported yet."
+msgstr ""
+"ainda não é suportada a funcionalidade que permite ter o repositório de "
+"referência '%s' como uma extração ligada"
 
-#: builtin/clone.c:306
+#: builtin/clone.c:307
 #, c-format
-msgid "failed to create directory '%s'"
-msgstr "falhou a criar o directório '%s'"
+msgid "reference repository '%s' is not a local repository."
+msgstr "o repositório de referência '%s' não é um repositório local."
 
-#: builtin/clone.c:308
-#: builtin/diff.c:75
+#: builtin/clone.c:312
+#, c-format
+msgid "reference repository '%s' is shallow"
+msgstr "o repositório de referência '%s' é raso"
+
+#: builtin/clone.c:315
+#, c-format
+msgid "reference repository '%s' is grafted"
+msgstr "o repositório de referência '%s' está enxertado"
+
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
-msgstr ""
+msgstr "falha ao invocar stat de '%s'"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
-msgstr ""
+msgstr "%s existe e não é um diretório"
 
-#: builtin/clone.c:324
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
-msgstr ""
+msgstr "falha ao invocar stat de %s\n"
 
-#: builtin/clone.c:341
-#, c-format
-msgid "failed to unlink '%s'"
-msgstr ""
-
-#: builtin/clone.c:346
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
-msgstr ""
+msgstr "falha ao criar a ligação '%s'"
 
-#: builtin/clone.c:350
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
-msgstr "falhou a copiar o ficheiro para '%s'"
+msgstr "falha ao copiar o ficheiro para '%s'"
 
-#: builtin/clone.c:373
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
-msgstr "terminado.\n"
+msgstr "concluído.\n"
 
-#: builtin/clone.c:440
+#: builtin/clone.c:459
+msgid ""
+"Clone succeeded, but checkout failed.\n"
+"You can inspect what was checked out with 'git status'\n"
+"and retry the checkout with 'git checkout -f HEAD'\n"
+msgstr ""
+"Clonado com sucesso, mas a extração falhou.\n"
+"Pode inspecionar o que foi extraído com 'git status'\n"
+"e repetir a extração com 'git checkout -f HEAD'\n"
+
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
-msgstr ""
+msgstr "Ramo remoto %s não encontrado para clonar."
 
-#: builtin/clone.c:549
+#: builtin/clone.c:626
+#, c-format
+msgid "Checking connectivity... "
+msgstr "A verificar a conectividade... "
+
+#: builtin/clone.c:629
+msgid "remote did not send all necessary objects"
+msgstr "o remoto não enviou todos os objetos necessários"
+
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "não foi possível atualizar %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
+"a HEAD remota referencia uma referência inexistente, não é possível "
+"extrair.\n"
 
-#: builtin/clone.c:639
+#: builtin/clone.c:727
+msgid "unable to checkout working tree"
+msgstr "não foi possível extrair a árvore de trabalho"
+
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "não foi possível escrever os parâmetros no ficheiro de configuração"
+
+#: builtin/clone.c:816
+msgid "cannot repack to clean up"
+msgstr "não é possível reempacotar para limpar"
+
+#: builtin/clone.c:818
+msgid "cannot unlink temporary alternates file"
+msgstr "não é possível invocar unlink sobre o ficheiro alternates temporário"
+
+#: builtin/clone.c:850
 msgid "Too many arguments."
-msgstr "Demasiados parametros."
+msgstr "Demasiados argumentos."
 
-#: builtin/clone.c:643
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
-msgstr ""
+msgstr "Deve especificar um repositório para clonar."
 
-#: builtin/clone.c:654
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
-msgstr ""
+msgstr "as opções --bare e --origin %s são incompatíveis."
 
-#: builtin/clone.c:668
+#: builtin/clone.c:868
+msgid "--bare and --separate-git-dir are incompatible."
+msgstr "--bare e --separate-git-dir são incompatíveis."
+
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
-msgstr ""
+msgstr "o repositório '%s' não existe"
 
-#: builtin/clone.c:673
-msgid "--depth is ignored in local clones; use file:// instead."
-msgstr ""
+#: builtin/clone.c:887 builtin/fetch.c:1174
+#, c-format
+msgid "depth %s is not a positive number"
+msgstr "profundidade %s não é um número positivo"
 
-#: builtin/clone.c:683
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
-msgstr ""
+msgstr "o caminho de destino '%s' já existe e não é um diretório vazio."
 
-#: builtin/clone.c:693
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
-msgstr ""
+msgstr "a árvore de trabalho '%s' já existe."
 
-#: builtin/clone.c:706
-#: builtin/clone.c:720
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
-msgstr ""
+msgstr "não foi possível criar os diretórios superiores de '%s'"
 
-#: builtin/clone.c:709
+#: builtin/clone.c:925
 #, c-format
-msgid "could not create work tree dir '%s'."
-msgstr ""
+msgid "could not create work tree dir '%s'"
+msgstr "não foi possível criar o diretório de árvore de trabalho '%s'"
 
-#: builtin/clone.c:728
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
-msgstr "Clonando em um repositorio nu (bare) '%s'...\n"
+msgstr "A clonar no repositório nu '%s'...\n"
 
-#: builtin/clone.c:730
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
-msgstr "Clonar em '%s'...\n"
+msgstr "A clonar em '%s'...\n"
 
-#: builtin/clone.c:786
+#: builtin/clone.c:984
+msgid "--depth is ignored in local clones; use file:// instead."
+msgstr "--depth é ignorado em clones locais; use file:// ."
+
+#: builtin/clone.c:987
+msgid "source repository is shallow, ignoring --local"
+msgstr "o repositório de origem é raso, --local ignorado"
+
+#: builtin/clone.c:992
+msgid "--local is ignored"
+msgstr "--local ignorado"
+
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Não sei como clonar %s"
 
-#: builtin/clone.c:835
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
-msgstr ""
+msgstr "O ramo remoto %s não foi encontrado no repositório a montante %s"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
-msgstr ""
+msgstr "Parece foi clonado um repositório vazio."
+
+#: builtin/column.c:9
+msgid "git column [<options>]"
+msgstr "git column [<opções>]"
+
+#: builtin/column.c:26
+msgid "lookup config vars"
+msgstr "pesquisar variáveis de configuração"
+
+#: builtin/column.c:27 builtin/column.c:28
+msgid "layout to use"
+msgstr "esquema a usar"
+
+#: builtin/column.c:29
+msgid "Maximum width"
+msgstr "Largura máxima"
+
+#: builtin/column.c:30
+msgid "Padding space on left border"
+msgstr "Espaço de preenchimento na borda esquerda"
+
+#: builtin/column.c:31
+msgid "Padding space on right border"
+msgstr "Espaço de preenchimento na borda direita"
+
+#: builtin/column.c:32
+msgid "Padding space between columns"
+msgstr "Espaço de preenchimento entre colunas"
 
 #: builtin/column.c:51
 msgid "--command must be the first argument"
-msgstr ""
+msgstr "--command deve ser o primeiro argumento"
+
+#: builtin/commit.c:38
+msgid "git commit [<options>] [--] <pathspec>..."
+msgstr "git commit [<opções>] [--] <especificador-de-caminho>..."
 
 #: builtin/commit.c:43
+msgid "git status [<options>] [--] <pathspec>..."
+msgstr "git status [<opções>] [--] <especificador-de-caminho>..."
+
+#: builtin/commit.c:48
+msgid ""
+"Your name and email address were configured automatically based\n"
+"on your username and hostname. Please check that they are accurate.\n"
+"You can suppress this message by setting them explicitly. Run the\n"
+"following command and follow the instructions in your editor to edit\n"
+"your configuration file:\n"
+"\n"
+"    git config --global --edit\n"
+"\n"
+"After doing this, you may fix the identity used for this commit with:\n"
+"\n"
+"    git commit --amend --reset-author\n"
+msgstr ""
+"O seu nome e endereço de e-mail foram configurados automaticamente com base\n"
+"no seu nome de utilizador e nome de máquina. Verifique se estão corretos.\n"
+"Pode suprimir esta mensagem configurando-os explicitamente. Execute\n"
+"o seguinte comando e siga as instruções no editor para editar\n"
+"o ficheiro de configuração:\n"
+"\n"
+"    git config --global --edit\n"
+"\n"
+"Após fazer isto, pode corrigir a identidade usada neste commit com:\n"
+"\n"
+"    git commit --amend --reset-author\n"
+
+#: builtin/commit.c:61
 msgid ""
 "Your name and email address were configured automatically based\n"
 "on your username and hostname. Please check that they are accurate.\n"
@@ -1921,126 +5060,160 @@
 "    git commit --amend --reset-author\n"
 msgstr ""
 "O seu nome e endereço de e-mail foram configurados automaticamente com base\n"
-"no o seu usuario e nome da maquina. Por favor, verifique se eles são precisos.\n"
-"Você pode suprimir esta mensagem, configurando-los explicitamente:\n"
+"no seu nome de utilizador e nome de máquina. Verifique se estão corretos.\n"
+"Pode suprimir esta mensagem configurando-os explicitamente:\n"
 "\n"
-"    git config --global user.name \"O teu Nome\"\n"
-"    git config --global user.email tu@examplo.com\n"
+"    git config --global user.name \"O Seu Nome\"\n"
+"    git config --global user.email utilizador@exemplo.com\n"
 "\n"
-"Após fazer isso, você pode corregir a identidade usada em este commit com:\n"
+"Após fazer isto, pode corrigir a identidade usada neste commit com:\n"
 "\n"
 "    git commit --amend --reset-author\n"
 
-#: builtin/commit.c:55
+#: builtin/commit.c:73
 msgid ""
 "You asked to amend the most recent commit, but doing so would make\n"
 "it empty. You can repeat your command with --allow-empty, or you can\n"
 "remove the commit entirely with \"git reset HEAD^\".\n"
 msgstr ""
+"Pediu para emendar o commit mais recente, mas fazê-lo torná-lo-ia\n"
+"vazio. Pode repetir o comando com --allow-empty, ou pode remover o\n"
+"commit completamente com \"git reset HEAD^\".\n"
 
-#: builtin/commit.c:60
+#: builtin/commit.c:78
 msgid ""
 "The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
 "If you wish to commit it anyway, use:\n"
 "\n"
 "    git commit --allow-empty\n"
 "\n"
-"Otherwise, please use 'git reset'\n"
 msgstr ""
+"O cherry-pick anterior está vazio, possivelmente devido a resolução de "
+"conflitos.\n"
+"Se deseja fazer commit de qualquer forma, use:\n"
+"\n"
+"    git commit --allow-empty\n"
+"\n"
 
-#: builtin/commit.c:309
+#: builtin/commit.c:85
+msgid "Otherwise, please use 'git reset'\n"
+msgstr "Caso contrário, use 'git reset'\n"
+
+#: builtin/commit.c:88
+msgid ""
+"If you wish to skip this commit, use:\n"
+"\n"
+"    git reset\n"
+"\n"
+"Then \"git cherry-pick --continue\" will resume cherry-picking\n"
+"the remaining commits.\n"
+msgstr ""
+"Se deseja ignorar este commit, use:\n"
+"\n"
+"    git reset\n"
+"\n"
+"Depois \"git cherry-pick --continue\" irá retomar o cherry-pick\n"
+"dos restantes commits.\n"
+
+#: builtin/commit.c:305
 msgid "failed to unpack HEAD tree object"
-msgstr ""
+msgstr "falha ao descompactar o objeto árvore HEAD"
 
-#: builtin/commit.c:351
+#: builtin/commit.c:346
 msgid "unable to create temporary index"
-msgstr ""
+msgstr "não foi possível criar índice temporário"
 
-#: builtin/commit.c:357
+#: builtin/commit.c:352
 msgid "interactive add failed"
-msgstr "falhou adicionar interativo"
+msgstr "falha ao adicionar interativamente"
 
-#: builtin/commit.c:390
-#: builtin/commit.c:411
-#: builtin/commit.c:461
+#: builtin/commit.c:365
+msgid "unable to update temporary index"
+msgstr "não é possível atualizar o índice temporário"
+
+#: builtin/commit.c:367
+msgid "Failed to update main cache tree"
+msgstr "Falha ao atualizar a árvore de cache principal"
+
+#: builtin/commit.c:391 builtin/commit.c:414 builtin/commit.c:463
 msgid "unable to write new_index file"
-msgstr ""
+msgstr "não é possível escrever o ficheiro new_index"
 
-#: builtin/commit.c:442
+#: builtin/commit.c:445
 msgid "cannot do a partial commit during a merge."
-msgstr ""
+msgstr "não é possível fazer um commit parcial durante um merge."
 
-#: builtin/commit.c:444
+#: builtin/commit.c:447
 msgid "cannot do a partial commit during a cherry-pick."
-msgstr ""
+msgstr "não é possível fazer um commit parcial durante um cherry-pick."
 
-#: builtin/commit.c:454
+#: builtin/commit.c:456
 msgid "cannot read the index"
-msgstr "não foi possível ler o indíce"
+msgstr "não é possível ler o índice"
 
-#: builtin/commit.c:474
+#: builtin/commit.c:475
 msgid "unable to write temporary index file"
-msgstr ""
+msgstr "não é possível escrever ficheiro de índice temporário"
 
-#: builtin/commit.c:549
-#: builtin/commit.c:555
+#: builtin/commit.c:580
 #, c-format
-msgid "invalid commit: %s"
-msgstr "commit inválido: %s"
+msgid "commit '%s' lacks author header"
+msgstr "o commit '%s' não tem cabeçalho de autor"
 
-#: builtin/commit.c:578
+#: builtin/commit.c:582
+#, c-format
+msgid "commit '%s' has malformed author line"
+msgstr "o commit '%s' tem a linha de autor malformada"
+
+#: builtin/commit.c:601
 msgid "malformed --author parameter"
-msgstr ""
+msgstr "parâmetro --author malformado"
 
-#: builtin/commit.c:639
+#: builtin/commit.c:609
 #, c-format
-msgid "Malformed ident string: '%s'"
-msgstr ""
+msgid "invalid date format: %s"
+msgstr "formato de data inválido: %s"
 
-#: builtin/commit.c:677
-#: builtin/commit.c:710
-#: builtin/commit.c:1024
+#: builtin/commit.c:653
+msgid ""
+"unable to select a comment character that is not used\n"
+"in the current commit message"
+msgstr ""
+"não foi possível selecionar um carácter de comentário que\n"
+"não estivesse já a ser usado na mensagem de commit atual"
+
+#: builtin/commit.c:690 builtin/commit.c:723 builtin/commit.c:1080
 #, c-format
 msgid "could not lookup commit %s"
-msgstr ""
+msgstr "não foi possível consultar o commit %s"
 
-#: builtin/commit.c:689
-#: builtin/shortlog.c:296
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
-msgstr ""
+msgstr "(a ler mensagem de log da entrada padrão)\n"
 
-#: builtin/commit.c:691
+#: builtin/commit.c:704
 msgid "could not read log from standard input"
-msgstr ""
+msgstr "não foi possível ler o log da entrada padrão"
 
-#: builtin/commit.c:695
+#: builtin/commit.c:708
 #, c-format
 msgid "could not read log file '%s'"
-msgstr "não é possivel ler o ficheiro de log '%s'"
+msgstr "não é possível ler o ficheiro de log '%s'"
 
-#: builtin/commit.c:701
-msgid "commit has empty message"
-msgstr "a mensagem do commit está vazia"
-
-#: builtin/commit.c:717
+#: builtin/commit.c:730
 msgid "could not read MERGE_MSG"
-msgstr "não é possivel ler MERGE_MSG"
+msgstr "não foi possível ler MERGE_MSG"
 
-#: builtin/commit.c:721
+#: builtin/commit.c:734
 msgid "could not read SQUASH_MSG"
-msgstr "não é possivel ler SQUASH_MSG"
+msgstr "não foi possível ler SQUASH_MSG"
 
-#: builtin/commit.c:725
-#, c-format
-msgid "could not read '%s'"
-msgstr "não é possivel ler '%s'"
-
-#: builtin/commit.c:777
+#: builtin/commit.c:785
 msgid "could not write commit template"
-msgstr ""
+msgstr "não foi possível escrever o modelo de commit"
 
-#: builtin/commit.c:788
+#: builtin/commit.c:803
 #, c-format
 msgid ""
 "\n"
@@ -2049,8 +5222,13 @@
 "\t%s\n"
 "and try again.\n"
 msgstr ""
+"\n"
+"Parece que está a fazer commit de um merge.\n"
+"Se não for o caso, remova o ficheiro\n"
+"\t%s\n"
+"e tente de novo.\n"
 
-#: builtin/commit.c:793
+#: builtin/commit.c:808
 #, c-format
 msgid ""
 "\n"
@@ -2059,1616 +5237,3904 @@
 "\t%s\n"
 "and try again.\n"
 msgstr ""
+"\n"
+"Parece que está a fazer commit de um cherry-pick.\n"
+"Se não é o caso, remova o ficheiro\n"
+"        %s\n"
+"e tente outra vez.\n"
 
-#: builtin/commit.c:805
+#: builtin/commit.c:821
+#, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
-"with '#' will be ignored, and an empty message aborts the commit.\n"
+"with '%c' will be ignored, and an empty message aborts the commit.\n"
 msgstr ""
+"Introduza a mensagem de commit das suas alterações.\n"
+"Linhas começadas com '%c' serão ignoradas, e uma mensagem vazia\n"
+"aborta o commit.\n"
 
-#: builtin/commit.c:810
+#: builtin/commit.c:828
+#, c-format
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
-"with '#' will be kept; you may remove them yourself if you want to.\n"
+"with '%c' will be kept; you may remove them yourself if you want to.\n"
 "An empty message aborts the commit.\n"
 msgstr ""
+"Introduzia a mensagem de commit das suas alterações.\n"
+"Linhas começadas com '%c' serão mantidas; pode removê-las se o desejar.\n"
+"Uma mensagem vazia aborta o commit.\n"
 
-#: builtin/commit.c:823
+#: builtin/commit.c:848
 #, c-format
-msgid "%sAuthor:    %s"
-msgstr "%sAutor:    %s"
+msgid "%sAuthor:    %.*s <%.*s>"
+msgstr "%sAutor:    %.*s <%.*s>"
 
-#: builtin/commit.c:830
+#: builtin/commit.c:856
 #, c-format
-msgid "%sCommitter: %s"
-msgstr "%sCommitador: %s"
+msgid "%sDate:      %s"
+msgstr "%sData:      %s"
 
-#: builtin/commit.c:850
+#: builtin/commit.c:863
+#, c-format
+msgid "%sCommitter: %.*s <%.*s>"
+msgstr "%sCommitter: %.*s <%.*s>"
+
+#: builtin/commit.c:881
 msgid "Cannot read index"
-msgstr ""
+msgstr "Não é possível ler o índice"
 
-#: builtin/commit.c:887
+#: builtin/commit.c:938
 msgid "Error building trees"
-msgstr ""
+msgstr "Erro ao construir árvores"
 
-#: builtin/commit.c:902
-#: builtin/tag.c:361
+#: builtin/commit.c:953 builtin/tag.c:266
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
-msgstr ""
+msgstr "Indique a mensagem usando as opções -m ou -F.\n"
 
-#: builtin/commit.c:999
+#: builtin/commit.c:1055
 #, c-format
-msgid "No existing author found with '%s'"
+msgid "--author '%s' is not 'Name <email>' and matches no existing author"
 msgstr ""
+"--author '%s' não é do tipo 'Nome <email>' e não corresponde a um autor "
+"existente"
 
-#: builtin/commit.c:1014
-#: builtin/commit.c:1214
+#: builtin/commit.c:1070 builtin/commit.c:1310
 #, c-format
 msgid "Invalid untracked files mode '%s'"
-msgstr ""
+msgstr "Modo inválido de ficheiros não controlados '%s'"
 
-#: builtin/commit.c:1054
+#: builtin/commit.c:1107
+msgid "--long and -z are incompatible"
+msgstr "--long e -z são incompatíveis"
+
+#: builtin/commit.c:1137
 msgid "Using both --reset-author and --author does not make sense"
-msgstr ""
+msgstr "Não faz sentido usar --reset-author e --author ao mesmo tempo"
 
-#: builtin/commit.c:1065
+#: builtin/commit.c:1146
 msgid "You have nothing to amend."
-msgstr "Você não tem nada a corregir."
+msgstr "Não há nada para emendar."
 
-#: builtin/commit.c:1068
+#: builtin/commit.c:1149
 msgid "You are in the middle of a merge -- cannot amend."
-msgstr ""
+msgstr "Merge em curso -- não é possível emendar."
 
-#: builtin/commit.c:1070
+#: builtin/commit.c:1151
 msgid "You are in the middle of a cherry-pick -- cannot amend."
-msgstr ""
+msgstr "Cherry-pick em curso -- não é possível emendar."
 
-#: builtin/commit.c:1073
+#: builtin/commit.c:1154
 msgid "Options --squash and --fixup cannot be used together"
-msgstr ""
+msgstr "As opções --squash e --fixup não podem ser usadas juntas"
 
-#: builtin/commit.c:1083
+#: builtin/commit.c:1164
 msgid "Only one of -c/-C/-F/--fixup can be used."
-msgstr ""
+msgstr "Apenas um entre -c/-C/-F/--fixup pode ser usado."
 
-#: builtin/commit.c:1085
+#: builtin/commit.c:1166
 msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
-msgstr ""
+msgstr "A opção -m não pode ser combinada com -c/C/-F/--fixup."
 
-#: builtin/commit.c:1093
+#: builtin/commit.c:1174
 msgid "--reset-author can be used only with -C, -c or --amend."
-msgstr ""
+msgstr "--reset-author só pode ser usado com -C, -c ou --amend."
 
-#: builtin/commit.c:1110
+#: builtin/commit.c:1191
 msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
 msgstr ""
+"Apenas um entre --include/--only/--all/--interactive/--patch pode ser usado."
 
-#: builtin/commit.c:1112
+#: builtin/commit.c:1193
 msgid "No paths with --include/--only does not make sense."
-msgstr ""
+msgstr "As opções --include/--only não fazem sentido sem indicar caminhos."
 
-#: builtin/commit.c:1114
+#: builtin/commit.c:1195
 msgid "Clever... amending the last one with dirty index."
-msgstr ""
+msgstr "Inteligente... a emendar o último commit com o índice sujo."
 
-#: builtin/commit.c:1116
-msgid "Explicit paths specified without -i nor -o; assuming --only paths..."
-msgstr ""
+#: builtin/commit.c:1197
+msgid "Explicit paths specified without -i or -o; assuming --only paths..."
+msgstr "Caminhos explícitos especificados sem -i ou -o; assumindo --only..."
 
-#: builtin/commit.c:1126
-#: builtin/tag.c:577
+#: builtin/commit.c:1209 builtin/tag.c:475
 #, c-format
 msgid "Invalid cleanup mode %s"
-msgstr ""
+msgstr "Modo de limpeza inválido %s"
 
-#: builtin/commit.c:1131
+#: builtin/commit.c:1214
 msgid "Paths with -a does not make sense."
-msgstr ""
+msgstr "A especificação de caminhos com -a não faz sentido."
 
-#: builtin/commit.c:1315
+#: builtin/commit.c:1324 builtin/commit.c:1605
+msgid "show status concisely"
+msgstr "mostrar status de forma concisa"
+
+#: builtin/commit.c:1326 builtin/commit.c:1607
+msgid "show branch information"
+msgstr "mostrar informação do ramo"
+
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
+msgid "machine-readable output"
+msgstr "saída inteligível por máquina"
+
+#: builtin/commit.c:1331 builtin/commit.c:1611
+msgid "show status in long format (default)"
+msgstr "apresentar status em formato longo (predefinição)"
+
+#: builtin/commit.c:1334 builtin/commit.c:1614
+msgid "terminate entries with NUL"
+msgstr "terminar entradas com NUL"
+
+#: builtin/commit.c:1336 builtin/commit.c:1617 builtin/fast-export.c:981
+#: builtin/fast-export.c:984 builtin/tag.c:353
+msgid "mode"
+msgstr "modo"
+
+#: builtin/commit.c:1337 builtin/commit.c:1617
+msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
+msgstr ""
+"mostrar ficheiros não controlados, modo é opcional: all, normal, no. "
+"(Predefinição: all)"
+
+#: builtin/commit.c:1340
+msgid "show ignored files"
+msgstr "mostrar ficheiros ignorados"
+
+#: builtin/commit.c:1341 parse-options.h:155
+msgid "when"
+msgstr "quando"
+
+#: builtin/commit.c:1342
+msgid ""
+"ignore changes to submodules, optional when: all, dirty, untracked. "
+"(Default: all)"
+msgstr ""
+"ignorar alterações em submódulos, quando é opcional: all, dirty, untracked. "
+"(Predefinição: all)"
+
+#: builtin/commit.c:1344
+msgid "list untracked files in columns"
+msgstr "listar ficheiros não controlados em colunas"
+
+#: builtin/commit.c:1430
 msgid "couldn't look up newly created commit"
-msgstr ""
+msgstr "não foi possível consultar o commit recém-criado"
 
-#: builtin/commit.c:1317
+#: builtin/commit.c:1432
 msgid "could not parse newly created commit"
-msgstr ""
+msgstr "não foi possível analisar o commit recém-criado"
 
-#: builtin/commit.c:1358
+#: builtin/commit.c:1477
 msgid "detached HEAD"
-msgstr ""
+msgstr "HEAD destacada"
 
-#: builtin/commit.c:1360
+#: builtin/commit.c:1480
 msgid " (root-commit)"
-msgstr " (root-commit)"
-
-#: builtin/commit.c:1450
-msgid "could not parse HEAD commit"
-msgstr ""
-
-#: builtin/commit.c:1487
-#: builtin/merge.c:509
-#, c-format
-msgid "could not open '%s' for reading"
-msgstr ""
-
-#: builtin/commit.c:1494
-#, c-format
-msgid "Corrupt MERGE_HEAD file (%s)"
-msgstr ""
-
-#: builtin/commit.c:1501
-msgid "could not read MERGE_MODE"
-msgstr ""
-
-#: builtin/commit.c:1520
-#, c-format
-msgid "could not read commit message: %s"
-msgstr ""
-
-#: builtin/commit.c:1534
-#, c-format
-msgid "Aborting commit; you did not edit the message.\n"
-msgstr ""
-
-#: builtin/commit.c:1539
-#, c-format
-msgid "Aborting commit due to empty commit message.\n"
-msgstr ""
-
-#: builtin/commit.c:1554
-#: builtin/merge.c:936
-#: builtin/merge.c:961
-msgid "failed to write commit object"
-msgstr ""
+msgstr " (commit-raiz)"
 
 #: builtin/commit.c:1575
-msgid "cannot lock HEAD ref"
-msgstr ""
+msgid "suppress summary after successful commit"
+msgstr "suprimir o resumo depois de fazer commit com sucesso"
 
-#: builtin/commit.c:1579
-msgid "cannot update HEAD ref"
+#: builtin/commit.c:1576
+msgid "show diff in commit message template"
+msgstr "mostrar diff no modelo da mensagem de commit"
+
+#: builtin/commit.c:1578
+msgid "Commit message options"
+msgstr "Opções de mensagem de commit"
+
+#: builtin/commit.c:1579 builtin/tag.c:351
+msgid "read message from file"
+msgstr "ler mensagem de um ficheiro"
+
+#: builtin/commit.c:1580
+msgid "author"
+msgstr "autor"
+
+#: builtin/commit.c:1580
+msgid "override author for commit"
+msgstr "substituir autor do commit"
+
+#: builtin/commit.c:1581 builtin/gc.c:326
+msgid "date"
+msgstr "data"
+
+#: builtin/commit.c:1581
+msgid "override date for commit"
+msgstr "substituir data do commit"
+
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
+msgid "message"
+msgstr "mensagem"
+
+#: builtin/commit.c:1582
+msgid "commit message"
+msgstr "mensagem de commit"
+
+#: builtin/commit.c:1583 builtin/commit.c:1584 builtin/commit.c:1585
+#: builtin/commit.c:1586 parse-options.h:256 ref-filter.h:79
+msgid "commit"
+msgstr "commit"
+
+#: builtin/commit.c:1583
+msgid "reuse and edit message from specified commit"
+msgstr "reutilizar e editar a mensagem de um commit especificado"
+
+#: builtin/commit.c:1584
+msgid "reuse message from specified commit"
+msgstr "reutilizar a mensagem de um commit especificado"
+
+#: builtin/commit.c:1585
+msgid "use autosquash formatted message to fixup specified commit"
 msgstr ""
+"usar mensagem com formato autosquash para corrigir o commit especificado"
+
+#: builtin/commit.c:1586
+msgid "use autosquash formatted message to squash specified commit"
+msgstr ""
+"usar mensagem com formato autosquash para esmagar o commit especificado"
+
+#: builtin/commit.c:1587
+msgid "the commit is authored by me now (used with -C/-c/--amend)"
+msgstr "agora sou eu o autor do commit (usado com C/-c/--amend)"
+
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
+msgid "add Signed-off-by:"
+msgstr "adicionar Signed-off-by:"
+
+#: builtin/commit.c:1589
+msgid "use specified template file"
+msgstr "usar ficheiro de modelo especificado"
 
 #: builtin/commit.c:1590
+msgid "force edit of commit"
+msgstr "forçar edição do commit"
+
+#: builtin/commit.c:1591
+msgid "default"
+msgstr "predefinição"
+
+#: builtin/commit.c:1591 builtin/tag.c:354
+msgid "how to strip spaces and #comments from message"
+msgstr "como retirar espaços e #comentários da mensagem"
+
+#: builtin/commit.c:1592
+msgid "include status in commit message template"
+msgstr "incluir status no modelo da mensagem de commit"
+
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
+#: builtin/revert.c:93
+msgid "GPG sign commit"
+msgstr "assinar o commit com GPG"
+
+#: builtin/commit.c:1597
+msgid "Commit contents options"
+msgstr "Opções de conteúdo do commit"
+
+#: builtin/commit.c:1598
+msgid "commit all changed files"
+msgstr "fazer commit de todos os ficheiros alterados"
+
+#: builtin/commit.c:1599
+msgid "add specified files to index for commit"
+msgstr "adicionar ficheiros especificados ao índice para incluir no commit"
+
+#: builtin/commit.c:1600
+msgid "interactively add files"
+msgstr "adicionar ficheiros interativamente"
+
+#: builtin/commit.c:1601
+msgid "interactively add changes"
+msgstr "adicionar alterações interativamente"
+
+#: builtin/commit.c:1602
+msgid "commit only specified files"
+msgstr "fazer commit somente dos ficheiros especificados"
+
+#: builtin/commit.c:1603
+msgid "bypass pre-commit hook"
+msgstr "ignorar pre-commit hook"
+
+#: builtin/commit.c:1604
+msgid "show what would be committed"
+msgstr "mostrar o que será incluído no commit"
+
+#: builtin/commit.c:1615
+msgid "amend previous commit"
+msgstr "emendar o commit anterior"
+
+#: builtin/commit.c:1616
+msgid "bypass post-rewrite hook"
+msgstr "ignorar post-rewrite hook"
+
+#: builtin/commit.c:1621
+msgid "ok to record an empty change"
+msgstr "aceitar o registo duma alteração vazia"
+
+#: builtin/commit.c:1623
+msgid "ok to record a change with an empty message"
+msgstr "aceitar o registo duma alteração com uma mensagem vazia"
+
+#: builtin/commit.c:1652
+msgid "could not parse HEAD commit"
+msgstr "não foi possível analisar o commit HEAD"
+
+#: builtin/commit.c:1698
+#, c-format
+msgid "Corrupt MERGE_HEAD file (%s)"
+msgstr "Ficheiro MERGE_HEAD corrompido (%s)"
+
+#: builtin/commit.c:1705
+msgid "could not read MERGE_MODE"
+msgstr "não foi possível ler MERGE_MODE"
+
+#: builtin/commit.c:1724
+#, c-format
+msgid "could not read commit message: %s"
+msgstr "não foi possível ler a mensagem de commit: %s"
+
+#: builtin/commit.c:1735
+#, c-format
+msgid "Aborting commit; you did not edit the message.\n"
+msgstr "A abortar o commit; não editou a mensagem.\n"
+
+#: builtin/commit.c:1740
+#, c-format
+msgid "Aborting commit due to empty commit message.\n"
+msgstr "A abortar o commit uma vez que a mensagem de commit está vazia.\n"
+
+#: builtin/commit.c:1788
 msgid ""
 "Repository has been updated, but unable to write\n"
-"new_index file. Check that disk is not full or quota is\n"
+"new_index file. Check that disk is not full and quota is\n"
 "not exceeded, and then \"git reset HEAD\" to recover."
 msgstr ""
+"O repositório foi atualizado, mas não foi possível escrever\n"
+"o ficheiro new_index. Verifique se o disco não está cheio\n"
+"e que a quota não foi excedida e execute \"git reset HEAD\" para recuperar."
 
-#: builtin/describe.c:234
+#: builtin/config.c:9
+msgid "git config [<options>]"
+msgstr "git config [<opções>]"
+
+#: builtin/config.c:56
+msgid "Config file location"
+msgstr "Localização do ficheiro de configuração"
+
+#: builtin/config.c:57
+msgid "use global config file"
+msgstr "usar ficheiro de configuração global"
+
+#: builtin/config.c:58
+msgid "use system config file"
+msgstr "usar ficheiro de configuração do sistema"
+
+#: builtin/config.c:59
+msgid "use repository config file"
+msgstr "usar ficheiro de configuração do repositório"
+
+#: builtin/config.c:60
+msgid "use given config file"
+msgstr "usar ficheiro de configuração fornecido"
+
+#: builtin/config.c:61
+msgid "blob-id"
+msgstr "id-blob"
+
+#: builtin/config.c:61
+msgid "read config from given blob object"
+msgstr "ler configuração a partir do objeto blob fornecido"
+
+#: builtin/config.c:62
+msgid "Action"
+msgstr "Ação"
+
+#: builtin/config.c:63
+msgid "get value: name [value-regex]"
+msgstr "obter valor: nome [regex-do-valor]"
+
+#: builtin/config.c:64
+msgid "get all values: key [value-regex]"
+msgstr "obter todos os valores: chave [regex-do-valor]"
+
+#: builtin/config.c:65
+msgid "get values for regexp: name-regex [value-regex]"
+msgstr "obter valores para a regexp: regex-do-nome [regex-do-valor]"
+
+#: builtin/config.c:66
+msgid "get value specific for the URL: section[.var] URL"
+msgstr "obter valor do URL especificado: section[.var] URL"
+
+#: builtin/config.c:67
+msgid "replace all matching variables: name value [value_regex]"
+msgstr ""
+"substituir todos as variáveis correspondentes: nome valor [regex-do-valor]"
+
+#: builtin/config.c:68
+msgid "add a new variable: name value"
+msgstr "adicionar uma nova variável: nome valor"
+
+#: builtin/config.c:69
+msgid "remove a variable: name [value-regex]"
+msgstr "remover uma variável: nome [regex-do-valor]"
+
+#: builtin/config.c:70
+msgid "remove all matches: name [value-regex]"
+msgstr "remover todas as correspondências: nome [regex-do-valor]"
+
+#: builtin/config.c:71
+msgid "rename section: old-name new-name"
+msgstr "mudar o nome da secção: nome-antigo novo-nome"
+
+#: builtin/config.c:72
+msgid "remove a section: name"
+msgstr "remover uma secção: nome"
+
+#: builtin/config.c:73
+msgid "list all"
+msgstr "listar todos"
+
+#: builtin/config.c:74
+msgid "open an editor"
+msgstr "abrir um editor"
+
+#: builtin/config.c:75
+msgid "find the color configured: slot [default]"
+msgstr "encontrar a cor configurada: slot [predefinição]"
+
+#: builtin/config.c:76
+msgid "find the color setting: slot [stdout-is-tty]"
+msgstr "encontrar a definição de cor: slot [stdout-é-tty]"
+
+#: builtin/config.c:77
+msgid "Type"
+msgstr "Tipo"
+
+#: builtin/config.c:78
+msgid "value is \"true\" or \"false\""
+msgstr "o valor é \"true\" (verdadeiro) ou \"falso\" (falso)"
+
+#: builtin/config.c:79
+msgid "value is decimal number"
+msgstr "o valor é um número decimal"
+
+#: builtin/config.c:80
+msgid "value is --bool or --int"
+msgstr "o valor é --bool ou --int"
+
+#: builtin/config.c:81
+msgid "value is a path (file or directory name)"
+msgstr "o valor é um caminho (nome dum ficheiro ou diretório)"
+
+#: builtin/config.c:82
+msgid "Other"
+msgstr "Outro"
+
+#: builtin/config.c:83
+msgid "terminate values with NUL byte"
+msgstr "terminar valores com o byte NUL"
+
+#: builtin/config.c:84
+msgid "show variable names only"
+msgstr "mostrar apenas os nomes das variáveis"
+
+#: builtin/config.c:85
+msgid "respect include directives on lookup"
+msgstr "respeitar diretivas de inclusão ao pesquisar"
+
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"mostrar a origem da configuração (ficheiro, entrada padrão, blob, linha de "
+"comandos)"
+
+#: builtin/config.c:328
+msgid "unable to parse default color value"
+msgstr "não é possível analisar o valor de cor por omissão"
+
+#: builtin/config.c:469
+#, c-format
+msgid ""
+"# This is Git's per-user configuration file.\n"
+"[user]\n"
+"# Please adapt and uncomment the following lines:\n"
+"#\tname = %s\n"
+"#\temail = %s\n"
+msgstr ""
+"# Este é o ficheiro de configuração do Git do utilizador.\n"
+"[user]\n"
+"# Adapte e retire os comentários das seguintes linhas:\n"
+"#\tname = %s\n"
+"#\temail = %s\n"
+
+#: builtin/config.c:611
+#, c-format
+msgid "cannot create configuration file %s"
+msgstr "não é possível criar o ficheiro de configuração %s"
+
+#: builtin/count-objects.c:77
+msgid "git count-objects [-v] [-H | --human-readable]"
+msgstr "git count-objects [-v] [-H | --human-readable]"
+
+#: builtin/count-objects.c:87
+msgid "print sizes in human readable format"
+msgstr "imprimir dimensões em formato inteligível por humanos"
+
+#: builtin/describe.c:17
+msgid "git describe [<options>] [<commit-ish>...]"
+msgstr "git describe [<opções>] [<commit-ish>...]"
+
+#: builtin/describe.c:18
+msgid "git describe [<options>] --dirty"
+msgstr "git describe [<opções>] --dirty"
+
+#: builtin/describe.c:217
 #, c-format
 msgid "annotated tag %s not available"
-msgstr ""
+msgstr "a tag anotada %s não está disponível"
 
-#: builtin/describe.c:238
+#: builtin/describe.c:221
 #, c-format
 msgid "annotated tag %s has no embedded name"
-msgstr ""
+msgstr "a tag anotada %s não tem nenhum nome incorporado"
 
-#: builtin/describe.c:240
+#: builtin/describe.c:223
 #, c-format
 msgid "tag '%s' is really '%s' here"
-msgstr ""
+msgstr "a tag '%s' está de facto em '%s'"
 
-#: builtin/describe.c:267
+#: builtin/describe.c:250 builtin/log.c:459
 #, c-format
 msgid "Not a valid object name %s"
-msgstr ""
+msgstr "%s não é um nome de objeto válido"
+
+#: builtin/describe.c:253
+#, c-format
+msgid "%s is not a valid '%s' object"
+msgstr "%s não é um objeto '%s' válido"
 
 #: builtin/describe.c:270
 #, c-format
-msgid "%s is not a valid '%s' object"
-msgstr ""
-
-#: builtin/describe.c:287
-#, c-format
 msgid "no tag exactly matches '%s'"
-msgstr ""
+msgstr "nenhuma tag corresponde exatamente a '%s'"
 
-#: builtin/describe.c:289
+#: builtin/describe.c:272
 #, c-format
 msgid "searching to describe %s\n"
-msgstr ""
+msgstr "à procurar da descrição de %s\n"
 
-#: builtin/describe.c:329
+#: builtin/describe.c:319
 #, c-format
 msgid "finished search at %s\n"
-msgstr ""
+msgstr "a pesquisa terminou em %s\n"
 
-#: builtin/describe.c:353
+#: builtin/describe.c:346
 #, c-format
 msgid ""
 "No annotated tags can describe '%s'.\n"
 "However, there were unannotated tags: try --tags."
 msgstr ""
+"Não é possível usar tags anotadas para descrever '%s'.\n"
+"No entanto, é possível com tags não anotadas: tente --tags."
 
-#: builtin/describe.c:357
+#: builtin/describe.c:350
 #, c-format
 msgid ""
 "No tags can describe '%s'.\n"
 "Try --always, or create some tags."
 msgstr ""
+"Não é possível usar tags para descrever '%s'.\n"
+"Tente --always, ou crie algumas tags."
 
-#: builtin/describe.c:378
+#: builtin/describe.c:371
 #, c-format
 msgid "traversed %lu commits\n"
-msgstr ""
+msgstr "%lu commits percorridos\n"
 
-#: builtin/describe.c:381
+#: builtin/describe.c:374
 #, c-format
 msgid ""
 "more than %i tags found; listed %i most recent\n"
 "gave up search at %s\n"
 msgstr ""
+"mais de %i tags encontradas; foram listadas as %i mais recentes\n"
+"pesquisa interrompida em %s\n"
 
-#: builtin/describe.c:436
+#: builtin/describe.c:396
+msgid "find the tag that comes after the commit"
+msgstr "localizar a tag que vem após o commit"
+
+#: builtin/describe.c:397
+msgid "debug search strategy on stderr"
+msgstr "depurar a estratégia de procura para stderr"
+
+#: builtin/describe.c:398
+msgid "use any ref"
+msgstr "usar uma referência qualquer"
+
+#: builtin/describe.c:399
+msgid "use any tag, even unannotated"
+msgstr "usar uma tag qualquer, mesmo não anotada"
+
+#: builtin/describe.c:400
+msgid "always use long format"
+msgstr "usar sempre formato longo"
+
+#: builtin/describe.c:401
+msgid "only follow first parent"
+msgstr "seguir só o primeiro pai"
+
+#: builtin/describe.c:404
+msgid "only output exact matches"
+msgstr "imprimir apenas correspondências exatas"
+
+#: builtin/describe.c:406
+msgid "consider <n> most recent tags (default: 10)"
+msgstr "considerar as <n> tags mais recentes (predefinição: 10)"
+
+#: builtin/describe.c:408
+msgid "only consider tags matching <pattern>"
+msgstr "apenas considerar tags que correspondam ao <padrão>"
+
+#: builtin/describe.c:410 builtin/name-rev.c:314
+msgid "show abbreviated commit object as fallback"
+msgstr "mostrar objetos de commit abreviados em recurso"
+
+#: builtin/describe.c:411
+msgid "mark"
+msgstr "marca"
+
+#: builtin/describe.c:412
+msgid "append <mark> on dirty working tree (default: \"-dirty\")"
+msgstr ""
+"acrescentar <marca> se a árvore de trabalho contiver alterações "
+"(predefinição: \"-dirty\")"
+
+#: builtin/describe.c:430
 msgid "--long is incompatible with --abbrev=0"
-msgstr ""
+msgstr "--long é incompatível com --abbrev=0"
 
-#: builtin/describe.c:462
+#: builtin/describe.c:456
 msgid "No names found, cannot describe anything."
-msgstr "Nenhum nome encontrado, não descreve nada."
+msgstr "Nenhum nome encontrado, não é possível descrever."
 
-#: builtin/describe.c:482
+#: builtin/describe.c:476
 msgid "--dirty is incompatible with commit-ishes"
-msgstr ""
+msgstr "--dirty é incompatível com commits ou semelhantes"
 
-#: builtin/diff.c:77
+#: builtin/diff.c:86
 #, c-format
 msgid "'%s': not a regular file or symlink"
-msgstr ""
+msgstr "'%s': não é um ficheiro regular nem uma ligação simbólica"
 
-#: builtin/diff.c:220
+#: builtin/diff.c:237
 #, c-format
 msgid "invalid option: %s"
-msgstr ""
+msgstr "opção inválida: %s"
 
-#: builtin/diff.c:297
+#: builtin/diff.c:358
 msgid "Not a git repository"
-msgstr "Não é um repositorio git"
+msgstr "Não é um repositório git"
 
-#: builtin/diff.c:347
+#: builtin/diff.c:401
 #, c-format
 msgid "invalid object '%s' given."
-msgstr ""
+msgstr "objeto inválido '%s' fornecido."
 
-#: builtin/diff.c:352
-#, c-format
-msgid "more than %d trees given: '%s'"
-msgstr ""
-
-#: builtin/diff.c:362
+#: builtin/diff.c:410
 #, c-format
 msgid "more than two blobs given: '%s'"
-msgstr ""
+msgstr "mais do que dois blobs fornecidos: '%s'"
 
-#: builtin/diff.c:370
+#: builtin/diff.c:417
 #, c-format
 msgid "unhandled object '%s' given."
-msgstr ""
+msgstr "objeto sem tratamento '%s' fornecido."
 
-#: builtin/fetch.c:200
+#: builtin/fast-export.c:25
+msgid "git fast-export [rev-list-opts]"
+msgstr "git fast-export [opções-de-rev-list]"
+
+#: builtin/fast-export.c:980
+msgid "show progress after <n> objects"
+msgstr "mostrar progresso depois de <n> objetos"
+
+#: builtin/fast-export.c:982
+msgid "select handling of signed tags"
+msgstr "selecionar o tratamento de tags assinadas"
+
+#: builtin/fast-export.c:985
+msgid "select handling of tags that tag filtered objects"
+msgstr "selecionar o tratamento de tags que apontem para objetos filtrados"
+
+#: builtin/fast-export.c:988
+msgid "Dump marks to this file"
+msgstr "Capturar marcas neste ficheiro"
+
+#: builtin/fast-export.c:990
+msgid "Import marks from this file"
+msgstr "Importar marcas deste ficheiro"
+
+#: builtin/fast-export.c:992
+msgid "Fake a tagger when tags lack one"
+msgstr "Inventar um autor de tag para tags que não tenham um"
+
+#: builtin/fast-export.c:994
+msgid "Output full tree for each commit"
+msgstr "Mostrar a árvore completa para cada commit"
+
+#: builtin/fast-export.c:996
+msgid "Use the done feature to terminate the stream"
+msgstr "Usar a funcionalidade done para terminar o fluxo"
+
+#: builtin/fast-export.c:997
+msgid "Skip output of blob data"
+msgstr "Ignorar a exibição de dados de blob"
+
+#: builtin/fast-export.c:998
+msgid "refspec"
+msgstr "especificador de referência"
+
+#: builtin/fast-export.c:999
+msgid "Apply refspec to exported refs"
+msgstr "Aplicar o especificador de referência a referências exportadas"
+
+#: builtin/fast-export.c:1000
+msgid "anonymize output"
+msgstr "anonimizar saída"
+
+#: builtin/fetch.c:20
+msgid "git fetch [<options>] [<repository> [<refspec>...]]"
+msgstr ""
+"git fetch [<opções>] [<repositório> [<especificador-de-referência>...]]"
+
+#: builtin/fetch.c:21
+msgid "git fetch [<options>] <group>"
+msgstr "git fetch [<opções>] <grupo>"
+
+#: builtin/fetch.c:22
+msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
+msgstr "git fetch --multiple [<opções>] [(<repositório> | <grupo>)...]"
+
+#: builtin/fetch.c:23
+msgid "git fetch --all [<options>]"
+msgstr "git fetch --all [<opções>]"
+
+#: builtin/fetch.c:92 builtin/pull.c:166
+msgid "fetch from all remotes"
+msgstr "obter de todos os remotos"
+
+#: builtin/fetch.c:94 builtin/pull.c:169
+msgid "append to .git/FETCH_HEAD instead of overwriting"
+msgstr "acrescentar a .git/FETCH_HEAD em vez de substituir"
+
+#: builtin/fetch.c:96 builtin/pull.c:172
+msgid "path to upload pack on remote end"
+msgstr "caminho para o comando upload pack no remoto"
+
+#: builtin/fetch.c:97 builtin/pull.c:174
+msgid "force overwrite of local branch"
+msgstr "forçar a substituição do ramo local"
+
+#: builtin/fetch.c:99
+msgid "fetch from multiple remotes"
+msgstr "obter de múltiplos remotos"
+
+#: builtin/fetch.c:101 builtin/pull.c:176
+msgid "fetch all tags and associated objects"
+msgstr "obter todas as tags e objetos associados"
+
+#: builtin/fetch.c:103
+msgid "do not fetch all tags (--no-tags)"
+msgstr "não obter todas as tags (--no-tags)"
+
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "número de submódulos obtidos em paralelo"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
+msgid "prune remote-tracking branches no longer on remote"
+msgstr "eliminar os ramos cujo respetivo ramo remoto já não existe"
+
+#: builtin/fetch.c:108 builtin/pull.c:182
+msgid "on-demand"
+msgstr "on-demand"
+
+#: builtin/fetch.c:109 builtin/pull.c:183
+msgid "control recursive fetching of submodules"
+msgstr "controlar a obtenção recursiva de submódulos"
+
+#: builtin/fetch.c:113 builtin/pull.c:191
+msgid "keep downloaded pack"
+msgstr "manter o pacote transferido"
+
+#: builtin/fetch.c:115
+msgid "allow updating of HEAD ref"
+msgstr "permitir a atualização da referência HEAD"
+
+#: builtin/fetch.c:118 builtin/pull.c:194
+msgid "deepen history of shallow clone"
+msgstr "aprofundar o histórico de um clone raso"
+
+#: builtin/fetch.c:120 builtin/pull.c:197
+msgid "convert to a complete repository"
+msgstr "converter num repositório completo"
+
+#: builtin/fetch.c:122 builtin/log.c:1236
+msgid "dir"
+msgstr "dir"
+
+#: builtin/fetch.c:123
+msgid "prepend this to submodule path output"
+msgstr "preceder isto ao caminho do submódulo"
+
+#: builtin/fetch.c:126
+msgid "default mode for recursion"
+msgstr "modo recursivo por omissão"
+
+#: builtin/fetch.c:128 builtin/pull.c:200
+msgid "accept refs that update .git/shallow"
+msgstr "aceitar referência que atualizem .git/shallow"
+
+#: builtin/fetch.c:129 builtin/pull.c:202
+msgid "refmap"
+msgstr "mapa de referências"
+
+#: builtin/fetch.c:130 builtin/pull.c:203
+msgid "specify fetch refmap"
+msgstr "especificar mapa de referências"
+
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
-msgstr ""
+msgstr "Referência remota HEAD não encontrada"
 
-#: builtin/fetch.c:253
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
-msgstr "objecto %s não encontrado"
+msgstr "objeto %s não encontrado"
 
-#: builtin/fetch.c:259
+#: builtin/fetch.c:471
 msgid "[up to date]"
-msgstr "[Actualizada]"
+msgstr "[atualizado]"
 
-#: builtin/fetch.c:273
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
-msgstr ""
+msgstr "! %-*s %-*s -> %s  (não é possível obter no ramo atual)"
 
-#: builtin/fetch.c:274
-#: builtin/fetch.c:360
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[rejeitado]"
 
-#: builtin/fetch.c:285
+#: builtin/fetch.c:497
 msgid "[tag update]"
-msgstr "[etiqueta actualizada]"
+msgstr "[tag atualizada]"
 
-#: builtin/fetch.c:287
-#: builtin/fetch.c:322
-#: builtin/fetch.c:340
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
-msgstr ""
+msgstr "  (não é possível atualizar a referência local)"
 
-#: builtin/fetch.c:305
+#: builtin/fetch.c:517
 msgid "[new tag]"
-msgstr "[nova etiqueta]"
+msgstr "[nova tag]"
 
-#: builtin/fetch.c:308
+#: builtin/fetch.c:520
 msgid "[new branch]"
-msgstr "[nova rama]"
+msgstr "[novo ramo]"
 
-#: builtin/fetch.c:311
+#: builtin/fetch.c:523
 msgid "[new ref]"
-msgstr "[nova ref]"
+msgstr "[nova referência]"
 
-#: builtin/fetch.c:356
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
-msgstr ""
+msgstr "não é possível atualizar a referência local"
 
-#: builtin/fetch.c:356
+#: builtin/fetch.c:569
 msgid "forced update"
-msgstr "actualização forçada"
+msgstr "atualização forçada"
 
-#: builtin/fetch.c:362
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
-msgstr "(non-fast-forward)"
+msgstr "(sem avanço rápido)"
 
-#: builtin/fetch.c:393
-#: builtin/fetch.c:685
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
-msgstr "não é possivel abrir %s: %s\n"
+msgstr "não é possível abrir %s: %s\n"
 
-#: builtin/fetch.c:402
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
-msgstr ""
+msgstr "%s não enviou todos os objetos necessários\n"
 
-#: builtin/fetch.c:488
+#: builtin/fetch.c:637
+#, c-format
+msgid "reject %s because shallow roots are not allowed to be updated"
+msgstr "%s rejeitado, porque as raízes rasas não podem ser atualizadas"
+
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
-msgstr "Para %.*s\n"
+msgstr "De %.*s\n"
 
-#: builtin/fetch.c:499
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr ""
+"algumas referências locais não puderam ser atualizadas; tente executar\n"
+" 'git remote prune %s' para remover algum ramo antigo em conflito"
 
-#: builtin/fetch.c:549
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
-msgstr ""
+msgstr "   (%s ficará suspenso)"
 
-#: builtin/fetch.c:550
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
-msgstr ""
+msgstr "   (%s ficou suspenso)"
 
-#: builtin/fetch.c:557
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[eliminado]"
 
-#: builtin/fetch.c:558
-#: builtin/remote.c:1055
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(nenhum)"
 
-#: builtin/fetch.c:675
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
-msgstr ""
+msgstr "Não é possível obter objetos no ramo atual %s de um repositório não nu"
 
-#: builtin/fetch.c:709
-#, c-format
-msgid "Don't know how to fetch from %s"
-msgstr ""
-
-#: builtin/fetch.c:786
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
-msgstr ""
+msgstr "O valor \"%2$s\" da opção \"%1$s\" não é válido em %3$s"
 
-#: builtin/fetch.c:789
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
-msgstr ""
+msgstr "Opção \"%s\" ignorada em %s\n"
 
-#: builtin/fetch.c:888
+#: builtin/fetch.c:920
+#, c-format
+msgid "Don't know how to fetch from %s"
+msgstr "Não sei como obter de %s"
+
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
-msgstr "Baixando %s\n"
+msgstr "A obter de %s\n"
 
-#: builtin/fetch.c:890
-#: builtin/remote.c:100
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
-msgstr ""
+msgstr "Não foi possível obter de %s"
 
-#: builtin/fetch.c:907
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
 msgstr ""
-"Nenhum repositório remoto especificado. Por favor, especifique um URL ou o\n"
-"nome remoto a partir do qual novas revisões devem ser obtida."
+"Nenhum repositório remoto especificado. Especifique um URL ou\n"
+"o nome remoto a partir do qual as novas revisões devem ser obtidas."
 
-#: builtin/fetch.c:927
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
-msgstr "Você precisa especificar um nome da etiqueta."
+msgstr "Deve especificar um nome para a tag."
 
-#: builtin/fetch.c:979
+#: builtin/fetch.c:1165
+msgid "--depth and --unshallow cannot be used together"
+msgstr "--depth e --unshallow não podem ser usados juntos"
+
+#: builtin/fetch.c:1167
+msgid "--unshallow on a complete repository does not make sense"
+msgstr "usar --unshallow num repositório completo não faz sentido"
+
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
-msgstr ""
+msgstr "fetch --all não leva um repositório como argumento"
 
-#: builtin/fetch.c:981
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
-msgstr ""
+msgstr "fetch --all não faz sentido com especificadores de referência"
 
-#: builtin/fetch.c:992
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
-msgstr ""
+msgstr "O remoto ou grupo remoto não existe: %s"
 
-#: builtin/fetch.c:1000
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
-msgstr ""
+msgstr "Não faz sentido obter um grupo e especificar uma referência"
 
-#: builtin/gc.c:63
+#: builtin/fmt-merge-msg.c:14
+msgid ""
+"git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]"
+msgstr ""
+"git fmt-merge-msg [-m <mensagem>] [--log[=<n>] | --no-log] [--file "
+"<ficheiro>]"
+
+#: builtin/fmt-merge-msg.c:667
+msgid "populate log with at most <n> entries from shortlog"
+msgstr "povoar o registo com, no máximo, <n> entradas do shortlog"
+
+#: builtin/fmt-merge-msg.c:670
+msgid "alias for --log (deprecated)"
+msgstr "alias de --log (obsoleto)"
+
+#: builtin/fmt-merge-msg.c:673
+msgid "text"
+msgstr "texto"
+
+#: builtin/fmt-merge-msg.c:674
+msgid "use <text> as start of message"
+msgstr "usar <texto> no início da mensagem"
+
+#: builtin/fmt-merge-msg.c:675
+msgid "file to read from"
+msgstr "ficheiro a ler"
+
+#: builtin/for-each-ref.c:9
+msgid "git for-each-ref [<options>] [<pattern>]"
+msgstr "git for-each-ref [<opções>] [<padrão>]"
+
+#: builtin/for-each-ref.c:10
+msgid "git for-each-ref [--points-at <object>]"
+msgstr "git for-each-ref [--points-at <objeto>]"
+
+#: builtin/for-each-ref.c:11
+msgid "git for-each-ref [(--merged | --no-merged) [<object>]]"
+msgstr "git for-each-ref [(--merged | --no-merged) [<objeto>]]"
+
+#: builtin/for-each-ref.c:12
+msgid "git for-each-ref [--contains [<object>]]"
+msgstr "git for-each-ref [--contains [<objeto>]]"
+
+#: builtin/for-each-ref.c:27
+msgid "quote placeholders suitably for shells"
+msgstr ""
+"envolver os marcadores de posição em aspas de forma adequada para "
+"interpretadores de comandos"
+
+#: builtin/for-each-ref.c:29
+msgid "quote placeholders suitably for perl"
+msgstr "envolver os marcadores de posição em aspas de forma adequada para perl"
+
+#: builtin/for-each-ref.c:31
+msgid "quote placeholders suitably for python"
+msgstr ""
+"envolver os marcadores de posição em aspas de forma adequada para python"
+
+#: builtin/for-each-ref.c:33
+msgid "quote placeholders suitably for Tcl"
+msgstr "envolver os marcadores de posição em aspas de forma adequada para Tcl"
+
+#: builtin/for-each-ref.c:36
+msgid "show only <n> matched refs"
+msgstr "mostrar apenas <n> referências correspondidas"
+
+#: builtin/for-each-ref.c:37 builtin/tag.c:372
+msgid "format to use for the output"
+msgstr "formato a usar na saída"
+
+#: builtin/for-each-ref.c:41
+msgid "print only refs which points at the given object"
+msgstr "imprimir apenas referências que apontem para o objeto fornecido"
+
+#: builtin/for-each-ref.c:43
+msgid "print only refs that are merged"
+msgstr "imprimir apenas referenciadas incorporadas"
+
+#: builtin/for-each-ref.c:44
+msgid "print only refs that are not merged"
+msgstr "imprimir apenas referências não incorporadas"
+
+#: builtin/for-each-ref.c:45
+msgid "print only refs which contain the commit"
+msgstr "imprimir apenas referências que contenham o commit"
+
+#: builtin/fsck.c:156 builtin/prune.c:140
+msgid "Checking connectivity"
+msgstr "A verificar conectividade"
+
+#: builtin/fsck.c:486
+msgid "Checking object directories"
+msgstr "A verificar diretórios de objetos"
+
+#: builtin/fsck.c:553
+msgid "git fsck [<options>] [<object>...]"
+msgstr "git fsck [<opções>] [<objeto>...]"
+
+#: builtin/fsck.c:559
+msgid "show unreachable objects"
+msgstr "mostrar objetos inalcançáveis"
+
+#: builtin/fsck.c:560
+msgid "show dangling objects"
+msgstr "mostrar objetos suspensos"
+
+#: builtin/fsck.c:561
+msgid "report tags"
+msgstr "mostrar tags"
+
+#: builtin/fsck.c:562
+msgid "report root nodes"
+msgstr "mostrar nós raiz"
+
+#: builtin/fsck.c:563
+msgid "make index objects head nodes"
+msgstr "considerar objetos do índice como nós cabeça"
+
+#: builtin/fsck.c:564
+msgid "make reflogs head nodes (default)"
+msgstr "considerar os reflogs como nós cabeça (predefinição)"
+
+#: builtin/fsck.c:565
+msgid "also consider packs and alternate objects"
+msgstr "considerar também pacotes e objetos alternate"
+
+#: builtin/fsck.c:566
+msgid "check only connectivity"
+msgstr "verificar só a conetividade"
+
+#: builtin/fsck.c:567
+msgid "enable more strict checking"
+msgstr "ativar verificação mais rigorosa"
+
+#: builtin/fsck.c:569
+msgid "write dangling objects in .git/lost-found"
+msgstr "escrever objetos suspensos em .git/lost-found"
+
+#: builtin/fsck.c:570 builtin/prune.c:107
+msgid "show progress"
+msgstr "mostrar progresso"
+
+#: builtin/fsck.c:631
+msgid "Checking objects"
+msgstr "A verificar objetos"
+
+#: builtin/gc.c:25
+msgid "git gc [<options>]"
+msgstr "git gc [<opções>]"
+
+#: builtin/gc.c:72
 #, c-format
 msgid "Invalid %s: '%s'"
 msgstr "Inválido %s: '%s'"
 
-#: builtin/gc.c:90
+#: builtin/gc.c:139
 #, c-format
 msgid "insanely long object directory %.*s"
-msgstr ""
+msgstr "diretório de objetos demasiado longo %.*s"
 
-#: builtin/gc.c:221
-#, c-format
-msgid "Auto packing the repository for optimum performance.\n"
-msgstr ""
-
-#: builtin/gc.c:224
+#: builtin/gc.c:290
 #, c-format
 msgid ""
-"Auto packing the repository for optimum performance. You may also\n"
-"run \"git gc\" manually. See \"git help gc\" for more information.\n"
+"The last gc run reported the following. Please correct the root cause\n"
+"and remove %s.\n"
+"Automatic cleanup will not be performed until the file is removed.\n"
+"\n"
+"%s"
 msgstr ""
+"A última execução do gc reportou o seguinte.\n"
+"Corrija a raiz do problema e remova %s.\n"
+"A limpeza automática não será realizada enquanto o ficheiro existir.\n"
+"\n"
+"%s"
 
-#: builtin/gc.c:251
-msgid "There are too many unreachable loose objects; run 'git prune' to remove them."
+#: builtin/gc.c:327
+msgid "prune unreferenced objects"
+msgstr "eliminar ficheiros não referenciados"
+
+#: builtin/gc.c:329
+msgid "be more thorough (increased runtime)"
+msgstr "ser mais minucioso (aumenta o tempo de execução)"
+
+#: builtin/gc.c:330
+msgid "enable auto-gc mode"
+msgstr "ativar modo auto-gc"
+
+#: builtin/gc.c:331
+msgid "force running gc even if there may be another gc running"
+msgstr "forçar a execução do gc mesmo que haja outro gc a executar"
+
+#: builtin/gc.c:373
+#, c-format
+msgid "Auto packing the repository in background for optimum performance.\n"
 msgstr ""
+"A autocompactar o repositório em segundo plano para obter um melhor "
+"desempenho.\n"
 
-#: builtin/grep.c:216
+#: builtin/gc.c:375
+#, c-format
+msgid "Auto packing the repository for optimum performance.\n"
+msgstr "A autocompactar o repositório para obter um melhor desempenho.\n"
+
+#: builtin/gc.c:376
+#, c-format
+msgid "See \"git help gc\" for manual housekeeping.\n"
+msgstr "Consulte \"git help gc\" para ler sobre manutenção manual.\n"
+
+#: builtin/gc.c:397
+#, c-format
+msgid ""
+"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
+msgstr ""
+"gc já a executar na máquina '%s' pid %<PRIuMAX> (use --force se não for o "
+"caso)"
+
+#: builtin/gc.c:441
+msgid ""
+"There are too many unreachable loose objects; run 'git prune' to remove them."
+msgstr ""
+"Existem demasiados objeto soltos inalcançáveis; execute 'git prune' para os "
+"remover."
+
+#: builtin/grep.c:23
+msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
+msgstr "git grep [<opções>] [-e] <padrão> [<rev>...] [[--] <caminho>...]"
+
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
-msgstr ""
+msgstr "grep: falha ao criar thread: %s"
 
-#: builtin/grep.c:402
+#: builtin/grep.c:277
 #, c-format
-msgid "Failed to chdir: %s"
-msgstr ""
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "o número de threads especificado em %2$s é inválido (%1$d)"
 
-#: builtin/grep.c:478
-#: builtin/grep.c:512
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
-msgstr ""
+msgstr "não foi possível ler a árvore (%s)"
 
-#: builtin/grep.c:526
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
-msgstr ""
+msgstr "não foi possível efetuar grep de objetos do tipo %s"
 
-#: builtin/grep.c:584
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
-msgstr ""
+msgstr "a opção '%c' espera um valor numérico"
 
-#: builtin/grep.c:601
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
-msgstr ""
+msgstr "não é possível abrir '%s'"
 
-#: builtin/grep.c:888
+#: builtin/grep.c:644
+msgid "search in index instead of in the work tree"
+msgstr "procurar no índice em vez de procurar na árvore de trabalho"
+
+#: builtin/grep.c:646
+msgid "find in contents not managed by git"
+msgstr "procurar em conteúdos não geridos pelo git"
+
+#: builtin/grep.c:648
+msgid "search in both tracked and untracked files"
+msgstr "procurar em ficheiros controlados e não controlados"
+
+#: builtin/grep.c:650
+msgid "ignore files specified via '.gitignore'"
+msgstr "ignorar ficheiros especificados via '.gitignore'"
+
+#: builtin/grep.c:653
+msgid "show non-matching lines"
+msgstr "mostrar linhas não correspondidas"
+
+#: builtin/grep.c:655
+msgid "case insensitive matching"
+msgstr "não diferenciar maiúsculas de minúsculas"
+
+#: builtin/grep.c:657
+msgid "match patterns only at word boundaries"
+msgstr "corresponder padrões apenas a palavras"
+
+#: builtin/grep.c:659
+msgid "process binary files as text"
+msgstr "processar ficheiros binários como texto"
+
+#: builtin/grep.c:661
+msgid "don't match patterns in binary files"
+msgstr "ignorar ficheiros binários"
+
+#: builtin/grep.c:664
+msgid "process binary files with textconv filters"
+msgstr "processar ficheiros binários com filtros textconv"
+
+#: builtin/grep.c:666
+msgid "descend at most <depth> levels"
+msgstr "descer no máximo até <profundidade>"
+
+#: builtin/grep.c:670
+msgid "use extended POSIX regular expressions"
+msgstr "usar expressões regulares estendidas do POSIX"
+
+#: builtin/grep.c:673
+msgid "use basic POSIX regular expressions (default)"
+msgstr "usar expressões regulares básicas do POSIX (predefinição)"
+
+#: builtin/grep.c:676
+msgid "interpret patterns as fixed strings"
+msgstr "interpretar padrões como cadeias de caracteres fixas"
+
+#: builtin/grep.c:679
+msgid "use Perl-compatible regular expressions"
+msgstr "usar expressões regulares compatíveis com Perl"
+
+#: builtin/grep.c:682
+msgid "show line numbers"
+msgstr "mostrar números de linha"
+
+#: builtin/grep.c:683
+msgid "don't show filenames"
+msgstr "não mostrar nomes de ficheiro"
+
+#: builtin/grep.c:684
+msgid "show filenames"
+msgstr "mostrar nomes de ficheiro"
+
+#: builtin/grep.c:686
+msgid "show filenames relative to top directory"
+msgstr "mostrar nomes de ficheiro relativamente ao diretório superior"
+
+#: builtin/grep.c:688
+msgid "show only filenames instead of matching lines"
+msgstr "mostrar apenas nomes de ficheiro em vez de linhas correspondidas"
+
+#: builtin/grep.c:690
+msgid "synonym for --files-with-matches"
+msgstr "sinónimo de --files-with-matches"
+
+#: builtin/grep.c:693
+msgid "show only the names of files without match"
+msgstr "mostrar apenas nomes de ficheiro sem correspondência"
+
+#: builtin/grep.c:695
+msgid "print NUL after filenames"
+msgstr "imprimir NUL depois dos nomes de ficheiro"
+
+#: builtin/grep.c:697
+msgid "show the number of matches instead of matching lines"
+msgstr "mostrar o número de correspondências em vez das linha correspondidas"
+
+#: builtin/grep.c:698
+msgid "highlight matches"
+msgstr "realçar correspondências"
+
+#: builtin/grep.c:700
+msgid "print empty line between matches from different files"
+msgstr ""
+"imprimir uma linha em branco entre correspondências de diferentes ficheiros"
+
+#: builtin/grep.c:702
+msgid "show filename only once above matches from same file"
+msgstr ""
+"mostrar só uma vez o nome do ficheiro acima das correspondências dentro do "
+"mesmo ficheiro"
+
+#: builtin/grep.c:705
+msgid "show <n> context lines before and after matches"
+msgstr "mostrar <n> linhas de contexto antes e depois das correspondências"
+
+#: builtin/grep.c:708
+msgid "show <n> context lines before matches"
+msgstr "mostrar <n> linhas de contexto antes das correspondências"
+
+#: builtin/grep.c:710
+msgid "show <n> context lines after matches"
+msgstr "mostrar <n> linhas de contexto depois das correspondências"
+
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "usar <n> threads de trabalho"
+
+#: builtin/grep.c:713
+msgid "shortcut for -C NUM"
+msgstr "atalho para -C NUM"
+
+#: builtin/grep.c:716
+msgid "show a line with the function name before matches"
+msgstr "mostrar uma linha com o nome da função antes das correspondências"
+
+#: builtin/grep.c:718
+msgid "show the surrounding function"
+msgstr "mostrar a função circundante"
+
+#: builtin/grep.c:721
+msgid "read patterns from file"
+msgstr "ler padrões do ficheiro"
+
+#: builtin/grep.c:723
+msgid "match <pattern>"
+msgstr "procurar <padrão>"
+
+#: builtin/grep.c:725
+msgid "combine patterns specified with -e"
+msgstr "combinar padrões especificados com -e"
+
+#: builtin/grep.c:737
+msgid "indicate hit with exit status without output"
+msgstr "indicar padrão encontrado no valor de saída, mas não imprimir"
+
+#: builtin/grep.c:739
+msgid "show only matches from files that match all patterns"
+msgstr ""
+"mostrar apenas correspondências de ficheiro que tenham todos os padrões"
+
+#: builtin/grep.c:741
+msgid "show parse tree for grep expression"
+msgstr "mostrar árvore de analise da expressões grep"
+
+#: builtin/grep.c:745
+msgid "pager"
+msgstr "paginador"
+
+#: builtin/grep.c:745
+msgid "show matching files in the pager"
+msgstr "mostrar ficheiros com correspondências no paginador"
+
+#: builtin/grep.c:748
+msgid "allow calling of grep(1) (ignored by this build)"
+msgstr "permitir invocar grep(1) (ignorado nesta compilação)"
+
+#: builtin/grep.c:811
 msgid "no pattern given."
-msgstr ""
+msgstr "nenhum padrão fornecido."
 
-#: builtin/grep.c:902
+#: builtin/grep.c:843 builtin/index-pack.c:1475
 #, c-format
-msgid "bad object %s"
-msgstr ""
+msgid "invalid number of threads specified (%d)"
+msgstr "número de threads especificado inválido (%d)"
 
-#: builtin/grep.c:943
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
-msgstr ""
+msgstr "--open-files-in-pager só funciona na árvore de trabalho"
 
-#: builtin/grep.c:966
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
-msgstr ""
+msgstr "--cached ou --untracked não podem ser usados com --no-index."
 
-#: builtin/grep.c:971
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
-msgstr ""
+msgstr "--no-index ou --untracked não podem ser usados em revisões."
 
-#: builtin/grep.c:974
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr ""
+"--[no-]exclude-standard não podem ser usados em conteúdos não controlados."
 
-#: builtin/grep.c:982
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
-msgstr ""
+msgstr "--cached e árvores fornecidos simultaneamente."
 
-#: builtin/help.c:59
+#: builtin/hash-object.c:81
+msgid ""
+"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
+"[--] <file>..."
+msgstr ""
+"git hash-object [-t <tipo>] [-w] [--path=<ficheiro> | --no-filters] [--"
+"stdin] [--] <ficheiro>..."
+
+#: builtin/hash-object.c:82
+msgid "git hash-object  --stdin-paths"
+msgstr "git hash-object  --stdin-paths"
+
+#: builtin/hash-object.c:93
+msgid "type"
+msgstr "tipo"
+
+#: builtin/hash-object.c:93
+msgid "object type"
+msgstr "tipo do objeto"
+
+#: builtin/hash-object.c:94
+msgid "write the object into the object database"
+msgstr "escrever o objeto na base de dados de objetos"
+
+#: builtin/hash-object.c:96
+msgid "read the object from stdin"
+msgstr "ler o objeto da entrada padrão"
+
+#: builtin/hash-object.c:98
+msgid "store file as is without filters"
+msgstr "guardar o ficheiro tal como está, sem filtros"
+
+#: builtin/hash-object.c:99
+msgid ""
+"just hash any random garbage to create corrupt objects for debugging Git"
+msgstr ""
+"obter hash de lixo aleatório para criar objetos corrompidos para depurar o "
+"Git"
+
+#: builtin/hash-object.c:100
+msgid "process file as it were from this path"
+msgstr "processar o ficheiro como se este fosse do caminho indicado"
+
+#: builtin/help.c:41
+msgid "print all available commands"
+msgstr "imprimir todos os comandos disponíveis"
+
+#: builtin/help.c:42
+msgid "print list of useful guides"
+msgstr "imprimir lista de guias úteis"
+
+#: builtin/help.c:43
+msgid "show man page"
+msgstr "mostrar página do manual"
+
+#: builtin/help.c:44
+msgid "show manual in web browser"
+msgstr "mostrar o manual no navegador web"
+
+#: builtin/help.c:46
+msgid "show info page"
+msgstr "mostrar página info"
+
+#: builtin/help.c:52
+msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]"
+msgstr "git help [--all] [--guides] [--man | --web | --info] [<comando>]"
+
+#: builtin/help.c:64
 #, c-format
 msgid "unrecognized help format '%s'"
-msgstr "formato ajuda não reconhecido '%s'"
+msgstr "formato de ajuda não reconhecido '%s'"
 
-#: builtin/help.c:87
+#: builtin/help.c:91
 msgid "Failed to start emacsclient."
-msgstr ""
+msgstr "Falha ao iniciar emacsclient."
 
-#: builtin/help.c:100
+#: builtin/help.c:104
 msgid "Failed to parse emacsclient version."
-msgstr ""
+msgstr "Falha ao analisar a versão do emacsclient."
 
-#: builtin/help.c:108
+#: builtin/help.c:112
 #, c-format
 msgid "emacsclient version '%d' too old (< 22)."
-msgstr ""
+msgstr "a versão do emacsclient '%d' é demasiado antiga (< 22)."
 
-#: builtin/help.c:126
-#: builtin/help.c:154
-#: builtin/help.c:163
-#: builtin/help.c:171
+#: builtin/help.c:130 builtin/help.c:151 builtin/help.c:160 builtin/help.c:168
 #, c-format
 msgid "failed to exec '%s': %s"
-msgstr ""
+msgstr "falha ao executar '%s': %s"
 
-#: builtin/help.c:211
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
 "Please consider using 'man.<tool>.cmd' instead."
 msgstr ""
+"'%s': caminho para visualizador de manual não suportado.\n"
+"Considere usar 'man.<tool>.cmd'."
 
-#: builtin/help.c:223
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
 "Please consider using 'man.<tool>.path' instead."
 msgstr ""
+"'%s': comando de visualizador de manual suportado.\n"
+"Considere usar 'man.<tool>.path'."
 
-#: builtin/help.c:287
-msgid "The most commonly used git commands are:"
-msgstr ""
-
-#: builtin/help.c:355
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
-msgstr ""
+msgstr "'%s' visualizador de manual desconhecido."
 
-#: builtin/help.c:372
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
-msgstr ""
+msgstr "nenhum visualizador de manual atendeu o pedido"
 
-#: builtin/help.c:380
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
-msgstr ""
+msgstr "nenhum visualizador de info atendeu o pedido"
 
-#: builtin/help.c:391
-#, c-format
-msgid "'%s': not a documentation directory."
-msgstr ""
+#: builtin/help.c:408
+msgid "Defining attributes per path"
+msgstr "Definir atributos por caminho"
 
-#: builtin/help.c:432
-#: builtin/help.c:439
+#: builtin/help.c:409
+msgid "Everyday Git With 20 Commands Or So"
+msgstr "Diário Git com mais ou menos 20 Comandos"
+
+#: builtin/help.c:410
+msgid "A Git glossary"
+msgstr "Um Glossário do Git"
+
+#: builtin/help.c:411
+msgid "Specifies intentionally untracked files to ignore"
+msgstr ""
+"Especificar ficheiros não controlados para serem intencionalmente ignorados"
+
+#: builtin/help.c:412
+msgid "Defining submodule properties"
+msgstr "Definir propriedades de submódulos"
+
+#: builtin/help.c:413
+msgid "Specifying revisions and ranges for Git"
+msgstr "Especificar revisões e intervalos do Git"
+
+#: builtin/help.c:414
+msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
+msgstr "Uma introdução ao Git (versão 1.5.1 ou mais recente)"
+
+#: builtin/help.c:415
+msgid "An overview of recommended workflows with Git"
+msgstr "Uma descrição geral dos fluxos de trabalho recomendados para o Git"
+
+#: builtin/help.c:427
+msgid "The common Git guides are:\n"
+msgstr "Os guias comuns do Git:\n"
+
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
-msgstr ""
+msgstr "utilização: %s%s"
 
-#: builtin/help.c:453
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
-msgstr ""
+msgstr "'git %s' é um alias de '%s'"
 
-#: builtin/index-pack.c:84
+#: builtin/index-pack.c:152
+#, c-format
+msgid "unable to open %s"
+msgstr "não foi possível ler %s"
+
+#: builtin/index-pack.c:202
 #, c-format
 msgid "object type mismatch at %s"
-msgstr ""
+msgstr "incompatibilidade de tipo de objeto em %s"
 
-#: builtin/index-pack.c:104
-msgid "object of unexpected type"
-msgstr ""
+#: builtin/index-pack.c:222
+#, c-format
+msgid "did not receive expected object %s"
+msgstr "o objeto esperado %s não foi recebido"
 
-#: builtin/index-pack.c:141
+#: builtin/index-pack.c:225
+#, c-format
+msgid "object %s: expected type %s, found %s"
+msgstr "objeto %s: tipo esperado %s, obtido %s"
+
+#: builtin/index-pack.c:267
 #, c-format
 msgid "cannot fill %d byte"
 msgid_plural "cannot fill %d bytes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "não é possível preencher %d byte"
+msgstr[1] "não é possível preencher %d bytes"
 
-#: builtin/index-pack.c:151
+#: builtin/index-pack.c:277
 msgid "early EOF"
-msgstr ""
+msgstr "fim de ficheiro (EOF) prematuro"
 
-#: builtin/index-pack.c:152
+#: builtin/index-pack.c:278
 msgid "read error on input"
-msgstr ""
+msgstr "erro de leitura da entrada"
 
-#: builtin/index-pack.c:164
+#: builtin/index-pack.c:290
 msgid "used more bytes than were available"
-msgstr ""
+msgstr "foram usados mais bytes dos que estavam disponíveis"
 
-#: builtin/index-pack.c:171
+#: builtin/index-pack.c:297
 msgid "pack too large for current definition of off_t"
-msgstr ""
+msgstr "pacote demasiado grande para a definição atual de off_t"
 
-#: builtin/index-pack.c:187
+#: builtin/index-pack.c:313
 #, c-format
 msgid "unable to create '%s'"
-msgstr "não é possivel crear '%s'"
+msgstr "não foi possível criar '%s'"
 
-#: builtin/index-pack.c:192
+#: builtin/index-pack.c:318
 #, c-format
 msgid "cannot open packfile '%s'"
-msgstr "Não é possivel abrir o ficheiro packfile '%s'"
+msgstr "não é possível abrir o ficheiro de pacote '%s'"
 
-#: builtin/index-pack.c:206
+#: builtin/index-pack.c:332
 msgid "pack signature mismatch"
-msgstr ""
+msgstr "a assinatura do pacote não corresponde"
 
-#: builtin/index-pack.c:226
+#: builtin/index-pack.c:334
+#, c-format
+msgid "pack version %<PRIu32> unsupported"
+msgstr "versão de pacote %<PRIu32> não suportada"
+
+#: builtin/index-pack.c:352
 #, c-format
 msgid "pack has bad object at offset %lu: %s"
-msgstr ""
+msgstr "pacote com objeto incorreto no offset %lu: %s"
 
-#: builtin/index-pack.c:300
+#: builtin/index-pack.c:473
 #, c-format
 msgid "inflate returned %d"
-msgstr ""
+msgstr "a descompactação retornou %d"
 
-#: builtin/index-pack.c:345
+#: builtin/index-pack.c:522
 msgid "offset value overflow for delta base object"
-msgstr ""
+msgstr "delta de objeto base com capacidade excedida no valor de offset"
 
-#: builtin/index-pack.c:353
+#: builtin/index-pack.c:530
+#, fuzzy
 msgid "delta base offset is out of bound"
-msgstr ""
+msgstr "um offset de base delta ultrapassou o limite"
 
-#: builtin/index-pack.c:361
+#: builtin/index-pack.c:538
 #, c-format
 msgid "unknown object type %d"
-msgstr "ojecto com tipo desconhecido %d"
+msgstr "objeto de tipo desconhecido %d"
 
-#: builtin/index-pack.c:390
+#: builtin/index-pack.c:569
 msgid "cannot pread pack file"
-msgstr "Não é possivel pread pack file"
+msgstr "não é possível invocar pread sobre o ficheiro de pacote"
 
-#: builtin/index-pack.c:392
+#: builtin/index-pack.c:571
 #, c-format
 msgid "premature end of pack file, %lu byte missing"
 msgid_plural "premature end of pack file, %lu bytes missing"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "fim de ficheiro de pacote prematuro, falta %lu byte"
+msgstr[1] "fim de ficheiro de pacote prematuro, faltam %lu bytes"
 
-#: builtin/index-pack.c:405
+#: builtin/index-pack.c:597
 msgid "serious inflate inconsistency"
-msgstr ""
+msgstr "inconsistência de descompactação grave"
 
-#: builtin/index-pack.c:476
-#, c-format
-msgid "cannot read existing object %s"
-msgstr "não foi possível ler objecto existente %s"
-
-#: builtin/index-pack.c:479
+#: builtin/index-pack.c:743 builtin/index-pack.c:749 builtin/index-pack.c:772
+#: builtin/index-pack.c:806 builtin/index-pack.c:815
 #, c-format
 msgid "SHA1 COLLISION FOUND WITH %s !"
-msgstr ""
+msgstr "COLISÃO DE SHA1 COM %s ENCONTRADA!"
 
-#: builtin/index-pack.c:488
+#: builtin/index-pack.c:746 builtin/pack-objects.c:162
+#: builtin/pack-objects.c:254
+#, c-format
+msgid "unable to read %s"
+msgstr "não foi possível ler %s"
+
+#: builtin/index-pack.c:812
+#, c-format
+msgid "cannot read existing object %s"
+msgstr "não é possível ler o objeto existente %s"
+
+#: builtin/index-pack.c:826
 #, c-format
 msgid "invalid blob object %s"
-msgstr "inválido objecto blob %s"
+msgstr "objeto blob inválido %s"
 
-#: builtin/index-pack.c:500
+#: builtin/index-pack.c:840
 #, c-format
 msgid "invalid %s"
-msgstr "inválido: %s"
-
-#: builtin/index-pack.c:502
-msgid "Error in object"
-msgstr ""
-
-#: builtin/index-pack.c:504
-#, c-format
-msgid "Not all child objects of %s are reachable"
-msgstr ""
-
-#: builtin/index-pack.c:576
-#: builtin/index-pack.c:602
-msgid "failed to apply delta"
-msgstr ""
-
-#: builtin/index-pack.c:706
-msgid "Receiving objects"
-msgstr ""
-
-#: builtin/index-pack.c:706
-msgid "Indexing objects"
-msgstr ""
-
-#: builtin/index-pack.c:728
-msgid "pack is corrupted (SHA1 mismatch)"
-msgstr ""
-
-#: builtin/index-pack.c:733
-msgid "cannot fstat packfile"
-msgstr "Não é possivel fstat packfile"
-
-#: builtin/index-pack.c:736
-msgid "pack has junk at the end"
-msgstr ""
-
-#: builtin/index-pack.c:754
-msgid "Resolving deltas"
-msgstr "Resolvendo deltas"
-
-#: builtin/index-pack.c:787
-#, c-format
-msgid "unable to deflate appended object (%d)"
-msgstr ""
-
-#: builtin/index-pack.c:866
-#, c-format
-msgid "local object %s is corrupt"
-msgstr ""
-
-#: builtin/index-pack.c:890
-msgid "error while closing pack file"
-msgstr ""
-
-#: builtin/index-pack.c:903
-#, c-format
-msgid "cannot write keep file '%s'"
-msgstr "não é possivel escrever o fichero kepp '%s'"
-
-#: builtin/index-pack.c:911
-#, c-format
-msgid "cannot close written keep file '%s'"
-msgstr "Não é possivel fechar o fichero escrito '%s'"
-
-#: builtin/index-pack.c:924
-msgid "cannot store pack file"
-msgstr "Não é possivel guardar o fichero pack"
-
-#: builtin/index-pack.c:935
-msgid "cannot store index file"
-msgstr "Não é possivel guardar fichero index"
-
-#: builtin/index-pack.c:1024
-#, c-format
-msgid "Cannot open existing pack file '%s'"
-msgstr "Não é possivel abrir o existente ficheiro pack %s"
-
-#: builtin/index-pack.c:1026
-#, c-format
-msgid "Cannot open existing pack idx file for '%s'"
-msgstr "Não é possivel abrir o ficheiro 'pack idx' para '%s'"
-
-#: builtin/index-pack.c:1073
-#, c-format
-msgid "non delta: %d object"
-msgid_plural "non delta: %d objects"
-msgstr[0] ""
-msgstr[1] ""
-
-#: builtin/index-pack.c:1080
-#, c-format
-msgid "chain length = %d: %lu object"
-msgid_plural "chain length = %d: %lu objects"
-msgstr[0] ""
-msgstr[1] ""
-
-#: builtin/index-pack.c:1107
-msgid "Cannot come back to cwd"
-msgstr ""
-
-#: builtin/index-pack.c:1140
-#: builtin/index-pack.c:1143
-#: builtin/index-pack.c:1155
-#: builtin/index-pack.c:1159
-#, c-format
-msgid "bad %s"
 msgstr "inválido %s"
 
-#: builtin/index-pack.c:1173
-msgid "--fix-thin cannot be used without --stdin"
-msgstr ""
+#: builtin/index-pack.c:843
+msgid "Error in object"
+msgstr "Erro no objeto"
 
-#: builtin/index-pack.c:1177
-#: builtin/index-pack.c:1187
+#: builtin/index-pack.c:845
 #, c-format
-msgid "packfile name '%s' does not end with '.pack'"
-msgstr ""
+msgid "Not all child objects of %s are reachable"
+msgstr "Nem todos os objetos filhos de %s são alcançáveis"
 
-#: builtin/index-pack.c:1196
-msgid "--verify with no packfile name given"
-msgstr ""
+#: builtin/index-pack.c:917 builtin/index-pack.c:948
+msgid "failed to apply delta"
+msgstr "falha ao aplicar delta"
 
-#: builtin/index-pack.c:1220
+#: builtin/index-pack.c:1118
+msgid "Receiving objects"
+msgstr "A receber objetos"
+
+#: builtin/index-pack.c:1118
+msgid "Indexing objects"
+msgstr "A indexar objetos"
+
+#: builtin/index-pack.c:1150
+msgid "pack is corrupted (SHA1 mismatch)"
+msgstr "pacote corrompido (SHA1 não corresponde)"
+
+#: builtin/index-pack.c:1155
+msgid "cannot fstat packfile"
+msgstr "não é possível invocar fstat sobre o ficheiro de pacote"
+
+#: builtin/index-pack.c:1158
+msgid "pack has junk at the end"
+msgstr "pacote com lixo no final"
+
+#: builtin/index-pack.c:1169
+msgid "confusion beyond insanity in parse_pack_objects()"
+msgstr "extrema confusão em parse_pack_objects()"
+
+#: builtin/index-pack.c:1194
+msgid "Resolving deltas"
+msgstr "A resolver deltas"
+
+#: builtin/index-pack.c:1205
+#, c-format
+msgid "unable to create thread: %s"
+msgstr "não foi possível criar thread: %s"
+
+#: builtin/index-pack.c:1247
 msgid "confusion beyond insanity"
-msgstr ""
+msgstr "extrema confusão"
 
-#: builtin/index-pack.c:1239
+#: builtin/index-pack.c:1253
+#, c-format
+msgid "completed with %d local objects"
+msgstr "concluído com %d objetos locais"
+
+#: builtin/index-pack.c:1263
+#, c-format
+msgid "Unexpected tail checksum for %s (disk corruption?)"
+msgstr "Soma de verificação inesperada no final de %s (corrupção no disco?)"
+
+#: builtin/index-pack.c:1267
 #, c-format
 msgid "pack has %d unresolved delta"
 msgid_plural "pack has %d unresolved deltas"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "pacote com %d delta não resolvido"
+msgstr[1] "pacote com %d deltas não resolvidos"
 
-#: builtin/init-db.c:35
+#: builtin/index-pack.c:1291
 #, c-format
-msgid "Could not make %s writable by group"
-msgstr ""
+msgid "unable to deflate appended object (%d)"
+msgstr "não é possível compactar objeto acrescentado (%d)"
 
-#: builtin/init-db.c:62
+#: builtin/index-pack.c:1367
 #, c-format
-msgid "insanely long template name %s"
-msgstr ""
+msgid "local object %s is corrupt"
+msgstr "objeto local %s corrompido"
 
-#: builtin/init-db.c:67
+#: builtin/index-pack.c:1391
+msgid "error while closing pack file"
+msgstr "erro ao fechar ficheiro de pacote"
+
+#: builtin/index-pack.c:1404
+#, c-format
+msgid "cannot write keep file '%s'"
+msgstr "não é possível escrever o ficheiro de conservação '%s'"
+
+#: builtin/index-pack.c:1412
+#, c-format
+msgid "cannot close written keep file '%s'"
+msgstr "não é possível fechar o ficheiro de conservação '%s' escrito"
+
+#: builtin/index-pack.c:1425
+msgid "cannot store pack file"
+msgstr "não é possível guardar ficheiro de pacote"
+
+#: builtin/index-pack.c:1436
+msgid "cannot store index file"
+msgstr "não é possível guardar o ficheiro índice"
+
+#: builtin/index-pack.c:1469
+#, c-format
+msgid "bad pack.indexversion=%<PRIu32>"
+msgstr "pack.indexversion=%<PRIu32> incorreto"
+
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
+#, c-format
+msgid "no threads support, ignoring %s"
+msgstr "sem suporte de threads, %s ignorado"
+
+#: builtin/index-pack.c:1538
+#, c-format
+msgid "Cannot open existing pack file '%s'"
+msgstr "Não é possível abrir o ficheiro de pacote '%s' existente"
+
+#: builtin/index-pack.c:1540
+#, c-format
+msgid "Cannot open existing pack idx file for '%s'"
+msgstr "Não é possível abrir o ficheiro de índice do pacote existente de '%s'"
+
+#: builtin/index-pack.c:1587
+#, c-format
+msgid "non delta: %d object"
+msgid_plural "non delta: %d objects"
+msgstr[0] "%d objeto não delta"
+msgstr[1] "%d objetos não delta"
+
+#: builtin/index-pack.c:1594
+#, c-format
+msgid "chain length = %d: %lu object"
+msgid_plural "chain length = %d: %lu objects"
+msgstr[0] "comprimento de cadeia = %d: %lu objeto"
+msgstr[1] "comprimento de cadeia = %d: %lu objetos"
+
+#: builtin/index-pack.c:1624
+msgid "Cannot come back to cwd"
+msgstr "Não é possível voltar ao diretório de trabalho atual"
+
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
+#, c-format
+msgid "bad %s"
+msgstr "%s incorreto"
+
+#: builtin/index-pack.c:1709
+msgid "--fix-thin cannot be used without --stdin"
+msgstr "--fix-thin não pode ser usado sem --stdin"
+
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
+#, c-format
+msgid "packfile name '%s' does not end with '.pack'"
+msgstr "o nome do ficheiro de pacote '%s' não termina em '.pack'"
+
+#: builtin/index-pack.c:1730
+msgid "--verify with no packfile name given"
+msgstr "--verify sem nome do ficheiro de pacote indicado"
+
+#: builtin/init-db.c:55
 #, c-format
 msgid "cannot stat '%s'"
-msgstr ""
+msgstr "não é possível invocar stat sobre '%s'"
 
-#: builtin/init-db.c:73
+#: builtin/init-db.c:61
 #, c-format
 msgid "cannot stat template '%s'"
-msgstr ""
+msgstr "não é possível invocar stat sobre o modelo '%s'"
 
-#: builtin/init-db.c:80
+#: builtin/init-db.c:66
 #, c-format
 msgid "cannot opendir '%s'"
-msgstr ""
+msgstr "não é possível abrir (opendir) '%s'"
 
-#: builtin/init-db.c:97
+#: builtin/init-db.c:77
 #, c-format
 msgid "cannot readlink '%s'"
-msgstr ""
+msgstr "não é possível ler (readlink) '%s'"
 
-#: builtin/init-db.c:99
-#, c-format
-msgid "insanely long symlink %s"
-msgstr ""
-
-#: builtin/init-db.c:102
+#: builtin/init-db.c:79
 #, c-format
 msgid "cannot symlink '%s' '%s'"
-msgstr ""
+msgstr "não é possível criar a ligação simbólica '%s' '%s'"
 
-#: builtin/init-db.c:106
+#: builtin/init-db.c:85
 #, c-format
 msgid "cannot copy '%s' to '%s'"
-msgstr ""
+msgstr "não é possível copiar '%s' para '%s'"
 
-#: builtin/init-db.c:110
+#: builtin/init-db.c:89
 #, c-format
 msgid "ignoring template %s"
-msgstr ""
+msgstr "modelo %s ignorado"
 
-#: builtin/init-db.c:133
-#, c-format
-msgid "insanely long template path %s"
-msgstr ""
-
-#: builtin/init-db.c:141
+#: builtin/init-db.c:118
 #, c-format
 msgid "templates not found %s"
-msgstr ""
+msgstr "modelos não encontrados em %s"
 
-#: builtin/init-db.c:154
+#: builtin/init-db.c:131
 #, c-format
 msgid "not copying templates of a wrong format version %d from '%s'"
 msgstr ""
+"os modelos com versão de formato %d incorreta não foram copiados de '%s'"
 
-#: builtin/init-db.c:192
-#, c-format
-msgid "insane git directory %s"
-msgstr ""
-
-#: builtin/init-db.c:322
-#: builtin/init-db.c:325
+#: builtin/init-db.c:309 builtin/init-db.c:312
 #, c-format
 msgid "%s already exists"
 msgstr "%s já existe"
 
-#: builtin/init-db.c:354
+#: builtin/init-db.c:340
 #, c-format
 msgid "unable to handle file type %d"
-msgstr ""
+msgstr "não foi possível processar o tipo de ficheiro %d"
 
-#: builtin/init-db.c:357
+#: builtin/init-db.c:343
 #, c-format
 msgid "unable to move %s to %s"
-msgstr ""
+msgstr "não foi possível mover %s para %s"
 
-#: builtin/init-db.c:362
-#, c-format
-msgid "Could not create git link %s"
-msgstr ""
-
-#.
-#. * TRANSLATORS: The first '%s' is either "Reinitialized
-#. * existing" or "Initialized empty", the second " shared" or
-#. * "", and the last '%s%s' is the verbatim directory name.
-#.
-#: builtin/init-db.c:419
+#. TRANSLATORS: The first '%s' is either "Reinitialized
+#. existing" or "Initialized empty", the second " shared" or
+#. "", and the last '%s%s' is the verbatim directory name.
+#: builtin/init-db.c:399
 #, c-format
 msgid "%s%s Git repository in %s%s\n"
-msgstr ""
+msgstr "Repositório Git %s%s em %s%s\n"
 
-#: builtin/init-db.c:420
+#: builtin/init-db.c:400
 msgid "Reinitialized existing"
-msgstr ""
+msgstr "existente reinicializado"
 
-#: builtin/init-db.c:420
+#: builtin/init-db.c:400
 msgid "Initialized empty"
-msgstr "Inicializada vazio"
+msgstr "vazio inicializado"
 
-#: builtin/init-db.c:421
+#: builtin/init-db.c:401
 msgid " shared"
 msgstr " partilhado"
 
-#: builtin/init-db.c:440
-msgid "cannot tell cwd"
+#: builtin/init-db.c:448
+msgid ""
+"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--"
+"shared[=<permissions>]] [<directory>]"
 msgstr ""
+"git init [-q | --quiet] [--bare] [--template=<diretório-modelo>] [--"
+"shared[=<permissões>]] [<diretório>]"
 
-#: builtin/init-db.c:521
-#: builtin/init-db.c:528
+#: builtin/init-db.c:471
+msgid "permissions"
+msgstr "permissões"
+
+#: builtin/init-db.c:472
+msgid "specify that the git repository is to be shared amongst several users"
+msgstr ""
+"especificar que o repositório git será partilhado por vários utilizadores"
+
+#: builtin/init-db.c:506 builtin/init-db.c:511
 #, c-format
 msgid "cannot mkdir %s"
-msgstr ""
+msgstr "não é possível criar o diretório %s"
 
-#: builtin/init-db.c:532
+#: builtin/init-db.c:515
 #, c-format
 msgid "cannot chdir to %s"
-msgstr ""
+msgstr "não é possível mudar para o diretório %s"
 
-#: builtin/init-db.c:554
+#: builtin/init-db.c:536
 #, c-format
-msgid "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-dir=<directory>)"
+msgid ""
+"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
+"dir=<directory>)"
 msgstr ""
+"%s (ou --work-tree=<diretório>) não é permitido sem especificar %s (ou --git-"
+"dir=<diretório>)"
 
-#: builtin/init-db.c:578
-msgid "Cannot access current working directory"
-msgstr ""
-
-#: builtin/init-db.c:585
+#: builtin/init-db.c:564
 #, c-format
 msgid "Cannot access work tree '%s'"
-msgstr ""
+msgstr "Não é possível aceder à árvore de trabalho '%s'"
 
-#: builtin/log.c:188
+#: builtin/interpret-trailers.c:15
+msgid ""
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
+msgstr ""
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<valor>])...] [<ficheiro>...]"
+
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "editar ficheiros no local"
+
+#: builtin/interpret-trailers.c:27
+msgid "trim empty trailers"
+msgstr "cortar terminadores vazios"
+
+#: builtin/interpret-trailers.c:28
+msgid "trailer"
+msgstr "terminador"
+
+#: builtin/interpret-trailers.c:29
+msgid "trailer(s) to add"
+msgstr "terminadores a adicionar"
+
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "nenhum ficheiro de entrada fornecido para edição no local"
+
+#: builtin/log.c:43
+msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
+msgstr "git log [<opções>] [<intervalo-de-revisões>] [[--] <caminho>...]"
+
+#: builtin/log.c:44
+msgid "git show [<options>] <object>..."
+msgstr "git show [<opções>] <objeto>..."
+
+#: builtin/log.c:83
+#, c-format
+msgid "invalid --decorate option: %s"
+msgstr "opção --decorate inválida: %s"
+
+#: builtin/log.c:131
+msgid "suppress diff output"
+msgstr "suprimir saída do diff"
+
+#: builtin/log.c:132
+msgid "show source"
+msgstr "mostrar origem"
+
+#: builtin/log.c:133
+msgid "Use mail map file"
+msgstr "usar ficheiro de mapeamento de correio"
+
+#: builtin/log.c:134
+msgid "decorate options"
+msgstr "opções de decoração"
+
+#: builtin/log.c:137
+msgid "Process line range n,m in file, counting from 1"
+msgstr "processar intervalo de linhas n,m, a cantar a partir de 1"
+
+#: builtin/log.c:233
 #, c-format
 msgid "Final output: %d %s\n"
-msgstr ""
+msgstr "Resultado final: %d %s\n"
 
-#: builtin/log.c:401
-#: builtin/log.c:489
+#: builtin/log.c:465
+#, c-format
+msgid "git show %s: bad file"
+msgstr "git show %s: ficheiro incorreto"
+
+#: builtin/log.c:479 builtin/log.c:572
 #, c-format
 msgid "Could not read object %s"
-msgstr ""
+msgstr "Não foi possível ler o objeto %s"
 
-#: builtin/log.c:513
+#: builtin/log.c:596
 #, c-format
 msgid "Unknown type: %d"
 msgstr "Tipo desconhecido: %d"
 
-#: builtin/log.c:602
+#: builtin/log.c:715
 msgid "format.headers without value"
-msgstr ""
+msgstr "format.headers sem valor"
 
-#: builtin/log.c:675
+#: builtin/log.c:801
 msgid "name of output directory is too long"
-msgstr "nome do diretório de saída é demasiado longo"
+msgstr "o nome do diretório de saída é demasiado longo"
 
-#: builtin/log.c:686
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
-msgstr "Não é possivel abrir o ficheiro patch %s"
+msgstr "Não é possível abrir o ficheiro de patch %s"
 
-#: builtin/log.c:700
+#: builtin/log.c:830
 msgid "Need exactly one range."
-msgstr "Necessita de exatamente um intervalo."
+msgstr "É necessário exatamente um intervalo."
 
-#: builtin/log.c:708
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "Não é um intervalo."
 
-#: builtin/log.c:745
-msgid "Could not extract email from committer identity."
-msgstr "Não foi possível extrair a identidade do committer do e-mail."
-
-#: builtin/log.c:791
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
-msgstr "Carta de apresentação necessita um modelo de e-mail"
+msgstr "A carta de apresentação precisa de um formato de e-mail"
 
-#: builtin/log.c:885
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
-msgstr ""
+msgstr "in-reply-to incorreto: %s"
 
-#: builtin/log.c:958
+#: builtin/log.c:1053
+msgid "git format-patch [<options>] [<since> | <revision-range>]"
+msgstr "git format-patch [<opções>] [<desde> | <intervalo-de-revisões>]"
+
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Dois diretórios de saída?"
 
-#: builtin/log.c:1179
-#, c-format
-msgid "bogus committer info %s"
-msgstr ""
+#: builtin/log.c:1214
+msgid "use [PATCH n/m] even with a single patch"
+msgstr "usar [PATCH n/m] mesmo com um único patch"
 
-#: builtin/log.c:1224
-msgid "-n and -k are mutually exclusive."
+#: builtin/log.c:1217
+msgid "use [PATCH] even with multiple patches"
+msgstr "usar [PATCH] mesmo com múltiplos patches"
+
+#: builtin/log.c:1221
+msgid "print patches to standard out"
+msgstr "imprimir patches para a saída padrão"
+
+#: builtin/log.c:1223
+msgid "generate a cover letter"
+msgstr "gerar uma carta de apresentação"
+
+#: builtin/log.c:1225
+msgid "use simple number sequence for output file names"
 msgstr ""
+"usar uma sequência de números simples para denominar os ficheiros gerados"
 
 #: builtin/log.c:1226
-msgid "--subject-prefix and -k are mutually exclusive."
-msgstr ""
+msgid "sfx"
+msgstr "sfx"
 
-#: builtin/log.c:1234
-msgid "--name-only does not make sense"
-msgstr ""
+#: builtin/log.c:1227
+msgid "use <sfx> instead of '.patch'"
+msgstr "usar <sfx> em vez de '.patch'"
+
+#: builtin/log.c:1229
+msgid "start numbering patches at <n> instead of 1"
+msgstr "começar a numerar os patches em <n> em vez de 1"
+
+#: builtin/log.c:1231
+msgid "mark the series as Nth re-roll"
+msgstr "marcar a série como a n-ésima reiteração"
+
+#: builtin/log.c:1233
+msgid "Use [<prefix>] instead of [PATCH]"
+msgstr "usar [<prefixo>] em vez de [PATCH]"
 
 #: builtin/log.c:1236
-msgid "--name-status does not make sense"
-msgstr ""
+msgid "store resulting files in <dir>"
+msgstr "guardar os ficheiros resultantes em <dir>"
 
-#: builtin/log.c:1238
-msgid "--check does not make sense"
+#: builtin/log.c:1239
+msgid "don't strip/add [PATCH]"
+msgstr "não tirar/inserir [PATCH]"
+
+#: builtin/log.c:1242
+msgid "don't output binary diffs"
+msgstr "não gerar diffs binários"
+
+#: builtin/log.c:1244
+msgid "output all-zero hash in From header"
+msgstr "preencher o cabeçalho From com hash de zeros"
+
+#: builtin/log.c:1246
+msgid "don't include a patch matching a commit upstream"
+msgstr "não incluir um patch que coincida com um commit a montante"
+
+#: builtin/log.c:1248
+msgid "show patch format instead of default (patch + stat)"
 msgstr ""
+"mostrar no formato de patch em vez de no formato por omissão (patch + stat)"
+
+#: builtin/log.c:1250
+msgid "Messaging"
+msgstr "Mensagem"
+
+#: builtin/log.c:1251
+msgid "header"
+msgstr "cabeçalho"
+
+#: builtin/log.c:1252
+msgid "add email header"
+msgstr "adicionar cabeçalho de e-mail"
+
+#: builtin/log.c:1253 builtin/log.c:1255
+msgid "email"
+msgstr "e-mail"
+
+#: builtin/log.c:1253
+msgid "add To: header"
+msgstr "adicionar cabeçalho To:"
+
+#: builtin/log.c:1255
+msgid "add Cc: header"
+msgstr "adicionar cabeçalho Cc:"
+
+#: builtin/log.c:1257
+msgid "ident"
+msgstr "identidade"
+
+#: builtin/log.c:1258
+msgid "set From address to <ident> (or committer ident if absent)"
+msgstr ""
+"definir o endereço From como <identidade> (ou como identidade do committer "
+"se não indicado)"
+
+#: builtin/log.c:1260
+msgid "message-id"
+msgstr "id-mensagem"
 
 #: builtin/log.c:1261
+msgid "make first mail a reply to <message-id>"
+msgstr "usar o primeiro email para responder a <id-mensagem>"
+
+#: builtin/log.c:1262 builtin/log.c:1265
+msgid "boundary"
+msgstr "limite"
+
+#: builtin/log.c:1263
+msgid "attach the patch"
+msgstr "anexar o patch"
+
+#: builtin/log.c:1266
+msgid "inline the patch"
+msgstr "incorporar o patch"
+
+#: builtin/log.c:1270
+msgid "enable message threading, styles: shallow, deep"
+msgstr "ativar mensagens por tópicos, estilos: shallow (raso), deep (profundo)"
+
+#: builtin/log.c:1272
+msgid "signature"
+msgstr "assinatura"
+
+#: builtin/log.c:1273
+msgid "add a signature"
+msgstr "adicionar uma assinatura"
+
+#: builtin/log.c:1275
+msgid "add a signature from a file"
+msgstr "adicionar uma assinatura de um ficheiro"
+
+#: builtin/log.c:1276
+msgid "don't print the patch filenames"
+msgstr "não imprimir os nomes dos ficheiros de patch"
+
+#: builtin/log.c:1365
+msgid "-n and -k are mutually exclusive."
+msgstr "-n e -k são mutuamente exclusivos."
+
+#: builtin/log.c:1367
+msgid "--subject-prefix and -k are mutually exclusive."
+msgstr "--subject-prefix e -k são mutuamente exclusivos."
+
+#: builtin/log.c:1375
+msgid "--name-only does not make sense"
+msgstr "--name-only não faz sentido"
+
+#: builtin/log.c:1377
+msgid "--name-status does not make sense"
+msgstr "--name-status não faz sentido"
+
+#: builtin/log.c:1379
+msgid "--check does not make sense"
+msgstr "--check não faz sentido"
+
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "saída padrão, ou diretório, qual deles?"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
-msgstr ""
+msgstr "Não foi possível criar o diretório '%s'"
 
-#: builtin/log.c:1416
-msgid "Failed to create output files"
-msgstr "Falhou ao criar ficheiros de saída"
-
-#: builtin/log.c:1520
+#: builtin/log.c:1506
 #, c-format
-msgid "Could not find a tracked remote branch, please specify <upstream> manually.\n"
-msgstr ""
+msgid "unable to read signature file '%s'"
+msgstr "não é possível ler o ficheiro de assinatura '%s'"
 
-#: builtin/log.c:1536
-#: builtin/log.c:1538
-#: builtin/log.c:1550
+#: builtin/log.c:1569
+msgid "Failed to create output files"
+msgstr "Falha ao criar os ficheiros de saída"
+
+#: builtin/log.c:1617
+msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
+msgstr "git cherry [-v] [<ramo-a-montante> [<head> [<limite>]]]"
+
+#: builtin/log.c:1671
+#, c-format
+msgid ""
+"Could not find a tracked remote branch, please specify <upstream> manually.\n"
+msgstr ""
+"O ramo remoto seguido não foi encontrado, especifique <ramo-a-montante> "
+"manualmente.\n"
+
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Commit desconhecido %s"
 
-#: builtin/merge.c:90
-msgid "switch `m' requires a value"
-msgstr ""
+#: builtin/ls-files.c:378
+msgid "git ls-files [<options>] [<file>...]"
+msgstr "git ls-files [<opções>] [<ficheiro>...]"
 
-#: builtin/merge.c:127
+#: builtin/ls-files.c:427
+msgid "identify the file status with tags"
+msgstr "identificar o estado do ficheiro com tags"
+
+#: builtin/ls-files.c:429
+msgid "use lowercase letters for 'assume unchanged' files"
+msgstr ""
+"usar letras minúsculas para ficheiros 'assumido não alterado' ('assume "
+"unchanged')"
+
+#: builtin/ls-files.c:431
+msgid "show cached files in the output (default)"
+msgstr "mostrar ficheiros em cache na saída"
+
+#: builtin/ls-files.c:433
+msgid "show deleted files in the output"
+msgstr "mostrar ficheiros eliminados na saída"
+
+#: builtin/ls-files.c:435
+msgid "show modified files in the output"
+msgstr "mostrar ficheiros modificados na saída"
+
+#: builtin/ls-files.c:437
+msgid "show other files in the output"
+msgstr "mostrar outros ficheiros na saída"
+
+#: builtin/ls-files.c:439
+msgid "show ignored files in the output"
+msgstr "mostrar ficheiros ignorados na saída"
+
+#: builtin/ls-files.c:442
+msgid "show staged contents' object name in the output"
+msgstr "mostrar nome de objetos com conteúdo preparado, na saída"
+
+#: builtin/ls-files.c:444
+msgid "show files on the filesystem that need to be removed"
+msgstr ""
+"mostrar ficheiros no sistema de ficheiros que precisam de ser removidos"
+
+#: builtin/ls-files.c:446
+msgid "show 'other' directories' names only"
+msgstr "mostrar nomes de diretórios 'other' (outro)"
+
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "mostrar finais de linha dos ficheiros"
+
+#: builtin/ls-files.c:450
+msgid "don't show empty directories"
+msgstr "não mostrar diretórios vazios"
+
+#: builtin/ls-files.c:453
+msgid "show unmerged files in the output"
+msgstr "mostrar ficheiros com versões não conciliadas, na saída"
+
+#: builtin/ls-files.c:455
+msgid "show resolve-undo information"
+msgstr "mostrar informação de resolver-anular"
+
+#: builtin/ls-files.c:457
+msgid "skip files matching pattern"
+msgstr "ignorar ficheiros que correspondam ao padrão"
+
+#: builtin/ls-files.c:460
+msgid "exclude patterns are read from <file>"
+msgstr "ler padrões de exclusão do <ficheiro>"
+
+#: builtin/ls-files.c:463
+msgid "read additional per-directory exclude patterns in <file>"
+msgstr "ler padrões de exclusão por diretório do <ficheiro>"
+
+#: builtin/ls-files.c:465
+msgid "add the standard git exclusions"
+msgstr "incluir as exclusões standard do git"
+
+#: builtin/ls-files.c:468
+msgid "make the output relative to the project top directory"
+msgstr "mostrar os caminhos relativamente ao diretório superior do projeto"
+
+#: builtin/ls-files.c:471
+msgid "if any <file> is not in the index, treat this as an error"
+msgstr "se um <ficheiro> não estiver no índice, tratar como erro"
+
+#: builtin/ls-files.c:472
+msgid "tree-ish"
+msgstr "árvore"
+
+#: builtin/ls-files.c:473
+msgid "pretend that paths removed since <tree-ish> are still present"
+msgstr "fingir que os caminhos removidos desde <árvore> ainda estão presentes"
+
+#: builtin/ls-files.c:475
+msgid "show debugging data"
+msgstr "mostrar dados de depuração"
+
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repositório> [<referências>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "não imprimir URL remoto"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exec"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "caminho para git-upload-pack no servidor remoto"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "restringir-se a tags"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "restringir-se a cabeças"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "não mostrar tags descascadas"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "ter url.<base>.insteadOf em conta"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "terminar com código de saída 2 se não forem encontradas referências"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "mostrar a referência subjacente em adição ao objeto por ela apontado"
+
+#: builtin/ls-tree.c:28
+msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
+msgstr "git ls-tree [<opções>] <árvore> [<caminho>...]"
+
+#: builtin/ls-tree.c:128
+msgid "only show trees"
+msgstr "mostrar apenas árvores"
+
+#: builtin/ls-tree.c:130
+msgid "recurse into subtrees"
+msgstr "percorrer as subárvores recursivamente"
+
+#: builtin/ls-tree.c:132
+msgid "show trees when recursing"
+msgstr "mostrar árvores ao percorrer"
+
+#: builtin/ls-tree.c:135
+msgid "terminate entries with NUL byte"
+msgstr "terminar entradas com o byte NUL"
+
+#: builtin/ls-tree.c:136
+msgid "include object size"
+msgstr "incluir dimensão dos objetos"
+
+#: builtin/ls-tree.c:138 builtin/ls-tree.c:140
+msgid "list only filenames"
+msgstr "listar apenas os nomes de ficheiro"
+
+#: builtin/ls-tree.c:143
+msgid "use full path names"
+msgstr "usar nomes de caminho completos"
+
+#: builtin/ls-tree.c:145
+msgid "list entire tree; not just current directory (implies --full-name)"
+msgstr ""
+"mostrar a árvore completa; não apenas o diretório atual (implica --full-name)"
+
+#: builtin/merge.c:45
+msgid "git merge [<options>] [<commit>...]"
+msgstr "git merge [<opções>] [<commit>...]"
+
+#: builtin/merge.c:46
+msgid "git merge [<options>] <msg> HEAD <commit>"
+msgstr "git merge [<opções>] <msg> HEAD <commit>"
+
+#: builtin/merge.c:47
+msgid "git merge --abort"
+msgstr "git merge --abort"
+
+#: builtin/merge.c:100
+msgid "switch `m' requires a value"
+msgstr "a opção 'm' requer um valor"
+
+#: builtin/merge.c:137
 #, c-format
 msgid "Could not find merge strategy '%s'.\n"
-msgstr ""
+msgstr "Estratégia de merge '%s' não encontrada.\n"
 
-#: builtin/merge.c:128
+#: builtin/merge.c:138
 #, c-format
 msgid "Available strategies are:"
-msgstr "As estratégias disponíveis são:"
+msgstr "Estratégias disponíveis:"
 
-#: builtin/merge.c:133
+#: builtin/merge.c:143
 #, c-format
 msgid "Available custom strategies are:"
-msgstr "Estratégias personalizadas disponíveis são:"
+msgstr "Estratégias personalizadas disponíveis:"
 
-#: builtin/merge.c:240
-msgid "could not run stash."
+#: builtin/merge.c:193 builtin/pull.c:123
+msgid "do not show a diffstat at the end of the merge"
+msgstr "não apresentar um diffstat no final do merge"
+
+#: builtin/merge.c:196 builtin/pull.c:126
+msgid "show a diffstat at the end of the merge"
+msgstr "mostrar um diffstat no final do merge"
+
+#: builtin/merge.c:197 builtin/pull.c:129
+msgid "(synonym to --stat)"
+msgstr "(sinónimo de --stat)"
+
+#: builtin/merge.c:199 builtin/pull.c:132
+msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
+"adicionar (no máximo <n>) entradas do shortlog à mensagem de commit do merge"
 
-#: builtin/merge.c:245
+#: builtin/merge.c:202 builtin/pull.c:135
+msgid "create a single commit instead of doing a merge"
+msgstr "criar um único commit em vez de realizar um merge"
+
+#: builtin/merge.c:204 builtin/pull.c:138
+msgid "perform a commit if the merge succeeds (default)"
+msgstr "realizar um commit se o merge for bem sucedido (predefinição)"
+
+#: builtin/merge.c:206 builtin/pull.c:141
+msgid "edit message before committing"
+msgstr "editar a mensagem antes de realizar commit"
+
+#: builtin/merge.c:207
+msgid "allow fast-forward (default)"
+msgstr "permitir avanço rápido (predefinição)"
+
+#: builtin/merge.c:209 builtin/pull.c:147
+msgid "abort if fast-forward is not possible"
+msgstr "abortar se não é possível efetuar avanço rápido"
+
+#: builtin/merge.c:213
+msgid "Verify that the named commit has a valid GPG signature"
+msgstr "verificar se o commit tem uma assinatura GPG válida"
+
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
+#: builtin/revert.c:89
+msgid "strategy"
+msgstr "estratégia"
+
+#: builtin/merge.c:215 builtin/pull.c:153
+msgid "merge strategy to use"
+msgstr "estratégia de merge a usar"
+
+#: builtin/merge.c:216 builtin/pull.c:156
+msgid "option=value"
+msgstr "opção=valor"
+
+#: builtin/merge.c:217 builtin/pull.c:157
+msgid "option for selected merge strategy"
+msgstr "opções para a estratégia de merge selecionada"
+
+#: builtin/merge.c:219
+msgid "merge commit message (for a non-fast-forward merge)"
+msgstr "mensagem de commit (de merge não suscetível a avanço rápido)"
+
+#: builtin/merge.c:223
+msgid "abort the current in-progress merge"
+msgstr "abortar merge em curso"
+
+#: builtin/merge.c:251
+msgid "could not run stash."
+msgstr "não foi possível executar o comando stash."
+
+#: builtin/merge.c:256
 msgid "stash failed"
-msgstr "falhou o stash"
+msgstr "falha ao executar o comando stash"
 
-#: builtin/merge.c:250
+#: builtin/merge.c:261
 #, c-format
 msgid "not a valid object: %s"
-msgstr ""
+msgstr "nome de objeto inválido: %s"
 
-#: builtin/merge.c:269
-#: builtin/merge.c:286
+#: builtin/merge.c:280 builtin/merge.c:297
 msgid "read-tree failed"
-msgstr ""
+msgstr "falha ao executar o comando read-tree"
 
-#: builtin/merge.c:316
+#: builtin/merge.c:327
 msgid " (nothing to squash)"
-msgstr " (nada para squash)"
+msgstr " (não há nada para esmagar)"
 
-#: builtin/merge.c:329
+#: builtin/merge.c:340
 #, c-format
 msgid "Squash commit -- not updating HEAD\n"
-msgstr ""
+msgstr "Commit esmagado -- HEAD não atualizada\n"
 
-#: builtin/merge.c:361
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
+#, c-format
+msgid "Could not write to '%s'"
+msgstr "Não foi possível escrever em '%s'"
+
+#: builtin/merge.c:372
 msgid "Writing SQUASH_MSG"
-msgstr "Escrevendo SQUASH_MSG"
+msgstr "A escrever SQUASH_MSG"
 
-#: builtin/merge.c:363
+#: builtin/merge.c:374
 msgid "Finishing SQUASH_MSG"
-msgstr "Terminando SQUASH_MSG"
+msgstr "A concluir SQUASH_MSG"
 
-#: builtin/merge.c:386
+#: builtin/merge.c:397
 #, c-format
 msgid "No merge message -- not updating HEAD\n"
-msgstr ""
+msgstr "Sem mensagem de merge -- HEAD não atualizada\n"
 
-#: builtin/merge.c:437
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
-msgstr ""
+msgstr "'%s' não aponta para um commit"
 
-#: builtin/merge.c:536
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
-msgstr ""
+msgstr "Valor de branch.%s.mergeoptions incorreto: %s"
 
-#: builtin/merge.c:629
-msgid "git write-tree failed to write a tree"
-msgstr ""
-
-#: builtin/merge.c:679
-msgid "failed to read the cache"
-msgstr ""
-
-#: builtin/merge.c:697
-msgid "Unable to write index."
-msgstr ""
-
-#: builtin/merge.c:710
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
-msgstr ""
+msgstr "A processar exclusivamente merge de duas cabeças."
 
-#: builtin/merge.c:724
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
-msgstr ""
+msgstr "Opção desconhecida de merge-recursive: -X%s"
 
-#: builtin/merge.c:738
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
-msgstr ""
+msgstr "não foi possível escrever %s"
 
-#: builtin/merge.c:877
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
-msgstr ""
+msgstr "Não foi possível ler '%s'"
 
-#: builtin/merge.c:886
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
-msgstr "Não commitando um merge; usa 'git commit' para completar o merge.\n"
+msgstr ""
+"Commit do merge não realizado; use 'git commit' para concluir o merge.\n"
 
-#: builtin/merge.c:892
+#: builtin/merge.c:788
+#, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
 "especially if it merges an updated upstream into a topic branch.\n"
 "\n"
-"Lines starting with '#' will be ignored, and an empty message aborts\n"
+"Lines starting with '%c' will be ignored, and an empty message aborts\n"
 "the commit.\n"
 msgstr ""
+"Introduza uma mensagem de commit, explicando por que este merge é "
+"necessário,\n"
+"sobretudo se incorpora um ramo a montante atualizado, com um ramo tópico.\n"
+"\n"
+"Linhas começadas com '%c' são ignoradas, e uma mensagem vazia\n"
+"aborta o commit.\n"
 
-#: builtin/merge.c:916
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Mensagem de commit vazia."
 
-#: builtin/merge.c:928
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
-msgstr "Fastastico.\n"
+msgstr "Maravilhoso.\n"
 
-#: builtin/merge.c:993
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
+"Falha ao realizar merge automático; corrija os conflitos e faça commit do "
+"resultado.\n"
 
-#: builtin/merge.c:1009
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' não é um commit"
 
-#: builtin/merge.c:1050
+#: builtin/merge.c:936
 msgid "No current branch."
-msgstr "Nenhuma rama actual"
+msgstr "Nenhum ramo atual."
 
-#: builtin/merge.c:1052
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
-msgstr ""
+msgstr "Não há um remoto para o ramo atual."
 
-#: builtin/merge.c:1054
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
-msgstr ""
+msgstr "Não está definido nenhum ramo a montante para o ramo atual."
 
-#: builtin/merge.c:1059
+#: builtin/merge.c:945
 #, c-format
-msgid "No remote tracking branch for %s from %s"
-msgstr ""
+msgid "No remote-tracking branch for %s from %s"
+msgstr "Nenhum ramo remoto seguido por %s de %s"
 
-#: builtin/merge.c:1146
-#: builtin/merge.c:1303
+#: builtin/merge.c:1080
 #, c-format
-msgid "%s - not something we can merge"
-msgstr ""
+msgid "could not close '%s'"
+msgstr "não foi possível fechar '%s'"
 
-#: builtin/merge.c:1214
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
-msgstr ""
+msgstr "Não há nenhum merge para abortar (MERGE_HEAD não presente)."
 
-#: builtin/merge.c:1230
-#: git-pull.sh:31
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
-"Please, commit your changes before you can merge."
+"Please, commit your changes before you merge."
 msgstr ""
+"Merge não concluído (MERGE_HEAD presente).\n"
+"Faça commit das suas alterações antes de realizar merge."
 
-#: builtin/merge.c:1233
-#: git-pull.sh:34
-msgid "You have not concluded your merge (MERGE_HEAD exists)."
-msgstr ""
-
-#: builtin/merge.c:1237
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
-"Please, commit your changes before you can merge."
+"Please, commit your changes before you merge."
 msgstr ""
+"Cherry-pick não concluído (CHERRY_PICK_HEAD presente).\n"
+"Faça commit das suas alterações antes de realizar merge."
 
-#: builtin/merge.c:1240
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
-msgstr ""
+msgstr "Cherry-pick não concluído (CHERRY_PICK_HEAD presente)."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
-msgstr ""
+msgstr "Não é possível combinar --squash e --no-ff."
 
-#: builtin/merge.c:1254
-msgid "You cannot combine --no-ff with --ff-only."
-msgstr ""
-
-#: builtin/merge.c:1261
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
-msgstr ""
+msgstr "Nenhum commit especificado e merge.defaultToUpstream não definido."
 
-#: builtin/merge.c:1293
-msgid "Can merge only exactly one commit into empty head"
-msgstr ""
-
-#: builtin/merge.c:1296
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
-msgstr ""
+msgstr "Esmagar um commit numa cabeça vazia ainda não é suportado"
 
-#: builtin/merge.c:1298
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr ""
+"Não faz sentido efetuar commit não suscetível a avanço rápido, numa cabeça "
+"vazia"
 
-#: builtin/merge.c:1413
+#: builtin/merge.c:1275
+#, c-format
+msgid "%s - not something we can merge"
+msgstr "%s - não é algo suscetível a merge"
+
+#: builtin/merge.c:1277
+msgid "Can merge only exactly one commit into empty head"
+msgstr "Só é possível realizar merge de exatamente um commit numa cabeça vazia"
+
+#: builtin/merge.c:1332
+#, c-format
+msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
+msgstr ""
+"A assinatura GPG do commit %s, alegadamente assinada por %s, não é de "
+"confiança."
+
+#: builtin/merge.c:1335
+#, c-format
+msgid "Commit %s has a bad GPG signature allegedly by %s."
+msgstr ""
+"A assinatura GPG do commit %s, alegadamente assinada por %s, está incorreta."
+
+#: builtin/merge.c:1338
+#, c-format
+msgid "Commit %s does not have a GPG signature."
+msgstr "O commit %s não tem uma assinatura GPG."
+
+#: builtin/merge.c:1341
+#, c-format
+msgid "Commit %s has a good GPG signature by %s\n"
+msgstr "A assinatura GPG do commit %s por %s está correta\n"
+
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
-msgstr "Actualizando %s..%s\n"
+msgstr "A atualizar %s..%s\n"
 
-#: builtin/merge.c:1451
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
-msgstr ""
+msgstr "A tentar merge mesmo trivial no interior do índice...\n"
 
-#: builtin/merge.c:1458
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "Não.\n"
 
-#: builtin/merge.c:1490
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
-msgstr ""
+msgstr "Não é possível avançar rapidamente, a abortar."
 
-#: builtin/merge.c:1513
-#: builtin/merge.c:1592
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
-msgstr ""
+msgstr "A recuar a árvore ao seu estado original...\n"
 
-#: builtin/merge.c:1517
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
-msgstr ""
+msgstr "A tentar a estratégia de merge %s...\n"
 
-#: builtin/merge.c:1583
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
-msgstr ""
+msgstr "Nenhuma estratégia de merge conseguiu processar o merge.\n"
 
-#: builtin/merge.c:1585
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
-msgstr "Fundir com a estratégia %s falhou.\n"
+msgstr "Falha ao realizar merge com a estratégia %s.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
-msgstr ""
+msgstr "A usar %s para preparar resolução manual.\n"
 
-#: builtin/merge.c:1606
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
+"O merge automático foi bem sucedido; interrompido antes de realizar commit "
+"como pretendido\n"
 
-#: builtin/mv.c:108
-#, c-format
-msgid "Checking rename of '%s' to '%s'\n"
+#: builtin/merge-base.c:29
+msgid "git merge-base [-a | --all] <commit> <commit>..."
+msgstr "git merge-base [-a | --all] <commit> <commit>..."
+
+#: builtin/merge-base.c:30
+msgid "git merge-base [-a | --all] --octopus <commit>..."
+msgstr "git merge-base [-a | --all] --octopus <commit>..."
+
+#: builtin/merge-base.c:31
+msgid "git merge-base --independent <commit>..."
+msgstr "git merge-base --independent <commit>..."
+
+#: builtin/merge-base.c:32
+msgid "git merge-base --is-ancestor <commit> <commit>"
+msgstr "git merge-base --is-ancestor <commit> <commit>"
+
+#: builtin/merge-base.c:33
+msgid "git merge-base --fork-point <ref> [<commit>]"
+msgstr "git merge-base --fork-point <referência> [<commit>]"
+
+#: builtin/merge-base.c:214
+msgid "output all common ancestors"
+msgstr "mostrar todos os antecessores"
+
+#: builtin/merge-base.c:216
+msgid "find ancestors for a single n-way merge"
+msgstr "encontrar antecessores de um único merge com n pontos"
+
+#: builtin/merge-base.c:218
+msgid "list revs not reachable from others"
+msgstr "listar revisões não alcançáveis a partir de outras"
+
+#: builtin/merge-base.c:220
+msgid "is the first one ancestor of the other?"
+msgstr "o primeiro é antecessor do segundo?"
+
+#: builtin/merge-base.c:222
+msgid "find where <commit> forked from reflog of <ref>"
 msgstr ""
+"descobrir aonde foi que o <commit> divergiu usando o reflog da <referência>"
+
+#: builtin/merge-file.c:8
+msgid ""
+"git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> "
+"<orig-file> <file2>"
+msgstr ""
+"git merge-file [<opções>] [-L <nome1> [-L <orig> [-L <nome2>]]] <ficheiro1> "
+"<ficheiro-orig> <ficheiro2>"
+
+#: builtin/merge-file.c:33
+msgid "send results to standard output"
+msgstr "enviar resultados para a saída padrão"
+
+#: builtin/merge-file.c:34
+msgid "use a diff3 based merge"
+msgstr "usar merge baseado em diff3"
+
+#: builtin/merge-file.c:35
+msgid "for conflicts, use our version"
+msgstr "usar a nossa versão em caso de conflito"
+
+#: builtin/merge-file.c:37
+msgid "for conflicts, use their version"
+msgstr "usar a versão deles em caso de conflito"
+
+#: builtin/merge-file.c:39
+msgid "for conflicts, use a union version"
+msgstr "usar a união das versões em caso de conflito"
+
+#: builtin/merge-file.c:42
+msgid "for conflicts, use this marker size"
+msgstr "usar este comprimento de marcador para os conflitos"
+
+#: builtin/merge-file.c:43
+msgid "do not warn about conflicts"
+msgstr "não alertar sobre conflitos"
+
+#: builtin/merge-file.c:45
+msgid "set labels for file1/orig-file/file2"
+msgstr "definir identificares para ficheiro1/ficheiro-orig/ficheiro2"
+
+#: builtin/mktree.c:65
+msgid "git mktree [-z] [--missing] [--batch]"
+msgstr "git mktree [-z] [--missing] [--batch]"
+
+#: builtin/mktree.c:152
+msgid "input is NUL terminated"
+msgstr "a entrada termina com NUL"
+
+#: builtin/mktree.c:153 builtin/write-tree.c:24
+msgid "allow missing objects"
+msgstr "permitir objetos não presentes"
+
+#: builtin/mktree.c:154
+msgid "allow creation of more than one tree"
+msgstr "permitir a criação de mais do que uma árvore"
+
+#: builtin/mv.c:15
+msgid "git mv [<options>] <source>... <destination>"
+msgstr "git mv [<opções>] <origem>... <destino>"
+
+#: builtin/mv.c:70
+#, fuzzy, c-format
+msgid "Directory %s is in index and no submodule?"
+msgstr "O diretório %s está no índice mas não no submódulo?"
+
+#: builtin/mv.c:72
+msgid "Please stage your changes to .gitmodules or stash them to proceed"
+msgstr ""
+"Prepare as suas alterações em .gitmodules ou esconda-as (stash) para "
+"prosseguir"
+
+#: builtin/mv.c:90
+#, c-format
+msgid "%.*s is in index"
+msgstr "%.*s está no índice"
 
 #: builtin/mv.c:112
-msgid "bad source"
-msgstr "fonte inválida"
+msgid "force move/rename even if target exists"
+msgstr "forçar mover/mudar o nome mesmo que o destino exista"
 
-#: builtin/mv.c:115
-msgid "can not move directory into itself"
-msgstr ""
+#: builtin/mv.c:113
+msgid "skip move/rename errors"
+msgstr "ignorar erros ao mover/mudar o nome"
 
-#: builtin/mv.c:118
-msgid "cannot move directory over file"
-msgstr ""
-
-#: builtin/mv.c:128
+#: builtin/mv.c:152
 #, c-format
-msgid "Huh? %.*s is in index?"
-msgstr ""
+msgid "destination '%s' is not a directory"
+msgstr "o destino '%s' não é um diretório"
 
-#: builtin/mv.c:140
+#: builtin/mv.c:163
+#, c-format
+msgid "Checking rename of '%s' to '%s'\n"
+msgstr "A verificar a mudança de nome de '%s' para '%s'\n"
+
+#: builtin/mv.c:167
+msgid "bad source"
+msgstr "origem incorreta"
+
+#: builtin/mv.c:170
+msgid "can not move directory into itself"
+msgstr "não é possível mover um diretório para dentro de si próprio"
+
+#: builtin/mv.c:173
+msgid "cannot move directory over file"
+msgstr "não é possível mover um diretório para um ficheiro"
+
+#: builtin/mv.c:182
 msgid "source directory is empty"
-msgstr "o directorio fonte está vazio"
+msgstr "o diretório de origem está vazio"
 
-#: builtin/mv.c:171
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "não está no controlo de versões"
 
-#: builtin/mv.c:173
+#: builtin/mv.c:210
 msgid "destination exists"
-msgstr "existe destino"
+msgstr "o destino já existe"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
-msgstr "subscrevendo '%s'"
+msgstr "a substituir '%s'"
 
-#: builtin/mv.c:184
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
-msgstr "Não consegue subscrever"
+msgstr "Não é possível substituir"
 
-#: builtin/mv.c:187
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
-msgstr "múltiplas fontes para o mesmo alvo"
+msgstr "múltiplas origens para o mesmo destino"
 
-#: builtin/mv.c:202
+#: builtin/mv.c:226
+msgid "destination directory does not exist"
+msgstr "o diretório de destino não existe"
+
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
-msgstr ""
+msgstr "%s, origem=%s, destino=%s"
 
-#: builtin/mv.c:212
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
-msgstr "Mudar de nome %s para %s\n"
+msgstr "A mudar de nome de %s para %s\n"
 
-#: builtin/mv.c:215
-#: builtin/remote.c:731
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
-msgstr "mudar de nome '%s' falhou"
+msgstr "falha ao mudar o nome de '%s'"
 
-#: builtin/notes.c:139
+#: builtin/name-rev.c:251
+msgid "git name-rev [<options>] <commit>..."
+msgstr "git name-rev [<opções>] <commit>..."
+
+#: builtin/name-rev.c:252
+msgid "git name-rev [<options>] --all"
+msgstr "git name-rev [<opções>] --all"
+
+#: builtin/name-rev.c:253
+msgid "git name-rev [<options>] --stdin"
+msgstr "git name-rev [<opções>] --stdin"
+
+#: builtin/name-rev.c:305
+msgid "print only names (no SHA-1)"
+msgstr "imprimir apenas nomes (sem SHA-1)"
+
+#: builtin/name-rev.c:306
+msgid "only use tags to name the commits"
+msgstr "usar apenas tags para designar commits"
+
+#: builtin/name-rev.c:308
+msgid "only use refs matching <pattern>"
+msgstr "usar apenas referência que correspondam ao <padrão>"
+
+#: builtin/name-rev.c:310
+msgid "list all commits reachable from all refs"
+msgstr "listar todos os commits alcançáveis a partir de todas as referências"
+
+#: builtin/name-rev.c:311
+msgid "read from stdin"
+msgstr "ler da entrada padrão"
+
+#: builtin/name-rev.c:312
+msgid "allow to print `undefined` names (default)"
+msgstr "permitir imprimir nomes 'indefinidos' (predefinição)"
+
+#: builtin/name-rev.c:318
+msgid "dereference tags in the input (internal use)"
+msgstr "desreferenciar tags na entrada (uso interno)"
+
+#: builtin/notes.c:25
+msgid "git notes [--ref <notes-ref>] [list [<object>]]"
+msgstr "git notes [--ref <notes-ref>] [list [<objeto>]]"
+
+#: builtin/notes.c:26
+msgid ""
+"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> "
+"| (-c | -C) <object>] [<object>]"
+msgstr ""
+"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F "
+"<ficheiro> | (-c | -C) <objeto>] [<objeto>]"
+
+#: builtin/notes.c:27
+msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
+msgstr "git notes [--ref <notes-ref>] copy [-f] <de-objeto> <para-objeto>"
+
+#: builtin/notes.c:28
+msgid ""
+"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> | "
+"(-c | -C) <object>] [<object>]"
+msgstr ""
+"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F "
+"<ficheiro> | (-c | -C) <objeto>] [<objeto>]"
+
+#: builtin/notes.c:29
+msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"
+msgstr "git notes [--ref <notes-ref>] edit [--allow-empty] [<objeto>]"
+
+#: builtin/notes.c:30
+msgid "git notes [--ref <notes-ref>] show [<object>]"
+msgstr "git notes [--ref <notes-ref>] show [<objeto>]"
+
+#: builtin/notes.c:31
+msgid ""
+"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
+msgstr ""
+"git notes [--ref <notes-ref>] merge [-v | -q] [-s <estratégia>] <notes-ref>"
+
+#: builtin/notes.c:32
+msgid "git notes merge --commit [-v | -q]"
+msgstr "git notes merge --commit [-v | -q]"
+
+#: builtin/notes.c:33
+msgid "git notes merge --abort [-v | -q]"
+msgstr "git notes merge --abort [-v | -q]"
+
+#: builtin/notes.c:34
+msgid "git notes [--ref <notes-ref>] remove [<object>...]"
+msgstr "git notes [--ref <notes-ref>] remove [<objeto>...]"
+
+#: builtin/notes.c:35
+msgid "git notes [--ref <notes-ref>] prune [-n | -v]"
+msgstr "git notes [--ref <notes-ref>] prune [-n | -v]"
+
+#: builtin/notes.c:36
+msgid "git notes [--ref <notes-ref>] get-ref"
+msgstr "git notes [--ref <notes-ref>] get-ref"
+
+#: builtin/notes.c:41
+msgid "git notes [list [<object>]]"
+msgstr "git notes [list [<objeto>]]"
+
+#: builtin/notes.c:46
+msgid "git notes add [<options>] [<object>]"
+msgstr "git notes add [<opções>] [<objeto>]"
+
+#: builtin/notes.c:51
+msgid "git notes copy [<options>] <from-object> <to-object>"
+msgstr "git notes copy [<opções>] <de-objeto> <para-objeto>"
+
+#: builtin/notes.c:52
+msgid "git notes copy --stdin [<from-object> <to-object>]..."
+msgstr "git notes copy --stdin [<de-objeto> <para-objeto>]..."
+
+#: builtin/notes.c:57
+msgid "git notes append [<options>] [<object>]"
+msgstr "git notes append [<opções>] [<objeto>]"
+
+#: builtin/notes.c:62
+msgid "git notes edit [<object>]"
+msgstr "git notes edit [<objeto>]"
+
+#: builtin/notes.c:67
+msgid "git notes show [<object>]"
+msgstr "git notes show [<objeto>]"
+
+#: builtin/notes.c:72
+msgid "git notes merge [<options>] <notes-ref>"
+msgstr "git notes merge [<opções>] <notes-ref>"
+
+#: builtin/notes.c:73
+msgid "git notes merge --commit [<options>]"
+msgstr "git notes merge --commit [<opções>]"
+
+#: builtin/notes.c:74
+msgid "git notes merge --abort [<options>]"
+msgstr "git notes merge --abort [<opções>]"
+
+#: builtin/notes.c:79
+msgid "git notes remove [<object>]"
+msgstr "git notes remove [<objeto>]"
+
+#: builtin/notes.c:84
+msgid "git notes prune [<options>]"
+msgstr "git notes prune [<optções>]"
+
+#: builtin/notes.c:89
+msgid "git notes get-ref"
+msgstr "git notes get-ref"
+
+#: builtin/notes.c:147
 #, c-format
 msgid "unable to start 'show' for object '%s'"
-msgstr ""
+msgstr "não foi possível iniciar o comando 'show' sobre o objeto '%s'"
 
-#: builtin/notes.c:145
-msgid "can't fdopen 'show' output fd"
-msgstr ""
+#: builtin/notes.c:151
+msgid "could not read 'show' output"
+msgstr "não foi possível ler a saída do comando 'show'"
 
-#: builtin/notes.c:155
-#, c-format
-msgid "failed to close pipe to 'show' for object '%s'"
-msgstr ""
-
-#: builtin/notes.c:158
+#: builtin/notes.c:159
 #, c-format
 msgid "failed to finish 'show' for object '%s'"
-msgstr ""
+msgstr "falha ao concluir o comando 'show' sobre o objeto '%s'"
 
-#: builtin/notes.c:175
-#: builtin/tag.c:347
+#: builtin/notes.c:174 builtin/tag.c:248
 #, c-format
 msgid "could not create file '%s'"
-msgstr ""
+msgstr "não foi possível criar o ficheiro '%s'"
 
-#: builtin/notes.c:189
+#: builtin/notes.c:193
 msgid "Please supply the note contents using either -m or -F option"
-msgstr ""
+msgstr "Forneça o conteúdo da nota usando a opção -m ou -F"
 
-#: builtin/notes.c:210
-#: builtin/notes.c:973
-#, c-format
-msgid "Removing note for object %s\n"
-msgstr ""
-
-#: builtin/notes.c:215
+#: builtin/notes.c:202
 msgid "unable to write note object"
-msgstr ""
+msgstr "não é possível escrever o objeto de nota"
 
-#: builtin/notes.c:217
+#: builtin/notes.c:204
 #, c-format
-msgid "The note contents has been left in %s"
-msgstr ""
+msgid "The note contents have been left in %s"
+msgstr "O conteúdo da nota foi guardado em %s"
 
-#: builtin/notes.c:251
-#: builtin/tag.c:542
+#: builtin/notes.c:232 builtin/tag.c:440
 #, c-format
 msgid "cannot read '%s'"
-msgstr "não consegue ler '%s'"
+msgstr "não é possível ler '%s'"
 
-#: builtin/notes.c:253
-#: builtin/tag.c:545
+#: builtin/notes.c:234 builtin/tag.c:443
 #, c-format
 msgid "could not open or read '%s'"
-msgstr ""
+msgstr "não foi possível abrir ou ler '%s'"
 
-#: builtin/notes.c:272
-#: builtin/notes.c:445
-#: builtin/notes.c:447
-#: builtin/notes.c:507
-#: builtin/notes.c:561
-#: builtin/notes.c:644
-#: builtin/notes.c:649
-#: builtin/notes.c:724
-#: builtin/notes.c:766
-#: builtin/notes.c:968
-#: builtin/reset.c:293
-#: builtin/tag.c:558
+#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
-msgstr ""
+msgstr "Falha ao resolver '%s' numa referência válida."
 
-#: builtin/notes.c:275
+#: builtin/notes.c:256
 #, c-format
 msgid "Failed to read object '%s'."
-msgstr ""
+msgstr "Falha ao ler o objeto '%s'."
 
-#: builtin/notes.c:299
-msgid "Cannot commit uninitialized/unreferenced notes tree"
-msgstr ""
-
-#: builtin/notes.c:340
+#: builtin/notes.c:260
 #, c-format
-msgid "Bad notes.rewriteMode value: '%s'"
-msgstr ""
+msgid "Cannot read note data from non-blob object '%s'."
+msgstr "Não é possível ler os dados da nota de um objeto não-blob '%s'."
 
-#: builtin/notes.c:350
-#, c-format
-msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
-msgstr ""
-
-#. TRANSLATORS: The first %s is the name of the
-#. environment variable, the second %s is its value
-#: builtin/notes.c:377
-#, c-format
-msgid "Bad %s value: '%s'"
-msgstr "Inválido %s valor: '%s'"
-
-#: builtin/notes.c:441
-#, c-format
-msgid "Malformed input line: '%s'."
-msgstr ""
-
-#: builtin/notes.c:456
-#, c-format
-msgid "Failed to copy notes from '%s' to '%s'"
-msgstr ""
-
-#: builtin/notes.c:500
-#: builtin/notes.c:554
-#: builtin/notes.c:627
-#: builtin/notes.c:639
-#: builtin/notes.c:712
-#: builtin/notes.c:759
-#: builtin/notes.c:1033
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
-msgstr "demasiado parametros"
+msgstr "demasiados parâmetros"
 
-#: builtin/notes.c:513
-#: builtin/notes.c:772
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
-msgstr "Nenhuma nota encontrada para o objecto %s."
+msgstr "A nota do objeto %s não foi encontrada."
 
-#: builtin/notes.c:580
+#: builtin/notes.c:396 builtin/notes.c:559
+msgid "note contents as a string"
+msgstr "conteúdo da nota sob a forma de cadeia de caracteres"
+
+#: builtin/notes.c:399 builtin/notes.c:562
+msgid "note contents in a file"
+msgstr "conteúdo da nota de um ficheiro"
+
+#: builtin/notes.c:402 builtin/notes.c:565
+msgid "reuse and edit specified note object"
+msgstr "reutilizar e editar o objeto de nota especificado"
+
+#: builtin/notes.c:405 builtin/notes.c:568
+msgid "reuse specified note object"
+msgstr "reutilizar o objeto de nota especificado"
+
+#: builtin/notes.c:408 builtin/notes.c:571
+msgid "allow storing empty note"
+msgstr "permitir guardar uma nota vazia"
+
+#: builtin/notes.c:409 builtin/notes.c:480
+msgid "replace existing notes"
+msgstr "substituir notas existentes"
+
+#: builtin/notes.c:434
 #, c-format
-msgid "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite existing notes"
+msgid ""
+"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
+"existing notes"
 msgstr ""
+"Não é possível adicionar notas. Notas do objeto %s encontradas. Use '-f' "
+"para substituí-las."
 
-#: builtin/notes.c:585
-#: builtin/notes.c:662
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
-msgstr ""
+msgstr "A substituir as notas existentes do objeto %s\n"
 
-#: builtin/notes.c:635
-msgid "too few parameters"
-msgstr ""
-
-#: builtin/notes.c:656
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
-msgid "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite existing notes"
-msgstr ""
+msgid "Removing note for object %s\n"
+msgstr "A remover a nota do objeto %s\n"
 
-#: builtin/notes.c:668
+#: builtin/notes.c:481
+msgid "read objects from stdin"
+msgstr "ler objetos da entrada padrão"
+
+#: builtin/notes.c:483
+msgid "load rewriting config for <command> (implies --stdin)"
+msgstr "carregar configuração de reescrita do <comando> (implica --stdin)"
+
+#: builtin/notes.c:501
+msgid "too few parameters"
+msgstr "parâmetros insuficientes"
+
+#: builtin/notes.c:522
+#, c-format
+msgid ""
+"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
+"existing notes"
+msgstr ""
+"Não é possível copiar notas. Notas do objeto %s encontradas. Use '-f' para "
+"substituí-las."
+
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
-msgstr ""
+msgstr "Não existem notas no objeto de origem %s. Não é possível copiar."
 
-#: builtin/notes.c:717
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
 "Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
 msgstr ""
+"As opções -m/-F/-c/-C são obsoletas no subcomando 'edit'.\n"
+"Use 'git notes add -f -m/-F/-c/-C' em seu lugar.\n"
 
-#: builtin/notes.c:971
+#: builtin/notes.c:767
+msgid "General options"
+msgstr "Opções gerais"
+
+#: builtin/notes.c:769
+msgid "Merge options"
+msgstr "Opções de merge"
+
+#: builtin/notes.c:771
+msgid ""
+"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
+"cat_sort_uniq)"
+msgstr ""
+"resolver conflitos nas notas usando a estratégia indicada (manual/ours/"
+"theirs/union/cat_sort_uniq)"
+
+#: builtin/notes.c:773
+msgid "Committing unmerged notes"
+msgstr "Efetuar commit de notas não integradas"
+
+#: builtin/notes.c:775
+msgid "finalize notes merge by committing unmerged notes"
+msgstr "concluir merge de notas, fazendo commit de notas não integradas"
+
+#: builtin/notes.c:777
+msgid "Aborting notes merge resolution"
+msgstr "Abortar resoluções de merge das notas"
+
+#: builtin/notes.c:779
+msgid "abort notes merge"
+msgstr "abortar merge das notas"
+
+#: builtin/notes.c:856
+#, c-format
+msgid "A notes merge into %s is already in-progress at %s"
+msgstr "Merge das notas em %s já está em curso em %s"
+
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
-msgstr ""
+msgstr "O objeto %s não tem nenhuma nota\n"
 
-#: builtin/notes.c:1103
-#: builtin/remote.c:1598
+#: builtin/notes.c:895
+msgid "attempt to remove non-existent note is not an error"
+msgstr "não considerar como erro a remoção de uma nota não existente"
+
+#: builtin/notes.c:898
+msgid "read object names from the standard input"
+msgstr "ler nome dos objetos da entrada padrão"
+
+#: builtin/notes.c:979
+msgid "notes-ref"
+msgstr "notes-ref"
+
+#: builtin/notes.c:980
+msgid "use notes from <notes-ref>"
+msgstr "usar notas de <notes-ref>"
+
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
-msgstr ""
+msgstr "Subcomando desconhecido: %s"
 
-#: builtin/pack-objects.c:2315
+#: builtin/pack-objects.c:28
+msgid ""
+"git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
+msgstr ""
+"git pack-objects --stdout [<opções>...] [< <lista-referências> | < <lista-"
+"objetos>]"
+
+#: builtin/pack-objects.c:29
+msgid ""
+"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
+msgstr ""
+"git pack-objects [<opções>...] <nome-base> [< <lista-referências> | < <lista-"
+"objetos>]"
+
+#: builtin/pack-objects.c:175 builtin/pack-objects.c:178
+#, c-format
+msgid "deflate error (%d)"
+msgstr "erro ao compactar (%d)"
+
+#: builtin/pack-objects.c:772
+msgid "Writing objects"
+msgstr "A escrever objetos"
+
+#: builtin/pack-objects.c:1012
+msgid "disabling bitmap writing, as some objects are not being packed"
+msgstr ""
+"a desativar escrita de mapa de bits, visto que alguns objetos não estão a "
+"ser compactados"
+
+#: builtin/pack-objects.c:2172
+msgid "Compressing objects"
+msgstr "A comprimir objetos"
+
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
-msgstr ""
+msgstr "versão de índice %s não suportada"
 
-#: builtin/pack-objects.c:2319
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
+msgstr "versão de índice '%s' incorreta"
+
+#: builtin/pack-objects.c:2592
+msgid "do not show progress meter"
+msgstr "não mostrar medidor de progresso"
+
+#: builtin/pack-objects.c:2594
+msgid "show progress meter"
+msgstr "mostrar medidor de progresso"
+
+#: builtin/pack-objects.c:2596
+msgid "show progress meter during object writing phase"
+msgstr "mostrar medidor de progresso durante a fase de escrita de objetos"
+
+#: builtin/pack-objects.c:2599
+msgid "similar to --all-progress when progress meter is shown"
+msgstr "semelhante a --all-progress quando o medidor de progresso é mostrado"
+
+#: builtin/pack-objects.c:2600
+msgid "version[,offset]"
+msgstr "versão[,offset]"
+
+#: builtin/pack-objects.c:2601
+msgid "write the pack index file in the specified idx format version"
 msgstr ""
+"escrever o ficheiro de índice do pacote na versão de formato especificada"
 
-#: builtin/pack-objects.c:2342
-#, c-format
-msgid "option %s does not accept negative form"
-msgstr "opção %s não aceita formato negativo"
+#: builtin/pack-objects.c:2604
+msgid "maximum size of each output pack file"
+msgstr "tamanho máximo de cada ficheiro de pacote gerado"
 
-#: builtin/pack-objects.c:2346
-#, c-format
-msgid "unable to parse value '%s' for option %s"
+#: builtin/pack-objects.c:2606
+msgid "ignore borrowed objects from alternate object store"
+msgstr "ignorar objetos emprestados do arquivo de objetos alternate"
+
+#: builtin/pack-objects.c:2608
+msgid "ignore packed objects"
+msgstr "ignorar objetos compactados"
+
+#: builtin/pack-objects.c:2610
+msgid "limit pack window by objects"
+msgstr "limitar a janela de compactação por objetos"
+
+#: builtin/pack-objects.c:2612
+msgid "limit pack window by memory in addition to object limit"
 msgstr ""
+"limitar a janela de compactação por memória em adição ao limite por objetos"
 
-#: builtin/push.c:45
+#: builtin/pack-objects.c:2614
+msgid "maximum length of delta chain allowed in the resulting pack"
+msgstr "tamanho máximo de cadeias delta permitidas no pacote resultante"
+
+#: builtin/pack-objects.c:2616
+msgid "reuse existing deltas"
+msgstr "reutilizar deltas existentes"
+
+#: builtin/pack-objects.c:2618
+msgid "reuse existing objects"
+msgstr "reutilizar objetos existentes"
+
+#: builtin/pack-objects.c:2620
+msgid "use OFS_DELTA objects"
+msgstr "usar objetos OFS_DELTA"
+
+#: builtin/pack-objects.c:2622
+msgid "use threads when searching for best delta matches"
+msgstr "usar threads ao procurar pela melhor correspondência delta"
+
+#: builtin/pack-objects.c:2624
+msgid "do not create an empty pack output"
+msgstr "não criar um pacote vazio"
+
+#: builtin/pack-objects.c:2626
+msgid "read revision arguments from standard input"
+msgstr "ler argumentos de revisão da entrada padrão"
+
+#: builtin/pack-objects.c:2628
+msgid "limit the objects to those that are not yet packed"
+msgstr "restringir-se aos objetos que ainda não foram compactados"
+
+#: builtin/pack-objects.c:2631
+msgid "include objects reachable from any reference"
+msgstr "incluir objetos alcançáveis a partir de qualquer referência"
+
+#: builtin/pack-objects.c:2634
+msgid "include objects referred by reflog entries"
+msgstr "incluir objetos referenciados por entradas do reflog"
+
+#: builtin/pack-objects.c:2637
+msgid "include objects referred to by the index"
+msgstr "incluir objetos referenciados pelo índice"
+
+#: builtin/pack-objects.c:2640
+msgid "output pack to stdout"
+msgstr "gerar pacote para a saída padrão"
+
+#: builtin/pack-objects.c:2642
+msgid "include tag objects that refer to objects to be packed"
+msgstr "incluir objetos tag que refiram objetos a compactar"
+
+#: builtin/pack-objects.c:2644
+msgid "keep unreachable objects"
+msgstr "manter objetos inalcançáveis"
+
+#: builtin/pack-objects.c:2645 parse-options.h:142
+msgid "time"
+msgstr "hora"
+
+#: builtin/pack-objects.c:2646
+msgid "unpack unreachable objects newer than <time>"
+msgstr "descompactar objetos inalcançáveis mais recentes que <hora>"
+
+#: builtin/pack-objects.c:2649
+msgid "create thin packs"
+msgstr "criar pacotes finos"
+
+#: builtin/pack-objects.c:2651
+msgid "create packs suitable for shallow fetches"
+msgstr "criar pacotes adequados para obter em repositórios pouco profundos"
+
+#: builtin/pack-objects.c:2653
+msgid "ignore packs that have companion .keep file"
+msgstr "ignorar pacotes que tenham um ficheiro .keep"
+
+#: builtin/pack-objects.c:2655
+msgid "pack compression level"
+msgstr "nível de compactação do pacote"
+
+#: builtin/pack-objects.c:2657
+msgid "do not hide commits by grafts"
+msgstr "não esconder commits introduzidos por enxertos"
+
+#: builtin/pack-objects.c:2659
+msgid "use a bitmap index if available to speed up counting objects"
+msgstr ""
+"usar um índice de mapa de bits se disponível, para acelerar a contagem de "
+"objetos"
+
+#: builtin/pack-objects.c:2661
+msgid "write a bitmap index together with the pack index"
+msgstr "escrever um índice de mapa de bits juntamente com o índice do pacote"
+
+#: builtin/pack-objects.c:2752
+msgid "Counting objects"
+msgstr "A contar objetos"
+
+#: builtin/pack-refs.c:6
+msgid "git pack-refs [<options>]"
+msgstr "git pack-refs [<opções>]"
+
+#: builtin/pack-refs.c:14
+msgid "pack everything"
+msgstr "compactar tudo"
+
+#: builtin/pack-refs.c:15
+msgid "prune loose refs (default)"
+msgstr "eliminar referências soltas (predefinição)"
+
+#: builtin/prune-packed.c:7
+msgid "git prune-packed [-n | --dry-run] [-q | --quiet]"
+msgstr "git prune-packed [-n | --dry-run] [-q | --quiet]"
+
+#: builtin/prune-packed.c:40
+msgid "Removing duplicate objects"
+msgstr "A remover objetos duplicados"
+
+#: builtin/prune.c:11
+msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]"
+msgstr "git prune [-n] [-v] [--expire <hora>] [--] [<head>...]"
+
+#: builtin/prune.c:105 builtin/worktree.c:124
+msgid "do not remove, show only"
+msgstr "não remover, mostrar apenas"
+
+#: builtin/prune.c:106 builtin/worktree.c:125
+msgid "report pruned objects"
+msgstr "apresentar objetos eliminados"
+
+#: builtin/prune.c:109 builtin/worktree.c:127
+msgid "expire objects older than <time>"
+msgstr "expirar objetos mais antigos que <hora>"
+
+#: builtin/prune.c:123
+msgid "cannot prune in a precious-objects repo"
+msgstr "não é possível limpar num repositório de objetos-preciosos"
+
+#: builtin/pull.c:72
+msgid "git pull [<options>] [<repository> [<refspec>...]]"
+msgstr "git pull [<opções>] [<repositório> [<especificador-de-referência>...]]"
+
+#: builtin/pull.c:117
+msgid "Options related to merging"
+msgstr "Opções relacionadas com merge"
+
+#: builtin/pull.c:120
+msgid "incorporate changes by rebasing rather than merging"
+msgstr "incorporar alterações por rebase em vez de merge"
+
+#: builtin/pull.c:144 builtin/revert.c:105
+msgid "allow fast-forward"
+msgstr "permitir avanço rápido"
+
+#: builtin/pull.c:150
+msgid "verify that the named commit has a valid GPG signature"
+msgstr "verificar se o commit tem uma assinatura GPG válida"
+
+#: builtin/pull.c:164
+msgid "Options related to fetching"
+msgstr "Opções relacionadas com obtenção de objetos"
+
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "número de submódulos obtidos em paralelo"
+
+#: builtin/pull.c:275
+#, c-format
+msgid "Invalid value for pull.ff: %s"
+msgstr "Valor inválido de pull.ff: %s"
+
+#: builtin/pull.c:359
+msgid "Cannot pull with rebase: You have unstaged changes."
+msgstr "Não é possível efetuar pull com rebase: tem alterações não preparadas."
+
+#: builtin/pull.c:365
+msgid "Additionally, your index contains uncommitted changes."
+msgstr "Além disso, o índice contém alterações pendentes para commit."
+
+#: builtin/pull.c:367
+msgid "Cannot pull with rebase: Your index contains uncommitted changes."
+msgstr ""
+"Não é possível efetuar pull com rebase: o índice contém alterações pendentes "
+"para commit."
+
+#: builtin/pull.c:443
+msgid ""
+"There is no candidate for rebasing against among the refs that you just "
+"fetched."
+msgstr ""
+"Não há nenhum candidato com o qual realizar rebase de entre as referências "
+"que se acabaram de obter."
+
+#: builtin/pull.c:445
+msgid ""
+"There are no candidates for merging among the refs that you just fetched."
+msgstr ""
+"Não há nenhum candidato com o qual realizar merge de entre as referências "
+"que se acabaram obter."
+
+#: builtin/pull.c:446
+msgid ""
+"Generally this means that you provided a wildcard refspec which had no\n"
+"matches on the remote end."
+msgstr ""
+"Geralmente, significa que forneceu um especificador de referência\n"
+"com um carácter universal (wildcard) que não corresponde a nenhum remoto."
+
+#: builtin/pull.c:449
+#, c-format
+msgid ""
+"You asked to pull from the remote '%s', but did not specify\n"
+"a branch. Because this is not the default configured remote\n"
+"for your current branch, you must specify a branch on the command line."
+msgstr ""
+"Solicitou pull do remoto '%s', mas não especificou um ramo.\n"
+"Uma vez que este não é o remoto configurado por omissão,\n"
+"deve especificar um ramo na linha de comandos."
+
+#: builtin/pull.c:454
+msgid "You are not currently on a branch."
+msgstr "Não se encontra em nenhum ramo de momento."
+
+#: builtin/pull.c:456 builtin/pull.c:471
+msgid "Please specify which branch you want to rebase against."
+msgstr "Especifique o ramo sobre o qual pretende realizar rebase."
+
+#: builtin/pull.c:458 builtin/pull.c:473
+msgid "Please specify which branch you want to merge with."
+msgstr "Especifique o ramo com o qual pretende realizar merge."
+
+#: builtin/pull.c:459 builtin/pull.c:474
+msgid "See git-pull(1) for details."
+msgstr "Consulte git-pull(1) para obter mais detalhes."
+
+#: builtin/pull.c:469
+msgid "There is no tracking information for the current branch."
+msgstr "O ramo atual não segue nenhum ramo."
+
+#: builtin/pull.c:478
+#, c-format
+msgid ""
+"If you wish to set tracking information for this branch you can do so with:\n"
+"\n"
+"    git branch --set-upstream-to=%s/<branch> %s\n"
+msgstr ""
+"Se deseja definir um ramo para este ramo seguir, pode fazê-lo com:\n"
+"\n"
+"    git branch --set-upstream-to=%s/<ramo> %s\n"
+
+#: builtin/pull.c:483
+#, c-format
+msgid ""
+"Your configuration specifies to merge with the ref '%s'\n"
+"from the remote, but no such ref was fetched."
+msgstr ""
+"A configuração indica para efetuar merge com a referência '%s'\n"
+"do remoto, mas esta ainda não foi obtida."
+
+#: builtin/pull.c:841
+msgid "Updating an unborn branch with changes added to the index."
+msgstr ""
+"A atualizar um ramo que ainda não foi criado e com alterações adicionadas ao "
+"índice."
+
+#: builtin/pull.c:870
+#, c-format
+msgid ""
+"fetch updated the current branch head.\n"
+"fast-forwarding your working tree from\n"
+"commit %s."
+msgstr ""
+"o fetch atualizou a cabeça do ramo atual.\n"
+"a avançar a árvore de trabalho a partir do\n"
+"commit %s."
+
+#: builtin/pull.c:875
+#, c-format
+msgid ""
+"Cannot fast-forward your working tree.\n"
+"After making sure that you saved anything precious from\n"
+"$ git diff %s\n"
+"output, run\n"
+"$ git reset --hard\n"
+"to recover."
+msgstr ""
+"Não é possível avançar rapidamente a árvore de trabalho.\n"
+"Depois de guardar todas as alterações importantes indicadas por\n"
+"$ git diff %s\n"
+"execute\n"
+"$ git reset --hard\n"
+"para recuperar."
+
+#: builtin/pull.c:890
+msgid "Cannot merge multiple branches into empty head."
+msgstr "Não é possível efetuar merge de múltiplos ramos numa cabeça vazia."
+
+#: builtin/pull.c:894
+msgid "Cannot rebase onto multiple branches."
+msgstr "Não é possível efetuar rebase sobre múltiplos ramos."
+
+#: builtin/push.c:16
+msgid "git push [<options>] [<repository> [<refspec>...]]"
+msgstr "git push [<opções>] [<repositório> [<especificador-de-referência>...]]"
+
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
-msgstr ""
-
-#: builtin/push.c:64
-msgid "--delete only accepts plain target ref names"
-msgstr "--delete só aceita nomes simples para o ref de destino"
+msgstr "forma abreviada de tag sem <tag>"
 
 #: builtin/push.c:99
+msgid "--delete only accepts plain target ref names"
+msgstr "--delete só aceita nomes simples como referências de destino"
+
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
 msgstr ""
+"\n"
+"Para escolher uma opção permanentemente, consulte push.default em 'git help "
+"config'."
 
-#: builtin/push.c:102
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -3682,8 +9148,17 @@
 "    git push %s %s\n"
 "%s"
 msgstr ""
+"O ramo a montante do ramo atual não coincide com o nome do ramo atual.\n"
+"Para publicar no ramo a montante no remoto, use\n"
+"\n"
+"    git push %s HEAD:%s\n"
+"\n"
+"Para publicar no ramo com o mesmo nome no remoto, use\n"
+"\n"
+"    git push %s %s\n"
+"%s"
 
-#: builtin/push.c:121
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -3692,8 +9167,13 @@
 "\n"
 "    git push %s HEAD:<name-of-remote-branch>\n"
 msgstr ""
+"Não se encontra em nenhum ramo neste momento.\n"
+"Para publicar o histórico que conduziu ao estado atual (de HEAD\n"
+"destacada), use\n"
+"\n"
+"    git push %s HEAD:<name-of-remote-branch>\n"
 
-#: builtin/push.c:128
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -3701,67 +9181,108 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 msgstr ""
+"O ramo atual %s não tem nenhum ramo a montante.\n"
+"Para publicar o ramo atual e definir o remoto a montante, use\n"
+"\n"
+"    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:136
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr ""
+"O ramo atual %s tem múltiplos ramos a montante, recusando-se a publicar."
 
-#: builtin/push.c:139
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
 "your current branch '%s', without telling me what to push\n"
 "to update which remote branch."
 msgstr ""
+"O remoto '%s', no qual pretende publicar, não é o remoto a montante\n"
+"do ramo atual '%s'. Deve indicar o que pretende publicar e que ramo\n"
+"remoto atualizar."
 
-#: builtin/push.c:174
-msgid "You didn't specify any refspecs to push, and push.default is \"nothing\"."
+#: builtin/push.c:242
+msgid ""
+"You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
+"Não indicou nenhum especificador de referência para publicar e o valor de "
+"push.default é \"nothing\"."
 
-#: builtin/push.c:181
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
-"its remote counterpart. Merge the remote changes (e.g. 'git pull')\n"
-"before pushing again.\n"
+"its remote counterpart. Integrate the remote changes (e.g.\n"
+"'git pull ...') before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
+"As atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n"
+"em relação ao homólogo remoto. Integre as alterações remotas (e.g.\n"
+"'git pull ...') antes de publicar de novo.\n"
+"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes."
 
-#: builtin/push.c:187
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
-"counterpart. If you did not intend to push that branch, you may want to\n"
-"specify branches to push or set the 'push.default' configuration\n"
-"variable to 'current' or 'upstream' to push only the current branch."
-msgstr ""
-
-#: builtin/push.c:193
-msgid ""
-"Updates were rejected because a pushed branch tip is behind its remote\n"
-"counterpart. Check out this branch and merge the remote changes\n"
-"(e.g. 'git pull') before pushing again.\n"
+"counterpart. Check out this branch and integrate the remote changes\n"
+"(e.g. 'git pull ...') before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
 msgstr ""
+"As atualizações foram rejeitadas porque a ponta do ramo atual está atrasada\n"
+"em relação ao homólogo remoto. Extraia o ramo e integre\n"
+"as alterações remotas (e.g. 'git pull ...') antes de publicar de novo.\n"
+"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes."
 
-#: builtin/push.c:233
+#: builtin/push.c:261
+msgid ""
+"Updates were rejected because the remote contains work that you do\n"
+"not have locally. This is usually caused by another repository pushing\n"
+"to the same ref. You may want to first integrate the remote changes\n"
+"(e.g., 'git pull ...') before pushing again.\n"
+"See the 'Note about fast-forwards' in 'git push --help' for details."
+msgstr ""
+"As atualizações foram rejeitadas porque o remoto contém alterações que\n"
+"não tem localmente. Habitualmente, acontece porque outro repositório "
+"publicou\n"
+"na mesma referência. Pode integrar primeiro as alterações remotas\n"
+"(e.g., 'git pull ...') antes de publicar de novo.\n"
+"Consulte 'Note about fast-forwards' em 'git push --help' para obter detalhes."
+
+#: builtin/push.c:268
+msgid "Updates were rejected because the tag already exists in the remote."
+msgstr "As atualizações foram rejeitadas porque a tag já existe no remoto."
+
+#: builtin/push.c:271
+msgid ""
+"You cannot update a remote ref that points at a non-commit object,\n"
+"or update a remote ref to make it point at a non-commit object,\n"
+"without using the '--force' option.\n"
+msgstr ""
+"Não é possível atualizar uma referência remota que aponte para um\n"
+"objeto não commit, ou atualizar uma referência remota fazendo-a\n"
+"apontar para um objeto não commit, sem usar a opção '--force'.\n"
+
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
-msgstr "Pushing para %s\n"
+msgstr "A publicar em %s\n"
 
-#: builtin/push.c:237
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
-msgstr ""
+msgstr "falha ao publicar algumas referências em '%s'"
 
-#: builtin/push.c:269
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
-msgstr "repositorio inválido '%s'"
+msgstr "repositório '%s' incorreto"
 
-#: builtin/push.c:270
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
-"Either specify the URL from the command-line or configure a remote repository using\n"
+"Either specify the URL from the command-line or configure a remote "
+"repository using\n"
 "\n"
 "    git remote add <name> <url>\n"
 "\n"
@@ -3769,154 +9290,399 @@
 "\n"
 "    git push <name>\n"
 msgstr ""
+"Destino de publicação não definido.\n"
+"Indique um URL na linha de comandos ou configure um repositório remoto "
+"usando\n"
+"\n"
+"    git remote add <nome> <url>\n"
+"\n"
+"e publique usando o nome remoto\n"
+"\n"
+"    git push <nome>\n"
 
-#: builtin/push.c:285
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
-msgstr "--all e --tags are são incompatíveis"
+msgstr "--all e --tags são incompatíveis"
 
-#: builtin/push.c:286
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
-msgstr ""
-
-#: builtin/push.c:291
-msgid "--mirror and --tags are incompatible"
-msgstr ""
-
-#: builtin/push.c:292
-msgid "--mirror can't be combined with refspecs"
-msgstr ""
-
-#: builtin/push.c:297
-msgid "--all and --mirror are incompatible"
-msgstr ""
-
-#: builtin/push.c:385
-msgid "--delete is incompatible with --all, --mirror and --tags"
-msgstr ""
+msgstr "--all não pode ser combinado com especificadores de referências"
 
 #: builtin/push.c:387
-msgid "--delete doesn't make sense without any refs"
-msgstr ""
+msgid "--mirror and --tags are incompatible"
+msgstr "--mirror e --tags são incompatíveis"
 
-#: builtin/remote.c:98
+#: builtin/push.c:388
+msgid "--mirror can't be combined with refspecs"
+msgstr "--mirror não pode ser combinado com especificadores de referências"
+
+#: builtin/push.c:393
+msgid "--all and --mirror are incompatible"
+msgstr "--all e --mirror são incompatíveis"
+
+#: builtin/push.c:505
+msgid "repository"
+msgstr "repositório"
+
+#: builtin/push.c:506 builtin/send-pack.c:161
+msgid "push all refs"
+msgstr "publicar todas as referências"
+
+#: builtin/push.c:507 builtin/send-pack.c:163
+msgid "mirror all refs"
+msgstr "replicar todas as referências"
+
+#: builtin/push.c:509
+msgid "delete refs"
+msgstr "eliminar referências"
+
+#: builtin/push.c:510
+msgid "push tags (can't be used with --all or --mirror)"
+msgstr "publicar tags (não pode ser usado com --all ou --mirror)"
+
+#: builtin/push.c:513 builtin/send-pack.c:164
+msgid "force updates"
+msgstr "forçar atualização"
+
+#: builtin/push.c:515 builtin/send-pack.c:175
+msgid "refname>:<expect"
+msgstr "nome da referência>:<esperado"
+
+#: builtin/push.c:516 builtin/send-pack.c:176
+msgid "require old value of ref to be at this value"
+msgstr "exigir que o antigo valor da referência tenha este valor"
+
+#: builtin/push.c:519
+msgid "control recursive pushing of submodules"
+msgstr "controlar a publicação recursiva de submódulos"
+
+#: builtin/push.c:521 builtin/send-pack.c:169
+msgid "use thin pack"
+msgstr "usar pacote fino"
+
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
+#: builtin/send-pack.c:159
+msgid "receive pack program"
+msgstr "programa receive pack"
+
+#: builtin/push.c:524
+msgid "set upstream for git pull/status"
+msgstr "definir o ramo a montante usado com git pull/status"
+
+#: builtin/push.c:527
+msgid "prune locally removed refs"
+msgstr "eliminar referências removidas localmente"
+
+#: builtin/push.c:529
+msgid "bypass pre-push hook"
+msgstr "ignorar pre-push hook"
+
+#: builtin/push.c:530
+msgid "push missing but relevant tags"
+msgstr "publicar tags perdidas mas relevantes"
+
+#: builtin/push.c:533 builtin/send-pack.c:166
+msgid "GPG sign the push"
+msgstr "assinar publicação com GPG"
+
+#: builtin/push.c:535 builtin/send-pack.c:170
+msgid "request atomic transaction on remote side"
+msgstr "solicitar transação atómica no servidor remoto"
+
+#: builtin/push.c:549
+msgid "--delete is incompatible with --all, --mirror and --tags"
+msgstr "--delete é incompatível com --all, --mirror e --tags"
+
+#: builtin/push.c:551
+msgid "--delete doesn't make sense without any refs"
+msgstr "--delete não faz sentido sem uma referência"
+
+#: builtin/read-tree.c:37
+msgid ""
+"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>) "
+"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--"
+"index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
+msgstr ""
+"git read-tree [(-m [--trivial] [--aggressive] | --reset | --"
+"prefix=<prefixo>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-"
+"sparse-checkout] [--index-output=<ficheiro>] (--empty | <árvore1> [<árvore2> "
+"[<árvore3>]])"
+
+#: builtin/read-tree.c:110
+msgid "write resulting index to <file>"
+msgstr "escrever o índice resultante no <ficheiro>"
+
+#: builtin/read-tree.c:113
+msgid "only empty the index"
+msgstr "apenas esvaziar o índice"
+
+#: builtin/read-tree.c:115
+msgid "Merging"
+msgstr "A realizar merge"
+
+#: builtin/read-tree.c:117
+msgid "perform a merge in addition to a read"
+msgstr "realizar um merge em adição a uma leitura"
+
+#: builtin/read-tree.c:119
+msgid "3-way merge if no file level merging required"
+msgstr ""
+"realizar merge com 3 pontos se o merge ao nível dos ficheiros não for "
+"necessário"
+
+#: builtin/read-tree.c:121
+msgid "3-way merge in presence of adds and removes"
+msgstr "realizar merge com 3 ponto na presença de adições e remoções"
+
+#: builtin/read-tree.c:123
+msgid "same as -m, but discard unmerged entries"
+msgstr "o mesmo que -m, mas descartar entradas não integradas"
+
+#: builtin/read-tree.c:124
+msgid "<subdirectory>/"
+msgstr "<subdiretório>/"
+
+#: builtin/read-tree.c:125
+msgid "read the tree into the index under <subdirectory>/"
+msgstr "ler a árvore em <subdiretório>/ para o índice"
+
+#: builtin/read-tree.c:128
+msgid "update working tree with merge result"
+msgstr "atualizar a árvore de trabalho com os resultados do merge"
+
+#: builtin/read-tree.c:130
+msgid "gitignore"
+msgstr "gitignore"
+
+#: builtin/read-tree.c:131
+msgid "allow explicitly ignored files to be overwritten"
+msgstr "permitir que os ficheiros explicitamente ignorados sejam substituídos"
+
+#: builtin/read-tree.c:134
+msgid "don't check the working tree after merging"
+msgstr "não verificar a árvore de trabalho depois de efetuar merge"
+
+#: builtin/read-tree.c:135
+msgid "don't update the index or the work tree"
+msgstr "não atualizar o índice ou a árvore de trabalho"
+
+#: builtin/read-tree.c:137
+msgid "skip applying sparse checkout filter"
+msgstr "ignorar a aplicação do filtro de extração esparsa"
+
+#: builtin/read-tree.c:139
+msgid "debug unpack-trees"
+msgstr "depurar unpack-trees"
+
+#: builtin/reflog.c:423
+#, c-format
+msgid "'%s' for '%s' is not a valid timestamp"
+msgstr "'%s' em '%s' não é um carimbo de data/hora válido"
+
+#: builtin/reflog.c:540 builtin/reflog.c:545
+#, c-format
+msgid "'%s' is not a valid timestamp"
+msgstr "'%s' não é um carimbo de data/hora válido"
+
+#: builtin/remote.c:12
+msgid "git remote [-v | --verbose]"
+msgstr "git remote [-v | --verbose]"
+
+#: builtin/remote.c:13
+msgid ""
+"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--"
+"mirror=<fetch|push>] <name> <url>"
+msgstr ""
+"git remote add [-t <ramo>] [-m <master>] [-f] [--tags | --no-tags] [--"
+"mirror=<fetch|push>] <nome> <url>"
+
+#: builtin/remote.c:14 builtin/remote.c:34
+msgid "git remote rename <old> <new>"
+msgstr "git remote rename <antigo> <novo>"
+
+#: builtin/remote.c:15 builtin/remote.c:39
+msgid "git remote remove <name>"
+msgstr "git remote remove <nome>"
+
+#: builtin/remote.c:16 builtin/remote.c:44
+msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)"
+msgstr "git remote set-head <nome> (-a | --auto | -d | --delete | <ramo>)"
+
+#: builtin/remote.c:17
+msgid "git remote [-v | --verbose] show [-n] <name>"
+msgstr "git remote [-v | --verbose] show [-n] <nome>"
+
+#: builtin/remote.c:18
+msgid "git remote prune [-n | --dry-run] <name>"
+msgstr "git remote prune [-n | --dry-run] <nome>"
+
+#: builtin/remote.c:19
+msgid ""
+"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]"
+msgstr ""
+"git remote [-v | --verbose] update [-p | --prune] [(<grupo> | <remoto>)...]"
+
+#: builtin/remote.c:20
+msgid "git remote set-branches [--add] <name> <branch>..."
+msgstr "git remote set-branches [--add] <nome> <ramo>..."
+
+#: builtin/remote.c:21 builtin/remote.c:70
+msgid "git remote get-url [--push] [--all] <name>"
+msgstr "git remote get-url [--push] [--all] <nome>"
+
+#: builtin/remote.c:22 builtin/remote.c:75
+msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]"
+msgstr "git remote set-url [--push] <nome> <novo-url> [<url-antigo>]"
+
+#: builtin/remote.c:23 builtin/remote.c:76
+msgid "git remote set-url --add <name> <newurl>"
+msgstr "git remote set-url --add <nome> <novo-url>"
+
+#: builtin/remote.c:24 builtin/remote.c:77
+msgid "git remote set-url --delete <name> <url>"
+msgstr "git remote set-url --delete <nome> <url>"
+
+#: builtin/remote.c:29
+msgid "git remote add [<options>] <name> <url>"
+msgstr "git remote add [<opções>] <nome> <url>"
+
+#: builtin/remote.c:49
+msgid "git remote set-branches <name> <branch>..."
+msgstr "git remote set-branches <nome> <ramo>..."
+
+#: builtin/remote.c:50
+msgid "git remote set-branches --add <name> <branch>..."
+msgstr "git remote set-branches --add <nome> <ramo>..."
+
+#: builtin/remote.c:55
+msgid "git remote show [<options>] <name>"
+msgstr "git remote show [<opções>] <nome>"
+
+#: builtin/remote.c:60
+msgid "git remote prune [<options>] <name>"
+msgstr "git remote prune [<opções>] <nome>"
+
+#: builtin/remote.c:65
+msgid "git remote update [<options>] [<group> | <remote>]..."
+msgstr "git remote update [<opções>] [<grupo> | <remoto>]..."
+
+#: builtin/remote.c:94
 #, c-format
 msgid "Updating %s"
-msgstr "Actualizando %s"
+msgstr "A atualizar %s"
 
-#: builtin/remote.c:130
+#: builtin/remote.c:126
 msgid ""
 "--mirror is dangerous and deprecated; please\n"
 "\t use --mirror=fetch or --mirror=push instead"
 msgstr ""
+"--mirror é perigoso e obsoleto;\n"
+"\t use --mirror=fetch ou --mirror=push"
 
-#: builtin/remote.c:147
+#: builtin/remote.c:143
 #, c-format
 msgid "unknown mirror argument: %s"
-msgstr "argumento mirror não conhecido: %s"
+msgstr "argumento de mirror desconhecido: %s"
 
-#: builtin/remote.c:185
+#: builtin/remote.c:159
+msgid "fetch the remote branches"
+msgstr "obter os ramos remotos"
+
+#: builtin/remote.c:161
+msgid "import all tags and associated objects when fetching"
+msgstr "importar todas as tags e objetos associados ao obter"
+
+#: builtin/remote.c:164
+msgid "or do not fetch any tag at all (--no-tags)"
+msgstr "ou não obter nenhuma tag (--no-tags)"
+
+#: builtin/remote.c:166
+msgid "branch(es) to track"
+msgstr "ramos a seguir"
+
+#: builtin/remote.c:167
+msgid "master branch"
+msgstr "ramo mestre"
+
+#: builtin/remote.c:168
+msgid "push|fetch"
+msgstr "push|fetch"
+
+#: builtin/remote.c:169
+msgid "set up remote as a mirror to push to or fetch from"
+msgstr "configurar o remoto como um espelho para publicar ou obter"
+
+#: builtin/remote.c:181
 msgid "specifying a master branch makes no sense with --mirror"
-msgstr ""
+msgstr "especificar um ramo mestre não faz sentido com --mirror"
 
-#: builtin/remote.c:187
+#: builtin/remote.c:183
 msgid "specifying branches to track makes sense only with fetch mirrors"
-msgstr ""
+msgstr "especificar ramos para seguir só faz sentido com fetch mirrors"
 
-#: builtin/remote.c:195
-#: builtin/remote.c:646
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
-msgstr "o remoto %s já existe"
+msgstr "o remoto %s já existe."
 
-#: builtin/remote.c:199
-#: builtin/remote.c:650
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
-msgstr "'%s' não é um nombe remoto valido"
+msgstr "'%s' não é um nome de remoto válido"
 
-#: builtin/remote.c:243
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
-msgstr "Não foi possível configurar a rama master '%s'"
+msgstr "Não foi possível configuração o ramo mestre '%s'"
 
-#: builtin/remote.c:299
-#, c-format
-msgid "more than one %s"
-msgstr ""
-
-#: builtin/remote.c:339
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr ""
+"Não foi possível obter o mapa de fetch do especificador de referência %s"
 
-#: builtin/remote.c:440
-#: builtin/remote.c:448
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
-msgstr ""
+msgstr "(correspondente)"
 
-#: builtin/remote.c:452
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(eliminado)"
 
-#: builtin/remote.c:595
-#: builtin/remote.c:601
-#: builtin/remote.c:607
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Não foi possível adicionar o '%s' para o '%s'"
-
-#: builtin/remote.c:639
-#: builtin/remote.c:792
-#: builtin/remote.c:890
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
-msgstr ""
+msgstr "Remoto inexistente: %s"
 
-#: builtin/remote.c:656
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
-msgstr "Não foi possível renombrar a secção da configuração de '%s' para '%s'"
+msgstr ""
+"Não foi possível mudar o nome da secção de configuração de '%s' para '%s'"
 
-#: builtin/remote.c:662
-#: builtin/remote.c:799
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Não foi possível remover a secção da configuração '%s'"
-
-#: builtin/remote.c:677
+#: builtin/remote.c:663
 #, c-format
 msgid ""
-"Not updating non-default fetch respec\n"
+"Not updating non-default fetch refspec\n"
 "\t%s\n"
 "\tPlease update the configuration manually if necessary."
 msgstr ""
+"O seguinte especificador de referência, não-predefinido e usado para obter "
+"objetos, não foi atualizado\n"
+"\t%s\n"
+"\tAtualize a configuração manualmente se necessário."
 
-#: builtin/remote.c:683
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Não foi possível adicionar '%s'"
-
-#: builtin/remote.c:694
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Não foi possível atribuir '%s'"
-
-#: builtin/remote.c:716
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
-msgstr "falhou eliminar '%s'"
+msgstr "falha ao eliminar '%s'"
 
-#: builtin/remote.c:750
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
-msgstr "falhou a criar '%s'"
+msgstr "falha ao criar '%s'"
 
-#: builtin/remote.c:764
-#, c-format
-msgid "Could not remove branch %s"
-msgstr "Não foi possível remover rama %s"
-
-#: builtin/remote.c:834
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -3924,1057 +9690,2752 @@
 "Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n"
 "to delete them, use:"
 msgstr[0] ""
+"Nota: Um ramo fora da hierarquia refs/remotes/ não foi removido;\n"
+"para o remover, use:"
 msgstr[1] ""
+"Nota: alguns ramos fora da hierarquia refs/remotes/ não foram removidos;\n"
+"para os remover, use:"
 
-#: builtin/remote.c:943
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Não foi possível remover a secção de configuração '%s'"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
-msgstr ""
+msgstr " novo (os próxima objetos obtidos serão guardados em remotes/%s)"
 
-#: builtin/remote.c:946
+#: builtin/remote.c:914
 msgid " tracked"
-msgstr "seguido"
+msgstr " seguido"
 
-#: builtin/remote.c:948
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
-msgstr ""
+msgstr " obsoleto (use 'git remote prune' para remover)"
 
-#: builtin/remote.c:950
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:991
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr ""
+"branch.%s.merge inválido; não é possível realizar rebase sobre mais do que "
+"um ramo"
 
-#: builtin/remote.c:998
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr ""
+msgid "rebases interactively onto remote %s"
+msgstr "realiza rebase interativo sobre %s do remoto"
 
-#: builtin/remote.c:1001
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
-msgstr "Fundir com servidor remoto %s"
+msgstr " realiza merge com %s do remoto"
 
-#: builtin/remote.c:1002
+#: builtin/remote.c:972
 msgid "    and with remote"
-msgstr "    e com remoto"
+msgstr "    e com o remoto"
 
-#: builtin/remote.c:1004
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
-msgstr "Fundir com servidor remoto %s"
+msgstr "realiza merge com %s do remoto"
 
-#: builtin/remote.c:1005
+#: builtin/remote.c:975
 msgid "   and with remote"
-msgstr "   e com remoto"
+msgstr "   e com o remoto"
 
-#: builtin/remote.c:1051
+#: builtin/remote.c:1021
 msgid "create"
-msgstr "creado"
+msgstr "criado"
 
-#: builtin/remote.c:1054
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "eliminado"
 
-#: builtin/remote.c:1058
+#: builtin/remote.c:1028
 msgid "up to date"
-msgstr "actualizado"
+msgstr "atualizado"
 
-#: builtin/remote.c:1061
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
-msgstr "fast-forwardable"
+msgstr "pode ser avançado rapidamente"
 
-#: builtin/remote.c:1064
+#: builtin/remote.c:1034
 msgid "local out of date"
-msgstr "local desatualizada"
+msgstr "local desatualizado"
 
-#: builtin/remote.c:1071
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
-msgstr ""
+msgstr "    %-*s força em %-*s (%s)"
 
-#: builtin/remote.c:1074
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
-msgstr ""
+msgstr "    %-*s publica em %-*s (%s)"
 
-#: builtin/remote.c:1078
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
-msgstr ""
+msgstr "    %-*s força em %s"
 
-#: builtin/remote.c:1081
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
-msgstr ""
-
-#: builtin/remote.c:1118
-#, c-format
-msgid "* remote %s"
-msgstr "* remota %s"
+msgstr "    %-*s publica em %s"
 
 #: builtin/remote.c:1119
+msgid "do not query remotes"
+msgstr "não consultar remotos"
+
+#: builtin/remote.c:1146
+#, c-format
+msgid "* remote %s"
+msgstr "* remoto %s"
+
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
-msgstr ""
+msgstr "  Obter    do URL: %s"
 
-#: builtin/remote.c:1120
-#: builtin/remote.c:1285
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(nenhum URL)"
 
-#: builtin/remote.c:1129
-#: builtin/remote.c:1131
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
-msgstr ""
+msgstr "  Publicar no URL: %s"
 
-#: builtin/remote.c:1133
-#: builtin/remote.c:1135
-#: builtin/remote.c:1137
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
-msgstr "Rama HEAD: %s"
+msgstr "  Ramo HEAD: %s"
 
-#: builtin/remote.c:1139
+#: builtin/remote.c:1167
 #, c-format
-msgid "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
-msgstr ""
+msgid ""
+"  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
+msgstr "  Ramo HEAD (o remoto HEAD é ambíguo, pode ser um dos seguintes):\n"
 
-#: builtin/remote.c:1151
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
-msgstr[0] "Rama remota:%s"
-msgstr[1] "Ramas remotas:%s'"
+msgstr[0] "  Ramo remoto:%s"
+msgstr[1] "  Ramos remotos:%s"
 
-#: builtin/remote.c:1154
-#: builtin/remote.c:1181
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
-msgstr ""
+msgstr " (estado não consultado)"
 
-#: builtin/remote.c:1163
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "  Ramo local configurado para 'git pull':"
+msgstr[1] "  Ramos locais configurados para 'git pull':"
 
-#: builtin/remote.c:1171
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
-msgstr ""
+msgstr "  Referências locais serão refletidas (mirror) por 'git push'"
 
-#: builtin/remote.c:1178
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "  Referência local configurada para 'git push'%s:"
+msgstr[1] "  Referências locais configuradas para 'git push'%s:"
 
-#: builtin/remote.c:1216
+#: builtin/remote.c:1227
+msgid "set refs/remotes/<name>/HEAD according to remote"
+msgstr "definir refs/remotes/<nome>/HEAD de acordo com o remoto"
+
+#: builtin/remote.c:1229
+msgid "delete refs/remotes/<name>/HEAD"
+msgstr "eliminar refs/remotes/<nome>/HEAD"
+
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
-msgstr ""
+msgstr "Não é possível determinar o remoto HEAD"
 
-#: builtin/remote.c:1218
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
-msgstr ""
+msgstr "Múltiplos ramos HEAD remotos. Escolha um explicitamente com:"
 
-#: builtin/remote.c:1228
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
-msgstr "Não foi possível abrir %s"
+msgstr "Não foi possível eliminar %s"
 
-#: builtin/remote.c:1236
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
-msgstr ""
+msgstr "Referência inválida: %s"
 
-#: builtin/remote.c:1238
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "Não foi possível configurar %s"
 
-#: builtin/remote.c:1274
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
-msgstr ""
+msgstr " %s ficará suspenso!"
 
-#: builtin/remote.c:1275
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
-msgstr ""
+msgstr " %s ficou suspenso!"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
-msgstr "Apagando %s"
+msgstr "A eliminar %s"
 
-#: builtin/remote.c:1282
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1295
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
-msgstr ""
+msgstr " * [eliminaria] %s"
 
-#: builtin/remote.c:1298
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
-msgstr ""
+msgstr " * [eliminado] %s"
 
-#: builtin/remote.c:1387
-#: builtin/remote.c:1461
+#: builtin/remote.c:1360
+msgid "prune remotes after fetching"
+msgstr "eliminar remotos depois de obter"
+
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
-msgstr "Não existe este remoto '%s'"
+msgstr "Remoto inexistente '%s'"
 
-#: builtin/remote.c:1414
+#: builtin/remote.c:1439
+msgid "add branch"
+msgstr "adicionar ramo"
+
+#: builtin/remote.c:1446
 msgid "no remote specified"
-msgstr "Nenhum remoto especificado"
+msgstr "nenhum remoto especificado"
 
-#: builtin/remote.c:1447
+#: builtin/remote.c:1463
+msgid "query push URLs rather than fetch URLs"
+msgstr "consultar URLs de publicação em vez de URLs utilizados para obter"
+
+#: builtin/remote.c:1465
+msgid "return all URLs"
+msgstr "retornar todos os URLs"
+
+#: builtin/remote.c:1493
+#, c-format
+msgid "no URLs configured for remote '%s'"
+msgstr "o remoto '%s' não tem nenhum URL configurado"
+
+#: builtin/remote.c:1519
+msgid "manipulate push URLs"
+msgstr "manipular URLs de publicação"
+
+#: builtin/remote.c:1521
+msgid "add URL"
+msgstr "adicionar URL"
+
+#: builtin/remote.c:1523
+msgid "delete URLs"
+msgstr "eliminar URLs"
+
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
-msgstr ""
+msgstr "--add --delete não faz sentido"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
-msgstr ""
+msgstr "Padrão de URL antigo inválido: %s"
 
-#: builtin/remote.c:1495
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
-msgstr "Nenhum URL encontrado: %s"
+msgstr "URL não encontrado: %s"
 
-#: builtin/remote.c:1497
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
+msgstr "Não é possível remover todos os URLs de não publicação"
+
+#: builtin/remote.c:1595
+msgid "be verbose; must be placed before a subcommand"
+msgstr "ser verboso; deve ser colocado antes de um subcomando"
+
+#: builtin/repack.c:17
+msgid "git repack [<options>]"
+msgstr "git repack [<opções>]"
+
+#: builtin/repack.c:159
+msgid "pack everything in a single pack"
+msgstr "compactar tudo num único pacote"
+
+#: builtin/repack.c:161
+msgid "same as -a, and turn unreachable objects loose"
+msgstr "o mesmo que -a, e soltar objetos inalcançáveis"
+
+#: builtin/repack.c:164
+msgid "remove redundant packs, and run git-prune-packed"
+msgstr "remover pacotes redundantes e executar git-prune-packed"
+
+#: builtin/repack.c:166
+msgid "pass --no-reuse-delta to git-pack-objects"
+msgstr "passar --no-reuse-delta ao git-pack-objects"
+
+#: builtin/repack.c:168
+msgid "pass --no-reuse-object to git-pack-objects"
+msgstr "passar --no-reuse-object ao git-pack-objects"
+
+#: builtin/repack.c:170
+msgid "do not run git-update-server-info"
+msgstr "não executar git-update-server-info"
+
+#: builtin/repack.c:173
+msgid "pass --local to git-pack-objects"
+msgstr "passar --local ao git-pack-objects"
+
+#: builtin/repack.c:175
+msgid "write bitmap index"
+msgstr "escrever índice de mapa de bits"
+
+#: builtin/repack.c:176
+msgid "approxidate"
+msgstr "aproximar"
+
+#: builtin/repack.c:177
+msgid "with -A, do not loosen objects older than this"
+msgstr "com -A, não soltar mais objetos além destes"
+
+#: builtin/repack.c:179
+msgid "size of the window used for delta compression"
+msgstr "dimensão da janela usada em compressão de deltas"
+
+#: builtin/repack.c:180 builtin/repack.c:184
+msgid "bytes"
+msgstr "bytes"
+
+#: builtin/repack.c:181
+msgid "same as the above, but limit memory size instead of entries count"
 msgstr ""
+"o mesmo que o anterior, mas limitar a memória usada em vez do número de "
+"entradas"
 
-#: builtin/reset.c:33
+#: builtin/repack.c:183
+msgid "limits the maximum delta depth"
+msgstr "limitar a profundidade máxima de delta"
+
+#: builtin/repack.c:185
+msgid "maximum size of each packfile"
+msgstr "tamanho máximo de cada ficheiro de pacote"
+
+#: builtin/repack.c:187
+msgid "repack objects in packs marked with .keep"
+msgstr "reempacotar objetos em pacotes marcados com .keep"
+
+#: builtin/repack.c:197
+msgid "cannot delete packs in a precious-objects repo"
+msgstr "não é possível eliminar pacotes num repositório de objetos-preciosos"
+
+#: builtin/repack.c:381
+#, c-format
+msgid "removing '%s' failed"
+msgstr "falha ao remover '%s'"
+
+#: builtin/replace.c:19
+msgid "git replace [-f] <object> <replacement>"
+msgstr "git replace [-f] <objeto> <substituição>"
+
+#: builtin/replace.c:20
+msgid "git replace [-f] --edit <object>"
+msgstr "git replace [-f] --edit <objeto>"
+
+#: builtin/replace.c:21
+msgid "git replace [-f] --graft <commit> [<parent>...]"
+msgstr "git replace [-f] --graft <commit> [<pai>...]"
+
+#: builtin/replace.c:22
+msgid "git replace -d <object>..."
+msgstr "git replace -d <objeto>..."
+
+#: builtin/replace.c:23
+msgid "git replace [--format=<format>] [-l [<pattern>]]"
+msgstr "git replace [--format=<formato>] [-l [<padrão>]]"
+
+#: builtin/replace.c:325 builtin/replace.c:363 builtin/replace.c:391
+#, c-format
+msgid "Not a valid object name: '%s'"
+msgstr "Nome de objeto inválido: '%s'"
+
+#: builtin/replace.c:355
+#, c-format
+msgid "bad mergetag in commit '%s'"
+msgstr "mergetag incorreta no commit '%s'"
+
+#: builtin/replace.c:357
+#, c-format
+msgid "malformed mergetag in commit '%s'"
+msgstr "mergetag malformada no commit '%s' "
+
+#: builtin/replace.c:368
+#, c-format
+msgid ""
+"original commit '%s' contains mergetag '%s' that is discarded; use --edit "
+"instead of --graft"
+msgstr ""
+"o commit original '%s' contém a mergetag '%s' que foi excluída; use --edit "
+"em vez de --graft"
+
+#: builtin/replace.c:401
+#, c-format
+msgid "the original commit '%s' has a gpg signature."
+msgstr "o commit original '%s' tem uma assinatura gpg."
+
+#: builtin/replace.c:402
+msgid "the signature will be removed in the replacement commit!"
+msgstr "a assinatura será removida do commit substituto!"
+
+#: builtin/replace.c:408
+#, c-format
+msgid "could not write replacement commit for: '%s'"
+msgstr "não foi possível escrever o commit substituto de: '%s'"
+
+#: builtin/replace.c:432
+msgid "list replace refs"
+msgstr "listar referências substituídas"
+
+#: builtin/replace.c:433
+msgid "delete replace refs"
+msgstr "eliminar referências substituídas"
+
+#: builtin/replace.c:434
+msgid "edit existing object"
+msgstr "editar objeto existente"
+
+#: builtin/replace.c:435
+msgid "change a commit's parents"
+msgstr "mudar os pais de um commit"
+
+#: builtin/replace.c:436
+msgid "replace the ref if it exists"
+msgstr "substituir a referência se esta existir"
+
+#: builtin/replace.c:437
+msgid "do not pretty-print contents for --edit"
+msgstr "não mostrar o conteúdo de --edit com impressão bonita"
+
+#: builtin/replace.c:438
+msgid "use this format"
+msgstr "usar este formato"
+
+#: builtin/rerere.c:12
+msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]"
+msgstr ""
+"git rerere [clear | forget <caminho>... | status | remaining | diff | gc]"
+
+#: builtin/rerere.c:58
+msgid "register clean resolutions in index"
+msgstr "registar resoluções limpas no índice"
+
+#: builtin/reset.c:26
+msgid ""
+"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
+msgstr ""
+"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"
+
+#: builtin/reset.c:27
+msgid "git reset [-q] <tree-ish> [--] <paths>..."
+msgstr "git reset [-q] <árvore> [--] <caminhos>..."
+
+#: builtin/reset.c:28
+msgid "git reset --patch [<tree-ish>] [--] [<paths>...]"
+msgstr "git reset --patch [<árvore>] [--] [<caminhos>...]"
+
+#: builtin/reset.c:34
 msgid "mixed"
-msgstr "mistura"
+msgstr "misturado"
 
-#: builtin/reset.c:33
+#: builtin/reset.c:34
 msgid "soft"
-msgstr "leve"
+msgstr "suave"
 
-#: builtin/reset.c:33
+#: builtin/reset.c:34
 msgid "hard"
 msgstr "forte"
 
-#: builtin/reset.c:33
+#: builtin/reset.c:34
 msgid "merge"
-msgstr "juntar"
+msgstr "merge"
 
-#: builtin/reset.c:33
+#: builtin/reset.c:34
 msgid "keep"
-msgstr "manter"
+msgstr "conservador"
 
-#: builtin/reset.c:77
+#: builtin/reset.c:74
 msgid "You do not have a valid HEAD."
-msgstr "Não tens a HEAD válida."
+msgstr "HEAD inválida."
 
-#: builtin/reset.c:79
+#: builtin/reset.c:76
 msgid "Failed to find tree of HEAD."
-msgstr ""
+msgstr "Falha ao procurar árvore de HEAD."
 
-#: builtin/reset.c:85
+#: builtin/reset.c:82
 #, c-format
 msgid "Failed to find tree of %s."
-msgstr ""
+msgstr "Falha ao procurar árvore de %s."
 
-#: builtin/reset.c:96
-msgid "Could not write new index file."
-msgstr ""
-
-#: builtin/reset.c:106
+#: builtin/reset.c:100
 #, c-format
 msgid "HEAD is now at %s"
-msgstr "HEAD é agora em %s"
+msgstr "HEAD está agora em %s"
 
-#: builtin/reset.c:130
-msgid "Could not read index"
-msgstr ""
-
-#: builtin/reset.c:133
-msgid "Unstaged changes after reset:"
-msgstr ""
-
-#: builtin/reset.c:223
+#: builtin/reset.c:183
 #, c-format
 msgid "Cannot do a %s reset in the middle of a merge."
-msgstr ""
+msgstr "Não é possível repor de modo %s durante um merge."
 
-#: builtin/reset.c:297
+#: builtin/reset.c:276
+msgid "be quiet, only report errors"
+msgstr "silencioso, só reportar erros"
+
+#: builtin/reset.c:278
+msgid "reset HEAD and index"
+msgstr "repor HEAD e índice"
+
+#: builtin/reset.c:279
+msgid "reset only HEAD"
+msgstr "repor HEAD apenas"
+
+#: builtin/reset.c:281 builtin/reset.c:283
+msgid "reset HEAD, index and working tree"
+msgstr "repor HEAD, índice e árvore de trabalho"
+
+#: builtin/reset.c:285
+msgid "reset HEAD but keep local changes"
+msgstr "repor HEAD mas conservar alterações locais"
+
+#: builtin/reset.c:288
+msgid "record only the fact that removed paths will be added later"
+msgstr "registar apenas o facto de que os caminhos removidos serão adicionados"
+
+#: builtin/reset.c:305
 #, c-format
-msgid "Could not parse object '%s'."
-msgstr "Não foi possível analisar objeto '%s'."
-
-#: builtin/reset.c:302
-msgid "--patch is incompatible with --{hard,mixed,soft}"
-msgstr ""
-
-#: builtin/reset.c:311
-msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
-msgstr ""
+msgid "Failed to resolve '%s' as a valid revision."
+msgstr "Falha ao resolver '%s' como referência válida."
 
 #: builtin/reset.c:313
 #, c-format
-msgid "Cannot do %s reset with paths."
-msgstr ""
+msgid "Failed to resolve '%s' as a valid tree."
+msgstr "Falha ao resolver '%s' como árvore válida."
 
-#: builtin/reset.c:325
+#: builtin/reset.c:322
+msgid "--patch is incompatible with --{hard,mixed,soft}"
+msgstr "--patch é incompatível com --{hard,mixed,soft}"
+
+#: builtin/reset.c:331
+msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
+msgstr ""
+"--mixed acompanhado com caminhos é obsoleto; use 'git reset -- <caminhos>'."
+
+#: builtin/reset.c:333
+#, c-format
+msgid "Cannot do %s reset with paths."
+msgstr "Não é possível repor de modo %s com caminhos."
+
+#: builtin/reset.c:343
 #, c-format
 msgid "%s reset is not allowed in a bare repository"
-msgstr ""
+msgstr "Não é permitido repor de modo %s num repositório nu"
 
-#: builtin/reset.c:341
+#: builtin/reset.c:347
+msgid "-N can only be used with --mixed"
+msgstr "-N só pode ser usado com --mixed"
+
+#: builtin/reset.c:364
+msgid "Unstaged changes after reset:"
+msgstr "Alterações não preparadas depois de repor:"
+
+#: builtin/reset.c:370
 #, c-format
 msgid "Could not reset index file to revision '%s'."
-msgstr ""
+msgstr "Não foi possível repor o ficheiro índice para a revisão '%s'."
 
-#: builtin/revert.c:70
-#: builtin/revert.c:92
+#: builtin/reset.c:374
+msgid "Could not write new index file."
+msgstr "Não foi possível escrever novo ficheiro de índice."
+
+#: builtin/rev-list.c:350
+msgid "rev-list does not support display of notes"
+msgstr "rev-list não suporta apresentação de notas"
+
+#: builtin/rev-parse.c:358
+msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
+msgstr "git rev-parse --parseopt [<opções>] -- [<argumentos>...]"
+
+#: builtin/rev-parse.c:363
+msgid "keep the `--` passed as an arg"
+msgstr "Conservar '--' passado como argumento"
+
+#: builtin/rev-parse.c:365
+msgid "stop parsing after the first non-option argument"
+msgstr "parar de analisar depois do primeiro argumento que não seja uma opção"
+
+#: builtin/rev-parse.c:368
+msgid "output in stuck long form"
+msgstr "mostrar em formato fixo e longo"
+
+#: builtin/rev-parse.c:499
+msgid ""
+"git rev-parse --parseopt [<options>] -- [<args>...]\n"
+"   or: git rev-parse --sq-quote [<arg>...]\n"
+"   or: git rev-parse [<options>] [<arg>...]\n"
+"\n"
+"Run \"git rev-parse --parseopt -h\" for more information on the first usage."
+msgstr ""
+"git rev-parse --parseopt [<opções>] -- [<argumentos>...]\n"
+"   or: git rev-parse --sq-quote [<argumentos>...]\n"
+"   or: git rev-parse [<opções>] [<argumentos>...]\n"
+"\n"
+"Execute \"git rev-parse --parseopt -h\" para obter mais informação sobre a "
+"primeira utilização."
+
+#: builtin/revert.c:22
+msgid "git revert [<options>] <commit-ish>..."
+msgstr "git revert [<opções>] <commit-ish>..."
+
+#: builtin/revert.c:23
+msgid "git revert <subcommand>"
+msgstr "git revert <subcommando>"
+
+#: builtin/revert.c:28
+msgid "git cherry-pick [<options>] <commit-ish>..."
+msgstr "git cherry-pick [<opções>] <commit-ish>..."
+
+#: builtin/revert.c:29
+msgid "git cherry-pick <subcommand>"
+msgstr "git cherry-pick <subcommando>"
+
+#: builtin/revert.c:71
 #, c-format
 msgid "%s: %s cannot be used with %s"
-msgstr ""
+msgstr "%s: %s não pode ser usado com %s"
 
-#: builtin/revert.c:131
+#: builtin/revert.c:80
+msgid "end revert or cherry-pick sequence"
+msgstr "terminar reversão ou cherry-pick"
+
+#: builtin/revert.c:81
+msgid "resume revert or cherry-pick sequence"
+msgstr "retomar a reversão ou cherry-pick"
+
+#: builtin/revert.c:82
+msgid "cancel revert or cherry-pick sequence"
+msgstr "cancelar reversão ou cherry-pick"
+
+#: builtin/revert.c:83
+msgid "don't automatically commit"
+msgstr "não efetuar commit automaticamente"
+
+#: builtin/revert.c:84
+msgid "edit the commit message"
+msgstr "editar a mensagem de commit"
+
+#: builtin/revert.c:87
+msgid "parent number"
+msgstr "número de pai"
+
+#: builtin/revert.c:89
+msgid "merge strategy"
+msgstr "estratégia de merge"
+
+#: builtin/revert.c:90
+msgid "option"
+msgstr "opção"
+
+#: builtin/revert.c:91
+msgid "option for merge strategy"
+msgstr "opção de estratégia de merge"
+
+#: builtin/revert.c:104
+msgid "append commit name"
+msgstr "acrescentar nome do commit"
+
+#: builtin/revert.c:106
+msgid "preserve initially empty commits"
+msgstr "preservar commits inicialmente vazios"
+
+#: builtin/revert.c:107
+msgid "allow commits with empty messages"
+msgstr "permitir commits com mensagens vazias"
+
+#: builtin/revert.c:108
+msgid "keep redundant, empty commits"
+msgstr "manter commits redundantes e vazios"
+
+#: builtin/revert.c:112
 msgid "program error"
 msgstr "erro do programa"
 
-#: builtin/revert.c:221
+#: builtin/revert.c:197
 msgid "revert failed"
-msgstr "falhou o revert"
+msgstr "falha ao reverter"
 
-#: builtin/revert.c:236
+#: builtin/revert.c:212
 msgid "cherry-pick failed"
-msgstr "cherry-pick falhou"
+msgstr "falha ao efetuar cherry-pick"
 
-#: builtin/rm.c:109
-#, c-format
+#: builtin/rm.c:17
+msgid "git rm [<options>] [--] <file>..."
+msgstr "git rm [<opções>] [--] <ficheiro>..."
+
+#: builtin/rm.c:65
 msgid ""
-"'%s' has staged content different from both the file and the HEAD\n"
-"(use -f to force removal)"
-msgstr ""
+"the following submodule (or one of its nested submodules)\n"
+"uses a .git directory:"
+msgid_plural ""
+"the following submodules (or one of their nested submodules)\n"
+"use a .git directory:"
+msgstr[0] ""
+"o submódulo seguinte (ou um dos seus submódulos aninhados)\n"
+"usa um diretório .git:"
+msgstr[1] ""
+"os submódulos seguintes (ou um dos seus submódulos)\n"
+"usam um diretório .git:"
 
-#: builtin/rm.c:115
-#, c-format
+#: builtin/rm.c:71
 msgid ""
-"'%s' has changes staged in the index\n"
-"(use --cached to keep the file, or -f to force removal)"
+"\n"
+"(use 'rm -rf' if you really want to remove it including all of its history)"
 msgstr ""
-
-#: builtin/rm.c:119
-#, c-format
-msgid ""
-"'%s' has local modifications\n"
-"(use --cached to keep the file, or -f to force removal)"
-msgstr ""
-
-#: builtin/rm.c:194
-#, c-format
-msgid "not removing '%s' recursively without -r"
-msgstr ""
+"\n"
+"(use 'rm -rf' se quer mesmo removê-lo, incluindo todo o seu histórico)"
 
 #: builtin/rm.c:230
+msgid ""
+"the following file has staged content different from both the\n"
+"file and the HEAD:"
+msgid_plural ""
+"the following files have staged content different from both the\n"
+"file and the HEAD:"
+msgstr[0] ""
+"o seguinte ficheiro tem conteúdo preparado no índice diferente\n"
+"do conteúdo no ficheiro e em HEAD:"
+msgstr[1] ""
+"os seguintes ficheiros têm conteúdo preparado no índice diferente\n"
+"do conteúdo no ficheiro e em HEAD:"
+
+#: builtin/rm.c:235
+msgid ""
+"\n"
+"(use -f to force removal)"
+msgstr ""
+"\n"
+"(use -f para forçar remoção)"
+
+#: builtin/rm.c:239
+msgid "the following file has changes staged in the index:"
+msgid_plural "the following files have changes staged in the index:"
+msgstr[0] "o seguinte ficheiro contém alterações preparadas no índice:"
+msgstr[1] "os seguintes ficheiros contêm alterações preparadas no índice:"
+
+#: builtin/rm.c:243 builtin/rm.c:254
+msgid ""
+"\n"
+"(use --cached to keep the file, or -f to force removal)"
+msgstr ""
+"\n"
+"(use --cached para manter o ficheiro, ou -f para forçar remoção)"
+
+#: builtin/rm.c:251
+msgid "the following file has local modifications:"
+msgid_plural "the following files have local modifications:"
+msgstr[0] "o seguinte ficheiro contém alterações locais:"
+msgstr[1] "os seguintes ficheiros contêm alterações locais:"
+
+#: builtin/rm.c:269
+msgid "do not list removed files"
+msgstr "não listar ficheiros removidos"
+
+#: builtin/rm.c:270
+msgid "only remove from the index"
+msgstr "remover apenas do índice"
+
+#: builtin/rm.c:271
+msgid "override the up-to-date check"
+msgstr "ignorar verificação de atualização"
+
+#: builtin/rm.c:272
+msgid "allow recursive removal"
+msgstr "permitir remoção recursiva"
+
+#: builtin/rm.c:274
+msgid "exit with a zero status even if nothing matched"
+msgstr "sair com valor zero mesmo quando não há correspondência"
+
+#: builtin/rm.c:317
+msgid "Please, stage your changes to .gitmodules or stash them to proceed"
+msgstr ""
+"Prepare as suas alterações em .gitmodules ou esconda-as (stash) para "
+"prosseguir"
+
+#: builtin/rm.c:335
+#, c-format
+msgid "not removing '%s' recursively without -r"
+msgstr "não remover '%s' recursivamente sem -r"
+
+#: builtin/rm.c:374
 #, c-format
 msgid "git rm: unable to remove %s"
+msgstr "git rm: não é possível remover %s"
+
+#: builtin/send-pack.c:18
+msgid ""
+"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-"
+"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> "
+"[<ref>...]\n"
+"  --all and explicit <ref> specification are mutually exclusive."
 msgstr ""
+"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-"
+"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<diretório> "
+"[<referência>...]\n"
+"  --all e especificação explicita duma <referência> são mutuamente "
+"exclusivos."
 
-#: builtin/shortlog.c:157
-#, c-format
-msgid "Missing author: %s"
-msgstr "Autor em falta: %s"
+#: builtin/send-pack.c:160
+msgid "remote name"
+msgstr "nome do remoto"
 
-#: builtin/tag.c:60
-#, c-format
-msgid "malformed object at '%s'"
+#: builtin/send-pack.c:171
+msgid "use stateless RPC protocol"
+msgstr "use protocolo RPC sem estado"
+
+#: builtin/send-pack.c:172
+msgid "read refs from stdin"
+msgstr "ler referências do stdin"
+
+#: builtin/send-pack.c:173
+msgid "print status from remote helper"
+msgstr "imprimir estado do programa auxiliar remoto"
+
+#: builtin/shortlog.c:13
+msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr ""
+"git shortlog [<opções>] [<intervalo-de-revisões>] [[--] [<caminho>...]]"
 
-#: builtin/tag.c:207
+#: builtin/shortlog.c:242
+msgid "sort output according to the number of commits per author"
+msgstr "ordenar saída de acordo com o número de commits por autor"
+
+#: builtin/shortlog.c:244
+msgid "Suppress commit descriptions, only provides commit count"
+msgstr "suprimir a descrição dos commits, fornecer apenas o número de commits"
+
+#: builtin/shortlog.c:246
+msgid "Show the email address of each author"
+msgstr "Mostrar o endereço de e-mail de cada autor"
+
+#: builtin/shortlog.c:247
+msgid "w[,i1[,i2]]"
+msgstr "w[,i1[,i2]]"
+
+#: builtin/shortlog.c:248
+msgid "Linewrap output"
+msgstr "ajustar linhas"
+
+#: builtin/show-branch.c:10
+msgid ""
+"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
+"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n"
+"\t\t[--more=<n> | --list | --independent | --merge-base]\n"
+"\t\t[--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]"
+msgstr ""
+"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n"
+"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n"
+"\t\t[--more=<n> | --list | --independent | --merge-base]\n"
+"\t\t[--no-name | --sha1-name] [--topics] [(<revisão> | <glob>)...]"
+
+#: builtin/show-branch.c:14
+msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]"
+msgstr "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<referência>]"
+
+#: builtin/show-branch.c:640
+msgid "show remote-tracking and local branches"
+msgstr "mostrar os ramos remotos seguidos e os ramos locais"
+
+#: builtin/show-branch.c:642
+msgid "show remote-tracking branches"
+msgstr "mostrar os ramos remotos seguidos"
+
+#: builtin/show-branch.c:644
+msgid "color '*!+-' corresponding to the branch"
+msgstr "colorir '*!+-' correspondendo ao ramo"
+
+#: builtin/show-branch.c:646
+msgid "show <n> more commits after the common ancestor"
+msgstr "mostrar mais <n> commits depois do antecessor comum"
+
+#: builtin/show-branch.c:648
+msgid "synonym to more=-1"
+msgstr "sinónimo de more=-1"
+
+#: builtin/show-branch.c:649
+msgid "suppress naming strings"
+msgstr "suprimir a cadeias de caracteres de nomes"
+
+#: builtin/show-branch.c:651
+msgid "include the current branch"
+msgstr "incluir o ramo atual"
+
+#: builtin/show-branch.c:653
+msgid "name commits with their object names"
+msgstr "designar commits pelos seus nomes de objeto"
+
+#: builtin/show-branch.c:655
+msgid "show possible merge bases"
+msgstr "mostrar possíveis bases de merge"
+
+#: builtin/show-branch.c:657
+msgid "show refs unreachable from any other ref"
+msgstr "mostrar referências inalcançáveis a partir de outras referências"
+
+#: builtin/show-branch.c:659
+msgid "show commits in topological order"
+msgstr "mostrar commits em ordem topológica"
+
+#: builtin/show-branch.c:662
+msgid "show only commits not on the first branch"
+msgstr "mostrar apenas commits não presentes no primeiro ramo"
+
+#: builtin/show-branch.c:664
+msgid "show merges reachable from only one tip"
+msgstr "mostrar merges alcançáveis a partir duma única ponta"
+
+#: builtin/show-branch.c:666
+msgid "topologically sort, maintaining date order where possible"
+msgstr ""
+"ordenar topologicamente, mantendo a ordenação por data sempre que possível"
+
+#: builtin/show-branch.c:669
+msgid "<n>[,<base>]"
+msgstr "<n>[,<base>]"
+
+#: builtin/show-branch.c:670
+msgid "show <n> most recent ref-log entries starting at base"
+msgstr "mostrar as <n> entradas de ref-log mais recente a partir da base"
+
+#: builtin/show-ref.c:10
+msgid ""
+"git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
+"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<pattern>...]"
+msgstr ""
+"git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
+"hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<padrão>...]"
+
+#: builtin/show-ref.c:11
+msgid "git show-ref --exclude-existing[=<pattern>]"
+msgstr "git show-ref --exclude-existing[=<padrão>]"
+
+#: builtin/show-ref.c:165
+msgid "only show tags (can be combined with heads)"
+msgstr "mostrar apenas tags (pode ser combinado com heads)"
+
+#: builtin/show-ref.c:166
+msgid "only show heads (can be combined with tags)"
+msgstr "mostrar apenas cabeças (pode ser combinado com tags)"
+
+#: builtin/show-ref.c:167
+msgid "stricter reference checking, requires exact ref path"
+msgstr ""
+"verificação de referências mais rigorosa, requer o caminho exato da "
+"referência"
+
+#: builtin/show-ref.c:170 builtin/show-ref.c:172
+msgid "show the HEAD reference, even if it would be filtered out"
+msgstr "mostrar a referência HEAD, mesmo que fosse filtrada"
+
+#: builtin/show-ref.c:174
+msgid "dereference tags into object IDs"
+msgstr "desreferenciar tags em IDs de objeto"
+
+#: builtin/show-ref.c:176
+msgid "only show SHA1 hash using <n> digits"
+msgstr "mostrar hash SHA1 com <n> digitos"
+
+#: builtin/show-ref.c:180
+msgid "do not print results to stdout (useful with --verify)"
+msgstr "não imprimir resultados para o stdout (útil com --verify)"
+
+#: builtin/show-ref.c:182
+msgid "show refs from stdin that aren't in local repository"
+msgstr "mostrar referências do stdin que não estão no repositório local"
+
+#: builtin/stripspace.c:17
+msgid "git stripspace [-s | --strip-comments]"
+msgstr "git stripspace [-s | --strip-comments]"
+
+#: builtin/stripspace.c:18
+msgid "git stripspace [-c | --comment-lines]"
+msgstr "git stripspace [-c | --comment-lines]"
+
+#: builtin/stripspace.c:35
+msgid "skip and remove all lines starting with comment character"
+msgstr ""
+"ignorar e remover todas as linhas começadas com um carácter de comentário"
+
+#: builtin/stripspace.c:38
+msgid "prepend comment character and space to each line"
+msgstr "preceder cada linha com um carácter de comentário e um espaço"
+
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
+msgid "alternative anchor for relative paths"
+msgstr "âncora alternativa para caminhos relativos"
+
+#: builtin/submodule--helper.c:78
+msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
+msgstr "git submodule--helper list [--prefix=<caminho>] [<caminho>...]"
+
+#: builtin/submodule--helper.c:108
+msgid "git submodule--helper name <path>"
+msgstr "git submodule--helper name <caminho>"
+
+#: builtin/submodule--helper.c:114
+#, c-format
+msgid "no submodule mapping found in .gitmodules for path '%s'"
+msgstr ""
+"nenhum mapeamento de submódulo do caminho '%s' encontrado em .gitmodules"
+
+#: builtin/submodule--helper.c:164
+msgid "where the new submodule will be cloned to"
+msgstr "sítio para aonde o novo submódulo será clonado"
+
+#: builtin/submodule--helper.c:167
+msgid "name of the new submodule"
+msgstr "nome do novo submódulo"
+
+#: builtin/submodule--helper.c:170
+msgid "url where to clone the submodule from"
+msgstr "url donde clonar o submódulos"
+
+#: builtin/submodule--helper.c:176
+msgid "depth for shallow clones"
+msgstr "profundidade de clones rasos"
+
+#: builtin/submodule--helper.c:182
+msgid ""
+"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
+"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
+msgstr ""
+"git submodule--helper clone [--prefix=<caminho>] [--quiet] [--reference "
+"<repositório>] [--name <nome>] [--url <url>][--depth <profundidade>] [--] "
+"[<caminho>...]"
+
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
+#, c-format
+msgid "could not create directory '%s'"
+msgstr "não foi possível criar o diretório '%s'"
+
+#: builtin/submodule--helper.c:198
+#, c-format
+msgid "clone of '%s' into submodule path '%s' failed"
+msgstr "falha ao clonar '%s' no caminho do submódulo '%s'"
+
+#: builtin/submodule--helper.c:221
+#, c-format
+msgid "cannot open file '%s'"
+msgstr "não é possível abrir o ficheiro '%s'"
+
+#: builtin/submodule--helper.c:226
+#, c-format
+msgid "could not close file %s"
+msgstr "não é possível fechar o ficheiro %s"
+
+#: builtin/submodule--helper.c:241
+#, c-format
+msgid "could not get submodule directory for '%s'"
+msgstr "não foi possível obter o o diretório do submódulo de '%s'"
+
+#: builtin/submodule--helper.c:267
+msgid "fatal: submodule--helper subcommand must be called with a subcommand"
+msgstr ""
+"fatal: o subcomando submodule--helper deve ser invocado com um subcomando"
+
+#: builtin/submodule--helper.c:274
+#, c-format
+msgid "fatal: '%s' is not a valid submodule--helper subcommand"
+msgstr "fatal: '%s' não é um subcomando de submodule--helper válido"
+
+#: builtin/symbolic-ref.c:7
+msgid "git symbolic-ref [<options>] <name> [<ref>]"
+msgstr "git symbolic-ref [<opções>] <nome> [<referência>]"
+
+#: builtin/symbolic-ref.c:8
+msgid "git symbolic-ref -d [-q] <name>"
+msgstr "git symbolic-ref -d [-q] <nome>"
+
+#: builtin/symbolic-ref.c:40
+msgid "suppress error message for non-symbolic (detached) refs"
+msgstr ""
+"suprimir mensagens de erro sobre referências não-simbólicas (destacadas)"
+
+#: builtin/symbolic-ref.c:41
+msgid "delete symbolic ref"
+msgstr "eliminar referências simbólicas"
+
+#: builtin/symbolic-ref.c:42
+msgid "shorten ref output"
+msgstr "encurtar a apresentação de referências"
+
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362
+msgid "reason"
+msgstr "razão"
+
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362
+msgid "reason of the update"
+msgstr "razão da atualização"
+
+#: builtin/tag.c:23
+msgid ""
+"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <tagname> "
+"[<head>]"
+msgstr ""
+"git tag [-a | -s | -u <id-chave>] [-f] [-m <msg> | -F <ficheiro>] <nome-da-"
+"tag> [<head>]"
+
+#: builtin/tag.c:24
+msgid "git tag -d <tagname>..."
+msgstr "git tag -d <nome-da-tag>..."
+
+#: builtin/tag.c:25
+msgid ""
+"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>]\n"
+"\t\t[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]"
+msgstr ""
+"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <objeto>]\n"
+"\t\t[--format=<formato>] [--[no-]merged [<commit>]] [<padrão>...]"
+
+#: builtin/tag.c:27
+msgid "git tag -v <tagname>..."
+msgstr "git tag -v <nome-da-tag>..."
+
+#: builtin/tag.c:80
 #, c-format
 msgid "tag name too long: %.*s..."
-msgstr ""
+msgstr "o nome da tag é demasiado longo: %.*s..."
 
-#: builtin/tag.c:212
+#: builtin/tag.c:85
 #, c-format
 msgid "tag '%s' not found."
-msgstr "etiqueta '%s' não foi encontrada."
+msgstr "tag '%s' não encontrada."
 
-#: builtin/tag.c:227
+#: builtin/tag.c:100
 #, c-format
 msgid "Deleted tag '%s' (was %s)\n"
-msgstr ""
+msgstr "Tag '%s' eliminada (era %s)\n"
 
-#: builtin/tag.c:239
+#: builtin/tag.c:112
 #, c-format
 msgid "could not verify the tag '%s'"
-msgstr ""
+msgstr "não foi possível validar a tag '%s'"
 
-#: builtin/tag.c:249
+#: builtin/tag.c:122
+#, c-format
 msgid ""
 "\n"
-"#\n"
-"# Write a tag message\n"
-"# Lines starting with '#' will be ignored.\n"
-"#\n"
+"Write a message for tag:\n"
+"  %s\n"
+"Lines starting with '%c' will be ignored.\n"
 msgstr ""
+"\n"
+"Escreva a mensagem da tag:\n"
+"  %s\n"
+"Linha começadas com '%c' serão ignoradas.\n"
 
-#: builtin/tag.c:256
+#: builtin/tag.c:126
+#, c-format
 msgid ""
 "\n"
-"#\n"
-"# Write a tag message\n"
-"# Lines starting with '#' will be kept; you may remove them yourself if you want to.\n"
-"#\n"
+"Write a message for tag:\n"
+"  %s\n"
+"Lines starting with '%c' will be kept; you may remove them yourself if you "
+"want to.\n"
 msgstr ""
+"\n"
+"Escreva a mensagem da tag:\n"
+"  %s\n"
+"Linhas começadas com '%c' serão mantidas; pode removê-las se o desejar.\n"
 
-#: builtin/tag.c:298
+#: builtin/tag.c:199
 msgid "unable to sign the tag"
-msgstr ""
+msgstr "não foi possível assinar a tag"
 
-#: builtin/tag.c:300
+#: builtin/tag.c:201
 msgid "unable to write tag file"
-msgstr ""
+msgstr "não foi possível escrever o ficheiro da tag"
 
-#: builtin/tag.c:325
+#: builtin/tag.c:226
 msgid "bad object type."
-msgstr ""
+msgstr "tipo de objeto incorreto."
 
-#: builtin/tag.c:338
+#: builtin/tag.c:239
 msgid "tag header too big."
-msgstr ""
+msgstr "cabeçalho da tag demasiado longo."
 
-#: builtin/tag.c:370
+#: builtin/tag.c:275
 msgid "no tag message?"
-msgstr "nenhuma mensaje para a etiqueta?"
+msgstr "sem mensagem de tag?"
 
-#: builtin/tag.c:376
+#: builtin/tag.c:281
 #, c-format
 msgid "The tag message has been left in %s\n"
-msgstr ""
+msgstr "A mensagem da tag foi guardada em %s\n"
+
+#: builtin/tag.c:339
+msgid "list tag names"
+msgstr "listar os nomes das tag"
+
+#: builtin/tag.c:341
+msgid "print <n> lines of each tag message"
+msgstr "imprimir <n> linhas de cada mensagem de tag"
+
+#: builtin/tag.c:343
+msgid "delete tags"
+msgstr "eliminar tags"
+
+#: builtin/tag.c:344
+msgid "verify tags"
+msgstr "verificar tags"
+
+#: builtin/tag.c:346
+msgid "Tag creation options"
+msgstr "Opções de criação de tags"
+
+#: builtin/tag.c:348
+msgid "annotated tag, needs a message"
+msgstr "tag anotada, é necessário uma mensagem"
+
+#: builtin/tag.c:350
+msgid "tag message"
+msgstr "mensagem da tag"
+
+#: builtin/tag.c:352
+msgid "annotated and GPG-signed tag"
+msgstr "tag anotada e assinada com GPG"
+
+#: builtin/tag.c:356
+msgid "use another key to sign the tag"
+msgstr "usar outra chave para assinar a tag"
+
+#: builtin/tag.c:357
+msgid "replace the tag if exists"
+msgstr "substituir a tag se esta existir"
+
+#: builtin/tag.c:358 builtin/update-ref.c:368
+msgid "create a reflog"
+msgstr "criar um reflog"
+
+#: builtin/tag.c:360
+msgid "Tag listing options"
+msgstr "Opções de listagem de tags"
+
+#: builtin/tag.c:361
+msgid "show tag list in columns"
+msgstr "mostrar a lista de tags em colunas"
+
+#: builtin/tag.c:362 builtin/tag.c:363
+msgid "print only tags that contain the commit"
+msgstr "imprimir apenas tags que contenham o commit"
+
+#: builtin/tag.c:364
+msgid "print only tags that are merged"
+msgstr "imprimir apenas as tags que foram incorporadas"
+
+#: builtin/tag.c:365
+msgid "print only tags that are not merged"
+msgstr "imprimir apenas as tags que não foram incorporadas"
+
+#: builtin/tag.c:370
+msgid "print only tags of the object"
+msgstr "imprimir apenas as tags do objeto"
+
+#: builtin/tag.c:399
+msgid "--column and -n are incompatible"
+msgstr "--column e -n são incompatíveis"
+
+#: builtin/tag.c:419
+msgid "-n option is only allowed with -l."
+msgstr "a opção -n só é permitida com -l."
+
+#: builtin/tag.c:421
+msgid "--contains option is only allowed with -l."
+msgstr "a opção --contains só é permitida com -l."
+
+#: builtin/tag.c:423
+msgid "--points-at option is only allowed with -l."
+msgstr "a opção --points-at só é permitida com -l."
 
 #: builtin/tag.c:425
-msgid "switch 'points-at' requires an object"
-msgstr ""
+msgid "--merged and --no-merged option are only allowed with -l"
+msgstr "as opções --merged e --no-merged só são permitidas com -l"
 
-#: builtin/tag.c:427
-#, c-format
-msgid "malformed object name '%s'"
-msgstr ""
-
-#: builtin/tag.c:506
-msgid "--column and -n are incompatible"
-msgstr "--column e -n are são incompatíveis"
-
-#: builtin/tag.c:523
-msgid "-n option is only allowed with -l."
-msgstr ""
-
-#: builtin/tag.c:525
-msgid "--contains option is only allowed with -l."
-msgstr ""
-
-#: builtin/tag.c:527
-msgid "--points-at option is only allowed with -l."
-msgstr ""
-
-#: builtin/tag.c:535
+#: builtin/tag.c:433
 msgid "only one -F or -m option is allowed."
-msgstr ""
+msgstr "só é permitido um opção -F ou -m."
 
-#: builtin/tag.c:555
+#: builtin/tag.c:453
 msgid "too many params"
-msgstr "demasiado parametros"
+msgstr "demasiado parâmetros"
 
-#: builtin/tag.c:561
+#: builtin/tag.c:459
 #, c-format
 msgid "'%s' is not a valid tag name."
-msgstr ""
+msgstr "'%s' não é um nome de tag válido."
 
-#: builtin/tag.c:566
+#: builtin/tag.c:464
 #, c-format
 msgid "tag '%s' already exists"
-msgstr "etiqueta '%s' já existe"
+msgstr "a tag '%s' já existe"
 
-#: builtin/tag.c:584
-#, c-format
-msgid "%s: cannot lock the ref"
-msgstr ""
-
-#: builtin/tag.c:586
-#, c-format
-msgid "%s: cannot update the ref"
-msgstr ""
-
-#: builtin/tag.c:588
+#: builtin/tag.c:489
 #, c-format
 msgid "Updated tag '%s' (was %s)\n"
-msgstr ""
+msgstr "Tag '%s' atualizada (era %s)\n"
 
-#: git.c:16
-msgid "See 'git help <command>' for more information on a specific command."
-msgstr ""
+#: builtin/unpack-objects.c:490
+msgid "Unpacking objects"
+msgstr "A descompactar objetos"
 
-#: common-cmds.h:8
-msgid "Add file contents to the index"
+#: builtin/update-index.c:79
+#, c-format
+msgid "failed to create directory %s"
+msgstr "falha ao criar o diretório %s"
+
+#: builtin/update-index.c:85
+#, c-format
+msgid "failed to stat %s"
+msgstr "falha ao efetuar stat de %s"
+
+#: builtin/update-index.c:95
+#, c-format
+msgid "failed to create file %s"
+msgstr "falha ao criar o ficheiro %s"
+
+#: builtin/update-index.c:103
+#, c-format
+msgid "failed to delete file %s"
+msgstr "falha ao eliminar o ficheiro %s"
+
+#: builtin/update-index.c:110 builtin/update-index.c:212
+#, c-format
+msgid "failed to delete directory %s"
+msgstr "falha ao criar o diretório %s"
+
+#: builtin/update-index.c:133
+#, c-format
+msgid "Testing mtime in '%s' "
+msgstr "A testar mtime em '%s' "
+
+#: builtin/update-index.c:145
+msgid "directory stat info does not change after adding a new file"
+msgstr ""
+"a informação de stat do diretório não mudou depois de adicionar um novo "
+"ficheiro"
+
+#: builtin/update-index.c:158
+msgid "directory stat info does not change after adding a new directory"
+msgstr ""
+"a informação de stat do diretório não mudou depois de adicionar um novo "
+"diretório"
+
+#: builtin/update-index.c:171
+msgid "directory stat info changes after updating a file"
+msgstr "a informação de stat mudou depois de atualizar um ficheiro"
+
+#: builtin/update-index.c:182
+msgid "directory stat info changes after adding a file inside subdirectory"
+msgstr ""
+"a informação de stat do diretório mudou depois de adicionar um ficheiro "
+"dentro dum subdiretório"
+
+#: builtin/update-index.c:193
+msgid "directory stat info does not change after deleting a file"
+msgstr ""
+"a informação de stat do diretório não mudou depois de eliminar um ficheiro"
+
+#: builtin/update-index.c:206
+msgid "directory stat info does not change after deleting a directory"
+msgstr ""
+"a informação de stat do diretório não mudou depois de eliminar um diretório"
+
+#: builtin/update-index.c:213
+msgid " OK"
+msgstr " OK"
+
+#: builtin/update-index.c:575
+msgid "git update-index [<options>] [--] [<file>...]"
+msgstr "git update-index [<opções>] [--] [<ficheiro>...]"
+
+#: builtin/update-index.c:930
+msgid "continue refresh even when index needs update"
+msgstr "continuar a refrescar mesmo quando o índice precise de ser atualizado"
+
+#: builtin/update-index.c:933
+msgid "refresh: ignore submodules"
+msgstr "refrescar: ignorar submódulos"
+
+#: builtin/update-index.c:936
+msgid "do not ignore new files"
+msgstr "não ignorar novos ficheiros"
+
+#: builtin/update-index.c:938
+msgid "let files replace directories and vice-versa"
+msgstr "deixar que os ficheiros substituam os diretórios e vice-versa"
+
+#: builtin/update-index.c:940
+msgid "notice files missing from worktree"
+msgstr "avisar sobre ficheiros que faltem na árvore de trabalho"
+
+#: builtin/update-index.c:942
+msgid "refresh even if index contains unmerged entries"
+msgstr "refrescar mesmo que o índice contenha entradas não incorporadas"
+
+#: builtin/update-index.c:945
+msgid "refresh stat information"
+msgstr "refrescar informação de stat"
+
+#: builtin/update-index.c:949
+msgid "like --refresh, but ignore assume-unchanged setting"
+msgstr "como --refresh, mas ignorar a definição assume-unchanged"
+
+#: builtin/update-index.c:953
+msgid "<mode>,<object>,<path>"
+msgstr "<modo>,<objeto>,<caminho>"
+
+#: builtin/update-index.c:954
+msgid "add the specified entry to the index"
+msgstr "adicionar o elemento especificado ao índice"
+
+#: builtin/update-index.c:958
+msgid "(+/-)x"
+msgstr "(+/-)x"
+
+#: builtin/update-index.c:959
+msgid "override the executable bit of the listed files"
+msgstr "substituir o bit executável dos ficheiros listados"
+
+#: builtin/update-index.c:963
+msgid "mark files as \"not changing\""
+msgstr "marcar ficheiros como \"não alterados\""
+
+#: builtin/update-index.c:966
+msgid "clear assumed-unchanged bit"
+msgstr "limpar o bit assumed-unchanged"
+
+#: builtin/update-index.c:969
+msgid "mark files as \"index-only\""
+msgstr "marcar ficheiros como \"únicos do índice\""
+
+#: builtin/update-index.c:972
+msgid "clear skip-worktree bit"
+msgstr "limpar o bit ignorar-árvore-de-trabalho"
+
+#: builtin/update-index.c:975
+msgid "add to index only; do not add content to object database"
+msgstr ""
+"só adicionar ao índice; não adicionar o conteúdo à base de dados de objetos"
+
+#: builtin/update-index.c:977
+msgid "remove named paths even if present in worktree"
+msgstr ""
+"remover os caminhos mencionado mesmo se estiverem presentes na árvore de "
+"trabalho"
+
+#: builtin/update-index.c:979
+msgid "with --stdin: input lines are terminated by null bytes"
+msgstr "com --stdin: as linhas da entrada são terminadas com bytes nulos"
+
+#: builtin/update-index.c:981
+msgid "read list of paths to be updated from standard input"
+msgstr "ler lista de caminho a atualizar da entrada padrão"
+
+#: builtin/update-index.c:985
+msgid "add entries from standard input to the index"
+msgstr "adicionar elementos da entrada padrão ao índice"
+
+#: builtin/update-index.c:989
+msgid "repopulate stages #2 and #3 for the listed paths"
+msgstr "repovoar as fases nº2 e nº3 dos caminhos listados"
+
+#: builtin/update-index.c:993
+msgid "only update entries that differ from HEAD"
+msgstr "atualizar apenas elementos que difiram de HEAD"
+
+#: builtin/update-index.c:997
+msgid "ignore files missing from worktree"
+msgstr "ignorar ficheiros não presentes na árvore de trabalho"
+
+#: builtin/update-index.c:1000
+msgid "report actions to standard output"
+msgstr "mostrar ações na saída padrão"
+
+#: builtin/update-index.c:1002
+msgid "(for porcelains) forget saved unresolved conflicts"
+msgstr ""
+"(para porcelanas) esquecer conflitos guardados que não foram resolvidos"
+
+#: builtin/update-index.c:1006
+msgid "write index in this format"
+msgstr "escrever o índice neste formato"
+
+#: builtin/update-index.c:1008
+msgid "enable or disable split index"
+msgstr "ativar ou desativar a divisão do índice"
+
+#: builtin/update-index.c:1010
+msgid "enable/disable untracked cache"
+msgstr "ativar ou desativar cache não controlada"
+
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "testar se o sistema de ficheiros suporta cache não controlada"
+
+#: builtin/update-index.c:1014
+msgid "enable untracked cache without testing the filesystem"
+msgstr "ativar cache não controlada sem testar o sistema de ficheiros"
+
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "A cache não controlada está desativada"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "A cache não controlada de '%s' foi ativada."
+
+#: builtin/update-ref.c:9
+msgid "git update-ref [<options>] -d <refname> [<old-val>]"
+msgstr "git update-ref [<opções>] -d <nome-da-referência> [<valor-antigo>]"
+
+#: builtin/update-ref.c:10
+msgid "git update-ref [<options>]    <refname> <new-val> [<old-val>]"
+msgstr ""
+"git update-ref [<opções>]    <nome-da-referência> <novo-valor> [<valor-"
+"antigo>]"
+
+#: builtin/update-ref.c:11
+msgid "git update-ref [<options>] --stdin [-z]"
+msgstr "git update-ref [<opções>] --stdin [-z]"
+
+#: builtin/update-ref.c:363
+msgid "delete the reference"
+msgstr "eliminar a referência"
+
+#: builtin/update-ref.c:365
+msgid "update <refname> not the one it points to"
+msgstr ""
+"atualizar a referência <nome-da-referência>, e não a referência aponta por "
+"esta"
+
+#: builtin/update-ref.c:366
+msgid "stdin has NUL-terminated arguments"
+msgstr "os argumentos da entrada padrão terminam em NUL"
+
+#: builtin/update-ref.c:367
+msgid "read updates from stdin"
+msgstr "ler atualizações da entrada padrão"
+
+#: builtin/update-server-info.c:6
+msgid "git update-server-info [--force]"
+msgstr "git update-server-info [--force]"
+
+#: builtin/update-server-info.c:14
+msgid "update the info files from scratch"
+msgstr "atualizar os ficheiros de informação do zero"
+
+#: builtin/verify-commit.c:17
+msgid "git verify-commit [-v | --verbose] <commit>..."
+msgstr "git verify-commit [-v | --verbose] <commit>..."
+
+#: builtin/verify-commit.c:72
+msgid "print commit contents"
+msgstr "imprimir conteúdo do commit"
+
+#: builtin/verify-commit.c:73 builtin/verify-tag.c:84
+msgid "print raw gpg status output"
+msgstr "imprimir informação do gpg em bruto"
+
+#: builtin/verify-pack.c:54
+msgid "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..."
+msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..."
+
+#: builtin/verify-pack.c:64
+msgid "verbose"
+msgstr "verboso"
+
+#: builtin/verify-pack.c:66
+msgid "show statistics only"
+msgstr "mostrar apenas estatísticas"
+
+#: builtin/verify-tag.c:17
+msgid "git verify-tag [-v | --verbose] <tag>..."
+msgstr "git verify-tag [-v | --verbose] <tag>..."
+
+#: builtin/verify-tag.c:83
+msgid "print tag contents"
+msgstr "imprimir conteúdo da tag"
+
+#: builtin/worktree.c:15
+msgid "git worktree add [<options>] <path> [<branch>]"
+msgstr "git worktree add [<opções>] <caminho> [<ramo>]"
+
+#: builtin/worktree.c:16
+msgid "git worktree prune [<options>]"
+msgstr "git worktree prune [<opções>]"
+
+#: builtin/worktree.c:17
+msgid "git worktree list [<options>]"
+msgstr "git worktree list [<opções>]"
+
+#: builtin/worktree.c:39
+#, c-format
+msgid "Removing worktrees/%s: not a valid directory"
+msgstr "A remover worktrees/%s: diretório inválido"
+
+#: builtin/worktree.c:45
+#, c-format
+msgid "Removing worktrees/%s: gitdir file does not exist"
+msgstr "A remover worktrees/%s: o ficheiro gitdir não existe"
+
+#: builtin/worktree.c:50
+#, c-format
+msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
+msgstr "A remover worktrees/%s: não é possível ler o ficheiro gitdir (%s)"
+
+#: builtin/worktree.c:61
+#, c-format
+msgid "Removing worktrees/%s: invalid gitdir file"
+msgstr "A remover worktrees/%s: ficheiro gitdir inválido"
+
+#: builtin/worktree.c:77
+#, c-format
+msgid "Removing worktrees/%s: gitdir file points to non-existent location"
+msgstr ""
+"A remover worktrees/%s: o ficheiro gitdir aponta para uma localização "
+"inexistente"
+
+#: builtin/worktree.c:112
+#, c-format
+msgid "failed to remove: %s"
+msgstr "falha ao remover: %s"
+
+#: builtin/worktree.c:201
+#, c-format
+msgid "'%s' already exists"
+msgstr "'%s' já existe"
+
+#: builtin/worktree.c:233
+#, c-format
+msgid "could not create directory of '%s'"
+msgstr "não foi possível criar o diretório de '%s'"
+
+#: builtin/worktree.c:269
+#, c-format
+msgid "Preparing %s (identifier %s)"
+msgstr "A preparar %s (identificador %s)"
+
+#: builtin/worktree.c:317
+msgid "checkout <branch> even if already checked out in other worktree"
+msgstr ""
+"extrair o <ramo> mesmo se já tenha sido extraído noutra árvore de trabalho"
+
+#: builtin/worktree.c:319
+msgid "create a new branch"
+msgstr "criar um novo ramo"
+
+#: builtin/worktree.c:321
+msgid "create or reset a branch"
+msgstr "criar ou repor um ramo"
+
+#: builtin/worktree.c:322
+msgid "detach HEAD at named commit"
+msgstr "destacar HEAD no commit indicado"
+
+#: builtin/worktree.c:329
+msgid "-b, -B, and --detach are mutually exclusive"
+msgstr "-b, -B e --detach são mutuamente exclusivos"
+
+#: builtin/write-tree.c:13
+msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]"
+msgstr "git write-tree [--missing-ok] [--prefix=<prefixo>/]"
+
+#: builtin/write-tree.c:26
+msgid "<prefix>/"
+msgstr "<prefixo>/"
+
+#: builtin/write-tree.c:27
+msgid "write tree object for a subdirectory <prefix>"
+msgstr "escrever objeto árvore do subdiretório <prefixo>"
+
+#: builtin/write-tree.c:30
+msgid "only useful for debugging"
+msgstr "apenas útil para depuração"
+
+#: credential-cache--daemon.c:262
+msgid "print debugging messages to stderr"
+msgstr "imprimir mensagens de depuração no stderr"
+
+#: git.c:14
+msgid ""
+"'git help -a' and 'git help -g' list available subcommands and some\n"
+"concept guides. See 'git help <command>' or 'git help <concept>'\n"
+"to read about a specific subcommand or concept."
+msgstr ""
+"'git help -a' e 'git help -g' listam os subcomandos disponíveis e alguns\n"
+"guias de conceitos. Consulte 'git help <comando>' ou 'git help <conceito>'\n"
+"para ler sobre um subcomando ou conceito específico."
+
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
 msgstr ""
 
 #: common-cmds.h:9
-msgid "Find by binary search the change that introduced a bug"
-msgstr ""
+msgid "start a working area (see also: git help tutorial)"
+msgstr "iniciar uma área de trabalho (consulte também: git help tutorial)"
 
 #: common-cmds.h:10
-msgid "List, create, or delete branches"
-msgstr "Listar, criar ou apagar ramas"
+msgid "work on the current change (see also: git help everyday)"
+msgstr "trabalhar na alteração atual (consulte também: git help everyday)"
 
 #: common-cmds.h:11
-msgid "Checkout a branch or paths to the working tree"
-msgstr ""
+msgid "examine the history and state (see also: git help revisions)"
+msgstr "examinar o histórico e estado (consulte também: git help revisions)"
 
 #: common-cmds.h:12
-msgid "Clone a repository into a new directory"
-msgstr ""
+msgid "grow, mark and tweak your common history"
+msgstr "aumentar, marcar e ajustar o seu histórico comum"
 
 #: common-cmds.h:13
-msgid "Record changes to the repository"
-msgstr "Gravar alterações para o repositório"
-
-#: common-cmds.h:14
-msgid "Show changes between commits, commit and working tree, etc"
-msgstr ""
-
-#: common-cmds.h:15
-msgid "Download objects and refs from another repository"
-msgstr ""
-
-#: common-cmds.h:16
-msgid "Print lines matching a pattern"
-msgstr ""
+msgid "collaborate (see also: git help workflows)"
+msgstr "colaborar (consulte também: git help workflows)"
 
 #: common-cmds.h:17
-msgid "Create an empty git repository or reinitialize an existing one"
-msgstr ""
+msgid "Add file contents to the index"
+msgstr "Adicionar conteúdos de ficheiros ao índice"
 
 #: common-cmds.h:18
+msgid "Use binary search to find the commit that introduced a bug"
+msgstr "Use procura binário para encontrar o commit que introduziu um bug"
+
+#: common-cmds.h:19
+msgid "List, create, or delete branches"
+msgstr "Listar, criar ou eliminar ramos"
+
+#: common-cmds.h:20
+msgid "Switch branches or restore working tree files"
+msgstr "Mudar de ramos ou restaurar os ficheiros da árvore de trabalho"
+
+#: common-cmds.h:21
+msgid "Clone a repository into a new directory"
+msgstr "Clonar um repositório num novo diretório"
+
+#: common-cmds.h:22
+msgid "Record changes to the repository"
+msgstr "Gravar alterações no repositório"
+
+#: common-cmds.h:23
+msgid "Show changes between commits, commit and working tree, etc"
+msgstr ""
+"Mostrar alterações entre commits, entre commit e árvore de trabalho, etc"
+
+#: common-cmds.h:24
+msgid "Download objects and refs from another repository"
+msgstr "Transferir objetos e referências doutro repositório"
+
+#: common-cmds.h:25
+msgid "Print lines matching a pattern"
+msgstr "Imprimir linhas que correspondam a um padrão"
+
+#: common-cmds.h:26
+msgid "Create an empty Git repository or reinitialize an existing one"
+msgstr "Criar um repositório Git vazio ou reinicializar um já existente"
+
+#: common-cmds.h:27
 msgid "Show commit logs"
 msgstr "Mostrado logs de commits"
 
-#: common-cmds.h:19
-msgid "Join two or more development histories together"
-msgstr ""
-
-#: common-cmds.h:20
-msgid "Move or rename a file, a directory, or a symlink"
-msgstr ""
-
-#: common-cmds.h:21
-msgid "Fetch from and merge with another repository or a local branch"
-msgstr ""
-
-#: common-cmds.h:22
-msgid "Update remote refs along with associated objects"
-msgstr ""
-
-#: common-cmds.h:23
-msgid "Forward-port local commits to the updated upstream head"
-msgstr ""
-
-#: common-cmds.h:24
-msgid "Reset current HEAD to the specified state"
-msgstr ""
-
-#: common-cmds.h:25
-msgid "Remove files from the working tree and from the index"
-msgstr ""
-
-#: common-cmds.h:26
-msgid "Show various types of objects"
-msgstr ""
-
-#: common-cmds.h:27
-msgid "Show the working tree status"
-msgstr "Mostrar o estado los ramos das árvores de trabalho"
-
 #: common-cmds.h:28
+msgid "Join two or more development histories together"
+msgstr "Juntar duas ou mais histórias de desenvolvimento numa só"
+
+#: common-cmds.h:29
+msgid "Move or rename a file, a directory, or a symlink"
+msgstr "Mover ou mudar o nome de um ficheiro, diretório ou ligação simbólica"
+
+#: common-cmds.h:30
+msgid "Fetch from and integrate with another repository or a local branch"
+msgstr "Obter e integrar com outro repositório ou outro ramo local"
+
+#: common-cmds.h:31
+msgid "Update remote refs along with associated objects"
+msgstr "Atualizar referências remotas juntamente com objetos associados"
+
+#: common-cmds.h:32
+msgid "Reapply commits on top of another base tip"
+msgstr "Reaplicar commits no topo de outra base"
+
+#: common-cmds.h:33
+msgid "Reset current HEAD to the specified state"
+msgstr "Repor a HEAD atual no estado especificado"
+
+#: common-cmds.h:34
+msgid "Remove files from the working tree and from the index"
+msgstr "Remover ficheiros da árvore de trabalho e do índice"
+
+#: common-cmds.h:35
+msgid "Show various types of objects"
+msgstr "Mostrar vários tipos objetos"
+
+#: common-cmds.h:36
+msgid "Show the working tree status"
+msgstr "Mostrar o estado da árvores de trabalho"
+
+#: common-cmds.h:37
 msgid "Create, list, delete or verify a tag object signed with GPG"
+msgstr "Criar, listar, eliminar ou verificar um objeto tag assinado com GPG"
+
+#: parse-options.h:145
+msgid "expiry-date"
+msgstr "data-de-validade"
+
+#: parse-options.h:160
+msgid "no-op (backward compatibility)"
+msgstr "sem-ação (retrocompatibilidade)"
+
+#: parse-options.h:237
+msgid "be more verbose"
+msgstr "ser mais verboso"
+
+#: parse-options.h:239
+msgid "be more quiet"
+msgstr "ser mais silencioso"
+
+#: parse-options.h:245
+msgid "use <n> digits to display SHA-1s"
+msgstr "usar <n> dígitos para mostrar SHA-1s"
+
+#: rerere.h:38
+msgid "update the index with reused conflict resolution if possible"
 msgstr ""
+"atualizar o índice com resoluções de conflitos reutilizadas se possível"
 
-#: git-am.sh:50
-msgid "You need to set your committer info first"
-msgstr "Necessitas primeiro de especificiar os teus dados de committer"
-
-#: git-am.sh:137
-msgid "Repository lacks necessary blobs to fall back on 3-way merge."
-msgstr ""
-
-#: git-am.sh:154
-msgid ""
-"Did you hand edit your patch?\n"
-"It does not apply to blobs recorded in its index."
-msgstr ""
-
-#: git-am.sh:163
-msgid "Falling back to patching base and 3-way merge..."
-msgstr ""
-
-#: git-am.sh:275
-msgid "Only one StGIT patch series can be applied at once"
-msgstr ""
-
-#: git-am.sh:362
-#, sh-format
-msgid "Patch format $patch_format is not supported."
-msgstr ""
-
-#: git-am.sh:364
-msgid "Patch format detection failed."
-msgstr "Falhou a detecção do formato do patch."
-
-#: git-am.sh:418
-msgid "-d option is no longer supported.  Do not use."
-msgstr ""
-
-#: git-am.sh:481
-#, sh-format
-msgid "previous rebase directory $dotest still exists but mbox given."
-msgstr ""
-
-#: git-am.sh:486
-msgid "Please make up your mind. --skip or --abort?"
-msgstr ""
-
-#: git-am.sh:513
-msgid "Resolve operation not in progress, we are not resuming."
-msgstr ""
-
-#: git-am.sh:579
-#, sh-format
-msgid "Dirty index: cannot apply patches (dirty: $files)"
-msgstr ""
-
-#: git-am.sh:755
-msgid "cannot be interactive without stdin connected to a terminal."
-msgstr ""
-
-#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
-#. in your translation. The program will only accept English
-#. input at this point.
-#: git-am.sh:766
-msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all "
-msgstr "Aplicar? Sim[y]/[n]ão/[e]ditar/[v]er patch/[a]ceitar todos "
-
-#: git-am.sh:802
-#, sh-format
-msgid "Applying: $FIRSTLINE"
-msgstr "Aplicando: $FIRSTLINE"
-
-#: git-am.sh:847
-msgid "No changes -- Patch already applied."
-msgstr "Nenhuma mudança -- Já foi aplicado o patch."
-
-#: git-am.sh:873
-msgid "applying to an empty history"
-msgstr ""
+#: git-bisect.sh:55
+msgid "You need to start by \"git bisect start\""
+msgstr "Deve começar por executar \"git bisect start\""
 
 #. TRANSLATORS: Make sure to include [Y] and [n] in your
 #. translation. The program will only accept English input
 #. at this point.
-#: git-bisect.sh:54
+#: git-bisect.sh:61
 msgid "Do you want me to do it for you [Y/n]? "
-msgstr "Queres que eu faça por sí [Y/n]?"
+msgstr "Quer que o Git o faça por si [Y/n]? "
 
-#: git-bisect.sh:95
+#: git-bisect.sh:122
 #, sh-format
 msgid "unrecognised option: '$arg'"
-msgstr ""
+msgstr "opção não reconhecida: '$arg'"
 
-#: git-bisect.sh:99
+#: git-bisect.sh:126
 #, sh-format
 msgid "'$arg' does not appear to be a valid revision"
-msgstr ""
+msgstr "'$arg' não parecer ser uma revisão válida"
 
-#: git-bisect.sh:117
+#: git-bisect.sh:155
 msgid "Bad HEAD - I need a HEAD"
-msgstr ""
+msgstr "HEAD incorreta - é necessário uma HEAD"
 
-#: git-bisect.sh:130
+#: git-bisect.sh:168
 #, sh-format
-msgid "Checking out '$start_head' failed. Try 'git bisect reset <validbranch>'."
+msgid ""
+"Checking out '$start_head' failed. Try 'git bisect reset <valid-branch>'."
 msgstr ""
+"Falha ao extrair '$start_head'. Tente 'git bisect reset <ramo-válido>'."
 
-#: git-bisect.sh:140
-msgid "won't bisect on seeked tree"
-msgstr ""
+#: git-bisect.sh:178
+msgid "won't bisect on cg-seek'ed tree"
+msgstr "não é possível bisseccionar numa árvore \"cg-seek'ed\""
 
-#: git-bisect.sh:144
+#: git-bisect.sh:182
 msgid "Bad HEAD - strange symbolic ref"
-msgstr ""
+msgstr "HEAD incorreta - referência simbólica desconhecida"
 
-#: git-bisect.sh:189
+#: git-bisect.sh:234
 #, sh-format
 msgid "Bad bisect_write argument: $state"
-msgstr ""
+msgstr "Argumento de bisect_write incorreto: $state"
 
-#: git-bisect.sh:218
+#: git-bisect.sh:263
 #, sh-format
 msgid "Bad rev input: $arg"
-msgstr ""
+msgstr "Revisão incorreta na entrada: $arg"
 
-#: git-bisect.sh:232
+#: git-bisect.sh:278
 msgid "Please call 'bisect_state' with at least one argument."
-msgstr ""
+msgstr "Invoque 'bisect_state' com pelo menos um argumento."
 
-#: git-bisect.sh:244
+#: git-bisect.sh:290
 #, sh-format
 msgid "Bad rev input: $rev"
-msgstr ""
+msgstr "Revisão incorreta na entrada: $rev"
 
-#: git-bisect.sh:250
-msgid "'git bisect bad' can take only one argument."
-msgstr ""
+#: git-bisect.sh:299
+#, sh-format
+msgid "'git bisect $TERM_BAD' can take only one argument."
+msgstr "'git bisect $TERM_BAD' só leva um argumento."
+
+#: git-bisect.sh:322
+#, sh-format
+msgid "Warning: bisecting only with a $TERM_BAD commit."
+msgstr "Aviso: a bisseccionar só com um commit $TERM_BAD."
 
 #. TRANSLATORS: Make sure to include [Y] and [n] in your
 #. translation. The program will only accept English input
 #. at this point.
-#: git-bisect.sh:279
+#: git-bisect.sh:328
 msgid "Are you sure [Y/n]? "
-msgstr "Tens a certeza [Y/n]? "
+msgstr "Tem a certeza [Y/n]? "
 
-#: git-bisect.sh:354
+#: git-bisect.sh:340
+#, sh-format
+msgid ""
+"You need to give me at least one $bad_syn and one $good_syn revision.\n"
+"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)"
+msgstr ""
+"Deve indicar pelo menos uma revisão $bad_syn e uma revisão $good_syn.\n"
+"(Pode usar \"git bisect $bad_syn\" e \"git bisect $good_syn\" para esse fim.)"
+
+#: git-bisect.sh:343
+#, sh-format
+msgid ""
+"You need to start by \"git bisect start\".\n"
+"You then need to give me at least one $good_syn and one $bad_syn revision.\n"
+"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)"
+msgstr ""
+"Deve começar por executar \"git bisect start\".\n"
+"Indique pelo menos uma revisão $good_syn e uma revisão $bad_syn.\n"
+"(Pode usar \"git bisect $bad_syn\" e \"git bisect $good_syn\" para esse fim.)"
+
+#: git-bisect.sh:414 git-bisect.sh:546
+msgid "We are not bisecting."
+msgstr "Não estamos a bisseccionar."
+
+#: git-bisect.sh:421
 #, sh-format
 msgid "'$invalid' is not a valid commit"
-msgstr ""
+msgstr "'$invalid' não é um commit válido"
 
-#: git-bisect.sh:363
+#: git-bisect.sh:430
 #, sh-format
 msgid ""
 "Could not check out original HEAD '$branch'.\n"
 "Try 'git bisect reset <commit>'."
 msgstr ""
+"Não foi possível extrair a HEAD original de '$branch'.\n"
+"Tente 'git bisect reset <commit>'."
 
-#: git-bisect.sh:390
+#: git-bisect.sh:458
 msgid "No logfile given"
-msgstr "Nenhum ficheiro de log dado"
+msgstr "Nenhum ficheiro de log fornecido"
 
-#: git-bisect.sh:391
+#: git-bisect.sh:459
 #, sh-format
 msgid "cannot read $file for replaying"
-msgstr ""
+msgstr "não é possível ler $file para reproduzir"
 
-#: git-bisect.sh:408
+#: git-bisect.sh:480
 msgid "?? what are you talking about?"
-msgstr ""
+msgstr "?? do que é que está a falar?"
 
-#: git-bisect.sh:474
-msgid "We are not bisecting."
-msgstr "Não estamos a bisseccionar."
+#: git-bisect.sh:492
+#, sh-format
+msgid "running $command"
+msgstr "a executar $command"
 
-#: git-pull.sh:21
+#: git-bisect.sh:499
+#, sh-format
 msgid ""
-"Pull is not possible because you have unmerged files.\n"
-"Please, fix them up in the work tree, and then use 'git add/rm <file>'\n"
-"as appropriate to mark resolution, or use 'git commit -a'."
+"bisect run failed:\n"
+"exit code $res from '$command' is < 0 or >= 128"
 msgstr ""
+"falha bisseccionar:\n"
+"código de saída $res de '$command' é < 0 ou >= 128"
 
-#: git-pull.sh:25
-msgid "Pull is not possible because you have unmerged files."
+#: git-bisect.sh:525
+msgid "bisect run cannot continue any more"
+msgstr "não é possível continuar a bisseccionar"
+
+#: git-bisect.sh:531
+#, sh-format
+msgid ""
+"bisect run failed:\n"
+"'bisect_state $state' exited with error code $res"
 msgstr ""
+"falha ao bisseccionar:\n"
+"'bisect_state $state' retornou com o código de erro $res"
 
-#: git-pull.sh:197
-msgid "updating an unborn branch with changes added to the index"
+#: git-bisect.sh:538
+msgid "bisect run success"
+msgstr "bissecção concluída com sucesso"
+
+#: git-bisect.sh:565
+msgid "please use two different terms"
+msgstr "use dois termos diferentes"
+
+#: git-bisect.sh:575
+#, sh-format
+msgid "'$term' is not a valid term"
+msgstr "'$term' não é um termo válido"
+
+#: git-bisect.sh:578
+#, sh-format
+msgid "can't use the builtin command '$term' as a term"
+msgstr "não é possível usar o comando '$term' como um termo"
+
+#: git-bisect.sh:587 git-bisect.sh:593
+#, sh-format
+msgid "can't change the meaning of term '$term'"
+msgstr "não é possível alterar o significado do termo '$term'"
+
+#: git-bisect.sh:606
+#, sh-format
+msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect."
 msgstr ""
+"Comando inválido: bissecção em curso usando os termo $TERM_BAD/$TERM_GOOD."
 
-#: git-pull.sh:253
-msgid "Cannot merge multiple branches into empty head"
+#: git-bisect.sh:636
+msgid "no terms defined"
+msgstr "nenhum termo definido"
+
+#: git-bisect.sh:653
+#, sh-format
+msgid ""
+"invalid argument $arg for 'git bisect terms'.\n"
+"Supported options are: --term-good|--term-old and --term-bad|--term-new."
 msgstr ""
+"argumento inválido $arg de 'git bisect terms'.\n"
+"Opções suportadas: --term-good|--term-old e --term-bad|--term-new."
 
-#: git-pull.sh:257
-msgid "Cannot rebase onto multiple branches"
-msgstr "Não é possível fazer rebase com várias ramas"
+#: git-rebase.sh:57
+msgid ""
+"When you have resolved this problem, run \"git rebase --continue\".\n"
+"If you prefer to skip this patch, run \"git rebase --skip\" instead.\n"
+"To check out the original branch and stop rebasing, run \"git rebase --abort"
+"\"."
+msgstr ""
+"Depois de resolver este problema, execute \"git rebase --continue\".\n"
+"Se prefere ignorar este patch, execute \"git rebase --skip\".\n"
+"Para extrair o ramo original e interromper o rebase, execute \"git rebase --"
+"abort\"."
+
+#: git-rebase.sh:165
+msgid "Applied autostash."
+msgstr "Autostash aplicado."
+
+#: git-rebase.sh:168
+#, sh-format
+msgid "Cannot store $stash_sha1"
+msgstr "Não é possível guardar $stash_sha1"
+
+#: git-rebase.sh:169
+msgid ""
+"Applying autostash resulted in conflicts.\n"
+"Your changes are safe in the stash.\n"
+"You can run \"git stash pop\" or \"git stash drop\" at any time.\n"
+msgstr ""
+"Surgiram conflitos ao aplicar autostash.\n"
+"As suas alterações estão guardadas no stash.\n"
+"Pode executar \"git stash pop\" ou \"git stash drop\" oportunamente.\n"
+
+#: git-rebase.sh:208
+msgid "The pre-rebase hook refused to rebase."
+msgstr "Rebase recusado pelo hook pre-rebase."
+
+#: git-rebase.sh:213
+msgid "It looks like git-am is in progress. Cannot rebase."
+msgstr "Parece que o git-am está em curso. Não é possível efetuar rebase."
+
+#: git-rebase.sh:354
+msgid "The --exec option must be used with the --interactive option"
+msgstr "A opção --exec deve ser usada com a opção --interactive"
+
+#: git-rebase.sh:359
+msgid "No rebase in progress?"
+msgstr "Rebase não está em curso?"
+
+#: git-rebase.sh:370
+msgid "The --edit-todo action can only be used during interactive rebase."
+msgstr "A ação --edit-todo só pode ser usada durante um rebase interativo."
+
+#: git-rebase.sh:377
+msgid "Cannot read HEAD"
+msgstr "Não é possível ler HEAD"
+
+#: git-rebase.sh:380
+msgid ""
+"You must edit all merge conflicts and then\n"
+"mark them as resolved using git add"
+msgstr ""
+"Deve editar todos os conflitos do merge e\n"
+"marcá-los como resolvidos usando git add"
+
+#: git-rebase.sh:398
+#, sh-format
+msgid "Could not move back to $head_name"
+msgstr "Não foi possível voltar para $head_name"
+
+#: git-rebase.sh:417
+#, sh-format
+msgid ""
+"It seems that there is already a $state_dir_base directory, and\n"
+"I wonder if you are in the middle of another rebase.  If that is the\n"
+"case, please try\n"
+"\t$cmd_live_rebase\n"
+"If that is not the case, please\n"
+"\t$cmd_clear_stale_rebase\n"
+"and run me again.  I am stopping in case you still have something\n"
+"valuable there."
+msgstr ""
+"Parece que já existe um diretório $state_dir_base e\n"
+"é possível que outro processo de rebase já esteja em curso.\n"
+"Se for o caso, tente\n"
+"\t$cmd_live_rebase\n"
+"Se não for o caso,\n"
+"\t$cmd_clear_stale_rebase\n"
+"e execute o comando de novo. A execução foi interrompida no caso de\n"
+"ainda ter algo importante nesse sítio."
+
+#: git-rebase.sh:468
+#, sh-format
+msgid "invalid upstream $upstream_name"
+msgstr "$upstream_name a montante inválido"
+
+#: git-rebase.sh:492
+#, sh-format
+msgid "$onto_name: there are more than one merge bases"
+msgstr "$onto_name: há mais do que uma base de merge"
+
+#: git-rebase.sh:495 git-rebase.sh:499
+#, sh-format
+msgid "$onto_name: there is no merge base"
+msgstr "$onto_name: não há nenhuma base de merge"
+
+#: git-rebase.sh:504
+#, sh-format
+msgid "Does not point to a valid commit: $onto_name"
+msgstr "Não aponta para um commit válido: $onto_name"
+
+#: git-rebase.sh:527
+#, sh-format
+msgid "fatal: no such branch: $branch_name"
+msgstr "fatal: ramo inexistente: $branch_name"
+
+#: git-rebase.sh:560
+msgid "Cannot autostash"
+msgstr "Não é possível efetuar autostash"
+
+#: git-rebase.sh:565
+#, sh-format
+msgid "Created autostash: $stash_abbrev"
+msgstr "Autostash criado: $stash_abbrev"
+
+#: git-rebase.sh:569
+msgid "Please commit or stash them."
+msgstr "Faça commit ou stash delas."
+
+#: git-rebase.sh:589
+#, sh-format
+msgid "Current branch $branch_name is up to date."
+msgstr "O ramo atual $branch_name está atualizado."
+
+#: git-rebase.sh:593
+#, sh-format
+msgid "Current branch $branch_name is up to date, rebase forced."
+msgstr "O ramo atual $branch_name está atualizado, rebase forçado."
+
+#: git-rebase.sh:604
+#, sh-format
+msgid "Changes from $mb to $onto:"
+msgstr "Alterações de $mb para $onto:"
+
+#: git-rebase.sh:613
+msgid "First, rewinding head to replay your work on top of it..."
+msgstr ""
+"Primeiro, a recuar a cabeça para replicar as suas alterações no topo desta..."
+
+#: git-rebase.sh:623
+#, sh-format
+msgid "Fast-forwarded $branch_name to $onto_name."
+msgstr "$branch_name avançado rapidamente para $onto_name."
 
 #: git-stash.sh:51
 msgid "git stash clear with parameters is unimplemented"
-msgstr ""
+msgstr "não está implementado git stash clear com parâmetros"
 
 #: git-stash.sh:74
 msgid "You do not have the initial commit yet"
-msgstr "Tu ainda não tens o commit inicial"
+msgstr "O commit inicial ainda não existe"
 
 #: git-stash.sh:89
 msgid "Cannot save the current index state"
-msgstr ""
+msgstr "Não é possível guardar o estado atual do índice"
 
-#: git-stash.sh:123
-#: git-stash.sh:136
+#: git-stash.sh:124 git-stash.sh:137
 msgid "Cannot save the current worktree state"
-msgstr ""
+msgstr "Não é possível guardar o estado atual da árvore de trabalho"
 
-#: git-stash.sh:140
+#: git-stash.sh:141
 msgid "No changes selected"
-msgstr "Não há alterações seleccionadas"
+msgstr "Nenhuma alteração selecionada"
 
-#: git-stash.sh:143
+#: git-stash.sh:144
 msgid "Cannot remove temporary index (can't happen)"
-msgstr ""
+msgstr "Não é possível remover o índice temporário (não pode acontecer)"
 
-#: git-stash.sh:156
+#: git-stash.sh:157
 msgid "Cannot record working tree state"
+msgstr "Não é possível gravar o estado da árvore de trabalho"
+
+#: git-stash.sh:189
+#, sh-format
+msgid "Cannot update $ref_stash with $w_commit"
+msgstr "Não é possível atualizar $ref_stash com $w_commit"
+
+#. TRANSLATORS: $option is an invalid option, like
+#. `--blah-blah'. The 7 spaces at the beginning of the
+#. second line correspond to "error: ". So you should line
+#. up the second line with however many characters the
+#. translation of "error: " takes in your language. E.g. in
+#. English this is:
+#.
+#. $ git stash save --blah-blah 2>&1 | head -n 2
+#. error: unknown option for 'stash save': --blah-blah
+#. To provide a message, use git stash save -- '--blah-blah'
+#: git-stash.sh:239
+#, sh-format
+msgid ""
+"error: unknown option for 'stash save': $option\n"
+"       To provide a message, use git stash save -- '$option'"
 msgstr ""
+"erro: opção desconhecida de 'stash save': $option\n"
+"      Para fornecer uma mensagem, use git stash save -- '$option'"
 
-#: git-stash.sh:223
+#: git-stash.sh:260
 msgid "No local changes to save"
-msgstr "Sem alterações locais para guardar"
+msgstr "Não há alterações locais para guardar"
 
-#: git-stash.sh:227
+#: git-stash.sh:264
 msgid "Cannot initialize stash"
 msgstr "Não é possível inicializar o stash"
 
-#: git-stash.sh:235
+#: git-stash.sh:268
 msgid "Cannot save the current status"
-msgstr ""
+msgstr "Não é possível guardar o estado atual"
 
-#: git-stash.sh:253
+#: git-stash.sh:286
 msgid "Cannot remove worktree changes"
-msgstr ""
+msgstr "Não é possível remover as alterações da árvore de trabalho"
 
-#: git-stash.sh:352
+#: git-stash.sh:405
+#, sh-format
+msgid "unknown option: $opt"
+msgstr "opção desconhecido: $opt"
+
+#: git-stash.sh:415
 msgid "No stash found."
-msgstr "nenhum stash encontrado."
+msgstr "Nenhum stash encontrado."
 
-#: git-stash.sh:359
+#: git-stash.sh:422
 #, sh-format
 msgid "Too many revisions specified: $REV"
-msgstr ""
+msgstr "Demasiadas revisões especificadas: $REV"
 
-#: git-stash.sh:365
+#: git-stash.sh:428
 #, sh-format
-msgid "$reference is not valid reference"
-msgstr ""
+msgid "$reference is not a valid reference"
+msgstr "$reference não é uma referência válida"
 
-#: git-stash.sh:393
+#: git-stash.sh:456
 #, sh-format
 msgid "'$args' is not a stash-like commit"
-msgstr ""
+msgstr "'$args' não é um commit do tipo stash"
 
-#: git-stash.sh:404
+#: git-stash.sh:467
 #, sh-format
 msgid "'$args' is not a stash reference"
-msgstr ""
+msgstr "'$args' não é uma referência de stash"
 
-#: git-stash.sh:412
+#: git-stash.sh:475
 msgid "unable to refresh index"
-msgstr ""
+msgstr "não foi possível refrescar o índice"
 
-#: git-stash.sh:416
+#: git-stash.sh:479
 msgid "Cannot apply a stash in the middle of a merge"
-msgstr ""
+msgstr "Não é possível aplicar um stash durante um merge"
 
-#: git-stash.sh:424
+#: git-stash.sh:487
 msgid "Conflicts in index. Try without --index."
-msgstr ""
+msgstr "Conflitos no índice. Tente sem --index."
 
-#: git-stash.sh:426
+#: git-stash.sh:489
 msgid "Could not save index tree"
-msgstr "Não foi posivel guardar o index tree"
+msgstr "Não foi possível guardar árvore do índice"
 
-#: git-stash.sh:460
+#: git-stash.sh:523
 msgid "Cannot unstage modified files"
-msgstr ""
+msgstr "Não é possível retirar os ficheiros modificado do índice"
 
-#: git-stash.sh:491
+#: git-stash.sh:538
+msgid "Index was not unstashed."
+msgstr "O índice não foi reposto."
+
+#: git-stash.sh:561
 #, sh-format
 msgid "Dropped ${REV} ($s)"
-msgstr "Deixado cair ${REV} ($s)"
+msgstr "A descartar ${REV} ($s)"
 
-#: git-stash.sh:492
+#: git-stash.sh:562
 #, sh-format
 msgid "${REV}: Could not drop stash entry"
-msgstr ""
-
-#: git-stash.sh:499
-msgid "No branch name specified"
-msgstr "Nenhum nome para a rama especificado"
+msgstr "${REV}: Não foi possível descartar elemento do stash"
 
 #: git-stash.sh:570
-msgid "(To restore them type \"git stash apply\")"
-msgstr ""
+msgid "No branch name specified"
+msgstr "Nenhum nome de ramo especificado"
 
-#: git-submodule.sh:56
+#: git-stash.sh:642
+msgid "(To restore them type \"git stash apply\")"
+msgstr "(Para os restaurar execute \"git stash apply\")"
+
+#: git-submodule.sh:104
 #, sh-format
 msgid "cannot strip one component off url '$remoteurl'"
-msgstr ""
+msgstr "não é possível tirar um componente do URL '$remoteurl'"
 
-#: git-submodule.sh:109
-#, sh-format
-msgid "No submodule mapping found in .gitmodules for path '$sm_path'"
+#: git-submodule.sh:281
+msgid "Relative path can only be used from the toplevel of the working tree"
 msgstr ""
+"Os caminhos relativos só podem ser usados a partir do topo da árvore de "
+"trabalho"
 
-#: git-submodule.sh:150
-#, sh-format
-msgid "Clone of '$url' into submodule path '$sm_path' failed"
-msgstr ""
-
-#: git-submodule.sh:160
-#, sh-format
-msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa"
-msgstr ""
-
-#: git-submodule.sh:249
+#: git-submodule.sh:291
 #, sh-format
 msgid "repo URL: '$repo' must be absolute or begin with ./|../"
-msgstr ""
+msgstr "URL do repositório: '$repo' deve ser absoluto ou começar com ./|../"
 
-#: git-submodule.sh:266
+#: git-submodule.sh:308
 #, sh-format
 msgid "'$sm_path' already exists in the index"
-msgstr ""
+msgstr "'$sm_path' já existe no índice"
 
-#: git-submodule.sh:283
-#, sh-format
-msgid "'$sm_path' already exists and is not a valid git repo"
-msgstr ""
-
-#: git-submodule.sh:297
-#, sh-format
-msgid "Unable to checkout submodule '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:302
-#, sh-format
-msgid "Failed to add submodule '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:307
-#, sh-format
-msgid "Failed to register submodule '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:349
-#, sh-format
-msgid "Entering '$prefix$sm_path'"
-msgstr "Entrando '$prefix$sm_path'"
-
-#: git-submodule.sh:363
-#, sh-format
-msgid "Stopping at '$sm_path'; script returned non-zero status."
-msgstr ""
-
-#: git-submodule.sh:405
-#, sh-format
-msgid "No url found for submodule path '$sm_path' in .gitmodules"
-msgstr ""
-
-#: git-submodule.sh:414
-#, sh-format
-msgid "Failed to register url for submodule path '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:422
-#, sh-format
-msgid "Failed to register update mode for submodule path '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:424
-#, sh-format
-msgid "Submodule '$name' ($url) registered for path '$sm_path'"
-msgstr ""
-
-#: git-submodule.sh:523
+#: git-submodule.sh:312
 #, sh-format
 msgid ""
-"Submodule path '$sm_path' not initialized\n"
-"Maybe you want to use 'update --init'?"
+"The following path is ignored by one of your .gitignore files:\n"
+"$sm_path\n"
+"Use -f if you really want to add it."
 msgstr ""
+"O seguinte caminho foi ignorado por um ficheiro .gitignore:\n"
+"$sm_path\n"
+"Use -f se pretende mesmo adicioná-lo."
 
-#: git-submodule.sh:536
+#: git-submodule.sh:330
 #, sh-format
-msgid "Unable to find current revision in submodule path '$sm_path'"
-msgstr ""
+msgid "Adding existing repo at '$sm_path' to the index"
+msgstr "A adicionar repositório existente em '$sm_path' ao índice"
 
-#: git-submodule.sh:555
+#: git-submodule.sh:332
 #, sh-format
-msgid "Unable to fetch in submodule path '$sm_path'"
-msgstr ""
+msgid "'$sm_path' already exists and is not a valid git repo"
+msgstr "'$sm_path' já existe e não é uma repositório git válido"
 
-#: git-submodule.sh:569
+#: git-submodule.sh:340
 #, sh-format
-msgid "Unable to rebase '$sha1' in submodule path '$sm_path'"
+msgid "A git directory for '$sm_name' is found locally with remote(s):"
 msgstr ""
+"Um diretório git de '$sm_name' foi encontrado localmente com os remotos:"
 
-#: git-submodule.sh:570
+#: git-submodule.sh:342
 #, sh-format
-msgid "Submodule path '$sm_path': rebased into '$sha1'"
+msgid ""
+"If you want to reuse this local git directory instead of cloning again from"
 msgstr ""
+"Se deseja reutilizar este diretório git local em vez de clonar de novo de"
 
-#: git-submodule.sh:575
+#: git-submodule.sh:344
 #, sh-format
-msgid "Unable to merge '$sha1' in submodule path '$sm_path'"
+msgid ""
+"use the '--force' option. If the local git directory is not the correct repo"
 msgstr ""
+"use a opção '--force'. Se o diretório git local não é o repositório correto"
+
+#: git-submodule.sh:345
+#, sh-format
+msgid ""
+"or you are unsure what this means choose another name with the '--name' "
+"option."
+msgstr ""
+"ou não tem a certeza do que isto significa, escolha outro nome com a opção "
+"'--name'."
+
+#: git-submodule.sh:347
+#, sh-format
+msgid "Reactivating local git directory for submodule '$sm_name'."
+msgstr "A reativar o diretório git local do submódulo '$sm_name'."
+
+#: git-submodule.sh:359
+#, sh-format
+msgid "Unable to checkout submodule '$sm_path'"
+msgstr "Não foi possível extrair o submódulo '$sm_path'"
+
+#: git-submodule.sh:364
+#, sh-format
+msgid "Failed to add submodule '$sm_path'"
+msgstr "Falha ao adicionar o submódulo '$sm_path'"
+
+#: git-submodule.sh:373
+#, sh-format
+msgid "Failed to register submodule '$sm_path'"
+msgstr "Falha ao registar o submódulo '$sm_path'"
+
+#: git-submodule.sh:417
+#, sh-format
+msgid "Entering '$prefix$displaypath'"
+msgstr "A entrar em '$prefix$displaypath'"
+
+#: git-submodule.sh:437
+#, sh-format
+msgid "Stopping at '$prefix$displaypath'; script returned non-zero status."
+msgstr ""
+"Interrompido em '$prefix$displaypath'; o script retornou um valor diferente "
+"de zero."
+
+#: git-submodule.sh:483
+#, sh-format
+msgid "No url found for submodule path '$displaypath' in .gitmodules"
+msgstr "Nenhum URL encontrado no submódulo '$displaypath' em .gitmodules"
+
+#: git-submodule.sh:492
+#, sh-format
+msgid "Failed to register url for submodule path '$displaypath'"
+msgstr "Falha ao registar o URL do submódulo '$displaypath'"
+
+#: git-submodule.sh:494
+#, sh-format
+msgid "Submodule '$name' ($url) registered for path '$displaypath'"
+msgstr "Submódulo '$name' ($url) registado em '$displaypath'"
+
+#: git-submodule.sh:511
+#, sh-format
+msgid "Failed to register update mode for submodule path '$displaypath'"
+msgstr "Falha ao registar o modo de atualização do submódulo em '$displaypath'"
+
+#: git-submodule.sh:549
+#, sh-format
+msgid "Use '.' if you really want to deinitialize all submodules"
+msgstr "Use '.' se pretende mesmo anular a inicialização todos os submódulos"
+
+#: git-submodule.sh:566
+#, sh-format
+msgid "Submodule work tree '$displaypath' contains a .git directory"
+msgstr ""
+"A árvore de trabalho do submódulo em '$displaypath' contém um diretório .git"
+
+#: git-submodule.sh:567
+#, sh-format
+msgid ""
+"(use 'rm -rf' if you really want to remove it including all of its history)"
+msgstr ""
+"(use 'rm -rf' se pretende mesmo removê-lo, incluindo todo o seu histórico)"
+
+#: git-submodule.sh:573
+#, sh-format
+msgid ""
+"Submodule work tree '$displaypath' contains local modifications; use '-f' to "
+"discard them"
+msgstr ""
+"A árvore de trabalho do submódulo em '$displaypath' contém alterações "
+"locais; use '-f' para as descartar"
 
 #: git-submodule.sh:576
 #, sh-format
-msgid "Submodule path '$sm_path': merged in '$sha1'"
-msgstr ""
+msgid "Cleared directory '$displaypath'"
+msgstr "Diretório '$displaypath' limpo"
 
-#: git-submodule.sh:581
+#: git-submodule.sh:577
 #, sh-format
-msgid "Unable to checkout '$sha1' in submodule path '$sm_path'"
+msgid "Could not remove submodule work tree '$displaypath'"
 msgstr ""
+"Não foi possível remover a árvore de trabalho do submódulo em '$displaypath'"
 
-#: git-submodule.sh:582
+#: git-submodule.sh:580
 #, sh-format
-msgid "Submodule path '$sm_path': checked out '$sha1'"
-msgstr ""
+msgid "Could not create empty submodule directory '$displaypath'"
+msgstr "Não foi possível criar o diretório vazio do submódulo '$displaypath'"
 
-#: git-submodule.sh:604
-#: git-submodule.sh:927
+#: git-submodule.sh:589
 #, sh-format
-msgid "Failed to recurse into submodule path '$sm_path'"
+msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr ""
+"O registo do submódulo '$name' ($url) foi removido do caminho '$displaypath'"
 
-#: git-submodule.sh:712
-msgid "--"
-msgstr "--"
-
-#: git-submodule.sh:770
+#: git-submodule.sh:723
 #, sh-format
-msgid "  Warn: $name doesn't contain commit $sha1_src"
+msgid ""
+"Submodule path '$displaypath' not initialized\n"
+"Maybe you want to use 'update --init'?"
 msgstr ""
+"Submódulo em '$displaypath' não inicializado\n"
+"Talvez queira usar 'update --init'?"
 
-#: git-submodule.sh:773
+#: git-submodule.sh:736
 #, sh-format
-msgid "  Warn: $name doesn't contain commit $sha1_dst"
+msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr ""
+"Não foi possível encontrar a revisão atual no submódulo em '$displaypath'"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:745
 #, sh-format
-msgid "  Warn: $name doesn't contain commits $sha1_src and $sha1_dst"
-msgstr ""
+msgid "Unable to fetch in submodule path '$sm_path'"
+msgstr "Não foi possível obter no submódulo '$sm_path'"
 
-#: git-submodule.sh:801
+#: git-submodule.sh:768
+#, sh-format
+msgid "Unable to fetch in submodule path '$displaypath'"
+msgstr "Não é possível obter no submódulo '$displaypath'"
+
+#: git-submodule.sh:788
+#, sh-format
+msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
+msgstr "Não foi possível extrair '$sha1' no submódulo em '$displaypath'"
+
+#: git-submodule.sh:789
+#, sh-format
+msgid "Submodule path '$displaypath': checked out '$sha1'"
+msgstr "Submódulo em '$displaypath': '$sha1' extraído"
+
+#: git-submodule.sh:793
+#, sh-format
+msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
+msgstr ""
+"Não foi possível efetuar rebase de '$sha1' no submódulo em '$displaypath'"
+
+#: git-submodule.sh:794
+#, sh-format
+msgid "Submodule path '$displaypath': rebased into '$sha1'"
+msgstr "Submódulo em '$displaypath': rebase concluído em '$sha1'"
+
+#: git-submodule.sh:799
+#, sh-format
+msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
+msgstr "Não é possível efetuar merge de '$sha1' no submódulo em '$displaypath'"
+
+#: git-submodule.sh:800
+#, sh-format
+msgid "Submodule path '$displaypath': merged in '$sha1'"
+msgstr "Submódulo em '$displaypath': merge em '$sha1' concluído"
+
+#: git-submodule.sh:805
+#, sh-format
+msgid ""
+"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
+msgstr "Falha ao executar '$command $sha1' no submódulo em '$prefix$sm_path'"
+
+#: git-submodule.sh:806
+#, sh-format
+msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
+msgstr "Submódulo em '$prefix$sm_path': '$command $sha1'"
+
+#: git-submodule.sh:836
+#, sh-format
+msgid "Failed to recurse into submodule path '$displaypath'"
+msgstr "Falha ao percorrer o submódulo em '$displaypath'"
+
+#: git-submodule.sh:944
+msgid "The --cached option cannot be used with the --files option"
+msgstr "A opção --cached não pode ser usada com a opção --files"
+
+#: git-submodule.sh:996
+#, sh-format
+msgid "unexpected mode $mod_dst"
+msgstr "modo inesperado $mod_dst"
+
+#: git-submodule.sh:1016
+#, sh-format
+msgid "  Warn: $display_name doesn't contain commit $sha1_src"
+msgstr "  Aviso: $display_name não contém o commit $sha1_src"
+
+#: git-submodule.sh:1019
+#, sh-format
+msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
+msgstr "  Warn: $display_name não contém o commit $sha1_dst"
+
+#: git-submodule.sh:1022
+#, sh-format
+msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
+msgstr "  Warn: $display_name contém os commits $sha1_src e $sha1_dst"
+
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "blob"
 
-#: git-submodule.sh:802
-msgid "submodule"
-msgstr "submódulos"
-
-#: git-submodule.sh:973
+#: git-submodule.sh:1165
 #, sh-format
-msgid "Synchronizing submodule url for '$name'"
-msgstr ""
+msgid "Failed to recurse into submodule path '$sm_path'"
+msgstr "Falha ao percorrer recursivamente o submódulo em '$sm_path'"
+
+#: git-submodule.sh:1229
+#, sh-format
+msgid "Synchronizing submodule url for '$displaypath'"
+msgstr "A sincronizar o URL do submódulo em '$displaypath'"
+
+#~ msgid "unable to parse format"
+#~ msgstr "não foi possível analisar o formato"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "formato impróprio introduzido align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Não foi possível definir core.worktree em %s"
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default não está definido; o seu valor implícito foi alterado\n"
+#~ "no Git 2.0 de 'matching' para 'simple'. Para suprimir esta mensagem\n"
+#~ "e manter o comportamento tradicional, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "Para suprimir esta mensagem e adotar o novo comportamento, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "Quando push.default está definido como 'matching', o Git publica\n"
+#~ "os ramos locais nos ramos remotos que já existam com o mesmo nome.\n"
+#~ "\n"
+#~ "Desde a versão 2.0, o Git assume o comportamento mais conservativo "
+#~ "'simple',\n"
+#~ "publicando só o ramo atual no ramo remoto correspondente, que é usado\n"
+#~ "para atualizar o ramo atual com 'git pull'.\n"
+#~ "Consulte 'git help config' e procure por 'push.default' para mais "
+#~ "informações.\n"
+#~ "(o modo 'simple' foi introduzido no Git 1.7.11. Use o modo semelhante\n"
+#~ "'current' em vez de 'simple' se por vezes usa versões anteriores do Git)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Não foi possível acrescentar '%s'"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Não foi possível definir '%s'"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "Autor em falta: %s"
+
+#~ msgid "Testing "
+#~ msgstr "A testar "
+
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr ""
+#~ "Migrar commits locais para a cabeça atualizada em relação ao ramo a "
+#~ "montante"
+
+#~ msgid " 0 files changed\n"
+#~ msgstr " 0 ficheros modificados\n"
+
+#~ msgid " %d file changed"
+#~ msgid_plural " %d files changed"
+#~ msgstr[0] " %d ficheiro modificado"
+#~ msgstr[1] " %d ficheiros modificados"
+
+#~ msgid ", %d insertion(+)"
+#~ msgid_plural ", %d insertions(+)"
+#~ msgstr[0] ", %d adição(+)"
+#~ msgstr[1] ", %d adições(+)"
+
+#~ msgid ", %d deletion(-)"
+#~ msgid_plural ", %d deletions(-)"
+#~ msgstr[0] ", %d eliminado(-)"
+#~ msgstr[1] ", %d eliminados(-)"
+
+#~ msgid "You do not have a valid HEAD"
+#~ msgstr "Você não tem uma HEAD válida"
+
+#~ msgid "bug"
+#~ msgstr "erro"
+
+#~ msgid "copied:     %s -> %s"
+#~ msgstr "copiado:     %s -> %s"
+
+#~ msgid "modified:   %s"
+#~ msgstr "modificado:   %s"
+
+#~ msgid "renamed:    %s -> %s"
+#~ msgstr "mudado de nome:    %s -> %s"
+
+#~ msgid ", behind "
+#~ msgstr ", atrás "
+
+#~ msgid "no files added"
+#~ msgstr "nenhum ficheiros adicionado"
+
+#~ msgid "Could not extract email from committer identity."
+#~ msgstr "Não foi possível extrair a identidade do committer do e-mail."
+
+#~ msgid "option %s does not accept negative form"
+#~ msgstr "opção %s não aceita formato negativo"
+
+#~ msgid "Applying: $FIRSTLINE"
+#~ msgstr "Aplicando: $FIRSTLINE"
+
+#~ msgid "--"
+#~ msgstr "--"
 
 #~ msgid "cherry-pick"
 #~ msgstr "cherry-pick"
 
 #~ msgid "Please enter the commit message for your changes."
 #~ msgstr "Por favor insira a mensagem de commit das suas alterações."
-
-#~ msgid "Too many options specified"
-#~ msgstr "Demasiadas opções especificadas"
diff --git a/po/ru.po b/po/ru.po
index 0de4ff9..c0a838b 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -3,15 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2014-2015
+# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2014-2016
 # insolor <insolor@gmail.com>, 2014
 # insolor <insolor@gmail.com>, 2014
 msgid ""
 msgstr ""
 "Project-Id-Version: Git Russian Localization Project\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-25 11:57+0000\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-15 18:54+0000\n"
 "Last-Translator: Dimitriy Ryazantcev <DJm00n@mail.ru>\n"
 "Language-Team: Russian (http://www.transifex.com/djm00n/git-po-ru/language/ru/)\n"
 "MIME-Version: 1.0\n"
@@ -31,7 +31,7 @@
 "as appropriate to mark resolution and make a commit."
 msgstr "Исправьте их в рабочем каталоге, затем запустите «git add/rm <файл>»,\nчтобы пометить исправление и сделайте коммит."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "Вы не завершили слияние (присутствует файл MERGE_HEAD)."
 
@@ -74,7 +74,7 @@
 msgid "archive format"
 msgstr "формат архива"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "префикс"
 
@@ -82,11 +82,11 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "добавлять префикс перед каждым путем файла в архиве"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "файл"
 
@@ -118,7 +118,7 @@
 msgid "list supported archive formats"
 msgstr "перечислить поддерживаемые форматы архивов"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "репозиторий"
 
@@ -126,96 +126,109 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "получить архив из внешнего <репозитория>"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
-msgstr "комманда"
+msgstr "команда"
 
 #: archive.c:454 builtin/archive.c:93
 msgid "path to the remote git-upload-archive command"
 msgstr "путь к команде git-upload-archive на машине с внешним репозиторием"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
 msgstr "Отрицающие шаблоны в атрибутах git игнорируются.\nИспользуйте «\\!» для буквального использования символа в значении «восклицательный знак»."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr "\nПосле исправления причины ошибки,\nвы можете исправить информацию об отслеживаемой\nвнешней ветке, с помощью команды\n«git branch --set-upstream-to=%s%s%s»."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "Не устанавливаю ветку %s, так так она принадлежит вышестоящему репозиторию."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr "Ветка %s отслеживает внешнюю ветку %s из %s перемещением."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "Ветка %s отслеживает внешнюю ветку %s из %s."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr "Ветка %s отслеживает локальную ветку %s перемещением."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "Ветка %s отслеживает локальную ветку %s."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr "Ветка %s отслеживает внешнюю ссылку %s перемещением."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "Ветка %s отслеживает внешнюю ссылку %s."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr "Ветка %s отслеживает локальную ссылку %s перемещением."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "Ветка %s отслеживает локальную ссылку %s."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Не удалось записать настройки вышестоящей ветки"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "Не отслеживается: неоднозначная информация для ссылки %s"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "«%s» не является действительным именем ветки."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "Ветка с именем «%s» уже существует."
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "Не удалось принудительно обновить текущую ветку."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid ""
 "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr "Не удалось настроить информацию отслеживания; стартовая точка «%s» не является веткой."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "запрошенная ветка вышестоящего репозитория «%s» не существует"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -227,22 +240,22 @@
 "\"git push -u\" to set the upstream config as you push."
 msgstr "\nЕсли вы планируете основывать свою работу на вышестоящей ветке, которая уже существует во внешнем репозитории, вам может потребоваться запустить «git fetch» для ее получения.\n\nЕсли вы планируете отправить новую локальную ветку, которая будет отслеживаться, во внешний репозиторий, вам может потребоваться запустить «git push -u» — чтобы сохранить настройку вышестоящего репозитория для отправки."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "Недопустимое имя объекта: «%s»."
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "Неоднозначное имя объекта: «%s»."
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "Недопустимая точка ветки: «%s»."
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "«%s» уже находится на «%s»"
@@ -266,10 +279,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "В репозитории отсутствуют необходимые коммиты:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "сбой инициализации прохода по редакциям"
 
@@ -312,7 +325,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "ссылка «%s» исключена в соответствии с опциями rev-list"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "неопознанный аргумент: %s"
@@ -335,8 +348,8 @@
 msgid "invalid color value: %.*s"
 msgstr "недопустимое значение цвета: %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "не удалось разобрать %s"
@@ -350,59 +363,64 @@
 msgid "memory exhausted"
 msgstr "память исчерпана"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "ошибка в %d строке файла конфигурации в %s"
+msgid "bad config line %d in %s %s"
+msgstr "ошибка в %d строке файла конфигурации в %s %s"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "неправильное числовое значение «%s» для «%s» в %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "неправильное числовое значение «%s» для «%s» в %s %s: %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "неправильное числовое значение «%s» для «%s»: %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "сбой разворачивания пути каталога пользователя: «%s»"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "неправильный уровень сжатия zlib %d"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "недопустимый режим создания объекта: %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "не удалось разобрать конфигурацию из командной строки"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "произошла неизвестная ошибка при чтении файлов конфигурации"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "не удалось разобрать «%s» в конфигурации из командной строки"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "неправильная переменная конфигурации «%s» в файле «%s» на строке %d"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s имеет несколько значений"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Не удалось установить «%s» в «%s»"
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "Не удалось запустить «git rev-list»"
@@ -534,34 +552,34 @@
 "%s"
 msgstr "Найдены ошибки в переменной «diff.dirstat»:\n%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "критическая ошибка при внешнем сравнении, останов на %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow требует ровно одной спецификации пути"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
 "%s"
 msgstr "Сбой разбора параметра опции --dirstat/-X :\n%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "Сбой разбора параметра опции --submodule: «%s»"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "не удалось получить имя ядра и информацию"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Кэш неотслеживаемых файлов отключен на этой системе."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "Кэш неотслеживаемых файлов отключен на этой системе или в этом месте."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -600,48 +618,48 @@
 msgid "'%s': short read %s"
 msgstr "«%s»: слишком мало данных прочитано %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "доступные команды git в «%s»"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "команды git, доступные в других местах вашего $PATH"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "Стандартные команды Git используемые в различных ситуациях:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
 "able to execute it. Maybe git-%s is broken?"
 msgstr "«%s» похоже на команду git, но нам не удалось ее запустить. Возможно, git-%s  не работает?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "Ой-ёй! Ваша система не сообщает ни о каких командах Git вообще."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
 "Continuing under the assumption that you meant '%s'"
 msgstr "ВНИМАНИЕ: Вы вызвали команду Git «%s», но такой не существует.\nПродолжаем с предположением, что вы имели в виду «%s»"
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "через %0.1f секунд автоматически…"
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git: «%s» не является командой git. Смотрите «git --help»."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -653,7 +671,7 @@
 msgstr[2] "\nВозможно, вы имели в виду что-то из этого?"
 msgstr[3] "\nВозможно, вы имели в виду что-то из этого?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s — %s"
@@ -662,8 +680,8 @@
 msgid "failed to read the cache"
 msgstr "сбой чтения кэша"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "не удалось записать новый файл индекса"
 
@@ -681,218 +699,218 @@
 msgid "error building trees"
 msgstr "ошибка при построении деревьев"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "не удалось создать путь «%s»%s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Удаление %s, чтобы освободить место для подкаталогов\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": возможно, конфликт каталогов/файлов?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "отказ потери неотслеживаемого файла в «%s»"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "невозможно прочитать объект %s «%s»"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "ожидается двоичный объект для %s «%s»"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "не удалось открыть «%s»"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "не удалось создать символьную ссылку «%s»"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "не понятно, что делать с %06o %s «%s»"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "Не удалось запустить внутреннее слияние"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "Не удалось добавить %s в базу данных"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "объект неподдерживаемого типа в дереве"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
 "in tree."
 msgstr "КОНФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. Версия %s из %s оставлена в дереве."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
 "in tree at %s."
 msgstr "КОНФЛИКТ (%s/удаление): %s удалено в %s и %s в %s. Версия %s из %s оставлена в дереве на %s."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "переименование"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "переименовано"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s — это каталог в %s, добавляем как %s вместо этого"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename "
 "\"%s\"->\"%s\" in \"%s\"%s"
 msgstr "КОНФЛИКТ (переименование/переименование): Переименование «%s»→«%s» в ветке «%s» и переименование «%s»→«%s» в ветке «%s»%s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (оставлено неразрешенным)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr "КОНФЛИКТ (переименование/переименование): Переименование «%s»→«%s» в ветке «%s» и переименование «%s»→«%s» в ветке «%s»"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Переименовываю %s в %s и %s в %s вместо этого"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr "КОНФЛИКТ (переименование/добавление): Переименование «%s»→«%s» в ветке «%s» и добавление «%s» в ветке «%s»"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "Добавление слитого %s"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Добавление вместо этого как %s"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "невозможно прочитать объект «%s»"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "объект %s не является двоичным объектом"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "изменение"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "изменено"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "содержимое"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "добавление/добавление"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "Пропуск %s (слиты одинаковые изменения как существующие)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "Автослияние %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "подмодуль"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "КОНФЛИКТ (%s): Конфликт слияния в %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "Удаление %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "файл/каталог"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "каталог/файл"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid ""
 "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr "КОНФЛИКТ (%s): Уже существует каталог с именем «%s» в «%s». Добавление «%s» как «%s»"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "Добавление %s"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Критическая ошибка слияния, такого не должно случаться."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "Уже обновлено!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "сбой слияния деревьев «%s» и «%s»"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "Необработанный путь??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "Слияние:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
@@ -901,16 +919,16 @@
 msgstr[2] "найдено %u общих предков:"
 msgstr[3] "найдено %u общих предков:"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "слияние не вернуло коммит"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "Не удалось разобрать объект «%s»"
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "Не удается записать индекс."
 
@@ -968,7 +986,7 @@
 #: parse-options-cb.c:108
 #, c-format
 msgid "malformed object name '%s'"
-msgstr "Поврежденное имя объекта «%s»"
+msgstr "Неправильное имя объекта «%s»"
 
 #: path.c:752
 #, c-format
@@ -1024,12 +1042,12 @@
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr "%s: магические слова в спецификации пути не поддерживаются командой: %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "спецификация пути «%s» находится за символической ссылкой"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1057,152 +1075,237 @@
 "Using version %i"
 msgstr "GIT_INDEX_VERSION указан, но значение недействительное.\nИспользую версию %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "Не удалось открыть «%s» для записи"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "не удалось удалить ссылку %s: %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "не удалось удалить ссылки: %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "не удалось удалить ссылки %s"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "формат: частица %%(end) использована без соответствующей частицы"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "положительное значение ожидает содержимое:lines=%s"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "ожидаемый формат: %%(color:<color>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "не удалось разобрать формат"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "неопознанный цвет: %%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "неопознанный формат: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) не принимает аргументов"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) не принимает аргументов"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "положительное значение ожидает содержимое:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "неопознанный аргумент %%(contents): %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "неопознанный аргумент %%(objectname): %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "ожидаемый формат: %%(align:<width>,<position>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "указан неверный формат align:%s"
+msgid "unrecognized position:%s"
+msgstr "неопознанная позиция:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "неопознанная ширина:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "неопознанный аргумент %%(align): %s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "ожидается положительная ширина с указанием частицы %%(align)"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "неправильное имя поля: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "неизвестное имя поля: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "формат: частица %%(end) использована без соответствующей частицы"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "неправильная строка формата %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= требует наличия положительного целого аргумента"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "ссылка «%s» не содержит %ld компонент для :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "неизвестный %.*s формат %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "не найден объект %s для %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "сбой при выполнении parse_object_buffer на %s для %s"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
-msgstr "Поврежденный объект «%s»"
+msgstr "Повреждённый объект «%s»"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "игнорирую ссылку с неправильным именем %s"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "игнорирую неправильную ссылку %s"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "format: пропущена частица %%(end)"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
-msgstr "плохое имя объекта %s"
+msgstr "неправильное имя объекта %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "Нельзя извлечь одновременно %s и %s в %s"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s обычно отслеживает %s, а не %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s отслеживает и %s и %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "Внутренняя ошибка"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD не указывает на ветку"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "нет такой ветки: «%s»"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "вышестоящая ветка не настроена для ветки «%s»"
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "вышестоящая ветка «%s» не сохранена как отслеживаемая ветка"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr "назначение для отправки «%s» на внешнем сервере «%s» не имеет локальной отслеживаемой ветки"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "ветка «%s» не имеет внешнего сервера для отправки"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "спецификации пути для отправки «%s» не включают в себя «%s»"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "отправка не имеет точки назначения (push.default выставлен в «nothing»)"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "не удалось выполнить «simple» отправку в единственную точку назначения"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "Ваша ветка базируется на «%s», но вышестоящий репозиторий исчез.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "(для исправления запустите «git branch --unset-upstream»)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "Ваша ветка обновлена в соответствии с «%s».\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
@@ -1211,11 +1314,11 @@
 msgstr[2] "Ваша ветка опережает «%s» на %d коммитов.\n"
 msgstr[3] "Ваша ветка опережает «%s» на %d коммитов.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (используйте «git push», чтобы опубликовать ваши локальные коммиты)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1225,11 +1328,11 @@
 msgstr[2] "Ваша ветка отстает от «%s» на %d коммитов и может быть перемотана вперед.\n"
 msgstr[3] "Ваша ветка отстает от «%s» на %d коммитов и может быть перемотана вперед.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (используйте «git pull», чтобы обновить вашу локальную ветку)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1237,33 +1340,33 @@
 msgid_plural ""
 "Your branch and '%s' have diverged,\n"
 "and have %d and %d different commits each, respectively.\n"
-msgstr[0] "Ваша ветка и «%s» разошлись\nи теперь имеют %d и %d разный коммит в каждой соответственно.\n"
-msgstr[1] "Ваша ветка и «%s» разошлись\nи теперь имеют %d и %d разных коммита в каждой соответственно.\n"
-msgstr[2] "Ваша ветка и «%s» разошлись\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
-msgstr[3] "Ваша ветка и «%s» разошлись\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
+msgstr[0] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разный коммит в каждой соответственно.\n"
+msgstr[1] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммита в каждой соответственно.\n"
+msgstr[2] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
+msgstr[3] "Ваша ветка и «%s» разделились\nи теперь имеют %d и %d разных коммитов в каждой соответственно.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr "  (используйте «git pull», чтобы слить внешнюю ветку в вашу)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "похоже, ваша текущая ветка повреждена"
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "ваша текущая ветка «%s» еще не содержит ни одного коммита"
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "опцию --first-parent нельзя использовать одновременно с --bisect"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "сбой открытия /dev/null"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "dup2(%d,%d) сбой"
@@ -1286,242 +1389,256 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "принимающая сторона не поддерживает отправку с опцией --atomic"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
 msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
 "and commit the result with 'git commit'"
 msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»\nи сделайте коммит с помощью «git commit»"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "Не удалось записать в %s"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Ошибка оборачивания %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "Ваши локальные изменение будут перезаписаны отбором лучшего."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "Ваши локальные изменение будут перезаписаны возвратом коммита."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "Сделайте коммит или спрячьте ваши изменения для продолжения."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: Не удалось записать файл индекса"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "Не удалось определить HEAD коммит\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "Не удалось обновить дерево кэша\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "Не удалось разобрать коммит %s\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "Не удалось разобрать родительскую коммит %s\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "Ваш файл индекса не слит."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "Коммит %s — это коммит-слияние, но опция -m не указана."
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "У коммита %s нет предка %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr "Основная ветка указана, но коммит %s не является слиянием."
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: не удалось разобрать родительский коммит для %s"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "Не удалось получить сообщение коммита для %s"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "не удалось возвратить коммит %s… %s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "не удалось применить коммит %s… %s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "передан пустой набор коммитов"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: сбой чтения индекса"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: сбой обновления индекса"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "Не удалось %s во время %s"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "Не удалось разобрать строку %d."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "Коммиты не разобраны."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "Не удалось открыть %s"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "Не удалось прочитать %s."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Непригодная для использования карта с инструкциями: %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Недействительный ключ: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Неправильное значение %s: %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
-msgstr "Испорченная карта с опциями: %s"
+msgstr "Повреждённая карта с опциями: %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "отбор лучшего или возврат коммита уже выполняется"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "попробуйте «git cherry-pick (--continue | --quit | --abort)»"
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "Не удалось создать каталог для указателя следования коммитов %s"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Ошибка оборачивания %s."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "отбор лучшего или возврат коммита не выполняется"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "не удалось определить HEAD"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "нельзя отменить изменения с ветки, которая еще не создана"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "не удалось открыть %s: %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "не удалось прочитать %s: %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "неожиданный конец файла"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "сохраненный файл с HEAD перед отбором лучшего «%s» поврежден"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "Не удалось отформатировать %s."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s: не удалось отобрать %s"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s: плохая редакция"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "Нельзя возвратить изначальный коммит"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
-msgstr "Нельзя отобрать лучшее в пустой HEAD"
+msgstr "Нельзя отобрать лучшее в пустую ветку"
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "не удалось прочитать %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "сдвиг до конца файла пакета (возможно, повреждён файл .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "сдвиг до начала индекса пакета для %s (повреждён индекс?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "сдвиг за пределами индекса пакета для %s (обрезан индекс?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1534,60 +1651,84 @@
 "running \"git config advice.objectNameWarning false\""
 msgstr "Обычно Git не создает ссылки, оканчивающиеся на 40 шестнадцатеричных\nсимволов, потому, что они будут игнорироваться, когда вы просто\nукажете это 40-символьное шестнадцатеричное число. Такие ссылки\nмогли быть созданы по ошибке. Например, с помощью:\n\n  git checkout -b $br $(git rev-parse …)\n\n, если «$br» оказался пустым, то ссылка с 40-символьным\nшестнадцатеричным числом будет создана. Пожалуйста, просмотрите эти\nссылки и, возможно, удалите их. Вы можете отключить это сообщение\nзапустив «git config advice.objectNameWarning false»"
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr "Не удалось изменить не слитый .gitmodules, сначала разрешите конфликты"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "Не удалось найти раздел в .gitmodules, где путь равен %s"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr " Не удалось обновить .gitmodules запись %s"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "Не удалось удалить запись в .gitmodules для %s"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "сбой индексирования обновленного .gitmodules"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Не удалось установить core.worktree в %s"
+msgid "running trailer command '%s' failed"
+msgstr "сбой при запуске команды завершителя «%s»"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "неизвестное значение «%s» для ключа «%s»"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "больше одного %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "пустая последняя лексема в завершителе «%.*s»"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "не удалось прочитать входной файл «%s»"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "не удалось прочитать из стандартного ввода"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "не удалось выполнить stat для %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "файл %s не является обычным файлом"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "файл %s не доступен на запись пользователю"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "не удалось создать временный файл"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "не удалось переименовать временный файл в %s"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "Не удалось прочитать ссылку %s"
@@ -1625,47 +1766,47 @@
 msgid "invalid '..' path segment"
 msgstr "неправильная часть пути «..»"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "не удалось открыть «%s» для чтения и записи"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "не удалось открыть «%s» для записи"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "не удалось открыть «%s» для чтения"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "«%s» недоступно: %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "«%s» недоступно"
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "не удалось получить текущий рабочий каталог"
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "не удалось открыть «%s» для записи"
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "не удалось записать в %s"
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "не удалось закрыть %s"
@@ -1866,8 +2007,8 @@
 #, c-format
 msgid "Last command done (%d command done):"
 msgid_plural "Last commands done (%d commands done):"
-msgstr[0] "Последняя команда выполнена (%d команд выполнено):"
-msgstr[1] "Последняя команда выполнена (%d команд выполнено):"
+msgstr[0] "Последняя команда выполнена (%d команда выполнена):"
+msgstr[1] "Последняя команда выполнена (%d команды выполнено):"
 msgstr[2] "Последняя команда выполнена (%d команд выполнено):"
 msgstr[3] "Последняя команда выполнена (%d команд выполнено):"
 
@@ -2010,11 +2151,11 @@
 
 #: wt-status.c:1451
 msgid "HEAD detached at "
-msgstr "HEAD отделен на "
+msgstr "HEAD отделён на "
 
 #: wt-status.c:1453
 msgid "HEAD detached from "
-msgstr "HEAD отделен начиная с "
+msgstr "HEAD отделён начиная с "
 
 #: wt-status.c:1456
 msgid "Not currently on any branch."
@@ -2111,7 +2252,11 @@
 msgid "behind "
 msgstr "позади"
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "впереди "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "сбой отсоединения «%s»"
@@ -2138,7 +2283,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr "Непроиндексированные изменения после обновления индекса:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "Не удалось прочитать индекс"
 
@@ -2173,15 +2318,15 @@
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "Следующие пути игнорируются одним из ваших файлов .gitignore:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "пробный запуск"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "быть многословнее"
 
@@ -2189,7 +2334,7 @@
 msgid "interactive picking"
 msgstr "интерактивный выбор"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "интерактивный выбор блоков"
 
@@ -2256,402 +2401,397 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Возможно, вы имели в виду «git add .»?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "файл индекса поврежден"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "Не удалось записать новый файл индекса"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "не удалось выполнить stat для %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "не удалось прочитать «%s»"
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "не удалось разобрать сценарий авторства"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "«%s» был удален перехватчиком applypatch-msg"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
-msgstr "Плохая строка ввода: «%s»."
+msgstr "Неправильная строка ввода: «%s»."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "Не удалось скопировать заметку из «%s» в «%s»"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "сбой при выполнении fseek"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "не удалось открыть «%s» для чтения: %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "не удалось открыть «%s» для записи: %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "не удалось разобрать патч «%s»"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "Только серия патчей StGIT может быть применена за раз"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "недопустимая метка даты/времени"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "недопустимая строка даты"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "недопустимое смещение часового пояса"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "Сбой определения формата патча."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "не удалось создать каталог «%s»"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "Не удалось разделить патчи на части."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "не удалось записать индекс"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "Когда вы устраните эту проблему, запустите «%s --continue»."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "Если вы хотите пропустить этот патч, то запустите «%s --skip»."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr "Чтобы вернуться на предыдущую ветку и остановить применение изменений, запустите «%s --abort»."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "Патч пуст. Возможно, он был неправильно разделён?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "неправильная строка идентификации: %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "не удалось разобрать коммит %s"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "В репозитории отсутствуют двоичные объекты, необходимые для отката к трехходовому слиянию."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr "Использую индекс для реконструкции базового дерева…"
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
 msgstr "Вы вручную изменяли патч?\nОн не накладывается без ошибок на двоичные объекты, записанные в его заголовке."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "Откат к применению изменений к базовому коммиту с помощью трехходового слияния…"
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "Не удалось слить изменения."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree не удалось записать дерево"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "применение к пустой истории"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "сбой записи объекта коммита"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "нельзя продолжнить: %s не существует "
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr "не удалось использовать интерактивное поведение, без stdin подключенного к терминалу."
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "Тело коммита:"
 
 #. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
 #. in your translation. The program will only accept English
 #. input at this point.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "Применить? [y] - да/[n] - нет/[e] - редактировать/[v] - просмотреть патч/[a] - применить всё: "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "Индекс не пустой: нельзя применять патчи (в индексе: %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Применение: %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "Нет изменений — Патч уже применен."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "Ошибка применения изменений на %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "Копию изменений, которые не удалось применить, вы можете найти в: %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
 "already introduced the same changes; you might want to skip this patch."
 msgstr "Нет изменений — возможно, вы забыли вызвать «git add»?\nЕсли ничего не осталось для индексации, то, скорее всего, что-то другое уже сделало те же изменения; возможно, вам следует пропустить этот патч."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
 msgstr "У вас все еще имеются не слитые пути в индексе.\nВозможно, вы забыли вызвать «git add»?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "Не удалось разобрать объект «%s»."
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "не удалось очистить индекс"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr "Похоже, что вы переместили HEAD с момента последней ошибки выполнения «am».\nПеремотка на ORIG_HEAD не выполняется"
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "Неправильное значение для --patch-format: %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<опции>] [(<mbox>|<Maildir>)…]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<опции>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "запустить в интерактивном режиме"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "историческая опция — ничего не делает"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "разрешить откатиться к трехходовому слиянию, если нужно"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "тихий режим"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "добавить строку Signed-off-by к сообщению коммита"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "перекодировать в utf8 (по умолчанию)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "передать флаг -k в git-mailinfo"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "передать флаг -b в git-mailinfo"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "передать флаг -m в git-mailinfo"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "передать флаг --keep-cr в git-mailsplit для формата mbox"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr "не передавать --keep-cr флаг в git-mailsplit вне зависимости от am.keepcr"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "обрезать все до строки обрезки"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "действие"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "передать его в git-apply"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "корень"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "путь"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "количество"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "формат"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "формат, в котором находятся патчи"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "переопределить сообщение об ошибке, если не удалось наложить изменения"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "продолжить применение изменений после разрешения конфиликта"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
-msgstr "синонимы для --continue"
+msgstr "синоним для --continue"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "пропустить текущий патч"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr "восстановить оригинальную ветку и отменить операцию применения изменений."
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "соврать о дате коммитера"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "использовать текущее время как время авторства"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "key-id"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "подписать коммиты с помощью GPG"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(внутреннее использование для git-rebase)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
 msgstr "Опция -b/--binary уже долгое время ничего не делает и будет удалена с следующих версиях Git. Пожалуйста, не используйте ее."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "сбой чтения индекса"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "предыдущий каталог перемещения %s еще существует, но передан mbox."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
 "Use \"git am --abort\" to remove it."
 msgstr "Найден забытый каталог %s.\nИспользуйте «git am --abort», чтобы удалить его."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "Операция разрешения конфликтов не в процессе выполнения, не продолжаем."
 
@@ -2996,124 +3136,124 @@
 msgid "unable to read index file"
 msgstr "не удалось прочитать файл индекса"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "не применять изменения по указанному пути"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "применять изменения по указанному пути"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "удалить <количество> ведущих косых черт из традиционных путей списка изменений"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "игнорировать добавления, сделанные этим патчем"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "вместо применения патча вывести статистику добавлений и удалений для ввода"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "показать количество добавленных и удаленных строк в десятичном представлении"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "вместо применения патча вывести статистику изменений для ввода"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "вместо применения патча проверить подходит ли он"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "проверить, что патч применяется к текущему индексу"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "применить патч, не изменяя рабочий каталог"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "принять патч, который затрагивает файлы за рабочим каталогом"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "а также применить патч (используйте с --stat/--summary/--check)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "попытаться сделать трехходовое слияние, если патч не применяется"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr "построить временный индекс, основанный на встроенной информации об индексе"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
-msgstr "пути, отделенные НУЛЕВЫМ символом"
+msgstr "пути, отделённые НУЛЕВЫМ символом"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "удостовериться, что по крайней мере <n> строк контекста совпадают"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "определять новые или модифицированные строки, у которых есть ошибки в пробельных символах"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "игнорировать изменения в пробельных символах при поиске контекста"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "применить патч с обращением изменений"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "не ожидать как минимум одной строки контекста"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "оставить отклоненные блоки изменений в соответствующих *.rej файлах"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "разрешить перекрывающиеся блоки изменений"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "разрешить некорректно определенные пропущенные пустые строки в конце файла"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "не доверять количеству строк из заголовка блока изменений"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "добавить <корень> спереди ко всем именам файлов"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "--3way вне репозитория"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "--index вне репозитория"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "--cached вне репозитория"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "не удалось открыть патч «%s»"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
@@ -3122,7 +3262,7 @@
 msgstr[2] "пропущено %d ошибок в пробельных символах"
 msgstr[3] "пропущено %d ошибок в пробельных символах"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3178,103 +3318,111 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "обновить BISECT_HEAD вместо перехода на текущий коммит"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<опции>] [<опции-редакции>] [<редакция>] [--] <файл>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<опции-rev-list> документированы в git-rev-list(1)"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Просмотр авторов строк"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr "Показать записи авторства постепенно, в процессе нахождения"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "Не показывать SHA-1 для коммитов, не входящих в границы запроса (По умолчанию: отключено)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "Не воспринимать корневые коммиты как граничные (По умолчанию: отключено)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "Показать статистику расходов на выполнение запроса"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Принудительно выводить прогресс выполнения"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "Показать оценку для записей авторства"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "Показать оригинальное имя файла (По умолчанию: автоматически)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "Показать оригинальные номера строк (По умолчанию: отключено)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "Показать в формате для программного разбора"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "Показать в машиночитаемом формате, с построчной информацией о коммите"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "Использовать такой же формат вывода, как и git-annotate (По умолчанию: отключено)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "Показать необработанные временные метки (По умолчанию: отключено)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Показать длинный SHA1 идентификатор коммита (По умолчанию: отключено)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Не показывать имя автора и временные метки (По умолчанию: отключено)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr "Показать почту автора вместо имени (По умолчанию: отключено)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "Игнорировать различия в пробелах"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "Потратить больше времени, для нахождения лучших совпадений"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "Использовать редакции из <файла> вместо вызова git-rev-list"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "Использовать содержимое <файла> как финальный снимок"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "мин-длина"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "Найти копирование строк в пределах и между файлами"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "Найти перемещения строк в пределах и между файлами"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "начало,конец"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "Обработать только строки в диапазоне начало,конец, начиная с 1"
 
@@ -3284,7 +3432,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "4 года и 11 месяцев назад"
 
@@ -3476,200 +3624,200 @@
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "Ветка переименована, но произошел сбой обновления файла конфигурации"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "не удалось записать шаблон описания ветки: %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "Общие параметры"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
-msgstr "показывать хеш-сумму и тему, укажите дважды для вышестоящей ветки"
+msgstr "показывать хэш-сумму и тему, укажите дважды для вышестоящей ветки"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "не выводить информационные сообщения"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "установить режим отслеживания вышестоящей ветки (см. git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "изменить информацию о вышестоящей ветке"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "использовать цветной вывод"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "выполнить действия на отслеживаемых внешних ветках"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "вывод только веток, которые содержат коммит"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "Специфичные для git-branch действия:"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "показать список и отслеживаемых и локальных веток"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "удалить полностью слитую ветку"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "удалить ветку (даже никуда не слитую)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "переместить/переименовать ветки и ее журнал ссылок"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "переместить/переименовать ветку, даже если целевое имя уже существует"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "показать список имен веток"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "создать журнал ссылок ветки"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "изменить описание ветки"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "принудительное создание, перемещение или удаление ветки"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "вывод только слитых веток"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "вывод только не слитых веток"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "показать список веток по столбцам"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "ключ"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "имя поля, по которому выполнить сортировку"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "объект"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "вывод только веток, определенного объекта"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Не удалось определить HEAD как действительную ссылку."
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD не найден в refs/heads!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column и --verbose нельзя использовать одновременно"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "требуется имя ветки"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
-msgstr "Нельзя дать описание отделенному HEAD"
+msgstr "Нельзя дать описание отделённому HEAD"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "нельзя изменить описание более одной ветки за раз"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "Еще нет коммита на ветке «%s»."
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "Нет ветки с именем «%s»."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "слишком много веток для операции переименования"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "слишком много веток для указания новых вышестоящих"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
-msgstr "невозможно установить вышестоящий репозиторий для HEAD на %s, когда он не указывает ни на одну ветку."
+msgstr "невозможно установить вышестоящий репозиторий для HEAD на %s, так как он не указывает ни на одну ветку."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "нет такой ветки «%s»"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "ветка «%s» не существует"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "слишком много веток для убирания вышестоящих"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
-msgstr "невозможно убрать вышестоящий репозиторий для HEAD, когда он не указывает ни на одну ветку."
+msgstr "невозможно убрать вышестоящий репозиторий для HEAD, так как он не указывает ни на одну ветку."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "Ветка «%s» не имеет информации о вышестоящей ветке"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "не имеет смысла создавать «HEAD» вручную"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr "параметры -a и -r для «git branch» не имеют смысла с указанием имени ветки"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using "
 "--track or --set-upstream-to\n"
 msgstr "Флаг --set-upstream устарел и будет удален в будущем. Вместо него используйте --track или --set-upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3677,12 +3825,12 @@
 "\n"
 msgstr "\nЕсли вы хотите, чтобы «%s» отслеживала «%s», сделайте следующее:\n\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3774,7 +3922,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "использовать только .gitattributes из индекса"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "прочитать имена файлов из стандартного ввода"
 
@@ -3782,7 +3930,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "окончание ввода и вывода записей по НУЛЕВОМУ символу"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "не выводить прогресс выполнения"
 
@@ -3835,49 +3983,53 @@
 msgid "no contacts specified"
 msgstr "не указаны контакты"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<опции>] [--] [<файл>…]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "индекс должен быть между 1 и 3 или all"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "перейти на состояние всех файлов из индекса"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "принудительная перезапись существующих файлов"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr "не выводить предупреждения для существующих и непроиндексированных файлов"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "не создавать новые файлы"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "обновить статистику доступа в файле индекса"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "прочитать список путей из стандартного ввода"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "записать содержимое во временные файлы"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "строка"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "добавить спереди <строку> при создании файлов"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "копировать файлы из указанного индекса"
 
@@ -3957,37 +4109,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD сейчас на"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "не удалось обновить HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Сброс ветки «%s»\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Уже на «%s»\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Переключение и сброс ветки «%s»\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Переключено на новую ветку «%s»\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Переключено на ветку «%s»\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " … и еще %d.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4004,7 +4160,7 @@
 msgstr[2] "Предупреждение: вы оставляете позади %d коммитов не соединенные ни с одной из ваших веток:\n\n%s\n"
 msgstr[3] "Предупреждение: вы оставляете позади %d коммитов не соединенные ни с одной из ваших веток:\n\n%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4018,167 +4174,167 @@
 "\n"
 " git branch <new-branch-name> %s\n"
 "\n"
-msgstr[0] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n\n"
-msgstr[1] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n\n"
-msgstr[2] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n\n"
-msgstr[3] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n\n"
+msgstr[0] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n"
+msgstr[1] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n"
+msgstr[2] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n"
+msgstr[3] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "внутренняя ошибка при хождении по редакциям"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "Предыдущая позиция HEAD была"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "Вы находитесь на еще не созданной ветке"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "ожидается только одна ссылка, а передано %d."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "неправильная ссылка: %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "в дереве нет такой ссылки: %s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "нельзя использовать пути при переключении веток"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "нельзя использовать «%s» при переключении веток"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "«%s» нельзя использовать одновременно с «%s»"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Нельзя переключить ветку на не коммит «%s»"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "ветка"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "создать и перейти на новую ветку"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "создать/сбросить и перейти на новую ветку"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "создать журнал ссылок для новой ветки"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "отсоединить HEAD на указанном коммите"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "установить информацию о вышестоящей ветке для новой ветки"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "новая-ветка"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "новая ветка без родителей"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "перейти на нашу версию для не слитых файлов"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "перейти на их версию для не слитых файлов"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "принудительный переход (отбрасывает все локальные изменения)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "выполнить трехходовое слияние с новой веткой"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "обновить игнорируемые файлы (по умолчанию)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "стиль"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "стиль конфликтов слияния (merge или diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "не ограничивать спецификаторы пути только частичными записями"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "пересмотр «git checkout <no-such-branch>»"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr "не проверять, что другое дерево уже содержит указанную ссылку"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "принудительно выводить прогресс"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B и --orphan нельзя использовать одновременно"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track требует имя ветки"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "Пропущено имя ветки; попробуйте -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "неправильная спецификация пути"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
 "Did you intend to checkout '%s' which can not be resolved as commit?"
 msgstr "Нельзя обновить пути и одновременно переключить на ветку «%s».\nВы хотели переключиться на «%s», что не может быть определено как коммит?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach не принимает путь «%s» как аргумент"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4214,7 +4370,7 @@
 msgid "failed to remove %s"
 msgstr "сбой удаления %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4222,7 +4378,7 @@
 "           - (empty) select nothing"
 msgstr "Справка по выделению:\n1          - выбрать указанный элемент\nfoo        - выбрать элемент с указанным префиксом\n           - (пусто) не выбирать ничего"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4234,36 +4390,36 @@
 "           - (empty) finish selecting"
 msgstr "Справка по выделению:\n1          - выбрать один элемент\n3-5        - выбрать диапазон элементов\n2-3,6-9    - выбрать несколько диапазонов\nfoo        - выбрать элемент с указанным префиксом\n-…       - убрать выделение с указанных элементов\n*          - выбрать все элементы\n           - (пусто) завершить выделение"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Хм (%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "Шаблоны игнорирования ввода>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "ПРЕДУПРЕЖДЕНИЕ: Не удалось найти элементы соответствующие: %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "Укажите элементы для удаления"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "Удалить %s [y - да/N - нет]? "
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "До свидания."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4274,15 +4430,15 @@
 "?                   - help for prompt selection"
 msgstr "clean               - начать очистку\nfilter by pattern   - исключить удаление элементов\nselect by numbers   - исключить удаление элементов по номерам\nask each            - запрашивать подтверждение на удаление каждого элемента (как «rm -i»)\nquit                - прекратить очистку\nhelp                - этот экран\n?                   - справка по выделению"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** Команды ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "Что теперь"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "Удалить следующие элементы:"
@@ -4290,54 +4446,54 @@
 msgstr[2] "Удалить следующие элементы:"
 msgstr[3] "Удалить следующие элементы:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "Больше нет файлов для очистки, выходим."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "не выводить имена удаляемых файлов"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "принудительно"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "интерактивная очистка"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "удалить каталоги полностью"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "шаблон"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "добавить <шаблон> в правила игнорирования"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "также удалить игнорируемые файлы"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "удалить только игнорируемые файлы"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "нельзя использовать одновременно -x и -X"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to"
 " clean"
 msgstr "clean.requireForce установлен как true и ни одна из опций -i, -n или -f не указана; отказ очистки"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4347,263 +4503,286 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<опции>] [--] <репозиторий> [<каталог>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "не переключать рабочую копию на HEAD"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "создать голый репозиторий"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "создать зеркало репозитория (включает в себя и параметр bare)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "для клонирования из локального репозитория"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "не использовать жесткие ссылки, всегда копировать файлы"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "настроить как общедоступный репозиторий"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "инициализировать подмодули в клоне"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "каталог-шаблонов"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "каталог, шаблоны из которого будут использованы"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "ссылаемый репозиторий"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "используйте --reference только при клонировании"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "имя"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "использовать <имя> вместо «origin» для отслеживания вышестоящего репозитория"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "перейти на <ветку>, вместо HEAD внешнего репозитория"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "путь к git-upload-pack на внешнем репозитории"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
 msgid "depth"
 msgstr "глубина"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "сделать частичный клон указанной глубины"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "клонировать только одну ветку, HEAD или --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "каталог-git"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "разместить каталог git отдельно от рабочей копии"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "ключ=значение"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "установить параметры внутри нового репозитория"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "использовать только IPv4 адреса"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "использовать только IPv6 адреса"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr "Имя каталога не может быть угадано.\nУкажите имя каталога с помощью параметра командной строки"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr "ссылаемый репозиторий «%s» как связанное состояние, пока не поддерживается."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "ссылаемый репозиторий «%s» не является локальным."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "ссылаемый репозиторий «%s» является частичным"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "ссылаемый репозиторий «%s» является сращенным"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "не удалось выполнить stat «%s»"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s уже существует и не является каталогом"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "не удалось выполнить stat %s\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "не удалось создать ссылку «%s»"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "не удалось копировать файл в «%s»"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "готово.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
 "and retry the checkout with 'git checkout -f HEAD'\n"
 msgstr "Клонирование прошло успешно, но во время перехода на версию произошла ошибка.\nС помощь команды «git status» вы можете просмотреть, какие файлы были обновлены, а повторить попытку перехода на версию с помощью «git checkout -f HEAD»\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "Не удалось найти внешнюю ветку %s для клонирования."
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "Проверка соединения… "
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "внешний репозиторий прислал не все необходимые объекты"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "не удалось обновить %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "внешний HEAD ссылается на несуществующую ссылку, нельзя перейти на такую версию.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "не удалось перейти на версию в рабочем каталоге"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "не удалось записать параметры в файл конфигурации"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "не удалось выполнить перепаковку для очистки"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "не удалось отсоединить временные альтернативные файлы"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "Слишком много аргументов."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "Вы должны указать репозиторий для клонирования."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare и --origin %s нельзя использовать одновременно."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare и --separate-git-dir нельзя использовать одновременно."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "репозиторий «%s» не существует"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "глубина %s не является положительным числом"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "целевой путь «%s» уже существует и не является пустым каталогом."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "рабочий каталог «%s» уже существует."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "не удалось создать родительские каталоги для «%s»"
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "не удалось создать рабочий каталог «%s»"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Клонирование в голый репозиторий «%s»…\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Клонирование в «%s»…\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth игнорируется на локальных клонах; вместо этого используйте file://."
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "исходный репозиторий является частичным, --local игнорируется"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local игнорируется"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Не знаю как клонировать %s"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "Внешняя ветка %s не найдена в вышестоящем репозитории %s"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "Похоже, что вы клонировали пустой репозиторий."
 
@@ -4754,11 +4933,11 @@
 #: builtin/commit.c:582
 #, c-format
 msgid "commit '%s' has malformed author line"
-msgstr "у коммита «%s» автор в неверном формате"
+msgstr "у коммита «%s» строка автора в неправильном формате"
 
 #: builtin/commit.c:601
 msgid "malformed --author parameter"
-msgstr "параметр --author в неверном формате"
+msgstr "параметр --author в неправильном формате"
 
 #: builtin/commit.c:609
 #, c-format
@@ -4776,7 +4955,7 @@
 msgid "could not lookup commit %s"
 msgstr "не удалось запросить коммит %s"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(чтение файла журнала из стандартного ввода)\n"
@@ -4944,8 +5123,8 @@
 msgid "show branch information"
 msgstr "показать информацию о версии"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "машиночитаемый вывод"
 
@@ -4994,7 +5173,7 @@
 
 #: builtin/commit.c:1477
 msgid "detached HEAD"
-msgstr "отделенный HEAD"
+msgstr "отделённый HEAD"
 
 #: builtin/commit.c:1480
 msgid " (root-commit)"
@@ -5032,8 +5211,8 @@
 msgid "override date for commit"
 msgstr "подменить дату коммита"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "сообщение"
 
@@ -5066,7 +5245,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "коммит теперь за моим авторством (с использованием -C/-c/--amend)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "добавить Signed-off-by:"
 
@@ -5090,7 +5269,7 @@
 msgid "include status in commit message template"
 msgstr "включить статус файлов в шаблон сообщения коммита"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "подписать коммит с помощью GPG"
@@ -5178,139 +5357,143 @@
 "not exceeded, and then \"git reset HEAD\" to recover."
 msgstr "Репозиторий был обновлен, но не удалось записать файл new_index. Удостоверьтесь, что на диске есть свободное место и квота не исчерпана, а после этого запустите «git reset HEAD» для восстановления."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<опции>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "Размещение файла конфигурации"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "использовать глобальный файл конфигурации"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "использовать системный файл конфигурации"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "использовать файл конфигурации репозитория"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "использовать указанный файл конфигурации"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "идент-двоичн-объекта"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "прочитать настройки из указанного двоичного объекта"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "Действие"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "получить значение: имя [шаблон-значений]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "получить все значения: ключ [шаблон-значений]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "получить значения по шаблону: шаблон-имен [шаблон-значений]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "получить значение, специфичное для URL: раздел[.переменная] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "заменить все соответствующие переменные: имя значение [шаблон-значений]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "добавить новую переменную: имя значение"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "удалить переменную: имя [шаблон-значений]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "удалить все совпадающие: имя [шаблон-значений]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "переименовать раздел: старое-имя новое-имя"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "удалить раздел: имя"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "показать весь список"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "открыть в редакторе"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "найти настроенный цвет: раздел [по-умолчанию]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "проверить, существует ли настроенный цвет: раздел [stdout-есть-tty]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "Тип"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "значение — это «true» (правда) или «false» (ложь)"
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "значение — это десятичное число"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "значение — это --bool или --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "значение — это путь (к файлу или каталогу)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "Другое"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "завершать значения НУЛЕВЫМ байтом"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "показывать только имена переменных"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "учитывать директивы include (включения файлов) при запросе"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "показать источник настройки (файл, стандартный ввод, двоичный объект, командная строка)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "не удалось разобрать значение цвета по умолчанию"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5320,7 +5503,7 @@
 "#\temail = %s\n"
 msgstr "# Это файл конфигурации пользователя Git.\n[user]\n# Пожалуйста, адаптируйте и раскомментируйте следующие строки:\n#\tuser = %s\n#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "не удалось создать файл конфигурации %s"
@@ -5564,247 +5747,251 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<опции>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "извлечь со всех внешних репозиториев"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "дописать к .git/FETCH_HEAD вместо перезаписи"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "путь к программе упаковки пакета на машине с внешним репозиторием"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "принудительная перезапись локальной ветки"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "извлечь с нескольких внешних репозиториев"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "извлечь все метки и связанные объекты"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "не извлекать все метки (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "количество подмодулей, которые будут скачаны парралельно"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "почистить отслеживаемые внешние ветки, которых уже нет на внешнем репозитории"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "по требованию"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "управление рекурсивным извлечением подмодулей"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "оставить загруженный пакет данных"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "разрешить обновление ссылки HEAD"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "глубокая история частичного клона"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "преобразовать в полный репозиторий"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "каталог"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "присоединять это спереди к выводу путей подмодуля"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "режим по умолчанию для рекурсии"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "принимать ссылки, которые обновляют .git/shallow"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "соответствие-ссылок"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "указать соответствие ссылок при извлечении"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "Не удалось найти ссылку HEAD на внешнем репозитории"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "объект %s не найден"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[актуально]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s → %s  (не удалось извлечь в текущую ветку)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[отклонено]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[обновление метки]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (не удалось обновить локальную ссылку)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[новая метка]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[новая ветка]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[новая ссылка]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "не удалось обновить локальную ссылку"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "принудительное обновление"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(без перемотки вперед)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "не удалось открыть %s: %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s не отправил все необходимые объекты\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "%s отклонено из-за того, что частичные корни не разрешено обновлять"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "Из %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr "не удалось обновить некоторые локальные ссылки; попробуйте запустить «git remote prune %s», чтобы почистить старые, конфликтующие ветки"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s будет висящей веткой)"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s стала висящей веткой)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[удалено]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(нет)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "Отказ получения в текущую ветку %s не голого репозитория"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "Неправильное значение «%2$s» для параметра «%1$s» для %3$s"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "Параметр «%s» игнорируется для %s\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "Не знаю как извлечь с %s"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Извлечение из %s\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "Не удалось извлечь %s"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
 msgstr "Не указан внешний репозиторий. Укажите URL или имя внешнего репозитория из которого должны извлекаться новые редакции."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "Вам нужно указать имя метки."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "нельзя использовать одновременно --depth и --unshallow"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow не имеет смысла на полном репозитории"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all не принимает имя репозитория как аргумент"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all не имеет смысла при указании спецификаций ссылок"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "Нет такого внешнего репозитория или группы: %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "Получение группы и указание спецификаций ссылок не имеет смысла"
 
@@ -6020,259 +6207,273 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<опции>] [-e] <шаблон> [<редакция>…] [[--] <путь>…]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: сбой создания потока: %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "указано недопустимое количество потоков (%d) для %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "не удалось прочитать дерево (%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "не удалось выполнить grep из объекта типа %s"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "параметр «%c» ожидает числовое значение"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "не удалось открыть «%s»"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "искать в индексе, а не в рабочем каталоге"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "искать в содержимом не управляемым git"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "искать и в отслеживаемых, и в неотслеживаемых файлах"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "игнорировать файлы указанные в «.gitignore»"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "искать в несовпадающих строках"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "без учета регистра"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "искать совпадения шаблона только на границах слов"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "обработка двоичных файлов как текста"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "не искать совпадения шаблона в двоичных файлах"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "обрабатываться двоичные файлы с помощью фильтров textconv"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "на глубине максиму <глубина> уровней"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "использовать расширенные регулярные выражения POSIX"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "использовать базовые регулярные выражения POSIX (по умолчанию)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "интерпретировать шаблоны как фиксированные строки"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "использовать Perl-совместимые регулярные выражения"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "вывести номера строк"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "не выводить имена файлов"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "выводить имена файлов"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "выводить имена файлов относительно каталога репозитория"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "выводить только имена файлов, а не совпадающие строки"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "синоним для --files-with-matches"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "выводить только несовпадающие имена файлов"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "выводить двоичный НОЛЬ после списка имен файлов"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "выводить количество совпадений, а не совпадающие строки"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "подсвечивать совпадения"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr "выводить пустую строку после совпадений из разных файлов"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr "выводить имя файла только раз на несколько совпадений в одном файле"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "показать <n> строк контекста перед и после совпадения"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "показать <n> строк контекста перед совпадением"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "показать <n> строк контекста после совпадения"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "использовать <кол> рабочих потоков"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "тоже, что и -C КОЛИЧЕСТВО"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "показать строку с именем функции перед совпадением"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "показать окружающую функцию"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "прочитать шаблоны из файла"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "поиск соответствий с <шаблоном>"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "объединить шаблоны указанные с помощью -e"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "ничего не выводить, указать на совпадение с помощью кода выхода"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr "показать только совпадения из файлов в которых совпадают все шаблоны"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "показать дерево разбора для выражения поиска"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "пейджер"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "показать совпадающие файлы с помощью программы-пейджера"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "разрешить вызов grep(1) (игнорируется в этой сборке)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "не задан шаблон."
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "указано неправильное количество потоков (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager работает только в рабочем каталоге"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached или --untracked нельзя использовать одновременно с --no-index."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index или --untracked нельзя использовать одновременно с указанием ревизии."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard не может использоваться для отслеживаемого содержимого."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "указано одновременно --cached и дерево."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
 msgstr "git hash-object [-t <тип>] [-w] [--path=<файл> | --no-filters] [--stdin] [--] <файл>…"
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "тип"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "тип объекта"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "запись объекта в базу данных объектов"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "прочитать объект из стандартного ввода"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "сохранить файл без использования фильтров"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
-msgstr "хешировать любой мусор и создавать поврежденные объекты для отладки Git"
+msgstr "хэшировать любой мусор и создавать поврежденные объекты для отладки Git"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "обработать файл так, будто он находится по указанному пути"
 
@@ -6323,75 +6524,75 @@
 msgid "failed to exec '%s': %s"
 msgstr "сбой при запуске «%s»: %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
 "Please consider using 'man.<tool>.cmd' instead."
 msgstr "«%s»: путь для неподдерживаемой программы просмотра man.\nВместо этого используйте «man.<программа>.cmd»."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
 "Please consider using 'man.<tool>.path' instead."
 msgstr "«%s»: команда для неподдерживаемой программы просмотра man.\nВместо этого используйте «man.<программа>.path»."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "«%s»: неизвестная программа просмотра man."
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "программа просмотра man не обработала запрос"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "программа просмотра info не обработала запрос"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "Определение атрибутов для путей файлов или каталогов"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Повседневный Git с 20 командами или около того"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "Глоссарий Git"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Указание специально игнорируемых файлов"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "Определение свойств подмодулей"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "Указание редакций и диапазонов для Git"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Учебное введение в Git (для версии 1.5.1 или новее)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Обзор рекомендуемых последовательностей выполняемых действий с Git"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "Основные руководства Git:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "использование: %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "«git %s» — это сокращение для «%s»"
@@ -6633,27 +6834,22 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "плохой pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "указано неправильное количество потоков (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "нет поддержки потоков, игнорирование %s"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Не удалось открыть существующий файл пакета «%s»"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "Не удалось открыть существующий файл индекса для «%s»"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
@@ -6662,7 +6858,7 @@
 msgstr[2] "не дельты: %d объектов"
 msgstr[3] "не дельты: %d объектов"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
@@ -6671,26 +6867,26 @@
 msgstr[2] "длина цепочки = %d: %lu объектов"
 msgstr[3] "длина цепочки = %d: %lu объектов"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "Не удалось вернуться в текущий рабочий каталог"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "плохой %s"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin нельзя использовать без --stdin"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "имя пакета «%s» не оканчивается на «.pack»"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "--verify без указания имени файла пакета"
 
@@ -6764,7 +6960,7 @@
 
 #: builtin/init-db.c:400
 msgid "Reinitialized existing"
-msgstr "Реинициализация существующего"
+msgstr "Переинициализация существующего"
 
 #: builtin/init-db.c:400
 msgid "Initialized empty"
@@ -6812,22 +7008,30 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...]"
-" [<file>...]"
-msgstr "git interpret-trailers [--trim-empty] [(--trailer <лексема>[(=|:)<значение>])…] [<файл>…]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
+msgstr "git interpret-trailers [--in-place] [--trim-empty] [(--trailer <ключ>[(=|:)<значение>])…] [<файл>…]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "редактировать файлы на месте"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "удалять пустые завершители"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "завершитель"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "завершители для добавления"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "ничего не передано, для редактирования файлов на месте"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<опции>] [<диапазон-редакций>] [[--] <путь>…]"
@@ -6881,326 +7085,373 @@
 msgid "Unknown type: %d"
 msgstr "Неизвестный тип объекта: %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "в format.headers не указано значение"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "слишком длинное имя выходного каталога"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "Ну удалось открыть файл изменений %s"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "Нужен только один диапазон."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "Не является диапазоном."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "Сопроводительное письмо должно быть в формате электронной почты"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "ошибка в поле in-reply-to: %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<опции>] [<начиная-с> | <диапазон-редакций>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Два выходных каталога?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "выводить [PATCH n/m] даже когда один патч"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "выводить [PATCH] даже когда несколько патчей"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "выводить патчи на стандартный вывод"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "генерировать сопроводительное письмо"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "использовать простую последовательность чисел для имен выходных файлов"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "суффикс"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "использовать суффикс <суффикс> вместо «.patch»"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "начать нумерацию патчей с <n>, а не с 1"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "пометить серию как энную попытку"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "Использовать [<префикс>] вместо [PATCH]"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "сохранить результирующие файлы в <каталог>"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "не обрезать/добавлять [PATCH]"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "не выводить двоичные различия"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
-msgstr "выводить пустую хеш-сумму в поле Отправитель"
+msgstr "выводить нулевую хэш-сумму в заголовке From"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "не включать патч, если коммит уже есть в вышестоящей ветке"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "выводить в формате патча, а не в стандартном (патч + статистика)"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "Передача сообщений"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "заголовок"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "добавить заголовок сообщения"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "почта"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "добавить заголовок To:"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "добавить заголовок Cc:"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "идентификатор"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "установить адрес отправителя на <идентификатор> (или на идентификатор коммитера, если отсутствует)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "идентификатор-сообщения"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "сделать первое письмо ответом на <идентификатор-сообщения>"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "вложение"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "приложить патч"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "включить патч в текст письма"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "включить в письмах иерархичность, стили: shallow (частичную), deep (глубокую)"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "подпись"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "добавить подпись"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "добавить подпись из файла"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "не выводить имена файлов патчей"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n и -k нельзя использовать одновременно"
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix и -k нельзя использовать одновременно."
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "--name-only не имеет смысла"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "--name-status не имеет смысла"
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "--check не имеет смысла"
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "стандартный вывод или каталог?"
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "Не удалось создать каталог «%s»"
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "не удалось прочитать файл подписи «%s»"
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "Сбой при создании выходных файлов"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<вышестоящая-ветка> [<голова> [<ограничение>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> "
 "manually.\n"
 msgstr "Не удалось найти отслеживаемую внешнюю ветку, укажите <вышестоящую-ветку> вручную.\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Неизвестный коммит %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<опции>] [<файл>…]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "выводить имена файлов с метками"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "использовать символы в нижнем регистре для «предположительно без изменений» файлов"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "показывать кэшированные файлы при выводе (по умолчанию)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "показывать удаленные файлы при выводе"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "показывать измененные файлы при выводе"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "показывать другие файлы при выводе"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "показывать игнорируемые файлы при выводе"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "показывать имя индексированного объекта на выводе"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "показывать файлы в файловой системе, которые должны быть удалены"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "показывать только имена у «других» каталогов"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "показать концы строк файлов"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "не показывать пустые каталоги"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "показывать не слитые файлы на выводе"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "показывать информации о разрешении конфликтов и отмене"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "пропустить файлы, соответствующие шаблону"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "прочитать шаблоны исключения из <файл>"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "прочитать дополнительные покаталожные шаблоны исключения из <файл>"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "добавить стандартные исключения git"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "выводить пути относительно корневого каталога проекта"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "если какой-либо <файл> не в индексе, считать это ошибкой"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "указатель-дерева"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr "притвориться, что пути удалены, т.к. <указатель-дерева> еще существует"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "показать отладочную информацию"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr "git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<запуск>]\n                     [-q | --quiet] [--exit-code] [--get-url]\n                     [--symref] [<репозиторий> [<ссылки>…]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "не выводить URL внешних репозиториев"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "запуск"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "путь к git-upload-pack на внешнем сервере"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "ограничить вывод метками"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "ограничить вывод указателями на ветки"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "не показывать удалённые метки"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "учитывать url.<база>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "выходить с кодом 2, если соответствующие ссылки не найдены"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "показать также внутреннюю ссылку в дополнение к объекту, на который она указывает"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<опции>] <указатель-дерева> [<путь>…]"
@@ -7268,31 +7519,31 @@
 msgid "Available custom strategies are:"
 msgstr "Доступные пользовательские стратегии:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "не выводить статистику изменений после окончания слияния"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "вывести статистику изменений после окончания слияния"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(синоним для --stat)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "добавить (максимум <n>) записей из короткого журнала в сообщение коммита у слияния"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "создать один коммит, вместо выполнения слияния"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "сделать коммит, если слияние прошло успешно (по умолчанию)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "отредактировать сообщение перед выполнением коммита"
 
@@ -7300,28 +7551,28 @@
 msgid "allow fast-forward (default)"
 msgstr "разрешить перемотку вперед (по умолчанию)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
-msgstr "отменить выполнение слияния, если перемотка вперед не возможна"
+msgstr "отменить выполнение слияния, если перемотка вперед невозможна"
 
 #: builtin/merge.c:213
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "Проверить, что указанный коммит имеет верную электронную подпись GPG"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "стратегия"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "используемая стратегия слияния"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "опция=значение"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "опции для выбранной стратегии слияния"
 
@@ -7359,8 +7610,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "Уплотнение коммита — не обновляя HEAD\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "Не удалось записать в «%s»"
@@ -7378,41 +7629,41 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "Нет сообщения слияния — не обновляем HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "«%s» не указывает на коммит"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Неправильная строка branch.%s.mergeoptions: %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
-msgstr "Не обрабатываю ничего, кроме слияния двух указателей на коммиты."
+msgstr "Не обрабатываю ничего, кроме слияния двух указателей на ветки."
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Неизвестный параметр merge-recursive: -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "не удалось записать %s"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "Не удалось прочесть из «%s»"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "Не выполняю коммит слияния; используйте «git commit» для завершения слияния.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7422,157 +7673,157 @@
 "the commit.\n"
 msgstr "Пожалуйста, введите сообщение коммита, для объяснения, зачем нужно\nэто слияние, особенно, если это слияние обновленной вышестоящей\nветки в тематическую ветку.\n\nСтроки, начинающиеся с «%c» будут проигнорированы, а пустое\nсообщение отменяет процесс коммита.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Пустое сообщение коммита."
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Прекрасно.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "Не удалось провести автоматическое слияние; исправьте конфликты и сделайте коммит результата.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "«%s» не является коммитом"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "Нет текущей ветки."
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "У текущей ветки нет внешнего репозитория."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "Для текущей ветки не указана вышестоящая ветка по умолчанию."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "Не указана внешняя отслеживаемая ветка для %s на %s"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "не удалось закрыть «%s»"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "Нет слияния, которое можно отменить (отсутствует файл MERGE_HEAD)."
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
 msgstr "Вы не завершили слияние (присутствует файл MERGE_HEAD).\nВыполните коммит ваших изменений, перед слиянием."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
 msgstr "Вы не завершили отбор лучшего (присутствует файл CHERRY_PICK_HEAD).\nПожалуйста, выполните коммит ваших изменений, перед слиянием."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "Вы не завершили отбор лучшего (присутствует файл CHERRY_PICK_HEAD)."
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "Нельзя использовать одновременно --squash и --no-ff."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "Коммит не указан и параметр merge.defaultToUpstream не установлен."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
-msgstr "Уплотнение коммита в пустой HEAD еще не поддерживается"
+msgstr "Уплотнение коммита в пустую ветку еще не поддерживается"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
-msgstr "Коммит, не являющийся перемоткой вперед, нет смысла делать в пустой HEAD."
+msgstr "Коммит, не являющийся перемоткой вперед, нет смысла делать в пустую ветку."
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s не является тем, что можно слить"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
-msgstr "Можно слить строго один коммит в пустой HEAD."
+msgstr "Можно только один коммит в пустую ветку."
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "Коммит %s содержит не доверенную GPG подпись, предположительно от %s."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "Коммит %s содержит плохую GPG подпись, предположительно от %s."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "Коммит %s не содержит GPG подпись."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "Коммит %s содержит действительную GPG подпись, от %s.\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Обновление %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Попытка тривиального слияния в индексе…\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "Не вышло.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
-msgstr "Перемотка вперед не возможна, отмена."
+msgstr "Перемотка вперед невозможна, отмена."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Перемотка дерева к исходному состоянию…\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Попытка слияния с помощью стратегии %s…\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Ни одна стратегия слияния не обработала слияние.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "Сбой при слиянии с помощью стратегии %s.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Использую %s для подготовки ручного разрешения конфликтов.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "Автоматическое слияние прошло успешно; как и запрашивали, остановлено перед выполнением коммита\n"
@@ -7655,19 +7906,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "установить метки для файл1/ориг-файл/файл2"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
-msgstr "ввод отделенный НУЛЕВЫМИ символами"
+msgstr "ввод отделённый НУЛЕВЫМИ символами"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "допустить отсутствие объектов"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "допустить создание более одного дерева"
 
@@ -7675,90 +7926,90 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<опции>] <источник>… <назначение>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "Каталог %s в индексе и не является подмодулем?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr "Чтобы продолжить, проиндексируйте или спрячьте ваши изменения в файле .gitmodules"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s в индесе"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "принудительно перемещать/переименовать, даже если цель существует"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "пропускать ошибки при перемещении/переименовании"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "целевой путь «%s» не является каталогом"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "Проверка переименования из «%s» в «%s»\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "плохой источник"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "нельзя переместить каталог в самого себя"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "нельзя переместить каталог в файл"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "исходный каталог пуст"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "не под версионным контролем"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "целевой путь уже существует"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "перезапись «%s»"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "Не удалось перезаписать"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "несколько источников для одного целевого пути"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "целевой каталог не существует"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, откуда=%s, куда=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Переименование %s в %s\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "сбой при переименовании «%s»"
@@ -7951,9 +8202,9 @@
 msgstr "не удалось открыть или прочитать «%s»"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Не удалось разрешить «%s» как ссылку."
@@ -7968,146 +8219,146 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "Не удалось прочитать данные заметки из недвоичного объекта «%s»."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "передано слишком много параметров"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "Не найдена заметка для объекта %s."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "текстовое содержимое заметки"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "содержимое заметки в файле"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "использовать и отредактировать указанный объект заметки"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "использовать указанный объект заметки"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "разрешить сохранение пустой заметки"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "заменить существующие заметки"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr "Не удалось добавить заметку. Найдена существующая заметка у объекта %s. Используйте параметр «-f» для перезаписи существующих заметок."
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Перезапись существующих заметок у объекта %s\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Удаление заметки у объекта %s\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "прочитать объекты из стандартного ввода"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "загрузить настройки перезаписи для команды <команда> (включает в себя --stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "передано слишком мало параметров"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite"
 " existing notes"
 msgstr "Не удалось скопировать заметку. Найдена существующая заметка у объекта %s. Используйте параметр «-f» для перезаписи существующих заметок."
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Нет заметок у исходного объекта %s. Нельзя скопировать."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
 "Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
 msgstr "Опции -m/-F/-c/-C для подкоманды «edit» устарели.\nИспользуйте вместо них «git notes add -f -m/-F/-c/-C».\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "Общие опции"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "Опции слияния"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy "
 "(manual/ours/theirs/union/cat_sort_uniq)"
 msgstr "разрешить конфликты заметок с помощью указанной стратегии (manual/ours/theirs/union/cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "Коммит не слитых заметок"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "завершить слияние заметок коммитом не слитых заметок"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "Отмена разрешения слияния заметок"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "отменить слияние заметок"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "Слияние заметок в %s уже выполняется на %s"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "У объекта %s нет заметки\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "попытка удаления несуществующей заметки не является ошибкой"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "прочитать имена объектов из стандартного ввода"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "ссылка-на-заметку"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "использовать заметку из <ссылка-на-заметку>"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "Неизвестная подкоманда: %s"
@@ -8127,165 +8378,165 @@
 msgid "deflate error (%d)"
 msgstr "ошибка сжатия (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "Запись объектов"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "отключение записи битовых карт, так как некоторые объекты не были упакованы"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "Сжатие объектов"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "неподдерживаемая версия индекса %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "плохая версия индекса «%s»"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "не выводить прогресс выполнения"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "показать прогресс выполнения"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "показать прогресс выполнения во время записи объектов"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "похоже на --all-progress при включенном прогрессе выполнения"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "версия[,смещение]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr "записать файл индекса пакета в указанной версии формата"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "максимальный размер каждого выходного файла пакета"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "игнорировать чужие объекты, взятые из альтернативного хранилища объектов"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "игнорировать упакованные объекты"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "ограничить окно пакета по количеству объектов"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr "дополнительно к количеству объектов ограничить окно пакета по памяти"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "максимальная разрешенная длина цепочки дельт в результирующем пакете"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "использовать повторно существующие дельты"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "использовать повторно существующие объекты"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "использовать объекты OFS_DELTA"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr "использовать многопоточность при поиске лучших совпадений дельт"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "не создавать пустые выходные пакеты"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "прочитать аргументы редакций из стандартного ввода"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "ограничиться объектами, которые еще не упакованы"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "включить объекты, которые достижимы по любой из ссылок"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr "включить объекты, на которые ссылаются записи журнала ссылок"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "включить объекты, на которые ссылается индекс"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "вывести пакет на  стандартный вывод"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "включить объекты меток, которые ссылаются на упаковываемые объекты"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "сохранять ссылки на недоступные объекты"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "время"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "распаковать недоступные объекты, которые новее, чем <время>"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "создавать тонкие пакеты"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "создавать пакеты, подходящие для частичных извлечений"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "игнорировать пакеты, рядом с которыми лежит .keep файл"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "уровень сжатия пакета"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "не скрывать коммиты сращениями"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "по возможности использовать индекс в битовых картах, для ускорения подсчета объектов"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "запись индекса в битовых картах вместе с индексом пакета"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "Подсчет объектов"
 
@@ -8329,65 +8580,69 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "нельзя почистить неиспользуемые объекты в precious-objects репозитории"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<опции>] [<репозиторий> [<спецификация-ссылки>…]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "Опции, связанные со слиянием"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "забрать изменения с помощью перебазирования, а не слияния"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "разрешить перемотку вперед"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "проверить, что указанный коммит имеет верную электронную подпись GPG"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
-msgstr "Опции, связанные с извлечением"
+msgstr "Опции, связанные с извлечением изменений"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "количество подмодулей, которые будут получены парралельно"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Неправильное значение для pull.ff: %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr "Не удалось получить с перемещением: У вас есть непроиндексированные изменения."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "К тому же, в вашем индексе есть незакоммиченные изменения."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr "Не удалось получить с перемещением: В вашем индексе есть незакоммиченные изменения."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr "Нет претендентов для перемещения среди ссылок, которые вы только что получили."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr "Нет претендентов для слияния среди ссылок, которые вы только что получили."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
-msgstr "Обычно это означает, что вы передали спецификацию ссылки с помощью шаблона и этот шаблон не совпал ни с одной из ссылок на внешнем репозитории."
+msgstr "Обычно это означает, что вы передали спецификацию ссылки с помощью шаблона и этот шаблон ни с чем не совпал на внешнем репозитории."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8395,27 +8650,27 @@
 "for your current branch, you must specify a branch on the command line."
 msgstr "Вы попросили получить изменения со внешнего репозитория «%s», но не указали ветку. Так как это не репозиторий по умолчанию для  вашей текущей ветки, вы должны указать ветку в командной строке."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "Вы сейчас ни на одной из веток."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "Пожалуйста, укажите на какую ветку вы хотите переместить изменения."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "Пожалуйста, укажите с какой веткой вы хотите слить изменения."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
-msgstr "Для дополнительной информации смотрите git-pull(1)."
+msgstr "Для дополнительной информации, смотрите git-pull(1)."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "У текущей ветки нет информации об отслеживании."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8423,26 +8678,26 @@
 "    git branch --set-upstream-to=%s/<branch> %s\n"
 msgstr "Если вы хотите указать информацию о отслеживаемой ветке, выполните:\n\n    git branch --set-upstream-to=%s/<branch> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
 "from the remote, but no such ref was fetched."
 msgstr "Ваша конфигурация указывает, что нужно слить изменения со ссылкой\n«%s» из внешнего репозитория, но такая ссылка не была получена."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "Обновление еще не начавшейся ветки с изменениями, добавленными в индекс."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
 "fast-forwarding your working tree from\n"
 "commit %s."
-msgstr "извлечение обновило голову вашей текущей ветки.\nперемотка вашего рабочего каталога\nс коммита %s."
+msgstr "извлечение обновило указатель на вашу текущую ветку.\nперемотка вашего рабочего каталога\nс коммита %s."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8453,11 +8708,11 @@
 "to recover."
 msgstr "Не удалось перемотать вперёд изменения в вашем рабочем каталоге.\nПосле того, как вы убедитесь, что вы сохранили всё необходимое из вывода\n$ git diff %s\n, запустите\n$ git reset --hard\nдля восстановления исходного состояния."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
-msgstr "Нельзя слить несколько веток в пустой указатель на коммит."
+msgstr "Нельзя слить несколько веток в пустой указатель на ветку."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "Невозможно переместить над несколькими ветками."
 
@@ -8465,21 +8720,21 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<опции>] [<репозиторий> [<спецификация-ссылки>…]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "указано сокращение tag, но не указана сама <метка>"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "опция --delete принимает только простые целевые имена ссылок"
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
 msgstr "\nЧтобы выбрать любую из опций на постоянной основе, смотрите push.default в «git help config»."
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8494,7 +8749,7 @@
 "%s"
 msgstr "Имя вышестоящей ветки и вашей текущей ветки различаются. Чтобы отправить изменения в вышестоящую ветку на внешнем репозитории, используйте:\n\n    git push %s HEAD:%s\n\nЧтобы отправить изменения в ветку с таким же именем на внешнем репозитории, используйте:\n\n    git push %s %s\n%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8502,9 +8757,9 @@
 "state now, use\n"
 "\n"
 "    git push %s HEAD:<name-of-remote-branch>\n"
-msgstr "Вы сейчас не находитесь ни на одной из веток.\nЧтобы отправить историю, ведущую к текущему (отделенный HEAD) состоянию, используйте\n\n    git push %s HEAD:<имя-внешней-ветки>\n"
+msgstr "Вы сейчас не находитесь ни на одной из веток.\nЧтобы отправить историю, ведущую к текущему (отделённый HEAD) состоянию, используйте\n\n    git push %s HEAD:<имя-внешней-ветки>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8513,13 +8768,13 @@
 "    git push --set-upstream %s %s\n"
 msgstr "Текущая ветка %s не имеет вышестоящей ветки.\nЧтобы отправить текущую ветку и установить внешнюю ветку как вышестоящую для этой ветки, используйте\n\n    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid ""
 "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "Ваша текущая ветка %s имеет несколько вышестоящих веток, отказ в отправке изменений."
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8527,86 +8782,62 @@
 "to update which remote branch."
 msgstr "Вы сейчас отправляете изменения на внешний репозиторий «%s», который не является вышестоящим для вашей текущей ветки «%s», без указания того, что отправлять и в какую внешнюю ветку."
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr "push.default не установлен; его неявное значение было изменено в Git версии 2.0 с «matching» на «simple». Чтобы прекратить вывод этого сообщения и сохранить старое поведение, используйте:\n\n  git config --global push.default matching\n\nЧтобы прекратить вывод этого сообщения и использовать новое поведение, используйте:\n\n  git config --global push.default simple\n\nКогда push.default установлено в «matching», git будет отправлять изменения локальных веток в существующие внешние ветки с таким же именем.\n\nНачиная с Git версии 2.0, по умолчанию используется более консервативное поведение «simple», которое отправляет изменения текущей ветки в соответствующую внешнюю ветку, из которой «git pull» забирает изменения.\n\nСмотрите «git help config» и ищите «push.default» для дополнительной информации.\n(режим «simple» появился в Git версии 1.7.11. Используйте похожий режим «current» вместо «simple», если вы иногда используете старые версии Git)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr "Вы не указали спецификацию ссылки для отправки, а push.default указан как «nothing»."
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
 "'git pull ...') before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
-msgstr "Обновления были отклонены, так как верхушка вашей текущей ветки\nпозади ее внешней части. Заберите и слейте внешние изменения \n(например, с помощью «git pull …») перед повторной попыткой отправки\nизменений.\nДля дополнительной информации смотрите «Note about fast-forwards»\nв «git push --help»."
+msgstr "Обновления были отклонены, так как верхушка вашей текущей ветки\nпозади ее внешней части. Заберите и слейте внешние изменения \n(например, с помощью «git pull …») перед повторной попыткой отправки\nизменений.\nДля дополнительной информации, смотрите «Note about fast-forwards»\nв «git push --help»."
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
 "(e.g. 'git pull ...') before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
-msgstr "Обновления были отклонены, так как верхушка отправляемой ветки\nпозади ее внешней части. Переключитесь на ветку и заберите внешние\nизменения (например, с помощью «git pull …») перед повторной\nпопыткой отправки изменений.\nДля дополнительной информации смотрите «Note about fast-forwards»\nв «git push --help»."
+msgstr "Обновления были отклонены, так как верхушка отправляемой ветки\nпозади ее внешней части. Переключитесь на ветку и заберите внешние\nизменения (например, с помощью «git pull …») перед повторной\nпопыткой отправки изменений.\nДля дополнительной информации, смотрите «Note about fast-forwards»\nв «git push --help»."
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
 "to the same ref. You may want to first integrate the remote changes\n"
 "(e.g., 'git pull ...') before pushing again.\n"
 "See the 'Note about fast-forwards' in 'git push --help' for details."
-msgstr "Обновления были отклонены, так как внешний репозиторий содержит\nизменения, которых у вас нет в вашем локальном репозитории.\nОбычно, это связанно с тем, что кто-то уже отправил изменения в \nто же место. Перед повторной отправкой ваших изменений, вам нужно\nзабрать и слить изменения из внешнего репозитория себе\n(например, с помощью «git pull …»).\nДля дополнительной информации смотрите «Note about fast-forwards»\nв «git push --help»."
+msgstr "Обновления были отклонены, так как внешний репозиторий содержит\nизменения, которых у вас нет в вашем локальном репозитории.\nОбычно, это связанно с тем, что кто-то уже отправил изменения в \nто же место. Перед повторной отправкой ваших изменений, вам нужно\nзабрать и слить изменения из внешнего репозитория себе\n(например, с помощью «git pull …»).\nДля дополнительной информации, смотрите «Note about fast-forwards»\nв «git push --help»."
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr "Обновления были отклонены, так как метка уже существует во внешнем репозитории."
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
 "without using the '--force' option.\n"
 msgstr "Вы не можете обновить внешнюю ссылку, которая указывает на объект, не являющийся коммитом или обновить внешнюю ссылку так, чтобы она указывала на объект, не являющийся коммитом, без указания опции «--force».\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "Отправка в %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "не удалось отправить некоторые ссылки в «%s»"
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "плохой репозитория «%s»"
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote repository using\n"
@@ -8616,106 +8847,102 @@
 "and then push using the remote name\n"
 "\n"
 "    git push <name>\n"
-msgstr "Не настроена точка назначения для отправки.\nЛибо укажите URL с помощью коммандной строки, либо настройте внешний репозиторий с помощью\n\n    git remote add <имя> <адрес>\n\nа затем отправьте изменения с помощью имени внешнего репозитория\n\n    git push <имя>\n"
+msgstr "Не настроена точка назначения для отправки.\nЛибо укажите URL с помощью командной строки, либо настройте внешний репозиторий с помощью\n\n    git remote add <имя> <адрес>\n\nа затем отправьте изменения с помощью имени внешнего репозитория\n\n    git push <имя>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all и --tags нельзя использовать одновременно"
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all нельзя использовать вместе со спецификациями ссылок"
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror и --tags нельзя использовать одновременно"
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror нельзя использовать вместе со спецификациями ссылок"
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all и --mirror нельзя использовать одновременно"
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "репозиторий"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "отправить все ссылки"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "сделать зеркало всех ссылок"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "удалить ссылки"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "отправить метки (нельзя использовать вместе с --all или --mirror)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "принудительное обновление"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "имя-ссылки>:<ожидается"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "требовать, чтобы старое значение ссылки было ожидаемым"
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "управление рекурсивной отправкой подмодулей"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "использовать тонкие пакеты"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "путь к программе упаковки на сервере"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "установить вышестоящую ветку для git pull/status"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "почистить локально удаленные ссылки"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "пропустить перехватчик перед-отправкой"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "отправить пропущенные, но нужные метки"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "подписать отправку с помощью GPG"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "запросить выполнение атомарной транзакции на внешней стороне"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete несовместимо с  --all, --mirror и --tags"
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete не имеет смысла без указания ссылок"
 
@@ -8790,12 +9017,12 @@
 msgid "debug unpack-trees"
 msgstr "отладка unpack-trees"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "«%s» для «%s» не является допустимой меткой даты/времени"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "«%s» не является допустимой меткой даты/времени"
@@ -8931,55 +9158,45 @@
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr "указание отслеживаемых веток имеет смысл только при зеркальном извлечении"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "внешний репозиторий %s уже существует"
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "«%s» не является допустимым именем внешнего репозитория."
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "Не удалось настроить мастер ветку «%s»"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "Не удалось извлечь карту для спецификации ссылки %s"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(соответствующая)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(удаленная)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Не удалось добавить «%s» к «%s»"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "Нет такого внешнего репозитория: %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "Не удалось переименовать секцию конфигурации с «%s» на «%s»"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Не удалось удалить секцию файла конфигурации «%s»"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -8987,27 +9204,17 @@
 "\tPlease update the configuration manually if necessary."
 msgstr "Не обновляю нестандартную спецификацию ссылки для извлечения\n\t%s\n\tПожалуйста, если требуется, обновите конфигурацию вручную."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Не удалось добавить «%s»"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Не удалось установить «%s»"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "не удалось удалить «%s»"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "не удалось создать «%s»"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9019,125 +9226,130 @@
 msgstr[2] "Примечание: Некоторые ветки вне иерархии refs/remotes/ не будут удалены;\nчтобы удалить их, используйте:"
 msgstr[3] "Примечание: Некоторые ветки вне иерархии refs/remotes/ не будут удалены;\nчтобы удалить их, используйте:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Не удалось удалить секцию файла конфигурации «%s»"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " новая (следующее извлечение сохранит ее в remotes/%s)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " отслеживается"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " недействительна (используйте «git remote prune», чтобы удалить)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "неправильный параметр конфигурации branch.%s.merge; невозможно переместить более чем над 1 веткой"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "будет перемещена над внешней веткой %s"
+msgid "rebases interactively onto remote %s"
+msgstr "перемещается интерактивно над внешней веткой %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " будет слита с внешней веткой %s"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    и с внешней веткой"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "будет слита с внешней веткой %s"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   и с внешней веткой"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "создана"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "удалена"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "уже актуальна"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "возможна перемотка вперед"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "локальная ветка устарела"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s будет принудительно отправлена в %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s будет отправлена в %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s будет принудительно отправлена в %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s будет отправлена в %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "не опрашивать внешние репозитории"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* внешний репозиторий %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  URL для извлечения: %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(нет URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  URL для отправки: %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  HEAD ветка: %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr "  HEAD ветка (HEAD внешнего репозитория неоднозначный, может быть одним из):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
@@ -9146,11 +9358,11 @@
 msgstr[2] "    Внешние ветки:%s"
 msgstr[3] "    Внешние ветки:%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (статус не запрошен)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  Локальная ветка, настроенная для «git pull»:"
@@ -9158,11 +9370,11 @@
 msgstr[2] "  Локальные ветки, настроенные для «git pull»:"
 msgstr[3] "  Локальные ветки, настроенные для «git pull»:"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr " Локальные ссылки, зеркалируемые с помощью «git push»"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
@@ -9171,128 +9383,128 @@
 msgstr[2] "  Локальные ссылки, настроенные для «git push»%s:"
 msgstr[3] "  Локальные ссылки, настроенные для «git push»%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "установить refs/remotes/<имя>/HEAD в зависимости от внешнего репозитория"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "удалить refs/remotes/<имя>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "Не удалось определить внешний HEAD"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr "Несколько внешних HEAD веток. Укажите явно одну из них:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "Не удалось удалить %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "Неправильная ссылка: %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "Не удалось настроить %s"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s будет висящей веткой!"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s стала висящей веткой!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "Удаление %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [будет удалена] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [удалена] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "почистить внешние репозитории после извлечения"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "Нет такого внешнего репозитория «%s»"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "добавить ветку"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "не указан внешний репозиторий"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "запросить URL отправки, вместо URL извлечения"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "вернуть все URL"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "URL не настроены для внешнего репозитория «%s»"
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "управление URL отправки"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "добавить URL"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "удалить URL"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add нельзя использовать одновременно с --delete"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Неправильный шаблон старого URL: %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "Не найдены совпадения URL: %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "Нельзя удалить все URL не-отправки"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "быть многословнее; должно стоять перед подкомандой"
 
@@ -9406,7 +9618,7 @@
 #: builtin/replace.c:357
 #, c-format
 msgid "malformed mergetag in commit '%s'"
-msgstr "поврежденная метка слияния в коммите «%s»"
+msgstr "повреждённая метка слияния в коммите «%s»"
 
 #: builtin/replace.c:368
 #, c-format
@@ -9590,7 +9802,7 @@
 msgid "Could not write new index file."
 msgstr "Не удалось записать новый файл индекса."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list не поддерживает отображение заметок"
 
@@ -9826,28 +10038,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<опции>] [<диапазон-редакций>] [[--] [<путь>…]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Пропущен автор: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "отсортировать вывод по количеству коммитов у автора"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "Не выводить описания коммитов, а только их количество"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "Показать почту каждого из авторов"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "Перенос строк на выводе"
 
@@ -9885,7 +10092,7 @@
 
 #: builtin/show-branch.c:649
 msgid "suppress naming strings"
-msgstr "не выводить именованые строки"
+msgstr "не выводить именованные строки"
 
 #: builtin/show-branch.c:651
 msgid "include the current branch"
@@ -9909,7 +10116,7 @@
 
 #: builtin/show-branch.c:662
 msgid "show only commits not on the first branch"
-msgstr "вывести только коммиты, отсуцтвующие в первой ветке"
+msgstr "вывести только коммиты, отсутствующие в первой ветке"
 
 #: builtin/show-branch.c:664
 msgid "show merges reachable from only one tip"
@@ -9982,80 +10189,80 @@
 msgstr "пропустить и удалить все строки, начинающиеся с символа комметария"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "добавить спереди все строк символ комментария и пробел"
+msgid "prepend comment character and space to each line"
+msgstr "добавить перед каждой строкой символ комметария и пробел"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "альтернативный символ для относительных путей"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<путь>] [<путь>…]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <путь>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "не найдено соответствие подмодулей в .gitmodules для пути «%s»"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "куда должен быть склонирован новый подмодуль"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "имя нового подмодуля"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "url откуда должен был склонирован новый подмодуль"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "глубина для частичного клона"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] "
 "[<path>...]"
 msgstr "git submodule--helper clone [--prefix=<путь>] [--quiet] [--reference <репозиторий>] [--name <имя>] [--url <url>][--depth <глубина>] [--] [<путь>…]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "не удалось создать каталог «%s»"
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "не удалось клонировать «%s» в подмодуль по пути «%s»"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "не удалось открыть файл «%s»"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "не удалось закрыть файл %s"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "не удалось получить каталог для подмодуля «%s»"
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr "критическая ошибка: подкоманда submodule--helper должна вызываться с указанием подкоманды"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr "критическая ошибка: «%s» не является подкомандой submodule--helper"
@@ -10286,188 +10493,201 @@
 msgid "Unpacking objects"
 msgstr "Распаковка объектов"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "не удалось создать каталог %s"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "не удалось выполнить stat %s"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "не удалось создать файл %s"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "не удалось удалить файл %s"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "не удалось удалить каталог %s"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "Тестирование"
+msgid "Testing mtime in '%s' "
+msgstr "Проверка mtime в «%s» "
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr "информация статистики каталога не изменяется после добавления нового файла"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr "информация статистики каталога не изменяется после добавления нового каталога"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr "информация статистики каталога изменяется после добавления нового файла"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr "информация статистики каталога изменяется после добавления нового файла внутри подкаталога"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr "информация статистики каталога не изменяется после удаления файла"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr "информация статистики каталога не изменяется после удаления каталога"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<опции>] [--] [<файл>…]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr "продолжить обновление, даже если индекс требует обновления"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "обновление: игнорировать подмодули"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "не игнорировать новые файлы"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "разрешить файлам заменять каталоги и наоборот"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "замечать файлы отсутствующие в рабочем каталоге"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr "обновить, даже если в индексе имеются не слитые записи"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "обновить информацию о статусе файлов"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "как --refresh, но игнорировать настройку assume-unchanged"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<режим доступа>,<объект>,<путь>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "добавить указанную запись в индекс"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "переопределить бит выполнения на указанных файлах"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "пометить файлы как «не измененные»"
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "убрать пометку assumed-unchanged"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "пометить файлы как «только в индексе»"
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "убрать пометку skip-worktree"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr "только добавить в индекс; не добавлять содержимое в базу данных объектов"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr "удалить указанные пути, даже если они существуют в рабочем каталоге"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "с опцией --stdin: строки на вводе отделяются НУЛЕВЫМ байтом"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "прочитать список обновляемых путей из стандартного ввода"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
-msgstr "добавить записи из стандатрного ввода в индекс"
+msgstr "добавить записи из стандартного ввода в индекс"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "заново заполнить индекс #2 и #3 для указанных путей"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "обновить только записи, которые отличаются от HEAD"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "игнорировать файлы, отсутствующие в рабочем каталоге"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "вывести выполняемые действия на стандартный вывод"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(для машинной обработки) забыть сохраненные неразрешенные конфликты"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "записать индекс в указанном формате"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "разрешить или запретить раздельный индекс"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "включить/отключить кэш неотслеживаемых файлов"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "проверить, что файловая система поддерживает кэш неотслеживаемых файлов"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr "включить кэш неотслеживаемых файлов без проверки файловой системы"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Кэш неотслеживаемых файлов отключен"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Кэш неотслеживаемых файлов включен для «%s»"
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<опции>] -d <имя-ссылки> [<старое-значение>]"
@@ -10490,7 +10710,7 @@
 
 #: builtin/update-ref.c:366
 msgid "stdin has NUL-terminated arguments"
-msgstr "ввод отделенный НУЛЕВЫМИ символами"
+msgstr "ввод отделённый НУЛЕВЫМИ символами"
 
 #: builtin/update-ref.c:367
 msgid "read updates from stdin"
@@ -10583,33 +10803,33 @@
 msgid "'%s' already exists"
 msgstr "«%s» уже существует"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "не удалось создать каталог «%s»"
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "Подготовка %s (идентификатор %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "перейти на <ветка> даже если она уже активна в другом рабочесм каталоге"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "создать новую ветку"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "создать или перейти на ветку"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "отсоединить HEAD на указанном коммите"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B и --detach нельзя использовать одновременно"
 
@@ -10629,7 +10849,7 @@
 msgid "only useful for debugging"
 msgstr "используется только при отладке"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "вывод отладочных сообщений на stderr"
 
@@ -10640,6 +10860,10 @@
 "to read about a specific subcommand or concept."
 msgstr "«git help -а» и «git help -g» выводит список доступных подкоманд и\nнекоторые руководства по темам. Запустите «git help <команда>» или\n«git help <термин>», чтобы прочесть о конкретных подкоманде или теме."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "Public key pinning не поддерживается с cURL < 7.44.0"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "создать рабочую область (смотрите также: git help tutorial)"
@@ -10698,7 +10922,7 @@
 
 #: common-cmds.h:26
 msgid "Create an empty Git repository or reinitialize an existing one"
-msgstr "Создание пустого репозитория Git или реинициализация существующего"
+msgstr "Создание пустого репозитория Git или переинициализация существующего"
 
 #: common-cmds.h:27
 msgid "Show commit logs"
@@ -10721,8 +10945,8 @@
 msgstr "Обновление внешних ссылок и связанных объектов"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "Перемещение локальных коммитов над обновленной вышестоящей веткой"
+msgid "Reapply commits on top of another base tip"
+msgstr "Повторно применить коммиты над верхушкой другой ветки"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11038,7 +11262,7 @@
 #: git-rebase.sh:504
 #, sh-format
 msgid "Does not point to a valid commit: $onto_name"
-msgstr "Не указаывает на действительный коммит: $onto_name"
+msgstr "Не указывает на действительный коммит: $onto_name"
 
 #: git-rebase.sh:527
 #, sh-format
@@ -11198,7 +11422,7 @@
 
 #: git-stash.sh:538
 msgid "Index was not unstashed."
-msgstr "Индекс не был достат из спрятанных изменений."
+msgstr "Индекс не был извлечён из спрятанных изменений."
 
 #: git-stash.sh:561
 #, sh-format
@@ -11372,108 +11596,108 @@
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr "Подмодуль «$name» ($url) был снят с регистрации по пути «$displaypath»"
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
 "Maybe you want to use 'update --init'?"
 msgstr "Подмодуль по пути «$displaypath» не инициализирован\nВозможно, вам нужно использовать «update --init»?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "Не удалось найти текущую редакцию для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "Не удалось выполнить извлечение для подмодуля по пути «$sm_path»"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "Не удалось выполнить извлечение для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "Не удалось выполнить переход на состояние «$sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Подмодуль по пути «$displaypath»: забрано состояние «$sha1»"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "Не удалось переместить «$sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Подмодуль по пути «$displaypath»: перемещен над «$sha1»"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "Не удалось выполнить слияние с «$sha1» для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Подмодуль по пути «$displaypath»: слито с «$sha1»"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
 msgstr "Сбой выполнения «$command $sha1» для подмодуля по пути «$prefix$sm_path»"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "Подмодуль по пути «$prefix$sm_path»: «$command $sha1»"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Не удалось выполнить рекурсивно для подмодуля по пути «$displaypath»"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "Опцию --cached нельзя использовать одновременно с опцией --files"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "неизвестный режим $mod_dst"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Предупреждение: $display_name не содержит коммит $sha1_src"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Предупреждение: $display_name не содержит коммит $sha1_dst"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr "  Предупреждение: $display_name не содержит коммиты $sha1_src и $sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "двоичный объект"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "Не удалось выполнить рекурсивно для подмодуля по пути «$sm_path»"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Синхронизация url для подмодуля «$displaypath»"
diff --git a/po/sv.po b/po/sv.po
index 940c5c5..32bcaba 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,14 +1,14 @@
 # Swedish translations for Git.
-# Copyright (C) 2010-2015 Peter krefting <peter@softwolves.pp.se>
+# Copyright (C) 2010-2016 Peter krefting <peter@softwolves.pp.se>
 # This file is distributed under the same license as the Git package.
-# Peter Krefting <peter@softwolves.pp.se>, 2010, 2011, 2012, 2013, 2014, 2015.
+# Peter Krefting <peter@softwolves.pp.se>, 2010, 2011, 2012, 2013, 2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: git 2.6.0\n"
+"Project-Id-Version: git 2.8.0\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-26 12:25+0100\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-15 22:35+0100\n"
 "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -31,7 +31,7 @@
 "Rätta dem i din arbetskatalog och använd sedan \"git add/rm <fil>\"\n"
 "som lämpligt för att ange lösning och checka in."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "Du har inte avslutat sammanslagningen (MERGE_HEAD finns)."
 
@@ -75,7 +75,7 @@
 msgid "archive format"
 msgstr "arkivformat"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "prefix"
 
@@ -83,11 +83,11 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "lägg till prefix till varje sökväg i arkivet"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "fil"
 
@@ -119,7 +119,7 @@
 msgid "list supported archive formats"
 msgstr "visa understödda arkivformat"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "arkiv"
 
@@ -127,7 +127,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "hämta arkivet från fjärrarkivet <arkiv>"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "kommando"
 
@@ -135,7 +135,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "sökväg till kommandot git-upload-archive på fjärren"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -143,83 +143,100 @@
 "Negativa mönster ignoreras i git-attribut\n"
 "Använd '\\!' för att inleda med ett utropstecken."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"När du har rättat felorsaken kan du försöka rätta\n"
+"fjärrspårningsinformationen genom att utföra\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "Ställer inte in grenen %s som sin egen uppströmsgren."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr ""
 "Grenen %s ställdes in att spåra fjärrgrenen %s från %s genom ombasering."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "Grenen %s ställdes in att spåra fjärrgrenen %s från %s."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr "Grenen %s ställdes in att spåra den lokala grenen %s genom ombasering."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "Grenen %s ställdes in att spåra den lokala grenen %s."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr "Grenen %s ställdes in att spåra fjärreferensen %s genom ombasering."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "Grenen %s ställdes in att spåra fjärreferensen %s."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 "Grenen %s ställdes in att spåra den lokala referensen %s genom ombasering."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "Grenen %s ställdes in att spåra den lokala referensen %s."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Kan inte skriva inställningar för uppströmsgren"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "Spårar inte: tvetydig information för referensen %s"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "\"%s\" är inte ett giltigt grennamn."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "Det finns redan en gren som heter \"%s\""
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "Kan inte tvinga uppdatering av aktuell gren."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr "Kan inte ställa in spårning; startpunkten \"%s\" är inte en gren."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "den efterfrågade uppströmsgrenen \"%s\" finns inte"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -239,22 +256,22 @@
 "spåra dess fjärrmotsvarighet kan du använda \"git push -u\"\n"
 "för att ställa in uppströmskonfigurationen när du sänder in."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "Objektnamnet är inte giltigt: \"%s\"."
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "Objektnamnet är tvetydigt: \"%s\"."
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "Avgreningspunkten är inte giltig: \"%s\""
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "\"%s\" är redan utcheckad på \"%s\""
@@ -278,10 +295,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Arkivet saknar dessa nödvändiga incheckningar:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "misslyckades skapa revisionstraversering"
 
@@ -320,7 +337,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "referensen \"%s\" exkluderas av argumenten till rev-list"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "okänt argument: %s"
@@ -343,8 +360,8 @@
 msgid "invalid color value: %.*s"
 msgstr "felaktigt färgvärde: %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "kunde inte tolka %s"
@@ -358,59 +375,64 @@
 msgid "memory exhausted"
 msgstr "minnet slut"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "felaktig konfigurationsfil rad %d i %s"
+msgid "bad config line %d in %s %s"
+msgstr "felaktig konfigurationsfil rad %d i %s %s"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\" i %s %s: %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "felaktigt numeriskt konfigurationsvärde \"%s\" för \"%s\": %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "misslyckades expandera användarkatalog i: \"%s\""
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "felaktigt zlib-komprimeringsgrad %d"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "felaktigt läge för skapande av objekt: %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "kan inte tolka kommandoradskonfiguration"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "okänt fel uppstod vid läsning av konfigurationsfilerna"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "kunde inte tolka värdet \"%s\" från kommandoradskonfiguration"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "felaktig konfigurationsvariabel \"%s\" i filen \"%s\" på rad %d"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s har flera värden"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Kunde inte ställa in \"%s\" till \"%s\""
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "Kunde inte köra \"git rev-list\""
@@ -526,16 +548,16 @@
 "Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n"
 "%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "extern diff dog, stannar vid %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow kräver exakt en sökvägsangivelse"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -544,18 +566,18 @@
 "Misslyckades tolka argument till flaggan --dirstat/-X;\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "Misslyckades tolka argument till flaggan --submodule: \"%s\""
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "misslyckades hämta kärnans namn och information"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Ospårad cache är inaktiverad på detta system."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "Ospårad cache är inaktiverad på systemet eller platsen."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -594,20 +616,20 @@
 msgid "'%s': short read %s"
 msgstr "\"%s\": kort läsning %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "git-kommandon tillgängliga i \"%s\""
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "git-kommandon från andra platser i din $PATH"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "Dessa vanliga Git-kommandon används i olika situationer:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -616,11 +638,11 @@
 "\"%s\" verkar vara ett git-kommando, men vi kan inte\n"
 "köra det. Kanske git-%s är trasigt?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "Oj då. Ditt system rapporterar inga Git-kommandon alls."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -629,17 +651,17 @@
 "VARNING: Du anropade ett Git-kommando vid namn \"%s\", som inte finns.\n"
 "Fortsätter under förutsättningen att du menade \"%s\""
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "automatiskt om %0.1f sekunder..."
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git: \"%s\" är inte ett git-kommando. Se \"git --help\"."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -653,7 +675,7 @@
 "\n"
 "Menade du ett av dessa?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
@@ -662,8 +684,8 @@
 msgid "failed to read the cache"
 msgstr "misslyckades läsa cachen"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "kunde inte skriva ny indexfil"
 
@@ -681,64 +703,64 @@
 msgid "error building trees"
 msgstr "fel vid byggande av träd"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "misslyckades skapa sökvägen \"%s\"%s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Tar bort %s för att göra plats för underkatalog\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": kanske en K/F-konflikt?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "vägrar förlora ospårad fil vid \"%s\""
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "kan inte läsa objektet %s: \"%s\""
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "blob förväntades för %s \"%s\""
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "misslyckades öppna \"%s\""
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "misslyckades skapa symboliska länken \"%s\""
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "vet inte hur %06o %s \"%s\" skall hanteras"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "Misslyckades exekvera intern sammanslagning"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "Kunde inte lägga till %s till databasen"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "objekttyp som ej stöds upptäcktes i trädet"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -747,7 +769,7 @@
 "KONFLIKT (%s/radera): %s raderad i %s och %s i %s. Versionen %s av %s lämnad "
 "i trädet."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -756,20 +778,20 @@
 "KONFLIKT (%s/radera): %s raderad i %s och %s i %s. Versionen %s av %s lämnad "
 "i trädet vid %s."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "namnbyte"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "namnbytt"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s är en katalog i %s lägger till som %s istället"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -778,144 +800,144 @@
 "KONFLIKT (namnbyte/namnbyte): Namnbyte \"%s\"->\"%s\" på grenen \"%s\" "
 "namnbyte \"%s\"->\"%s\" i \"%s\"%s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (lämnad olöst)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "KONFLIKT (namnbyte/namnbyte): Namnbyte %s->%s i %s. Namnbyte %s->%s i %s"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Byter namn på %s till %s och %s till %s istället"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr "KONFLIKT (namnbyte/tillägg): Namnbyte %s->%s i %s. %s tillagd i %s"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "Lägger till sammanslagen %s"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Lägger till som %s istället"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "kan inte läsa objektet %s"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "objektet %s är inte en blob"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "ändra"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "ändrad"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "innehåll"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "tillägg/tillägg"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "Hoppade över %s (sammanslagen samma som befintlig)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "Slår ihop %s automatiskt"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "undermodul"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "KONFLIKT (%s): Sammanslagningskonflikt i %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "Tar bort %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "fil/katalog"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "katalog/fil"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "KONFLIKT (%s): Det finns en katalog med namnet %s i %s. Lägger till %s som %s"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "Lägger till %s"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Ödesdigert sammanslagningsfel, borde inte inträffa."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "Redan à jour!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "sammanslagning av träden %s och %s misslyckades"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "Obehandlad sökväg??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "Slår ihop:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "hittade %u gemensam förfader:"
 msgstr[1] "hittade %u gemensamma förfäder:"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "sammanslagningen returnerade ingen incheckning"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "Kunde inte tolka objektet \"%s\""
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "Kunde inte skriva indexet."
 
@@ -1032,12 +1054,12 @@
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr "%s: sökvägsuttrycket hanteras inte av det här kommandot: %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "sökvägsangivelsen \"%s\" är på andra sidan av en symbolisk länk"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1071,163 +1093,248 @@
 "GIT_INDEX_VERSION satt, men värdet är ogiltigt.\n"
 "Använder version %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "Kunde inte öppna \"%s\" för skrivning"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "kunde inte ta bort referensen %s: %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "kunde inte ta bort referenser: %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "kunde inte ta bort referensen %s"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "format: atomen %%(end) använd utan motsvarande atom"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "positivt värde förväntat contents:lines=%s"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "förväntat format: %%(color:<color>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "kan inte tolka formatet"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "okänd färg: %%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "okänt format: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) tar inte argument"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) tar inte argument"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "positivt värde förväntat contents:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "okänt %%(contents)-argument: %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "okänt %%(objectname)-argument: %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "förväntat format: %%(align:<bredd>,<position>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "felaktigt format angivet align:%s"
+msgid "unrecognized position:%s"
+msgstr "okänd position:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "okänd bredd:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "okänt %%(align)-argument: %s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "positiv bredd förväntad med atomen %%(align)"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "felformat fältnamn: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "okänt fältnamn: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "format: atomen %%(end) använd utan motsvarande atom"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "felformad formatsträng %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= kräver ett positivt heltalsargument"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "referensen \"%s\" har inte %ld komponenter för :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "okänt \"%.*s\"-format %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "objektet %s saknas för %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer misslyckades på %s för %s"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "felformat objekt vid \"%s\""
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "ignorerar referens med trasigt namn %s"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "ignorerar trasig referens %s"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "format: atomen %%(end) saknas"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "felformat objektnamn %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "Kan inte hämta både %s och %s till %s"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s spårar vanligtvis %s, inte %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s spårar både %s och %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "Internt fel"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD pekar inte på en gren"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "okänd gren: \"%s\""
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "ingen standarduppström angiven för grenen \"%s\""
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "uppströmsgrenen \"%s\" är inte lagrad som en fjärrspårande gren"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr "push-målet \"%s\" på fjärren \"%s\" har ingen lokalt spårande gren"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "grenen \"%s\" har ingen fjärr för \"push\""
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "\"push\"-referensspecifikation för \"%s\" innehåller inte \"%s\""
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "\"push\" har inget mål (push.default är \"ingenting\")"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "\"enkel push\" motsvarar flera olika mål"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "Din gren är baserad på \"%s\", men den har försvunnit uppströms.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (använd \"git branch --unset-upstream\" för att rätta)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "Din gren är à jour med \"%s\".\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "Din gren ligger före \"%s\" med %d incheckning.\n"
 msgstr[1] "Din gren ligger före \"%s\" med %d incheckningar.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (använd \"git push\" för att publicera dina lokala incheckningar)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1237,11 +1344,11 @@
 msgstr[1] ""
 "Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (använd \"git pull\" för att uppdatera din lokala gren)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1256,28 +1363,28 @@
 "Din gren och \"%s\" har divergerat,\n"
 "och har %d respektive %d olika incheckningar.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr "  (använd \"git pull\" för att slå ihop fjärrgrenen med din egen)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "din nuvarande gren verkar vara trasig"
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "din nuvarande gren \"%s\" innehåller ännu inte några incheckningar"
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent är inkompatibelt med --bisect"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "misslyckades öppna /dev/null"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "dup2(%d,%d) misslyckades"
@@ -1302,7 +1409,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "mottagarsidan stöder inte push med --atomic"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1310,7 +1417,7 @@
 "efter att ha löst konflikterna, markera de rättade sökvägarna\n"
 "med \"git add <sökvägar>\" eller \"git rm <sökvägar>\""
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1320,229 +1427,243 @@
 "med \"git add <sökvägar>\" eller \"git rm <sökvägar>\"\n"
 "och checka in resultatet med \"git commit\""
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "Kunde inte skriva till %s"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Fel vid ombrytning av %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "Dina lokala ändringar skulle skrivas över av \"cherry-pick\"."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "Dina lokala ändringar skulle skrivas över av \"revert\"."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "Checka in dina ändringar eller använd \"stash\" för att fortsätta."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: Kunde inte skriva ny indexfil"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "Kunde inte bestämma HEAD:s incheckning\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "Kan inte uppdatera cacheträd\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "Kunde inte tolka incheckningen %s\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "Kunde inte tolka föräldraincheckningen %s\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "Din indexfil har inte slagits ihop."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "Incheckning %s är en sammanslagning, men flaggan -m angavs inte."
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "Incheckning %s har inte förälder %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr "Huvudlinje angavs, men incheckningen %s är inte en sammanslagning"
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: kan inte tolka föräldraincheckningen %s"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "Kan inte hämta incheckningsmeddelande för %s"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "kunde inte ångra %s... %s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "kunde inte tillämpa %s... %s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "den angivna uppsättningen incheckningar är tom"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: misslyckades läsa indexet"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: misslyckades uppdatera indexet"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "kan inte %s under en %s"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "Kan inte tolka rad %d."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "Inga incheckningar lästes."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "Kunde inte öppna %s"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "kunde inte läsa %s."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Oanvändbart manus: %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Felaktig nyckel: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Felaktigt värde för %s: %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "Trasigt manus: %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "en \"cherry-pick\" eller \"revert\" pågår redan"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "testa \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "Kunde inte skapa \"sequencer\"-katalogen \"%s\""
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Fel vid ombrytning av %s."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "ingen \"cherry-pick\" eller \"revert\" pågår"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "kan inte bestämma HEAD"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "kan inte avbryta från en gren som ännu inte är född"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "kan inte öppna %s: %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "kan inte läsa %s: %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "oväntat filslut"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "sparad HEAD-fil från före \"cherry-pick\", \"%s\", är trasig"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "Kunde inte formatera %s."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s: kan inte göra \"cherry-pick\" på typen \"%s\""
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s: felaktig revision"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "Kan inte ångra som första incheckning"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "Kan inte göra \"cherry-pick\" i ett tomt huvud"
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "misslyckades läsa %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "offset före slutet av packfilen (trasig .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "offset före slutet av packindex för %s (trasigt index?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "offset borton slutet av packindex för %s (trunkerat index?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1564,62 +1685,86 @@
 "Undersök referenserna och ta kanske bort dem. Stäng av meddelandet\n"
 "genom att köra \"git config advice.objectNameWarning false\""
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 "Kan inte ändra .gitmodules-fil som inte slagits ihop, lös "
 "sammanslagningskonflikter först"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "Hittade inte någon sektion i .gitmodules där sökväg=%s"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr "Kunde inte uppdatera .gitmodules-posten %s"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "Kunde inte ta bort .gitmodules-posten för %s"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "misslyckades köa uppdaterad .gitmodules"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Kunde inte sätta core.worktree i %s"
+msgid "running trailer command '%s' failed"
+msgstr "misslyckades utföra \"trailer\"-kommandot \"%s\""
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "okänt värde \"%s\" för nyckeln \"%s\""
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "mer än en %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "tom släpradssymbol i släpraden \"%.*s\""
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "kunde inte läsa indatafilen \"%s\""
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "Kunde inte läsa från standard in"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "kunde inte ta status på %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "filen %s är inte en normal fil"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "filen %s är inte skrivbar av användaren"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "kunde inte öppna temporär file"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "kunde inte byta nman på temporära file till %s"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "Kunde inte läsa referensen %s"
@@ -1657,47 +1802,47 @@
 msgid "invalid '..' path segment"
 msgstr "felaktigt \"..\"-sökvägssegment"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "kunde inte öppna \"%s\" för läsning och skrivning"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "kunde inte öppna \"%s\" för skrivning"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "kunde inte öppna \"%s\" för läsning"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "kan inte komma åt \"%s\": %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "kan inte komma åt \"%s\""
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "kan inte hämta aktuell arbetskatalog"
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "kunde inte öppna %s för skrivning"
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "kunde inte skriva till %s"
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "kunde inte stänga %s"
@@ -2163,7 +2308,11 @@
 msgid "behind "
 msgstr "efter "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "före "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "misslyckades ta bort länken \"%s\""
@@ -2190,7 +2339,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr "Oköade ändringar efter att ha uppdaterat indexet:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "Kunde inte läsa indexet"
 
@@ -2225,15 +2374,15 @@
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "Följande sökvägar ignoreras av en av dina .gitignore-filer:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "testkörning"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "var pratsam"
 
@@ -2241,7 +2390,7 @@
 msgid "interactive picking"
 msgstr "plocka interaktivt"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "välj stycken interaktivt"
 
@@ -2308,138 +2457,133 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Kanske menade du att skriva \"git add .\"?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "indexfilen trasig"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "Kunde inte skriva ny indexfil"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "kunde inte ta status på %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "kunde inte läsa \"%s\""
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "kunde inte tolka författarskript"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "\"%s\" togs bort av kroken applypatch-msg"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "Felaktig indatarad: \"%s\"."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "Misslyckades kopiera anteckningar från \"%s\" till \"%s\""
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "\"fseek\" misslyckades"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "kunde inte öppna \"%s\" för läsning: %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "Kunde inte öppna \"%s\" för skrivning: %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "kunde inte tolka patchen \"%s\""
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "Endast en StGIT-patchserie kan tillämpas åt gången"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "ogiltig tidsstämpel"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "ogiltig \"Date\"-rad"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "ogiltig tidszons-offset"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "Misslyckades detektera patchformat."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "misslyckades skapa katalogen \"%s\""
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "Misslyckades dela patchar."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "kan inte skriva indexfil"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "När du har löst problemet, kör \"%s --continue\"."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "Om du hellre vill hoppa över patchen, kör \"%s --skip\" i stället."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr ""
 "För att återgå till ursprunglig gren och sluta patcha, kör \"%s --abort\"."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "Patchen är tom. Delades den upp felaktigt?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "ogiltig ident-rad: %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "kunde inte tolka incheckningen %s"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr ""
 "Arkivet saknar objekt som behövs för att falla tillbaka på 3-"
 "vägssammanslagning."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr "Använder indexinfo för att återskapa ett basträd..."
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2447,39 +2591,39 @@
 "Har du handredigerat din patch?\n"
 "Den kan inte tillämpas på blobbar som antecknats i dess index."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr ""
 "Faller tillbaka på att patcha grundversionen och trevägssammanslagning..."
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "Misslyckades slå ihop ändringarna."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree misslyckades skriva ett träd"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "tillämpar på en tom historik"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "kunde inte skriva incheckningsobjekt"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "kan inte återuppta: %s finns inte."
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 "kan inte vara interaktiv om standard in inte är ansluten till en terminal."
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "Incheckningskroppen är:"
 
@@ -2487,35 +2631,35 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "Tillämpa? Y=ja/N=nej/E=redigera/V=visa patch/A=godta alla: "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "Smutsigt index: kan inte tillämpa patchar (smutsiga: %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Tillämpar: %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "Inga ändringar -- Patchen har redan tillämpats."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "Patch misslyckades på %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "En kopia av patchen som misslyckades finns i: %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2525,7 +2669,7 @@
 "Om det inte är något kvar att köa kan det hända att något annat redan\n"
 "introducerat samma ändringar; kanske du bör hoppa över patchen."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2533,17 +2677,17 @@
 "Du har fortfarande sökvägar som inte slagits samman i ditt index.\n"
 "Glömde du använda \"git add\"?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "Kan inte tolka objektet \"%s\""
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "misslyckades städa upp indexet"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
@@ -2551,152 +2695,152 @@
 "Du verkar ha flyttat HEAD sedan \"am\" sist misslyckades.\n"
 "Återställer inte till ORIG_HEAD"
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "Felaktigt värde för --patch-format: %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<flaggor>] [(<mbox>|<Maildir>)...]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<flaggor>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "kör interaktivt"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "historisk flagga -- no-op"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "tillåt falla tillbaka på trevägssammanslagning om nödvändigt"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "var tyst"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "lägg till \"Signed-off-by\"-rad i incheckningsmeddelandet"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "koda om till utf8 (standard)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "sänd flaggan -k till git-mailinfo"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "sänd flaggan -b till git-mailinfo"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "sänd flaggan -m till git-mailinfo"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "sänd flaggan --keep-cr till git-mailsplit för mbox-formatet"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr "sänd inte flaggan --keep-cr till git-mailsplit oberoende av am.keepcr"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "ta bort allting före en saxlinje"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "åtgärd"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "sänd det genom git-apply"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "rot"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "sökväg"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "antal"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "format"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "format för patch(ar)"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "överstyr felmeddelanden när patchfel uppstår"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "fortsätt applicera patchar efter att ha löst en konflikt"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "synonymer till --continue"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "hoppa över den aktuella grenen"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr "återställ originalgrenen och avbryt patchningen."
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "ljug om incheckningsdatum"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "använd nuvarande tidsstämpel för författardatum"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "nyckel-id"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "GPG-signera incheckningar"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(används internt av git-rebase)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2704,16 +2848,16 @@
 "Flaggan -b/--binary har varit utan funktion länge, och\n"
 "kommer tas bort. Vi ber dig att inte använda den längre."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "misslyckades läsa indexet"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "tidigare rebase-katalog %s finns fortfarande, men mbox angavs."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2722,7 +2866,7 @@
 "Kvarbliven katalog %s hittades.\n"
 "Använd \"git am --abort\" för att ta bort den."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "Lösningsoperation pågår inte, vi återupptar inte."
 
@@ -3068,131 +3212,131 @@
 msgid "unable to read index file"
 msgstr "kan inte läsa indexfilen"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "tillämpa inte ändringar som motsvarar given sökväg"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "tillämpa ändringar som motsvarar given sökväg"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "ta bort <antal> inledande snedstreck från traditionella diff-sökvägar"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "ignorera tillägg gjorda av patchen"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "istället för att tillämpa patchen, skriv ut diffstat för indata"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "visa antal tillagda och borttagna rader decimalt"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "istället för att tillämpa patchen, skriv ut en summering av indata"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "istället för att tillämpa patchen, se om patchen kan tillämpas"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "se till att patchen kan tillämpas på aktuellt index"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "tillämpa en patch utan att röra arbetskatalogen"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "godta en patch som rör filer utanför arbetskatalogen"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "tillämpa också patchen (använd med --stat/--summary/--check)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "försök en trevägssammanslagning om patchen inte kan tillämpas"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr "bygg ett temporärt index baserat på inbyggd indexinformation"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "sökvägar avdelas med NUL-tecken"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "se till att åtminstone <n> rader sammanhang är lika"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "detektera nya eller ändrade rader som har fel i blanktecken"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "ignorera ändringar i blanktecken för sammanhang"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "tillämpa patchen baklänges"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "förvänta inte minst en rad sammanhang"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "lämna refuserade stycken i motsvarande *.rej-filer"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "tillåt överlappande stycken"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "tolerera felaktigt detekterade saknade nyradstecken vid filslut"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "lite inte på antalet linjer i styckehuvuden"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "lägg till <rot> i alla filnamn"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "--3way utanför arkiv"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "--index utanför arkiv"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "--cached utanför arkiv"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "kan inte öppna patchen \"%s\""
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "undertryckte %d fel i blanksteg"
 msgstr[1] "undertryckte %d fel i blanksteg"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3246,103 +3390,111 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "uppdatera BISECT_HEAD istället för att checka ut aktuell incheckning"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<flaggor>] [<rev-flaggor>] [<rev>] [--] <fil>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<rev-flaggor> dokumenteras i git-rev-list(1)"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Klandra rader"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr "Visa klandringsposter när vi hittar dem, interaktivt"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "Visa blank SHA-1 för gränsincheckningar (Standard: av)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "Behandla inte rotincheckningar som gränser (Standard: av)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "Visa statistik över arbetskostnad"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Tvinga förloppsrapportering"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "Visa utdatapoäng för klandringsposter"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "Visa originalfilnamn (Standard: auto)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "Visa ursprungligt radnummer (Standard: av)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "Visa i ett format avsett för maskinkonsumtion"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "Visa porslinsformat med per-rad-incheckningsinformation"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "Använd samma utdataläge som git-annotate (Standard: av)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "Visa rå tidsstämpel (Standard: av)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Visa lång inchecknings-SHA1 (Standard: av)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Undertryck författarnamn och tidsstämpel (Standard: av)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr "Visa författarens e-post istället för namn (Standard: av)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "Ignorera ändringar i blanksteg"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "Slösa extra cykler med att hitta bättre träff"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "Använd revisioner från <fil> istället för att anropa git-rev-list"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "Använd <fil>s innehåll som slutgiltig bild"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "poäng"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "Hitta kopierade rader inuti och mellan filer"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "Hitta flyttade rader inuti och mellan filer"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "Behandla endast radintervallet n,m, med början på 1"
 
@@ -3352,7 +3504,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "4 år, 11 månader sedan"
 
@@ -3551,197 +3703,197 @@
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "Grenen namnbytt, men misslyckades uppdatera konfigurationsfilen"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "kunde inte skriva grenbeskrivningsmall: %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "Allmänna flaggor"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "visa hash och ärenderad, ange två gånger för uppströmsgren"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "undertryck informationsmeddelanden"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "ställ in spårningsläge (se git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "ändra uppströmsinformation"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "använd färgad utdata"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "arbeta på fjärrspårande grenar"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "visa endast grenar som innehåller incheckningen"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "Specifika git-branch-åtgärder:"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "visa både fjärrspårande och lokala grenar"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "ta bort helt sammanslagen gren"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "ta bort gren (även om inte helt sammanslagen)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "flytta/ta bort en gren och dess reflogg"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "flytta/ta bort en gren, även om målet finns"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "lista namn på grenar"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "skapa grenens reflogg"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "redigera beskrivning för grenen"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "tvinga skapande, flytt/namnändring, borttagande"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "visa endast sammanslagna grenar"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "visa endast ej sammanslagna grenar"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "visa grenar i spalter"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "nyckel"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "fältnamn att sortera på"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "objekt"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "visa endast grenar för objektet"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Misslyckades slå upp HEAD som giltig referens"
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD hittades inte under refs/heads!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column och --verbose är inkompatibla"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "grennamn krävs"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "Kan inte beskriva frånkopplad HEAD"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "kan inte redigera beskrivning för mer än en gren"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "Inga incheckningar på grenen \"%s\" ännu"
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "Ingen gren vid namnet \"%s\"."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "för många grenar för namnbyte"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "för många grenar för att byta uppström"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
 msgstr ""
 "kunde inte sätta uppström för HEAD till %s när det inte pekar mot någon gren."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "okänd gren \"%s\""
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "grenen \"%s\" finns inte"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "för många grenar för att ta bort uppström"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr ""
 "kunde inte ta bort uppström för HEAD när det inte pekar mot någon gren."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "Grenen \"%s\" har ingen uppströmsinformation"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "kan inte skapa \"HEAD\" manuellt"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 "flaggorna -a och -r på \"git branch\" kan inte anges tillsammans med ett "
 "grennamn"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3750,7 +3902,7 @@
 "Flaggan --set-upstream rekommenderas ej och kommer tas bort. Använd --track "
 "eller --set-upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3761,12 +3913,12 @@
 "Om du vill göra så att \"%s\" spårar \"%s\" gör du så här:\n"
 "\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3861,7 +4013,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "använd .gitattributes endast från indexet"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "läs filnamn från standard in"
 
@@ -3869,7 +4021,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "avsluta in- och utdataposter med NUL-tecken"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "undertryck förloppsrapportering"
 
@@ -3922,49 +4074,53 @@
 msgid "no contacts specified"
 msgstr "inga kontakter angavs"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<flaggor>] [--] [<fil>...]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "etapp måste vara mellan 1 och 3 eller \"all\""
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "checka ut alla filer i indexet"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "tvinga överskrivning av befintliga filer"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr "ingen varning för existerande filer och filer ej i indexet"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "checka inte ut nya filer"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "uppdatera stat-information i indexfilen"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "läs listan över sökvägar från standard in"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "skriv innehåll till temporära filer"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "sträng"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "när filer skapas, lägg till <sträng> först"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "kopiera ut filer från namngiven etapp"
 
@@ -4044,37 +4200,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD är nu på"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "kan inte uppdatera HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Återställ gren \"%s\"\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Redan på \"%s\"\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Växlade till och nollställde grenen \"%s\"\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Växlade till en ny gren \"%s\"\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Växlade till grenen \"%s\"\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... och %d till.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4097,7 +4257,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4124,151 +4284,151 @@
 " git branch <nytt_grennamn> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "internt fel vid genomgång av revisioner (revision walk)"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "Tidigare position för HEAD var"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "Du är på en gren som ännu inte är född"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "endast en referens förväntades, %d gavs."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "felaktig referens: %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "referensen är inte ett träd: %s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "sökvägar kan inte användas vid byte av gren"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "\"%s\" kan inte användas vid byte av gren"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "\"%s\" kan inte användas med \"%s\""
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Kan inte växla gren till icke-incheckningen \"%s\""
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "gren"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "skapa och checka ut en ny gren"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "skapa/nollställ och checka ut en gren"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "skapa reflogg för ny gren"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "koppla från HEAD vid namngiven incheckning"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "sätt uppströmsinformation för ny gren"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "ny-gren"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "ny gren utan förälder"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "checka ut vår version för ej sammanslagna filer"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "checka ut deras version för ej sammanslagna filer"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "tvinga utcheckning (kasta bort lokala ändringar)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "utför en 3-vägssammanslagning för den nya grenen"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "uppdatera ignorerade filer (standard)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "stil"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "konfliktstil (merge eller diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "begränsa inte sökvägar till endast glesa poster"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "förutspå \"git checkout <gren-saknas>\""
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr ""
 "kontrollera inte om en annan arbetskatalog håller den angivna referensen"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "tvinga förloppsrapportering"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b, -B och --orphan är ömsesidigt uteslutande"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track behöver ett namn på en gren"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "Grennamn saknas; försök med -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "felaktig sökvägsangivelse"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4277,12 +4437,12 @@
 "Kan inte uppdatera sökvägar och växla till grenen \"%s\" samtidigt.\n"
 "Ville du checka ut \"%s\" som inte kan lösas som en utcheckning?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach tar inte en sökväg som argument \"%s\""
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4322,7 +4482,7 @@
 msgid "failed to remove %s"
 msgstr "misslyckades ta bort %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4334,7 +4494,7 @@
 "foo        - markera post baserad på unikt prefix\n"
 "           - (tomt) markera ingenting"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4354,36 +4514,36 @@
 "*          - välj alla poster\n"
 "           - (tomt) avsluta markering"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Vadå (%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "Ange ignoreringsmönster>>"
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "VARNING: Hittar inte poster som motsvarar: %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "Välj poster att ta bort"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "Ta bort %s [Y=ja / N=nej]?"
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "Hej då."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4401,62 +4561,62 @@
 "help                - denna skärm\n"
 "?                   - hjälp för kommandoval"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** Kommandon ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "Vad nu"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "Skulle ta bort följande post:"
 msgstr[1] "Skulle ta bort följande poster:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "Inga fler filer att städa, avslutar."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "skriv inte ut namn på borttagna filer"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "tvinga"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "städa interaktivt"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "ta bort hela kataloger"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "mönster"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "lägg till <mönster> till ignoreringsregler"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "ta även bort ignorerade filer"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "ta endast bort ignorerade filer"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "-x och -X kan inte användas samtidigt"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
@@ -4464,7 +4624,7 @@
 "clean.requireForce satt till true, men varken -i, -n eller -f angavs; vägrar "
 "städa"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4476,146 +4636,162 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<flaggor>] [--] <arkiv> [<kat>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "skapa inte någon utcheckning"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "skapa ett naket (\"bare\") arkiv"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "skapa ett spegelarkiv (implicerar \"bare\")"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "för att klona från ett lokalt arkiv"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "skapa inte lokala hårda länkar, kopiera alltid"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "skapa som ett delat arkiv"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "initiera undermoduler i klonen"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "mallkatalog"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "katalog att använda mallar från"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "referensarkiv"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "använd --reference endast under kloningen"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "namn"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "använd <namn> istället för \"origin\" för att spåra uppströms"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "checka ut <gren> istället för fjärrens HEAD"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "sökväg till git-upload-pack på fjärren"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
 msgid "depth"
 msgstr "djup"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "skapa en grund klon på detta djup"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "klona endast en gren, HEAD eller --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "gitkat"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "separera gitkatalogen från arbetskatalogen"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "nyckel=värde"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "ställ in konfiguration i det nya arkivet"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "använd endast IPv4-adresser"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "använd endast IPv6-adresser"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"Kunde inte gissa katalognamn.\n"
+"Ange en katalog på kommandoraden"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr "referensarkivet \"%s\" som en länkad utcheckning stöds inte ännu."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "referensarkivet \"%s\" är inte ett lokalt arkiv."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "referensarkivet \"%s\" är grunt"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "referensarkivet \"%s\" är ympat"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "misslyckades ta status på \"%s\""
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s finns och är ingen katalog"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "misslyckades ta status på %s\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "misslyckades skapa länken \"%s\""
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "misslyckades kopiera filen till \"%s\""
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "klart.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4625,120 +4801,129 @@
 "Du kan inspektera det som checkades ut med \"git status\"\n"
 "och försöka checka ut igen med \"git checkout -f HEAD\"\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "Kunde inte hitta fjärrgrenen %s för att klona."
 
 # Vague original, not networking-related, but rather related to the actual
 # objects downloaded.
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "Kontrollerar om vi fick alla objekt..."
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "fjärren sände inte alla nödvändiga objekt"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "kan inte uppdatera %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr ""
 "HEAD hos fjärren pekar på en obefintlig referens, kan inte checka ut.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "kunde inte checka ut arbetskatalogen"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "kunde inte skriva parametrar till konfigurationsfilen"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "kan inte packa om för att städa upp"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "kunde inte ta bort temporär \"alternates\"-fil"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "För många argument."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "Du måste ange ett arkiv att klona."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "flaggorna --bare och --origin %s är inkompatibla."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "flaggorna --bare och --separate-git-dir är inkompatibla."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "arkivet \"%s\" finns inte"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "djupet %s är inte ett positivt tal"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "destinationssökvägen \"%s\" finns redan och är inte en tom katalog."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "arbetsträdet \"%s\" finns redan."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "kunde inte skapa inledande kataloger för \"%s\""
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "kunde inte skapa arbetskatalogen \"%s\""
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Klonar till ett naket arkiv \"%s\"...\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Klonar till \"%s\"...\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth ignoreras i lokala kloningar; använd file:// istället"
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "källarkivet är grunt, ignorerar --local"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local ignoreras"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Vet inte hur man klonar %s"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "Fjärrgrenen %s hittades inte i uppströmsarkivet %s"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "Du verkar ha klonat ett tomt arkiv."
 
@@ -4950,7 +5135,7 @@
 msgid "could not lookup commit %s"
 msgstr "kunde inte slå upp incheckningen %s"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(läser loggmeddelande från standard in)\n"
@@ -5136,8 +5321,8 @@
 msgid "show branch information"
 msgstr "visa information om gren"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "maskinläsbar utdata"
 
@@ -5226,8 +5411,8 @@
 msgid "override date for commit"
 msgstr "överstyr datum för incheckningen"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "meddelande"
 
@@ -5263,7 +5448,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "jag är nu författare av incheckningen (används med -C/-c/--amend)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "lägg till Signed-off-by:"
 
@@ -5287,7 +5472,7 @@
 msgid "include status in commit message template"
 msgstr "inkludera status i mallen för incheckningsmeddelandet"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "GPG-signera incheckning"
@@ -5379,139 +5564,143 @@
 "att kvoten inte har överskridits, och kör sedan\n"
 "\"git reset HEAD\" för att återställa."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<flaggor>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "Konfigurationsfilens plats"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "använd global konfigurationsfil"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "använd systemets konfigurationsfil"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "använd arkivets konfigurationsfil"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "använd angiven konfigurationsfil"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "blob-id"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "läs konfiguration från givet blob-objekt"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "Åtgärd"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "hämta värde: namn [värde-reguttr]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "hämta alla värden: nyckel [värde-reguttr]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "hämta värden för reguttr: namn-reguttr [värde-reguttr]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "hämta värde specifikt URL:en: sektion[.var] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "ersätt alla motsvarande variabler: namn värde [värde-reguttr]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "lägg till en ny variabel: namn värde"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "ta bort en variabel: namn [värde-reguttr]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "ta bort alla träffar: namn [värde-reguttr]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "byt namn på sektion: gammalt-namn nytt-namn"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "ta bort en sektion: namn"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "visa alla"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "öppna textredigeringsprogram"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "hitta den inställda färgen: slot [default]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "hitta färginställningen: slot [stdout-is-tty]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "Typ"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "värdet är \"true\" eller \"false\""
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "värdet är ett decimalt tal"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "värdet är --bool eller --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "värdet är en sökväg (fil- eller katalognamn)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "Andra"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "terminera värden med NUL-byte"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "visa endast variabelnamn"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "respektera inkluderingsdirektiv vid uppslag"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "visa konfigurationskälla (fil, standard in, blob, kommandorad)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "kan inte tolka standardfärgvärde"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5526,7 +5715,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "kan inte skapa konfigurationsfilen \"%s\""
@@ -5776,161 +5965,165 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<flaggor>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "hämta från alla fjärrar"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "lägg till i .git/FETCH_HEAD istället för att skriva över"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "sökväg till upload pack på fjärren"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "tvinga överskrivning av lokal gren"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "hämta från flera fjärrar"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "hämta alla taggar och associerade objekt"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "hämta inte alla taggar (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "antal undermoduler som hämtas parallellt"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "rensa fjärrspårande grenar ej längre på fjärren"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "on-demand"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "styr rekursiv hämtning av undermoduler"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "behåll hämtade paket"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "tillåt uppdatering av HEAD-referens"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "fördjupa historik för grund klon"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "konvertera till komplett arkiv"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "kat"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "lägg till i början av undermodulens sökvägsutdata"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "standardläge för rekursion"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "tar emot referenser som uppdaterar .git/shallow"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "referenskarta"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "ange referenskarta för \"fetch\""
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "Kunde inte hitta fjärr-referensen HEAD"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "objektet %s hittades inte"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[àjour]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s -> %s  (kan inte hämta i aktuell gren)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[refuserad]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[uppdaterad tagg]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (kunde inte uppdatera lokal ref)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[ny tagg]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[ny gren]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[ny ref]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "kunde inte uppdatera lokal ref"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "tvingad uppdatering"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(ej snabbspolad)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "kan inte öppna %s: %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s sände inte alla nödvändiga objekt\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "avvisa %s då grunda rötter inte kan uppdateras"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "Från %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -5939,55 +6132,55 @@
 "vissa lokala referenser kunde inte uppdateras; testa att köra\n"
 " \"git remote prune %s\" för att ta bort gamla grenar som står i konflikt"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s kommer bli dinglande)"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s har blivit dinglande)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[borttagen]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(ingen)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "Vägrar hämta till aktuell gren %s i ett icke-naket arkiv"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "Flaggan \"%s\" och värdet \"%s\" är inte giltigt för %s"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "Flaggan \"%s\" ignoreras för %s\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "Vet inte hur man hämtar från %s"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Hämtar %s\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "Kunde inte hämta %s"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -5995,32 +6188,32 @@
 "Inget fjärrarkiv angavs. Ange antingen en URL eller namnet på ett\n"
 "fjärrarkiv som nya incheckningar skall hämtas från."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "Du måste ange namnet på en tagg."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth och --unshallow kan inte användas samtidigt"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow kan inte användas på ett komplett arkiv"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all tar inte namnet på ett arkiv som argument"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all kan inte anges med referensspecifikationer"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "Fjärren eller fjärrgruppen finns inte: %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "Kan inte hämta från grupp och ange referensspecifikationer"
 
@@ -6249,224 +6442,238 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<flaggor>] [-e] <mönster> [<rev>...] [[--] <sökväg>...]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: misslyckades skapa tråd. %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "felaktigt antal trådar angivet (%d) för %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "kunde inte läsa träd (%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "Kunde inte \"grep\" från objekt av typen %s"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "flaggan \"%c\" antar ett numeriskt värde"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "kan inte öppna \"%s\""
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "sök i indexet istället för i arbetskatalogen"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "sök i innehåll som inte hanteras av git"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "sök i både spårade och ospårade filer"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "ignorera filer angivna i \".gitignore\""
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "visa rader som inte träffas"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "skiftlägesokänslig sökning"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "matcha endast mönster vid ordgränser"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "hantera binärfiler som text"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "träffa inte mönster i binärfiler"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "hantera binärfiler med textconv-filter"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "gå som mest ned <djup> nivåer"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "använd utökade POSIX-reguljära uttryck"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "använd grundläggande POSIX-reguljära uttryck (standard)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "tolka mönster som fixerade strängar"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "använd Perlkompatibla reguljära uttryck"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "visa radnummer"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "visa inte filnamn"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "visa filnamn"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "visa filnamn relativa till toppkatalogen"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "visa endast filnamn istället för träffade rader"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "synonym för --files-with-matches"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "visa endast namn på filer utan träffar"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "skriv NUL efter filnamn"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "visa antal träffar istället för träffade rader"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "ljusmarkera träffar"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr "skriv tomma rader mellan träffar från olika filer"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr "visa filnamn endast en gång ovanför träffar från samma fil"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "visa <n> rader sammanhang före och efter träffar"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "visa <n> rader sammanhang före träffar"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "visa <n> rader sammanhang efter träffar"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "använd <n> jobbtrådar"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "genväg för -C NUM"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "visa en rad med funktionsnamnet före träffen"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "visa den omkringliggande funktionen"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "läs mönster från fil"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "träffa <mönster>"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "kombinera mönster som anges med -e"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "ange träff med slutstatuskod utan utdata"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr "visa endast träffar från filer som träffar alla mönster"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "visa analysträd för grep-uttryck"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "bläddrare"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "visa träffade filer i filbläddraren"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "tillåt anropa grep(1) (ignoreras av detta bygge)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "inget mönster angavs."
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "felaktigt antal trådar angivet (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager fungerar endast i arbetskatalogen"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached och --untracked kan inte användas med --no-index."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index och --untracked kan inte användas med revisioner."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard kan inte användas för spårat innehåll."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "både --cached och träd angavs."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6474,37 +6681,37 @@
 "git hash-object [-t <typ>] [-w] [--path=<fil> | --no-filters] [--stdin] [--] "
 "<fil>..."
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "typ"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "objekttyp"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "skriv objektet till objektdatabasen"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "läs objektet från standard in"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "spara filen som den är utan filer"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr ""
 "hasha slumpmässigt skräp för att skapa korrupta objekt för felsökning av Git"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "hantera filen som om den kom från sökvägen"
 
@@ -6555,7 +6762,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "exec misslyckades för \"%s\": %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6564,7 +6771,7 @@
 "\"%s\": sökväg för man-visare som ej stöds.\n"
 "Använd \"man.<verktyg>.cmd\" istället."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -6573,61 +6780,61 @@
 "\"%s\": kommando för man-visare som stöds.\n"
 "Använd \"man.<verktyg>.path\" istället."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "\"%s\": okänd man-visare."
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "ingen man-visare hanterade förfrågan"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "ingen info-visare hanterade förfrågan"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "Definierar attribut per sökväg"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Git för dagligt bruk i ungefär 20 kommandon"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "En Git-ordlista"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Ange avsiktligen ospårade filer att ignorera"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "Ange egenskaper för undermoduler"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "Ange versioner och intervall i Git"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Introduktion till Git (för version 1.5.1 och senare)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Översikt över rekommenderade arbetsflöden med Git"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "De vanliga Git-vägledningarna är:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "användning: %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "\"git %s\" är ett alias för \"%s\""
@@ -6863,60 +7070,55 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "felaktig pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "felaktigt antal trådar angivet (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "trådstöd saknas, ignorerar %s"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Kan inte öppna befintlig paketfil \"%s\""
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "Kan inte öppna befintlig paket-idx-fil för \"%s\""
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "icke-delta: %d objekt"
 msgstr[1] "icke-delta: %d objekt"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "kedjelängd = %d: %lu objekt"
 msgstr[1] "kedjelängd = %d: %lu objekt"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "Kan inte gå tillbaka till arbetskatalogen (cwd)"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "felaktig %s"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin kan inte användas med --stdin"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "paketfilnamnet \"%s\" slutar inte med \".pack\""
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "--verify angavs utan paketfilnamn"
 
@@ -7042,24 +7244,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer "
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
 "<symbol>[(=|:)<värde>])...] [<fil>...]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "redigera filer på plats"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "ta bort tomma släprader"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "släprad"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "släprad(er) att lägga till"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "ingen indatafil angiven för redigering på plats"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<flaggor>] [<versionsintervall>] [[--] <sökväg>...]"
@@ -7113,325 +7323,375 @@
 msgid "Unknown type: %d"
 msgstr "Okänd typ: %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers utan värde"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "namnet på utdatakatalogen är för långt"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "Kan inte öppna patchfilen %s"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "Behöver precis ett intervall."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "Inte ett intervall."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "Omslagsbrevet behöver e-postformat"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "tokigt in-reply-to: %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<flaggor>] [<sedan> | <revisionsintervall>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Två utdatakataloger?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "använd [PATCH n/m] även för en ensam patch"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "använd [PATCH] även för flera patchar"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "skriv patcharna på standard ut"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "generera ett följebrev"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "använd enkel nummersekvens för utdatafilnamn"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "sfx"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "använd <sfx> istället för \".patch\""
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "börja numrera patchar på <n> istället för 1"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "markera serien som N:te försök"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "Använd [<prefix>] istället för [PATCH]"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "spara filerna i <katalog>"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "ta inte bort eller lägg till [PATCH]"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "skriv inte binära diffar"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr "använd hashvärde med nollor i From-huvud"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "ta inte med patchar som motsvarar en uppströmsincheckning"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "visa patchformat istället för standard (patch + stat)"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "E-post"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "huvud"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "lägg till e-posthuvud"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "epost"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "Lägg till mottagarhuvud (\"To:\")"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "Lägg till kopiehuvud (\"Cc:\")"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "ident"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "sätt Från-adress till <ident> (eller incheckare om ident saknas)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "meddelande-id"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "Gör det första brevet ett svar till <meddelande-id>"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "gräns"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "bifoga patchen"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "gör patchen ett inline-objekt"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "aktivera brevtrådning, typer: shallow, deep"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "signatur"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "lägg till signatur"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "lägg till signatur från fil"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "visa inte filnamn för patchar"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n och -k kan inte användas samtidigt."
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix och -k kan inte användas samtidigt."
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "kan inte använda --name-only"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "kan inte använda --name-status"
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "kan inte använda --check"
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "standard ut, eller katalog, vilken skall det vara?"
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "Kunde inte skapa katalogen \"%s\""
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "kunde inte läsa signaturfil \"%s\""
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "Misslyckades skapa utdatafiler"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<uppström> [<huvud> [<gräns>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
 msgstr "Kunde inte hitta en spårad fjärrgren, ange <uppström> manuellt.\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Okänd incheckning %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<flaggor>] [<fil>...]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "identifiera filstatus med taggar"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "använd små bokstäver för \"anta oförändrade\"-filer"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "visa cachade filer i utdata (standard)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "visa borttagna filer i utdata"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "visa modifierade filer i utdata"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "visa andra filer i utdata"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "visa ignorerade filer i utdata"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "visa köat innehålls objektnamn i utdata"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "visa filer i filsystemet som behöver tas bort"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "visa endast namn för \"andra\" kataloger"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "visa radslut i filer"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "visa inte tomma kataloger"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "visa ej sammanslagna filer i utdata"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "visa \"resolve-undo\"-information"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "hoppa över filer som motsvarar mönster"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "exkludera mönster som läses från <fil>"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "läs ytterligare per-katalog-exkluderingsmönster från <fil>"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "lägg till git:s standardexkluderingar"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "gör utdata relativ till projektets toppkatalog"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "om en <fil> inte är indexet, betrakta det som ett fel"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "träd-igt"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr "låtsas att sökvägar borttagna sedan <träd-igt> fortfarande finns"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "visa felsökningsutdata"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<arkiv> [<referenser>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "visa inte fjärr-URL"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exec"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "sökväg till git-upload-pack på fjärren"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "begränsa till taggar"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "begränsa till huvuden"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "visa inte avskalade taggar"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "ta hänsyn till url.<bas>.insteadOf"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "avsluta med felkod 2 om motsvarande referenser inte hittas"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "visa underliggande referens och objektet det pekar på"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<flaggor>] <träd-igt> [<sökväg>...]"
@@ -7499,32 +7759,32 @@
 msgid "Available custom strategies are:"
 msgstr "Tillgängliga skräddarsydda strategier är:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "visa inte en diffstat när sammanslagningen är färdig"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "visa en diffstat när sammanslagningen är färdig"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(synonym till --stat)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr ""
 "lägg till (som mest <n>) poster från shortlog till incheckningsmeddelandet"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "skapa en ensam incheckning istället för en sammanslagning"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "utför en incheckning om sammanslagningen lyckades (standard)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "redigera meddelande innan incheckning"
 
@@ -7532,7 +7792,7 @@
 msgid "allow fast-forward (default)"
 msgstr "tillåt snabbspolning (standard)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "avbryt om snabbspolning inte är möjlig"
 
@@ -7540,20 +7800,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "Bekräfta att den namngivna incheckningen har en giltig GPG-signatur"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "strategi"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "sammanslagningsstrategi att använda"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "alternativ=värde"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "alternativ för vald sammanslagningsstrategi"
 
@@ -7591,8 +7851,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "Tillplattningsincheckning -- uppdaterar inte HEAD\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "Kunde inte skriva till \"%s\""
@@ -7610,43 +7870,43 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "Inget sammanslagningsmeddelande -- uppdaterar inte HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "\"%s\" verkar inte peka på en incheckning"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Felaktig branch.%s.mergeoptions-sträng: %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "Hanterar inte något annat än en sammanslagning av två huvuden."
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Felaktig flagga för merge-recursive: -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "kunde inte skriva %s"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "Kunde inte läsa från \"%s\""
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
 "Checkar inte in sammanslagningen; använd \"git commit\" för att slutföra "
 "den.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7662,53 +7922,53 @@
 "Rader som inleds med \"%c\" kommer ignoreras, och ett tomt meddelande\n"
 "avbryter incheckningen.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Tomt incheckningsmeddelande."
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Underbart.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 "Kunde inte slå ihop automatiskt; fixa konflikter och checka in resultatet.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "\"%s\" är inte en incheckning"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "Inte på någon gren."
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "Ingen fjärr för aktuell gren."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "Ingen standarduppström angiven för aktuell gren."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "Ingen fjärrspårande gren för %s från %s"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "kunde inte stänga \"%s\""
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "Det finns ingen sammanslagning att avbryta (MERGE_HEAD saknas)."
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7716,7 +7976,7 @@
 "Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n"
 "Checka in dina ändringar innan du slår ihop."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7724,102 +7984,102 @@
 "Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns).\n"
 "Checka in dina ändringar innan du slår ihop."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns)."
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "Du kan inte kombinera --squash med --no-ff."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr "Stöder inte en tillplattningsincheckning på ett tomt huvud ännu"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "Icke-snabbspolad incheckning kan inte användas med ett tomt huvud"
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - inte något vi kan slå ihop"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr "Kan endast slå ihop en enda incheckning i ett tomt huvud."
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr ""
 "Incheckningen %s har en obetrodd GPG-signatur som påstås vara gjord av %s."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr ""
 "Incheckningen %s har en felaktig GPG-signatur som påstås vara gjord av %s."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "Incheckning %s har inte någon GPG-signatur."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "Incheckningen %s har en korrekt GPG-signatur av %s\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Uppdaterar %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Försöker riktigt enkel sammanslagning i indexet...\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "Nej.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "Kan inte snabbspola, avbryter."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Återspolar trädet till orört...\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Försöker sammanslagningsstrategin %s...\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "Sammanslagning med strategin %s misslyckades.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Använder %s för att förbereda lösning för hand.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -7905,19 +8165,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "sätt etiketter för fil1/origfil/fil2"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "indata är NUL-terminerad"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "tillåt saknade objekt"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "tillåt skapa mer än ett träd"
 
@@ -7925,91 +8185,91 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<flaggor>] <källa>... <mål>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "Katalogen %s är i indexet och inte en undermodul?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
 "Köa dina ändringar i .gitmodules eller använd \"stash\" för att fortsätta"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s är i indexet"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "tvinga flytta/ändra namn även om målet finns"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "hoppa över fel vid flytt/namnändring"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "destinationen \"%s\" är ingen katalog"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "Kontrollerar namnbyte av \"%s\" till \"%s\"\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "felaktig källa"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "kan inte flytta katalog till sig själv"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "kan inte flytta katalog över fil"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "källkatalogen är tom"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "inte versionshanterad"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "destinationen finns"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "skriver över \"%s\""
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "Kan inte skriva över"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "flera källor för samma mål"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "destinationskatalogen finns inte"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, källa=%s, mål=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Byter namn på %s till %s\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "misslyckades byta namn på \"%s\""
@@ -8209,9 +8469,9 @@
 msgstr "kunde inte öppna eller läsa \"%s\""
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Kunde inte slå upp \"%s\" som en giltig referens."
@@ -8226,42 +8486,42 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "kan inte läsa anteckningsdata från icke-blob-objektet \"%s\"."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "för många parametrar"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "Inga anteckningar hittades för objektet %s."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "anteckningsinnehåll som sträng"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "anteckningsinnehåll i en fil"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "återanvänd och redigera angivet anteckningsobjekt"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "återanvänd angivet anteckningsobjekt"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "tillåt lagra tom anteckning"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "ersätt befintliga anteckningar"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8270,29 +8530,29 @@
 "Kan inte lägga till anteckningar. Hittade befintliga anteckningar för "
 "objektet %s. Använd \"-f\" för att skriva över befintliga anteckningar"
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Skriver över befintliga anteckningar för objektet %s\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Tar bort anteckning för objektet %s\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "läs objekt från standard in"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "läs omskrivningsinställning för <kommando> (implicerar --stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "för få parametrar"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8301,12 +8561,12 @@
 "Kan inte kopiera anteckningar. Hittade befintliga anteckningar för objektet "
 "%s. Använd \"-f\" för att skriva över befintliga anteckningar"
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Anteckningar på källobjektet %s saknas. Kan inte kopiera."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8315,15 +8575,15 @@
 "Flaggorna -m/-F/-c/-C rekommenderas inte för underkommandot \"edit\".\n"
 "Använd \"git notes add -f -m/-F/-c/-C\" istället.\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "Allmänna flaggor"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "Flaggor för sammanslagning"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
@@ -8331,51 +8591,51 @@
 "läs konflikter i anteckningar med angiven strategi (manual/ours/theirs/union/"
 "cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "Checkar in ej sammanslagna anteckningar"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr ""
 "färdigställ sammanslagning av anteckningar genom att checka in ej "
 "sammanslagna anteckningar"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "Avbryt lösning av sammanslagning av anteckningar"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "avbryt sammanslagning av anteckningar"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "Sammanslagning av anteckningar till %s är redan igångsatt på %s"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "Objektet %s har ingen anteckning\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "försök att ta bort icke-existerande anteckningar är inte ett fel"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "läs objektnamn från standard in"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "anteckningar-ref"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "använd anteckningar från <anteckningsref>"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "Okänt underkommando: %s"
@@ -8397,165 +8657,165 @@
 msgid "deflate error (%d)"
 msgstr "fel i deflate (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "Skriver objekt"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "inaktiverar skrivning av bitkarta då några objekt inte packas"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "Komprimerar objekt"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "indexversionen %s stöds ej"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "felaktig indexversion \"%s\""
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "visa inte förloppsindikator"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "visa förloppsindikator"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "visa förloppsindikator under objektskrivningsfasen"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
-msgstr "som --all-progress när förloppsmätaren visas"
+msgstr "som --all-progress när förloppsindikatorn visas"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "version[,offset]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr "skriv paketindexfilen i angiven indexformatversion"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "maximal storlek på varje utdatapaketfil"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "ignorera lånade objekt från alternativa objektlager"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "ignorera packade objekt"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "begränsa paketfönster efter objekt"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr "begränsa paketfönster efter minne förutom objektgräns"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "maximal längd på deltakedja tillåten i slutligt paket"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "återanvänd befintliga delta"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "återanvänd befintliga objekt"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "använd OFS_DELTA-objekt"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr "använd trådar vid sökning efter bästa deltaträffar"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "försök inte skapa tom paketutdata"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "läs revisionsargument från standard in"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "begränsa objekt till de som ännu inte packats"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "inkludera objekt som kan nås från någon referens"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr "inkludera objekt som refereras från referensloggposter"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "inkludera objekt som refereras från indexet"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "skriv paket på standard ut"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "inkludera taggobjekt som refererar objekt som skall packas"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "behåll onåbara objekt"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "tid"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "packa upp onåbara objekt nyare än <tid>"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "skapa tunna paket"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "skapa packfiler lämpade för grunda hämtningar"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "ignorera paket som har tillhörande .keep-fil"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "komprimeringsgrad för paket"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "göm inte incheckningar med ympningar (\"grafts\")"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "använd bitkartindex om tillgängligt för att räkna objekt snabbare"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "använd bitkartindex tillsammans med packindexet"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "Räknar objekt"
 
@@ -8599,49 +8859,53 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "kan inte rensa i ett \"precious-objekt\"-arkiv"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<flaggor>] [<arkiv> [<refspec>...]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "Alternativ gällande sammanslagning"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "inlemma ändringar genom ombasering i stället för sammanslagning"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "tillåt snabbspolning"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "bekräfta att den namngivna incheckningen har en giltig GPG-signatur"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "Alternativ gällande hämtningar"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "antal undermoduler som hämtas parallellt"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Felaktigt värde för pull.ff: %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr "Kan inte hämta med ombasering: Du har oköade ändringar."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "Dessutom innehåller dit index ändringar som inte har checkats in."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr ""
 "Kan inte hämta med ombasering: Ditt index innehåller oincheckade ändringar."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -8649,14 +8913,14 @@
 "Det finns ingen kandidat för ombasering bland referenserna du precis har "
 "hämtat."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 "Det finns ingen kandidat för sammanslagning bland referenserna du precis har "
 "hämtat."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -8664,7 +8928,7 @@
 "Det betyder vanligtvis att du använt en jokertecken-refspec som inte\n"
 "motsvarade något i fjärränden."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8675,27 +8939,27 @@
 "gren. Eftersom det inte är den fjärr som är konfigurerad som\n"
 "standard för aktuell gren måste du ange en gren på kommandoraden."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "Du är inte på någon gren för närvarande."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "Ange vilken gren du vill ombasera mot."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "Ange vilken gren du vill slå samman med."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "Se git-pull(1) för detaljer."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "Det finns ingen spårningsinformation för aktuell gren."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8706,7 +8970,7 @@
 "\n"
 " git branch --set-upstream-to=%s/<gren> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8715,11 +8979,11 @@
 "Dina inställningar anger sammanslagning med referensen \"%s\"\n"
 "från fjärren, men någon sådan referens togs inte emot."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "Uppdaterar en ofödd gren med ändringar som lagts till i indexet."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8730,7 +8994,7 @@
 "snabbspolar din arbetskatalog från\n"
 "incheckningen %s."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8747,11 +9011,11 @@
 "$ git reset --hard\n"
 "för att återgå."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "Kan inte slå ihop flera grenar i ett tomt huvud."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "Kan inte ombasera ovanpå flera grenar."
 
@@ -8759,15 +9023,15 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<flaggor>] [<arkiv> [<refspec>...]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "taggförkortning utan <tagg>"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete godtar endast enkla målreferensnamn"
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -8776,7 +9040,7 @@
 "För att välja ett av alternativen permanent, se push.default i \"git help "
 "config\"."
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8801,7 +9065,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8816,7 +9080,7 @@
 "\n"
 "    git push %s HEAD:<namn-på-fjärrgren>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8829,12 +9093,12 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "Den aktuella grenen %s har flera uppströmsgrenar, vägrar sända."
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8845,62 +9109,14 @@
 "aktuella grenen \"%s\", utan att tala om för mig vad som\n"
 "skall sändas för att uppdatera fjärrgrenen."
 
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default har inte ställts in; dess underförstådda värde\n"
-"ändras i Git 2.0 från \"matching\" till \"simple\". För att\n"
-"undertrycka det här meddelandet och behålla traditionellt beteende\n"
-"skriver du:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"För att undertrycka meddelandet och välja det nya beteendet nu skriver du:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"När push.default är satt till \"matching\" kommer git att sända lokala "
-"grenar\n"
-"till fjärrgrenar som redan finns och som har samma namn.\n"
-"\n"
-"Git 2.0 kommer som standard välja den mer konservativa inställningen\n"
-"\"simple\", vilket bara sänder in den aktuella grenen till den motsvarande\n"
-"fjärrgren \"git pull\" använder för att uppdatera den aktuella grenen.\n"
-"\n"
-"Se \"git help config\" och sök efter \"push.default\" för ytterligare \n"
-"information. (Läget \"simple\" introducerades i Git 1.7.11. Använd det\n"
-"liknande läget \"current\" istället för \"simple\" om du ibland använder\n"
-"äldre versioner av Git.)"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
 "Du angav inga referensspecifikationer att sända, och push.default är "
 "\"nothing\"."
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8912,7 +9128,7 @@
 "\"git pull ....\") innan du sänder igen.\n"
 "Se avsnittet \"Note about fast-forward\" i \"git push --help\" för detaljer."
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -8924,7 +9140,7 @@
 "\"git pull ...\") innan du sänder igen.\n"
 "Se avsnittet \"Note about fast-forward\" i \"git push --help\" för detaljer."
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -8938,11 +9154,11 @@
 "(t.ex. \"git pull ...\") innan du sänder igen.\n"
 "Se avsnittet \"Note about fast-forwards\" i \"git push --help\" för detaljer."
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr "Uppdateringarna avvisades eftersom taggen redan finns på fjärren."
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -8953,22 +9169,22 @@
 "pekar på något som inte är en incheckning, utan att använda flaggan\n"
 "\"--force\".\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "Sänder till %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "misslyckades sända vissa referenser till \"%s\""
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "felaktigt arkiv \"%s\""
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -8989,104 +9205,100 @@
 "\n"
 "    git push <namn>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all och --tags är inkompatibla"
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all kan inte kombineras med referensspecifikationer"
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror och --tags är inkompatibla"
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror kan inte kombineras med referensspecifikationer"
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all och --mirror är inkompatibla"
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "arkiv"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "sänd alla referenser"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "spegla alla referenser"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "ta bort referenser"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "sänd taggar (kan inte användas med --all eller --mirror)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "tvinga uppdateringar"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "refnamn>:<förvänta"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "kräv att ref:s tidigare värde är detta"
 
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "styr rekursiv insändning av undermoduler"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "använd tunna paket"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "program för att ta emot paket"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "ställ in uppström för git pull/status"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "ta bort lokalt borttagna referenser"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "förbigå pre-push-krok"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "sänd in saknade men relevanta taggar"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "GPG-signera insändningen"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "begär atomiska transaktioner på fjärrsidan"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete är inkompatibel med --all, --mirror och --tags"
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete kan inte användas utan referenser"
 
@@ -9164,12 +9376,12 @@
 msgid "debug unpack-trees"
 msgstr "felsök unpack-trees"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "\"%s\" för \"%s\" är inte en giltig tidsstämpel"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "\"%s\" är inte en giltig tidsstämpel"
@@ -9310,55 +9522,45 @@
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr "att ange grenar att spåra ger mening bara med hämtningsspeglar"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "fjärrarkivet %s finns redan."
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "\"%s\" är inte ett giltigt namn på fjärrarkiv"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "Kunde inte skapa master \"%s\""
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "Kunde inte hämta mappning för referensspecifikation %s"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(matchande)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(ta bort)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Kunde inte tillämpa \"%s\" på \"%s\""
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "Inget sådant fjärrarkiv: %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "Kunde inte byta namn på konfigurationssektionen \"%s\" till \"%s\""
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Kunde inte ta bort konfigurationssektionen \"%s\""
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9369,27 +9571,17 @@
 "\t%s\n"
 "\tUppdatera konfigurationen manuellt om nödvändigt."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Kunde inte lägga till på \"%s\""
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Kunde inte sätta \"%s\""
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "misslyckades ta bort \"%s\""
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "misslyckades skapa \"%s\""
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9403,275 +9595,280 @@
 "Observera: Några grenar utanför hierarkin refs/remotes/ togs inte bort;\n"
 "för att ta bort dem, använd:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Kunde inte ta bort konfigurationssektionen \"%s\""
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " ny (nästa hämtning sparar i remotes/%s)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " spårad"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " förlegad (använd \"git remote prune\" för att ta bort)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "ogiltig branch.%s.merge; kan inte ombasera över > 1 gren"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "ombaseras på fjärren %s"
+msgid "rebases interactively onto remote %s"
+msgstr "ombaseras interaktivt på fjärren %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " sammanslås med fjärren %s"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    och med fjärren"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "sammanslås med fjärren %s"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   och med fjärren"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "skapa"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "ta bort"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "àjour"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "kan snabbspolas"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "lokal föråldrad"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s tvingar till %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s sänder till %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s tvingar till %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s sänder till %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "fråga inte fjärrar"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* fjärr %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  Hämt-URL: %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(ingen URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  Sänd-URL: %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  HEAD-gren: %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr "  HEAD-gren (HEAD på fjärr är tvetydig, kan vara en av följande):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] "  Fjärrgren:%s"
 msgstr[1] "  Fjärrgrenar:%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (status inte förfrågad)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  Lokal gren konfigurerad för \"git pull\":"
 msgstr[1] "  Lokala grenar konfigurerade för \"git pull\":"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  Lokala referenser speglas av \"git push\""
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  Lokal referens konfigurerad för \"git push\"%s:"
 msgstr[1] "  Lokala referenser konfigurerade för \"git push\"%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "sätt refs/remotes/<namn>/HEAD enligt fjärren"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "ta bort refs/remotes/<namn>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "Kan inte bestämma HEAD på fjärren"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr "Flera HEAD-grenar på fjärren. Välj en explicit med:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "Kunde inte ta bort %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "Inte en giltig referens: %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "Kunde inte ställa in %s"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s kommer bli dinglande!"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s har blivit dinglande!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "Rensar %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [skulle rensa] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [rensad] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "rensa fjärrar efter hämtning"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "Ingen sådan fjärr \"%s\""
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "lägg till gren"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "ingen fjärr angavs"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "fråga sänd-URL:er istället för hämta-URL:er"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "returnera alla URL:er"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "ingen URL:er angivna för fjärren \"%s\""
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "manipulera URL:ar för sändning"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "lägg till URL"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "ta bort URL:ar"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete ger ingen mening"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Felaktig gammalt URL-mönster: %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "Ingen sådan URL hittades: %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "Kommer inte ta bort alla icke-sänd-URL:er"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "var pratsam; måste skrivas före ett underkommando"
 
@@ -9973,7 +10170,7 @@
 msgid "Could not write new index file."
 msgstr "Kunde inte skriva ny indexfil."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list stöder inte visning av anteckningar"
 
@@ -10226,28 +10423,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<flaggor>] [<versionsintervall>] [[--] <sökväg>...]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Författare saknas: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "sortera utdata enligt antal incheckningar per författare"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "Undertryck beskrivningar, visa bara antal incheckningar"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "Visa e-postadress för varje författare"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "Radbryt utdata"
 
@@ -10388,43 +10580,43 @@
 msgstr "hoppa över och ta bort alla rader som inleds med kommentarstecken"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
 msgstr "lägg in kommentarstecken och blanksteg först på varje rad"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "alternativa ankare för relativa sökvägar"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<sökväg>] [<sökväg>...]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <sökväg>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "hittade ingen undermodulmappning i .gitmodules för sökvägen \"%s\""
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "var den nya undermodulen skall klonas till"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "namn på den nya undermodulen"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "URL att klona undermodulen från"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "djup för grunda kloner"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10432,39 +10624,39 @@
 "git submodule--helper clone [--prefix=<sökväg>] [--quiet] [--reference "
 "<arkvi>] [--name <namn>] [--url <url>][--depth <djup>] [--] [<sökväg>...]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "kunde inte skapa katalogen \"%s\""
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "misslyckades klona \"%s\" till undermodulsökvägen \"%s\""
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "kan inte öppna filen \"%s\""
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "kunde inte stänga filen %s"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "kunde inte få tag i undermodulkatalog för \"%s\""
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr ""
 "ödesdigert: underkommandot submodule--helper måste anropas med ett "
 "underkommando"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr ""
@@ -10711,191 +10903,204 @@
 msgid "Unpacking objects"
 msgstr "Packar upp objekt"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "misslyckades skapa katalogen %s"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "misslyckades ta status på %s"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "misslyckades skapa filen %s"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "misslyckades ta bort filen %s"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "misslyckades ta bort katalogen %s"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "Testar"
+msgid "Testing mtime in '%s' "
+msgstr "Testar mtime i \"%s\""
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr "stat-informationen för en katalog ändras inte när nya filer läggs till"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr ""
 "stat-informationen för en katalog ändras inte när nya kataloger läggs till"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr "stat-informationen för en katalog ändras när filer uppdateras"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr ""
 "stat-informationen för en katalog ändras när filer läggs till i en "
 "underkatalog"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr "stat-informationen för en katalog ändras inte när en fil tas bort"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr "stat-informationen för en katalog ändras inte när en katalog tas bort"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<flaggor>] [--] [<fil>...]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr "fortsätt uppdatera även när index inte är àjour"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "refresh: ignorera undermoduler"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "ignorera inte nya filer"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "låt filer ersätta kataloger och omvänt"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "lägg märke till filer som saknas i arbetskatalogen"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr "uppdatera även om indexet innehåller ej sammanslagna poster"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "uppdatera statusinformation"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "som --refresh, men ignorera assume-unchanged-inställning"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<läge>,<objekt>,<sökväg>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "lägg till angiven post i indexet"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "överstyr exekveringsbiten för angivna filer"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "markera filer som \"ändras inte\""
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "rensa \"assume-unchanged\"-biten"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "markera filer som \"endast index\""
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "töm \"skip-worktree\"-biten"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr "lägg endast till indexet; lägg inte till innehållet i objektdatabasen"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr "ta bort namngivna sökvägar även om de finns i arbetskatalogen"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "med --stdin: indatarader termineras med null-byte"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "läs lista över sökvägar att uppdatera från standard in"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "lägg poster från standard in till indexet"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "återfyll etapp 2 och 3 från angivna sökvägar"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "uppdatera endast poster som skiljer sig från HEAD"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "ignorera filer som saknas i arbetskatalogen"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "rapportera åtgärder på standard ut"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(för porslin) glöm sparade olösta konflikter"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "skriv index i detta format"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "aktivera eller inaktivera delat index"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "aktivera/inaktivera ospårad cache"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "testa om filsystemet stöder ospårad cache"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr "aktivera ospårad cache utan att testa filsystemet"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Ospårad cache är inaktiverad"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Ospårad cache är aktiverad för \"%s\""
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<flaggor>] -d <refnamn> [<gammaltvärde>]"
@@ -11011,34 +11216,34 @@
 msgid "'%s' already exists"
 msgstr "\"%s\" finns redan"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "kunde inte skapa katalogen \"%s\""
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "Förbereder %s (identifieraren %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr ""
 "checka ut <gren> även om den redan är utcheckad i en annan arbetskatalog"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "skapa en ny gren"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "skapa eller återställ en gren"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "koppla från HEAD vid namngiven incheckning"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B och --detach är ömsesidigt uteslutande"
 
@@ -11058,7 +11263,7 @@
 msgid "only useful for debugging"
 msgstr "endast användbart vid felsökning"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "skriv felsökningsmeddelanden på standard fel"
 
@@ -11072,6 +11277,10 @@
 "några konceptvägledningar. Se \"git help <kommando>\" eller \"git help\n"
 "<koncept>\" för att läsa mer om specifika underkommandon och koncept."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "Fastnålning av öppen nyckel stöds inte av cURL < 7.44.0"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "starta arbetskatalog (se också: git help tutorial)"
@@ -11153,8 +11362,8 @@
 msgstr "Uppdatera fjärr-referenser och tillhörande objekt"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "Framåtanpassa lokala kommandon på uppdaterat uppströmshuvud"
+msgid "Reapply commits on top of another base tip"
+msgstr "Applicera incheckningar på nytt ovanpå en annan bastopp"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11866,7 +12075,7 @@
 msgstr ""
 "Undermodulen \"$name\" ($url) avregistrerad för sökvägen \"$displaypath\""
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -11875,108 +12084,184 @@
 "Undermodulen \"$displaypath\" har inte initierats\n"
 "Kanske du vill köra \"update --init\"?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "Kan inte hitta aktuell revision i undermodulsökvägen \"$displaypath\""
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "Kan inte hämta i undermodulsökväg \"$sm_path\""
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "Kan inte hämta i undermodulsökväg \"$displaypath\""
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "Kan inte checka ut \"$sha1\" i undermodulsökvägen \"$displaypath\""
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Undermodulsökvägen \"$displaypath\": checkade ut \"$sha1\""
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "Kan inte ombasera \"$sha1\" i undermodulsökvägen \"$displaypath\""
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Undermodulsökvägen \"$displaypath\": ombaserade in i \"$sha1\""
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "Kan inte slå ihop \"$sha1\" i undermodulsökvägen \"$displaypath\""
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Undermodulsökvägen \"$displaypath\": sammanslagen i \"$sha1\""
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
 msgstr ""
 "Misslyckades köra \"$command $sha1\" i undermodulsökvägen \"$prefix$sm_path\""
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "Undermodulsökvägen \"$prefix$sm_path\": \"$command $sha1\""
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Misslyckades rekursera in i undermodulsökvägen \"$displaypath\""
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "Flaggan --cached kan inte användas med flaggan --files"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "oväntat läge $mod_dst"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Varning: $display_name innehåller inte incheckningen $sha1_src"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Varning: $display_name innehåller inte incheckningen $sha1_dst"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr ""
 "  Varning: $display_name innehåller inte incheckningarna $sha1_src och "
 "$sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "blob"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "Misslyckades rekursera in i undermodulsökvägen \"$sm_path\""
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Synkroniserar undermodul-url för \"$displaypath\""
 
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr "Framåtanpassa lokala kommandon på uppdaterat uppströmshuvud"
+
+#~ msgid "unable to parse format"
+#~ msgstr "kan inte tolka formatet"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "felaktigt format angivet align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Kunde inte sätta core.worktree i %s"
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default har inte ställts in; dess underförstådda värde\n"
+#~ "ändras i Git 2.0 från \"matching\" till \"simple\". För att\n"
+#~ "undertrycka det här meddelandet och behålla traditionellt beteende\n"
+#~ "skriver du:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "För att undertrycka meddelandet och välja det nya beteendet nu skriver "
+#~ "du:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "När push.default är satt till \"matching\" kommer git att sända lokala "
+#~ "grenar\n"
+#~ "till fjärrgrenar som redan finns och som har samma namn.\n"
+#~ "\n"
+#~ "Git 2.0 kommer som standard välja den mer konservativa inställningen\n"
+#~ "\"simple\", vilket bara sänder in den aktuella grenen till den "
+#~ "motsvarande\n"
+#~ "fjärrgren \"git pull\" använder för att uppdatera den aktuella grenen.\n"
+#~ "\n"
+#~ "Se \"git help config\" och sök efter \"push.default\" för ytterligare \n"
+#~ "information. (Läget \"simple\" introducerades i Git 1.7.11. Använd det\n"
+#~ "liknande läget \"current\" istället för \"simple\" om du ibland använder\n"
+#~ "äldre versioner av Git.)"
+
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Kunde inte lägga till på \"%s\""
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Kunde inte sätta \"%s\""
+
+#~ msgid "Missing author: %s"
+#~ msgstr "Författare saknas: %s"
+
+#~ msgid "Testing "
+#~ msgstr "Testar"
+
 #~ msgid "unable to look up current user in the passwd file: %s"
 #~ msgstr "kan inte slå upp aktuell användare i passwd-filen: %s"
 
@@ -12046,9 +12331,6 @@
 #~ msgid "unable to parse value '%s' for option %s"
 #~ msgstr "kunde inte tolka värdet \"%s\" för flaggan %s"
 
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "kan inte bestämma HEAD"
-
 #~ msgid "-b and -B are mutually exclusive"
 #~ msgstr "-b och -B kan inte användas samtidigt"
 
@@ -12118,9 +12400,6 @@
 #~ msgid "prune .git/worktrees"
 #~ msgstr "rensa .git/worktrees"
 
-#~ msgid "--worktrees does not take extra arguments"
-#~ msgstr "--worktrees tar inte ytterligare argument"
-
 #~ msgid "The most commonly used git commands are:"
 #~ msgstr "De mest använda git-kommandona är:"
 
@@ -12151,9 +12430,6 @@
 #~ msgid "force creation (when already exists)"
 #~ msgstr "tvinga skapande (när den redan finns)"
 
-#~ msgid "Malformed ident string: '%s'"
-#~ msgstr "Felaktig indragningssträng: \"%s\""
-
 #~ msgid "slot"
 #~ msgstr "plats"
 
@@ -12211,9 +12487,6 @@
 #~ msgid "bug"
 #~ msgstr "programfel"
 
-#~ msgid "ahead "
-#~ msgstr "före "
-
 #~ msgid ", behind "
 #~ msgstr ", efter "
 
@@ -12497,9 +12770,6 @@
 #~ msgid "# Changed but not updated:"
 #~ msgstr "# Ändrade men inte uppdaterade:"
 
-#~ msgid "path '%s' does not have all 3 versions"
-#~ msgstr "sökvägen \"%s\" har inte alla 3 versionerna"
-
 #~ msgid "git checkout: we do not like '%s' as a branch name."
 #~ msgstr "git checkout: vi tycker inte om \"%s\" som namn på en gren."
 
diff --git a/po/vi.po b/po/vi.po
index f3fee99..edd8e29 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -2,16 +2,16 @@
 # Bản dịch tiếng Việt dành cho GIT-CORE.
 # This file is distributed under the same license as the git-core package.
 # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2012.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2012, 2013, 2014, 2015.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012, 2013, 2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: git v2.7.0-rc0\n"
+"Project-Id-Version: git v2.8.0-rc0\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-11 23:36+0800\n"
-"PO-Revision-Date: 2015-12-12 14:31+0700\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-21 07:14+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
-"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -36,7 +36,7 @@
 "và sau đó dùng lệnh “git add/rm <tập-tin>”\n"
 "dành riêng cho việc đánh dấu cần giải quyết và tạo lần chuyển giao."
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "Bạn chưa kết thúc việc hòa trộn (MERGE_HEAD vẫn tồn tại)."
 
@@ -80,7 +80,7 @@
 msgid "archive format"
 msgstr "định dạng lưu trữ"
 
-#: archive.c:430 builtin/log.c:1228
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "tiền_tố"
 
@@ -88,10 +88,10 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "nối thêm tiền tố vào từng đường dẫn tập tin trong kho lưu"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536
-#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989
-#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446
-#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547 builtin/blame.c:2548
+#: builtin/config.c:60 builtin/fast-export.c:987 builtin/fast-export.c:989
+#: builtin/grep.c:720 builtin/hash-object.c:100 builtin/ls-files.c:459
+#: builtin/ls-files.c:462 builtin/notes.c:398 builtin/notes.c:561
 #: builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "tập_tin"
@@ -124,7 +124,7 @@
 msgid "list supported archive formats"
 msgstr "liệt kê các kiểu nén được hỗ trợ"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "kho"
 
@@ -132,7 +132,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "nhận kho nén từ kho chứa <kho> trên máy chủ"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "lệnh"
 
@@ -140,7 +140,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "đường dẫn đến lệnh git-upload-pack trên máy chủ"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -148,84 +148,101 @@
 "Các mẫu dạng phủ định bị cấm dùng cho các thuộc tính của git\n"
 "Dùng “\\!” cho các chuỗi văn bản có dấu chấm than dẫn đầu."
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"Sau khi sửa nguyên nhân lỗi bạn có lẻ cần thử sửa\n"
+"thông tin theo dõi máy chủ bằng cách gọi lệnh\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "Chưa cài đặt nhánh %s như là thượng nguồn của nó."
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr "Nhánh %s cài đặt để theo dõi nhánh máy chủ %s từ %s bằng cách rebase."
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "Nhánh %s cài đặt để theo dõi nhánh máy chủ %s từ %s."
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr "Nhánh %s cài đặt để theo dõi nhánh nội bộ %s bằng cách rebase."
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "Nhánh %s cài đặt để theo dõi nhánh nội bộ %s."
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr "Nhánh %s cài đặt để theo dõi nhánh máy chủ %s bằng cách rebase."
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "Nhánh %s cài đặt để theo dõi tham chiếu máy chủ %s."
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr ""
 "Nhánh %s cài đặt để theo dõi vết tham chiếu nội bộ %s bằng cách rebase."
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "Nhánh %s cài đặt để theo dõi tham chiếu nội bộ %s."
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "Không thể ghi cấu hình nhánh thượng nguồn"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "Không theo dõi: thông tin chưa rõ ràng cho tham chiếu %s"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "“%s” không phải là một tên nhánh hợp lệ."
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "Đã có nhánh mang tên “%s”."
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "Không thể ép buộc cập nhật nhánh hiện hành."
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr ""
 "Không thể cài đặt thông tin theo dõi; điểm bắt đầu “%s” không phải là một "
 "nhánh."
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "nhánh thượng nguồn đã yêu cầu “%s” không tồn tại"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -245,22 +262,22 @@
 "sẽ theo dõi bản đối chiếu máy chủ của nó, bạn cần dùng lệnh\n"
 "\"git push -u\" để đặt cấu hình thượng nguồn bạn muốn push."
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "Không phải tên đối tượng hợp lệ: “%s”."
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "Tên đối tượng chưa rõ ràng: “%s”."
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "Nhánh không hợp lệ: “%s”."
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "“%s” đã sẵn được lấy ra tại “%s”"
@@ -284,10 +301,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Kho chứa thiếu những lần chuyển giao tiên quyết này:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1456 builtin/log.c:1689 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "cài đặt việc di chuyển qua các điểm xét duyệt gặp lỗi"
 
@@ -324,7 +341,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "th.chiếu “%s” bị loại trừ bởi các tùy chọn rev-list"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1366 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "đối số không được thừa nhận: %s"
@@ -347,8 +364,8 @@
 msgid "invalid color value: %.*s"
 msgstr "giá trị màu không hợp lệ: %.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "không thể phân tích cú pháp %s"
@@ -362,59 +379,64 @@
 msgid "memory exhausted"
 msgstr "hết bộ nhớ"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "tập tin cấu hình sai tại dòng %d trong %s"
+msgid "bad config line %d in %s %s"
+msgstr "tập tin cấu hình sai tại dòng %d trong %s %s"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s” trong %s: %s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s” trong %s %s: %s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "sai giá trị bằng số của cấu hình “%s” cho “%s”: %s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "gặp lỗi mở rộng thư mục người dùng trong: “%s”"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "mức nén zlib %d là sai"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "chế độ không hợp lệ đối với việc tạo đối tượng: %s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "không thể phân tích cấu hình dòng lệnh"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "đã có lỗi chưa biết xảy ra trong khi đọc các tập tin cấu hình"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "không thể phân tích “%s” từ cấu hình dòng lệnh"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "sai biến cấu hình “%s” trong tập tin “%s” tại dòng %d"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s có đa giá trị"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "Không thể đặt “%s” thành “%s”"
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "Không thể chạy “git rev-list”"
@@ -521,16 +543,16 @@
 "Tìm thấy các lỗi trong biến cấu hình “diff.dirstat”:\n"
 "%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "phần mềm diff ở bên ngoài đã chết, dừng tại %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow cần chính xác một đặc tả đường dẫn"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -539,18 +561,18 @@
 "Gặp lỗi khi phân tích đối số tùy chọn --dirstat/-X:\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "Gặp lỗi khi phân tích đối số tùy chọn --submodule: “%s”"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "gặp lỗi khi lấy tên và thông tin của nhân"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "Bộ nhớ tạm không theo vết bị tắt trên hệ thống này."
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "Bộ nhớ tạm không theo vết bị tắt trên hệ thống hay vị trí này."
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -589,20 +611,20 @@
 msgid "'%s': short read %s"
 msgstr "“%s”: đọc ngắn %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "các lệnh git sẵn có trong thư mục “%s”:"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "các lệnh git sẵn có từ một nơi khác trong $PATH của bạn"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "Có các lệnh Git chung được sử dụng trong các tình huống khác nhau:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -611,11 +633,11 @@
 "“%s” trông như là một lệnh git, nhưng chúng tôi không\n"
 "thể thực thi nó. Có lẽ là lệnh git-%s đã bị hỏng?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "Ối chà. Hệ thống của bạn báo rằng chẳng có lệnh Git nào cả."
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -624,17 +646,17 @@
 "CẢNH BÁO: Bạn đã gọi lệnh Git có tên “%s”, mà nó lại không có sẵn.\n"
 "Tiếp tục và coi rằng ý bạn là “%s”"
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "trong %0.1f giây một cách tự động…"
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git: “%s” không phải là một lệnh của git. Xem “git --help”."
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -645,7 +667,7 @@
 "\n"
 "Có phải ý bạn là một trong số những cái này không?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
@@ -654,8 +676,8 @@
 msgid "failed to read the cache"
 msgstr "gặp lỗi khi đọc bộ nhớ đệm"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "không thể ghi tập tin lưu bảng mục lục mới"
 
@@ -673,64 +695,64 @@
 msgid "error building trees"
 msgstr "gặp lỗi khi xây dựng cây"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "gặp lỗi khi tạo đường dẫn “%s”%s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "Gỡ bỏ %s để tạo chỗ (room) cho thư mục con\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ": có lẽ là một xung đột D/F?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "từ chối đóng tập tin không được theo dõi tại “%s”"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "không thể đọc đối tượng %s “%s”"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "đối tượng blob được mong đợi cho %s “%s”"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "gặp lỗi khi mở “%s”"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "gặp lỗi khi tạo liên kết mềm (symlink) “%s”"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "không hiểu phải làm gì với %06o %s “%s”"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "Gặp lỗi khi thực hiện trộn nội bộ"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "Không thể thêm %s vào cơ sở dữ liệu"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "kiểu đối tượng không được hỗ trợ trong cây (tree)"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -739,7 +761,7 @@
 "XUNG ĐỘT (%s/xóa): %s bị xóa trong %s và %s trong %s. Phiên bản %s của %s "
 "còn lại trong cây (tree)."
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -748,20 +770,20 @@
 "XUNG ĐỘT (%s/xóa): %s bị xóa trong %s và %s trong %s. Phiên bản %s của %s "
 "còn lại trong cây (tree) tại %s."
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "đổi tên"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "đã đổi tên"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s là một thư mục trong %s thay vào đó thêm vào như là %s"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -770,145 +792,145 @@
 "XUNG ĐỘT (đổi-tên/đổi-tên): Đổi tên \"%s\"->\"%s\" trong nhánh \"%s\" đổi "
 "tên \"%s\"->\"%s\" trong \"%s\"%s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr " (cần giải quyết)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "XUNG ĐỘT (đổi-tên/đổi-tên): Đổi tên %s->%s trong %s. Đổi tên %s->%s trong %s"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Đang đổi tên %s thành %s thay vì %s thành %s"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
 "XUNG ĐỘT (đổi-tên/thêm): Đổi tên %s->%s trong %s. %s được thêm vào trong %s"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "Thêm hòa trộn %s"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Thay vào đó thêm vào %s"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "không thể đọc đối tượng %s"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "đối tượng %s không phải là một blob"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "sửa đổi"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "đã sửa"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "nội dung"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "thêm/thêm"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "Đã bỏ qua %s (đã có sẵn lần hòa trộn này)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "Tự-động-hòa-trộn %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "mô-đun-con"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "XUNG ĐỘT (%s): Xung đột hòa trộn trong %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "Đang xóa %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "tập-tin/thư-mục"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "thư-mục/tập-tin"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "XUNG ĐỘT (%s): Ở đây không có thư mục nào có tên %s trong %s. Thêm %s như là "
 "%s"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "Thêm \"%s\""
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Việc hòa trộn hỏng nghiêm trọng, không nên để xảy ra."
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "Đã cập nhật rồi!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "hòa trộn các cây %s và %s gặp lỗi"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "Đường dẫn chưa được xử lý??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "Đang trộn:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "tìm thấy %u tổ tiên chung:"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "hòa trộn không trả về lần chuyển giao nào"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "Không thể phân tích đối tượng “%s”"
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "Không thể ghi bảng mục lục"
 
@@ -1027,12 +1049,12 @@
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr "%s: số mầu nhiệm đặc tả đường dẫn chưa được hỗ trợ bởi lệnh này: %s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "đặc tả đường dẫn “%s” vượt ra ngoài liên kết mềm"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1066,164 +1088,249 @@
 "GIT_INDEX_VERSION được đặt, nhưng giá trị của nó lại không hợp lệ.\n"
 "Dùng phiên bản %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "Không thể mở “%s” để ghi"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "không thể xóa bỏ tham chiếu %s: %s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "không thể xóa bỏ tham chiếu: %s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "không thể gỡ bỏ tham chiếu: %s"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "định dạng: nguyên tử %%(end) được dùng mà không có nguyên tử tương ứng"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "cần nội dung mang giá trị dương:lines=%s"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "cần định dạng: %%(color:<color>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "không thể phân tích định dạng"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "không nhận ra màu: %%(màu:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "không nhận ra định dạng: %%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) không nhận các đối số"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) không nhận các đối số"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "cần nội dung mang giá trị dương:lines=%s"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "đối số không được thừa nhận %%(contents): %s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "đối số không được thừa nhận %%(objectname): %s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "cần định dạng: %%(align:<width>,<position>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "định dạng không đúng chỗ căn chỉnh:%s"
+msgid "unrecognized position:%s"
+msgstr "vị trí không được thừa nhận:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "chiều rộng không được thừa nhận:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "đối số không được thừa nhận %%(align): %s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "cần giá trị độ rộng dương với nguyên tử %%(align)"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "tên trường dị hình: %.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "không hiểu tên trường: %.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "định dạng: nguyên tử %%(end) được dùng mà không có nguyên tử tương ứng"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "chuỗi định dạng dị hình %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= cần một đối số nguyên dương"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "tham chiếu “%s” không có %ld thành phần để mà :strip"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "Không hiểu định dạng %.*s %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "thiếu đối tượng %s cho %s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer gặp lỗi trên %s cho %s"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "đối tượng dị hình tại “%s”"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "đang lờ đi tham chiếu với tên hỏng %s"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "đang lờ đi tham chiếu hỏng %s"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "định dạng: thiếu nguyên tử %%(end)"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "tên đối tượng dị hình %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "Không thể lấy về cả %s và %s cho %s"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s thường theo dõi %s, không phải %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s theo dõi cả %s và %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "Lỗi nội bộ"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD không chỉ đến một nhánh nào cả"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "không có nhánh nào như thế: “%s”"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "không có thượng nguồn được cấu hình cho nhánh “%s”"
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr ""
 "nhánh thượng nguồn “%s” không được lưu lại như là một nhánh theo dõi máy chủ"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr "đẩy lên đích “%s” trên máy chủ “%s” không có nhánh theo dõi nội bộ"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "nhánh “%s” không có máy chủ để đẩy lên"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "đẩy refspecs cho “%s” không bao gồm “%s”"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "đẩy lên mà không có đích (push.default là “nothing”)"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "không thể phân giải đẩy “đơn giản” đến một đích đơn"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr ""
 "Nhánh của bạn dựa trên cơ sở là “%s”, nhưng trên thượng nguồn không còn.\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "   (dùng \" git branch --unset-upstream\" để sửa)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "Nhánh của bạn đã cập nhật với “%s”.\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "Nhánh của bạn đứng trước “%s” %d lần chuyển giao.\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (dùng \"git push\" để xuất bản các lần chuyển giao nội bộ của bạn)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1232,11 +1339,11 @@
 "Nhánh của bạn đứng đằng sau “%s” %d lần chuyển giao, và có thể được chuyển-"
 "tiếp-nhanh.\n"
 
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (dùng \"git pull\" để cập nhật nhánh nội bộ của bạn)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1249,30 +1356,30 @@
 "và có %d và %d lần chuyển giao khác nhau cho từng cái,\n"
 "tương ứng với mỗi lần.\n"
 
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr ""
 "  (dùng \"git pull\" để hòa trộn nhánh trên máy chủ vào trong nhánh của "
 "bạn)\n"
 
-#: revision.c:2191
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "nhánh hiện tại của bạn có vẻ như bị hỏng"
 
-#: revision.c:2194
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "nhánh hiện tại của bạn “%s” không có một lần chuyển giao nào cả"
 
-#: revision.c:2388
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent xung khắc với --bisect"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "gặp lỗi khi mở “/dev/null”"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "dup2(%d,%d) gặp lỗi"
@@ -1297,7 +1404,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "kết thúc nhận không hỗ trợ đẩy --atomic"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1305,7 +1412,7 @@
 "sau khi giải quyết các xung đột, đánh dấu đường dẫn đã sửa\n"
 "với lệnh “git add <đường_dẫn>” hoặc “git rm <đường_dẫn>”"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1315,67 +1422,67 @@
 "với lệnh “git add <đường_dẫn>” hoặc “git rm <đường_dẫn>”\n"
 "và chuyển giao kết quả bằng lệnh “git commit”"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "Không thể ghi vào %s"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Lỗi bao bọc %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "Các thay đổi nội bộ của bạn có thể bị ghi đè bởi lệnh cherry-pick."
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "Các thay đổi nội bộ của bạn có thể bị ghi đè bởi lệnh hoàn nguyên."
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "Chuyển giao các thay đổi của bạn hay tạm cất (stash) chúng để xử lý."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: Không thể ghi tập tin lưu bảng mục lục mới"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "Không thể phân giải lần chuyển giao HEAD\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "Không thể cập nhật cây bộ nhớ đệm\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "Không thể phân tích lần chuyển giao %s\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "Không thể phân tích lần chuyển giao cha mẹ “%s”\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "Tập tin lưu mục lục của bạn không được hòa trộn."
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "Lần chuyển giao %s là một lần hòa trộn nhưng không đưa ra tùy chọn -m."
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "Lần chuyển giao %s không có cha mẹ %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr ""
@@ -1384,162 +1491,177 @@
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: không thể phân tích lần chuyển giao mẹ của %s"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "Không thể lấy ghi chú lần chuyển giao cho %s"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "không thể hoàn nguyên %s… %s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "không thể áp dụng miếng vá %s… %s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "lần chuyển giao trống rỗng đặt là hợp quy cách"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: gặp lỗi đọc bảng mục lục"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: gặp lỗi khi làm tươi mới bảng mục lục"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "Không thể %s trong khi %s"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "Không phân tích được dòng %d."
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "Không có lần chuyển giao nào được phân tích."
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "Không thể mở %s"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "Không thể đọc %s."
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Bảng chỉ thị không thể dùng được: %s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Khóa không đúng: %s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Giá trị không hợp lệ %s: %s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "Bảng tùy chọn dị hình: %s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "có một thao tác “cherry-pick” hoặc “revert” đang được thực hiện"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "hãy thử \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "Không thể tạo thư mục xếp dãy %s"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Lỗi bao bọc %s."
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "không cherry-pick hay hoàn nguyên trong tiến trình"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "không thể phân giải HEAD"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "không thể hủy bỏ từ một nhánh mà nó còn chưa được tạo ra"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "không thể mở %s: %s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "không thể đọc %s: %s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "gặp kết thúc tập tin đột xuất"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "tập tin HEAD “pre-cherry-pick” đã lưu “%s” bị hỏng"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "Không thể định dạng “%s”."
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s: không thể cherry-pick một %s"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s: điểm xét duyệt sai"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "Không thể hoàn nguyên một lần chuyển giao khởi tạo"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "Không thể cherry-pick vào một đầu (head) trống rỗng"
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "gặp lỗi khi đọc %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "vị trí tương đối trước điểm kết thúc của tập tin gói (.idx hỏng à?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "vị trí tương đối nằm trước chỉ mục gói cho %s (mục lục bị hỏng à?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr ""
+"vị trí tương đối vượt quá cuối của chỉ mục gói cho %s (mục lục bị cắt cụt à?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1563,62 +1685,86 @@
 "này\n"
 "bằng cách chạy lệnh \"git config advice.objectNameWarning false\""
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr ""
 "Không thể thay đổi .gitmodules chưa hòa trộn, hãy giải quyết xung đột trộn "
 "trước"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "Không thể tìm thấy phần trong .gitmodules nơi mà đường_dẫn=%s"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr "Không thể cập nhật mục .gitmodules %s"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "Không thể gỡ bỏ mục .gitmodules dành cho %s"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "gặp lỗi khi tổ chức .gitmodules đã cập nhật"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "Không thể đặt “core.worktree” trong “%s”."
+msgid "running trailer command '%s' failed"
+msgstr "chạy lệnh kéo theo “%s” gặp lỗi"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "không hiểu giá trị “%s” cho khóa “%s”"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "nhiều hơn một %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "thẻ thừa trống rỗng trong phần thừa “%.*s”"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "không đọc được tập tin đầu vào “%s”"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "không thể đọc từ đầu vào tiêu chuẩn"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "không thể lấy thông tin thống kê về %s"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "\"%s\" không phải là tập tin bình thường"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "tập tin %s người dùng không thể ghi được"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "không thể tạo tập tin tạm thời"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "không thể đổi tên tập tin tạm thời thành %s"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "Không thể đọc tham chiếu %s"
@@ -1656,56 +1802,47 @@
 msgid "invalid '..' path segment"
 msgstr "đoạn đường dẫn “..” không hợp lệ"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "không thể mở “%s” để đọc và ghi"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "không thể mở “%s” để ghi"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "không thể mở “%s” để đọc"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "không thể truy cập “%s”: %s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "không thể truy cập “%s”"
 
-#: wrapper.c:611
-#, c-format
-msgid "unable to look up current user in the passwd file: %s"
-msgstr "không tìm thấy người dùng hiện tại trong tập tin passwd: %s"
-
-#: wrapper.c:612
-msgid "no such user"
-msgstr "không có người dùng như vậy"
-
-#: wrapper.c:620
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "Không thể lấy thư mục làm việc hiện hành"
 
-#: wrapper.c:647
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "không thể mở %s để ghi"
 
-#: wrapper.c:658 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "không thể ghi vào %s"
 
-#: wrapper.c:664
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "không thể đóng %s"
@@ -2188,7 +2325,11 @@
 msgid "behind "
 msgstr "đằng sau "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "phía trước "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "gặp lỗi khi bỏ liên kết (unlink) “%s”"
@@ -2216,7 +2357,7 @@
 msgstr ""
 "Đưa ra khỏi bệ phóng các thay đổi sau khi làm tươi mới lại bảng mục lục:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "Không thể đọc bảng mục lục"
 
@@ -2253,15 +2394,15 @@
 "Các đường dẫn theo sau đây sẽ bị lờ đi bởi một trong các tập tin .gitignore "
 "của bạn:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:545
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "chạy thử"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1640 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "chi tiết"
 
@@ -2269,7 +2410,7 @@
 msgid "interactive picking"
 msgstr "sửa bằng cách tương tác"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "chọn “hunks” theo kiểu tương tác"
 
@@ -2340,137 +2481,132 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Có lẽ ý bạn là “git add .” phải không?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "tập tin ghi bảng mục lục bị hỏng"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "Không thể ghi tập tin lưu bảng mục lục mới"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "không thể lấy thông tin thống kê về %s"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "Không thể đọc “%s”."
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "không thể phân tích cú pháp văn lệnh tác giả"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "“%s” bị xóa bởi móc applypatch-msg"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "Dòng đầu vào dị hình: “%s”."
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "Gặp lỗi khi sao chép ghi chú (note) từ “%s” tới “%s”"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "fseek gặp lỗi"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "không thể mở “%s” để đọc: %s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "Không thể mở “%s” để ghi: %s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "không thể phân tích cú pháp “%s”"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "Chỉ có một sê-ri miếng vá StGIT được áp dụng một lúc"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "dấu thời gian không hợp lệ"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "dòng Ngày tháng không hợp lệ"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "độ lệch múi giờ không hợp lệ"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "Dò tìm định dạng miếng vá gặp lỗi."
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "tạo thư mục \"%s\" gặp lỗi"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "Gặp lỗi khi chia nhỏ các miếng vá."
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "không thể ghi tập tin lưu mục lục"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "Khi bạn đã phân giải xong trục trặc này, hãy chạy \"%s --continue\"."
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr ""
 "Nếu bạn muốn bỏ qua miếng vá này, hãy chạy lệnh \"%s --skip\" để thay thế."
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr "Để phục hồi lại nhánh gốc và dừng vá, hãy chạy \"%s --abort\"."
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "Miếng vá trống rỗng. Quá trình chia nhỏ miếng vá có lỗi?"
 
-#: builtin/am.c:1417 builtin/log.c:1344
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "dòng thụt lề không hợp lệ: %s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "không thể phân tích lần chuyển giao “%s”"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "Kho thiếu đối tượng blob cần thiết để trở về trên “3-way merge”."
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr ""
 "Sử dụng thông tin trong bảng mục lục để cấu trúc lại một cây (tree) cơ sở…"
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2478,38 +2614,38 @@
 "Bạn đã sửa miếng vá của mình bằng cách thủ công à?\n"
 "Nó không thể áp dụng các blob đã được ghi lại trong bảng mục lục của nó."
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "Đang trở lại để vá cơ sở và “hòa trộn 3-đường”…"
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "Gặp lỗi khi trộn vào các thay đổi."
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "lệnh git write-tree gặp lỗi khi ghi một cây"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "áp dụng vào một lịch sử trống rỗng"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "gặp lỗi khi ghi đối tượng chuyển giao"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "không thể phục hồi: %s không tồn tại."
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr ""
 "không thể được tương tác mà không có stdin kết nối với một thiết bị cuối"
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "Thân của lần chuyển giao là:"
 
@@ -2517,37 +2653,37 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr ""
 "Áp dụng? đồng ý [y]/khô[n]g/chỉnh sửa [e]/hiển thị miếng [v]á/chấp nhận tất "
 "cả [a]: "
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "Bảng mục lục bẩn: không thể áp dụng các miếng vá (bẩn: %s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "Áp dụng: %.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "Không thay đổi gì cả -- Miếng vá đã được áp dụng rồi."
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "Gặp lỗi khi vá tại %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "Bản sao chép của miếng vá mà nó gặp lỗi thì được tìm thấy trong: %s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2558,7 +2694,7 @@
 "đã sẵn được đưa vào với cùng nội dung thay đổi; bạn có lẽ muốn bỏ qua miếng "
 "vá này."
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2566,17 +2702,17 @@
 "Bạn vẫn có những đường dẫn chưa được hòa trộn trong bảng mục lục của mình.\n"
 "Bạn đã quên sử dụng lệnh “git add” à?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "không thể phân tích đối tượng “%s”."
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "gặp lỗi khi dọn bảng mục lục"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
@@ -2584,153 +2720,153 @@
 "Bạn có lẽ đã có HEAD đã bị di chuyển đi kể từ lần “am” thất bại cuối cùng.\n"
 "Không thể chuyển tới ORIG_HEAD"
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "Giá trị không hợp lệ cho --patch-format: %s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<các-tùy-chọn>] [(<mbox>|<Maildir>)…]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<các-tùy-chọn>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "chạy kiểu tương tác"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "tùy chọn lịch sử -- không-toán-tử"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "cho phép quay trở lại để hòa trộn kiểu “3way” nếu cần"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "im lặng"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "Thêm dòng Signed-off-by cho ghi chú của lần chuyển giao"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "chuyển mã thành utf8 (mặc định)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "chuyển cờ -k cho git-mailinfo"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "chuyển cờ -b cho git-mailinfo"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "chuyển cờ -m cho git-mailinfo"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "chuyển cờ --keep-cr cho git-mailsplit với định dạng mbox"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr ""
 "đừng chuyển cờ --keep-cr cho git-mailsplit không phụ thuộc vào am.keepcr"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "cắt mọi thứ trước dòng scissors"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "hành động"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "chuyển nó qua git-apply"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "gốc"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "đường-dẫn"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131 builtin/pull.c:185
 #: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
 #: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
 #: parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "số"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "định dạng"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "định dạng (các) miếng vá theo"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "đè lên các lời nhắn lỗi khi xảy ra lỗi vá nghiêm trọng"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "tiếp tục áp dụng các miếng vá sau khi giải quyết xung đột"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "đồng nghĩa với --continue"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "bỏ qua miếng vá hiện hành"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr "phục hồi lại nhánh gốc và loại bỏ thao tác vá."
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "nói dối về ngày chuyển giao"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "dùng dấu thời gian hiện tại cho ngày tác giả"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "mã-số-khóa"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "lần chuyển giao ký-GPG"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(dùng nội bộ cho git-rebase)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2738,16 +2874,16 @@
 "Tùy chọn -b/--binary đã không dùng từ lâu rồi, và\n"
 "nó sẽ được bỏ đi. Xin đừng sử dụng nó thêm nữa."
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "gặp lỗi đọc bảng mục lục"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "thư mục rebase trước %s không sẵn có nhưng mbox lại đưa ra."
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2756,7 +2892,7 @@
 "Tìm thấy thư mục lạc %s.\n"
 "Dùng \"git am --abort\" để loại bỏ nó đi."
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "Thao tác phân giải không được tiến hành, chúng ta không phục hồi lại."
 
@@ -3101,135 +3237,135 @@
 msgid "unable to read index file"
 msgstr "không thể đọc tập tin lưu bảng mục lục"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "không áp dụng các thay đổi khớp với đường dẫn đã cho"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "áp dụng các thay đổi khớp với đường dẫn đã cho"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "gỡ bỏ <số> dấu gạch chéo dẫn đầu từ đường dẫn diff cổ điển"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "lờ đi phần bổ xung được tạo ra bởi miếng vá"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr ""
 "thay vì áp dụng một miếng vá, kết xuất kết quả từ lệnh diffstat cho đầu ra"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr ""
 "hiển thị số lượng các dòng được thêm vào và xóa đi theo ký hiệu thập phân"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "thay vì áp dụng một miếng vá, kết xuất kết quả cho đầu vào"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "thay vì áp dụng miếng vá, hãy xem xem miếng vá có thích hợp không"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "hãy chắc chắn là miếng vá thích hợp với bảng mục lục hiện hành"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "áp dụng một miếng vá mà không động chạm đến cây làm việc"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "chấp nhận một miếng vá mà không động chạm đến cây làm việc"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr ""
 "đồng thời áp dụng miếng vá (dùng với tùy chọn --stat/--summary/--check)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "thử hòa trộn kiểu three-way nếu việc vá không thể thực hiện được"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr ""
 "xây dựng bảng mục lục tạm thời trên cơ sở thông tin bảng mục lục được nhúng"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "các đường dẫn bị ngăn cách bởi ký tự NULL"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "đảm bảo rằng có ít nhất <n> dòng nội dung khớp"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "tìm thấy một dòng mới hoặc bị sửa đổi mà nó có lỗi do khoảng trắng"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "lờ đi sự thay đổi do khoảng trắng gây ra khi quét nội dung"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "áp dụng miếng vá theo chiều ngược"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "đừng hy vọng có ít nhất một dòng nội dung"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "để lại khối dữ liệu bị từ chối trong các tập tin *.rej tương ứng"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "cho phép chồng khối nhớ"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr ""
 "đã dò tìm thấy dung sai không chính xác thiếu dòng mới tại cuối tập tin"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "không tin số lượng dòng trong phần đầu khối dữ liệu"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "treo thêm <root> vào tất cả các tên tập tin"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "--3way ở ngoài một kho chứa"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "--index ở ngoài một kho chứa"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "--cached ở ngoài một kho chứa"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "không thể mở miếng vá “%s”"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "đã chấm dứt %d lỗi khoảng trắng"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3283,105 +3419,113 @@
 msgstr ""
 "cập nhật BISECT_HEAD thay vì lấy ra (checking out) lần chuyển giao hiện hành"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<các-tùy-chọn>] [<rev-opts>] [<rev>] [--] <tập-tin>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<rev-opts> được mô tả trong tài liệu git-rev-list(1)"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "Các dòng blame"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr "Hiển thị các mục “blame” như là chúng ta thấy chúng, tăng dần"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr ""
 "Hiển thị SHA-1 trắng cho những lần chuyển giao biên giới (Mặc định: off)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "Không coi các lần chuyển giao gốc là giới hạn (Mặc định: off)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "Hiển thị thống kê công sức làm việc"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "Ép buộc báo cáo tiến triển công việc"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "Hiển thị kết xuất điểm số có các mục tin “blame”"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "Hiển thị tên tập tin gốc (Mặc định: auto)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "Hiển thị số dòng gốc (Mặc định: off)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "Hiển thị ở định dạng đã thiết kế cho sự tiêu dùng bằng máy"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "Hiển thị định dạng “porcelain” với thông tin chuyển giao mỗi dòng"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "Dùng cùng chế độ xuất ra với git-annotate (Mặc định: off)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "Hiển thị dấu vết thời gian dạng thô (Mặc định: off)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "Hiển thị SHA1 của lần chuyển giao dạng dài (Mặc định: off)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "Không hiển thị tên tác giả và dấu vết thời gian (Mặc định: off)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr "Hiển thị thư điện tử của tác giả thay vì tên (Mặc định: off)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "Bỏ qua các khác biệt do khoảng trắng gây ra"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "Tiêu thụ thêm năng tài nguyên máy móc để tìm kiếm tốt hơn nữa"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr ""
 "Sử dụng điểm xét duyệt (revision) từ <tập tin> thay vì gọi “git-rev-list”"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "Sử dụng nội dung của <tập tin> như là ảnh cuối cùng"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "điểm số"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "Tìm các bản sao chép dòng trong và ngang qua tập tin"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "Tìm các di chuyển dòng trong và ngang qua tập tin"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "Xử lý chỉ dòng vùng n,m, tính từ 1"
 
@@ -3391,7 +3535,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "4 năm, 11 tháng trước"
 
@@ -3589,156 +3733,156 @@
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "Nhánh bị đổi tên, nhưng cập nhật tập tin cấu hình gặp lỗi"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "không thể ghi vào mẫu mô tả nhánh: %s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "Tùy chọn chung"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "hiển thị mã băm và chủ đề, đưa ra hai lần cho nhánh thượng nguồn"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "không xuất các thông tin"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "cài đặt chế độ theo dõi (xem git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "thay đổi thông tin thượng nguồn"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "tô màu kết xuất"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "thao tác trên nhánh “remote-tracking”"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "Hành động git-branch:"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "liệt kê cả nhánh “remote-tracking” và nội bộ"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "xóa một toàn bộ nhánh đã hòa trộn"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "xóa nhánh (cho dù là chưa được hòa trộn)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "di chuyển hay đổi tên một nhánh và reflog của nó"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "di chuyển hoặc đổi tên một nhánh ngay cả khi đích đã có sẵn"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "liệt kê các tên nhánh"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "tạo reflog của nhánh"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "sửa mô tả cho nhánh"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "buộc tạo, di chuyển/đổi tên, xóa"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "chỉ hiển thị những nhánh mà nó được hòa trộn"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "chỉ hiển thị những nhánh mà nó không được hòa trộn"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "liệt kê các nhánh trong các cột"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "khóa"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "tên trường cần sắp xếp"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "đối tượng"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "chỉ hiển thị các nhánh của đối tượng"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Gặp lỗi khi phân giải HEAD như là một tham chiếu hợp lệ."
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "không tìm thấy HEAD ở dưới refs/heads!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "tùy chọn --column và --verbose xung khắc nhau"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "cần chỉ ra tên nhánh"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "Không thể đưa ra mô tả HEAD đã tách rời"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "không thể sửa mô tả cho nhiều hơn một nhánh"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "Vẫn chưa chuyển giao trên nhánh “%s”."
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "Không có nhánh nào có tên “%s”."
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "quá nhiều nhánh dành cho thao tác đổi tên"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "quá nhiều nhánh được đặt cho thượng nguồn mới"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
@@ -3746,40 +3890,40 @@
 "không thể đặt thượng nguồn của HEAD thành %s khi mà nó chẳng chỉ đến nhánh "
 "nào cả."
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "không có nhánh nào như thế “%s”"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "chưa có nhánh “%s”"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "quá nhiều nhánh để bỏ đặt thượng nguồn"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr "không thể bỏ đặt thượng nguồn của HEAD không chỉ đến một nhánh nào cả."
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "Nhánh “%s” không có thông tin thượng nguồn"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "không hợp lý khi tạo “HEAD” thủ công"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 "hai tùy chọn -a và -r áp dụng cho lệnh “git branch” không hợp lý đối với tên "
 "nhánh"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3788,7 +3932,7 @@
 "Cờ --set-upstream đã lạc hậu và sẽ bị xóa bỏ. Nên dùng --track hoặc --set-"
 "upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3799,12 +3943,12 @@
 "Nếu bạn muốn “%s” theo dõi “%s”, thực hiện lệnh sau:\n"
 "\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3899,7 +4043,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "chỉ dùng .gitattributes từ bảng mục lục"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "đọc tên tập tin từ đầu vào tiêu chuẩn"
 
@@ -3907,7 +4051,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "chấm dứt các bản ghi vào và ra bằng ký tự NULL"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "chặn các báo cáo tiến trình hoạt động"
 
@@ -3960,50 +4104,54 @@
 msgid "no contacts specified"
 msgstr "chưa chỉ ra danh bạ"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<các-tùy-chọn>] [--] [<tập-tin>…]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "stage nên giữa 1 và 3 hay all"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "lấy ra toàn bộ các tập tin trong bảng mục lục"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "ép buộc ghi đè lên tập tin đã sẵn có từ trước"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr ""
 "không cảnh báo cho những tập tin tồn tại và không có trong bảng mục lục"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "không checkout các tập tin mới"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "cập nhật thông tin thống kê trong tập tin lưu bảng mục lục mới"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "đọc danh sách đường dẫn từ đầu vào tiêu chuẩn"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "ghi nội dung vào tập tin tạm"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "chuỗi"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "khi tạo các tập tin, nối thêm <chuỗi>"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "sao chép ra các tập tin từ bệ phóng có tên"
 
@@ -4084,37 +4232,41 @@
 msgid "HEAD is now at"
 msgstr "HEAD hiện giờ tại"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "không thể cập nhật HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Đặt lại nhánh “%s”\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Đã sẵn sàng trên “%s”\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Đã chuyển tới và đặt lại nhánh “%s”\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Đã chuyển đến nhánh mới “%s”\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Đã chuyển đến nhánh “%s”\n"
 
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " … và nhiều hơn %d.\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4133,7 +4285,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4154,152 +4306,152 @@
 " git branch <tên_nhánh_mới> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "lỗi nội bộ trong khi di chuyển qua các điểm xét duyệt"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "Vị trí trước kia của HEAD là"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "Bạn tại nhánh mà nó chưa hề được sinh ra"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "chỉ cần một tham chiếu, nhưng lại đưa ra %d."
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "tham chiếu không hợp lệ: %s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "tham chiếu không phải là một cây:%s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "các đường dẫn không thể dùng cùng với các nhánh chuyển"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "“%s” không thể được sử dụng với các nhánh chuyển"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "“%s” không thể được dùng với “%s”"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Không thể chuyển nhánh đến một thứ không phải là lần chuyển giao “%s”"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "nhánh"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "tạo và checkout một nhánh mới"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "tạo/đặt_lại và checkout một nhánh"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "tạo reflog cho nhánh mới"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "rời bỏ HEAD tại lần chuyển giao danh nghĩa"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "đặt thông tin thượng nguồn cho nhánh mới"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "nhánh-mới"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "nhánh không cha mới"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr ""
 "lấy ra (checkout) phiên bản của chúng ta cho các tập tin chưa được hòa trộn"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr ""
 "lấy ra (checkout) phiên bản của chúng họ cho các tập tin chưa được hòa trộn"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "ép buộc lấy ra (bỏ đi những thay đổi nội bộ)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "thực hiện hòa trộn kiểu 3-way với nhánh mới"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "cập nhật các tập tin bị bỏ qua (mặc định)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1263 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "kiểu"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "xung đột kiểu (hòa trộn hoặc diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "không giới hạn đặc tả đường dẫn thành chỉ các mục thưa thớt"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "gợi ý thứ hai \"git checkout <không-nhánh-nào-như-vậy>\""
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr "không kiểm tra nếu cây làm việc khác đang giữ tham chiếu đã cho"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:560
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "ép buộc báo cáo tiến triển công việc"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "Các tùy chọn -b, -B và --orphan loại từ lẫn nhau"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track cần tên một nhánh"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "Thiếu tên nhánh; hãy thử -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "đường dẫn đã cho không hợp lệ"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4309,12 +4461,12 @@
 "Bạn đã có ý định checkout “%s” cái mà không thể được phân giải như là lần "
 "chuyển giao?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout: --detach không nhận một đối số đường dẫn “%s”"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4353,7 +4505,7 @@
 msgid "failed to remove %s"
 msgstr "gặp lỗi khi gỡ bỏ %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4365,7 +4517,7 @@
 "foo        - chọn mục trên cơ sở tiền tố duy nhất\n"
 "           - (để trống) không chọn gì cả"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4385,36 +4537,36 @@
 "*          - chọn tất\n"
 "           - (để trống) kết thúc việc chọn"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "Hả (%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "Mẫu để lọc các tập tin đầu vào cần lờ đi>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "CẢNH BÁO: Không tìm thấy các mục được khớp bởi: %s"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "Chọn mục muốn xóa"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "Xóa bỏ “%s” [y/N]? "
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "Tạm biệt."
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4432,61 +4584,61 @@
 "help                - hiển thị chính trợ giúp này\n"
 "?                   - trợ giúp dành cho chọn bằng cách nhắc"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** Lệnh ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "Giờ thì sao"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "Có muốn gỡ bỏ (các) mục sau đây không:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "Không còn tập-tin nào để dọn dẹp, đang thoát ra."
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "không hiển thị tên của các tập tin đã gỡ bỏ"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "ép buộc"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "dọn bằng kiểu tương tác"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "gỡ bỏ toàn bộ thư mục"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "mẫu"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "thêm <mẫu> vào trong qui tắc bỏ qua"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "đồng thời gỡ bỏ cả các tập tin bị bỏ qua"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "chỉ gỡ bỏ những tập tin bị bỏ qua"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "-x và -X không thể dùng cùng nhau"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
@@ -4494,7 +4646,7 @@
 "clean.requireForce được đặt thành true và không đưa ra tùy chọn -i, -n mà "
 "cũng không -f; từ chối lệnh dọn dẹp (clean)"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4506,145 +4658,161 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<các-tùy-chọn>] [--] <kho> [<t.mục>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "không tạo một checkout"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "tạo kho thuần"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "tạo kho bản sao (ý là kho thuần)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "để nhân bản từ kho nội bộ"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "không sử dụng liên kết cứng nội bộ, luôn sao chép"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "cài đặt đây là kho chia sẻ"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "khởi tạo mô-đun-con trong bản sao"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "thư-mục-mẫu"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "thư mục mà tại đó các mẫu sẽ được dùng"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "kho tham chiếu"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "chỉ dùng --reference khi nhân bản"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "tên"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "dùng <tên> thay cho “origin” để theo dõi thượng nguồn"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "lấy ra <nhánh> thay cho HEAD của máy chủ"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "đường dẫn đến git-upload-pack trên máy chủ"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665 builtin/pull.c:193
 msgid "depth"
 msgstr "độ-sâu"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "tạo bản sao không đầy đủ cho mức sâu đã cho"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "chỉ nhân bản một nhánh, HEAD hoặc --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "gitdir"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "không dùng chung thư mục dành riêng cho git và thư mục làm việc"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "khóa=giá_trị"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "đặt cấu hình bên trong một kho chứa mới"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "chỉ dùng địa chỉ IPv4"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "chỉ dùng địa chỉ IPv6"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"Không đoán được thư mục tên là gì.\n"
+"Vui lòng chỉ định tên một thư mục trên dòng lệnh"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr "kho tham chiếu “%s” như là lấy ra liên kết vẫn chưa được hỗ trợ."
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "kho tham chiếu “%s” không phải là một kho nội bộ."
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "kho tham chiếu “%s” là nông"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "kho tham chiếu “%s” bị cấy ghép"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "gặp lỗi khi lấy thống kê về “%s”"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s có tồn tại nhưng lại không phải là một thư mục"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "gặp lỗi khi lấy thông tin thống kê về %s\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "gặp lỗi khi tạo được liên kết mềm %s"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "gặp lỗi khi sao chép tập tin và “%s”"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "hoàn tất.\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4654,117 +4822,126 @@
 "Bạn kiểm tra kỹ xem cái gì được lấy ra bằng lệnh “git status”\n"
 "và thử lấy ra với lệnh “git checkout -f HEAD”\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "Không tìm thấy nhánh máy chủ %s để nhân bản (clone)."
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "Đang kiểm tra kết nối… "
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "máy chủ đã không gửi tất cả các đối tượng cần thiết"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "không thể cập nhật %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "refers HEAD máy chủ  chỉ đến ref không tồn tại, không thể lấy ra.\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "không thể lấy ra (checkout) cây làm việc"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "không thể ghi các tham số vào tập tin cấu hình"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "không thể đóng gói để dọn dẹp"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "không thể bỏ liên kết tập tin thay thế tạm thời"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "Có quá nhiều đối số."
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "Bạn phải chỉ định một kho để mà nhân bản (clone)."
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "tùy chọn --bare và --origin %s xung khắc nhau."
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "tùy chọn --bare và --separate-git-dir xung khắc nhau."
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "kho chứa “%s” chưa tồn tại"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "độ sâu %s không phải là một số nguyên dương"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "đường dẫn đích “%s” đã có từ trước và không phải là một thư mục rỗng."
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "cây làm việc “%s” đã sẵn tồn tại rồi."
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "không thể tạo các thư mục dẫn đầu của “%s”"
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "không thể tạo cây thư mục làm việc dir “%s”"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Đang nhân bản thành kho chứa bare “%s”…\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Đang nhân bản thành “%s”…\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth bị lờ đi khi nhân bản nội bộ; hãy sử dụng file:// để thay thế."
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "kho nguồn là nông, nên bỏ qua --local"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local bị lờ đi"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Không biết làm cách nào để nhân bản (clone) %s"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "Nhánh máy chủ %s không tìm thấy trong thượng nguồn %s"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "Bạn hình như là đã nhân bản một kho trống rỗng."
 
@@ -4989,7 +5166,7 @@
 msgid "could not lookup commit %s"
 msgstr "không thể tìm kiếm commit (lần chuyển giao) %s"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(đang đọc thông điệp nhật ký từ đầu vào tiêu chuẩn)\n"
@@ -5186,8 +5363,8 @@
 msgid "show branch information"
 msgstr "hiển thị thông tin nhánh"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:546
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "kết xuất dạng máy-có-thể-đọc"
 
@@ -5279,8 +5456,8 @@
 msgid "override date for commit"
 msgstr "ghi đè ngày tháng cho lần chuyển giao"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "chú thích"
 
@@ -5317,7 +5494,7 @@
 msgstr ""
 "lần chuyển giao nhận tôi là tác giả (được dùng với tùy chọn -C/-c/--amend)"
 
-#: builtin/commit.c:1588 builtin/log.c:1215 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "(nên dùng) thêm dòng Signed-off-by:"
 
@@ -5341,7 +5518,7 @@
 msgid "include status in commit message template"
 msgstr "bao gồm các trạng thái trong mẫu ghi chú chuyển giao"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "ký lần chuyển giao dùng GPG"
@@ -5435,139 +5612,145 @@
 "có bị đầy quá hay quota (hạn nghạch đĩa cứng) bị vượt quá,\n"
 "và sau đó \"git reset HEAD\" để khắc phục."
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<các-tùy-chọn>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "Vị trí tập tin cấu hình"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "dùng tập tin cấu hình toàn cục"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "sử dụng tập tin cấu hình hệ thống"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "dùng tập tin cấu hình của kho"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "sử dụng tập tin cấu hình đã cho"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "blob-id"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "đọc cấu hình từ đối tượng blob đã cho"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "Hành động"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "lấy giá-trị: tên [value-regex]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "lấy tất cả giá-trị: khóa [value-regex]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "lấy giá trị cho regexp: name-regex [value-regex]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "lấy đặc tả giá trị cho URL: phần[.biến] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "thay thế tất cả các biến khớp mẫu: tên giá-trị [value_regex]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "thêm biến mới: tên giá-trị"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "gỡ bỏ biến: tên [value-regex]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "gỡ bỏ mọi cái khớp: tên [value-regex]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "đổi tên phần: tên-cũ tên-mới"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "gỡ bỏ phần: tên"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "liệt kê tất"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "mở một trình biên soạn"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "tìm cấu hình màu sắc: slot [mặc định]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "tìm các cài đặt về màu sắc: slot [stdout-là-tty]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "Kiểu"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "giá trị là \"true\" hoặc \"false\""
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "giá trị ở dạng số thập phân"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "giá trị là --bool hoặc --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "giá trị là đường dẫn (tên tập tin hay thư mục)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "Khác"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "chấm dứt giá trị với byte NUL"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "chỉ hiển thị các tên biến"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "tôn trọng kể cà các hướng trong tìm kiếm"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr ""
+"hiển thị nguyên gốc của cấu hình (tập tin, đầu vào tiêu chuẩn, blob, dòng "
+"lệnh)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "không thể phân tích giá trị màu mặc định"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5582,7 +5765,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "không thể tạo tập tin cấu hình “%s”"
@@ -5832,163 +6015,167 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<các-tùy-chọn>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "lấy về từ tất cả các máy chủ"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "nối thêm vào .git/FETCH_HEAD thay vì ghi đè lên nó"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "đường dẫn đến gói tải lên trên máy chủ cuối"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "ép buộc ghi đè lên nhánh nội bộ"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "lấy từ nhiều máy chủ cùng lúc"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "lấy tất cả các thẻ cùng với các đối tượng liên quan đến nó"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "không lấy tất cả các thẻ (--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "số lượng mô-đun-con được lấy đồng thời"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr ""
 "cắt cụt (prune) các nhánh “remote-tracking” không còn tồn tại trên máy chủ "
 "nữa"
 
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "khi-cần"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "điều khiển việc lấy về đệ quy trong các mô-đun-con"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "giữ lại gói đã tải về"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "cho phép cập nhật th.chiếu HEAD"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "làm sâu hơn lịch sử của bản sao"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "chuyển đổi hoàn toàn sang kho git"
 
-#: builtin/fetch.c:118 builtin/log.c:1232
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "tmục"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "soạn sẵn cái này cho kết xuất đường dẫn mô-đun-con"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "chế độ mặc định cho đệ qui"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "chấp nhận tham chiếu cập nhật .git/shallow"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "refmap"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "chỉ ra refmap cần lấy về"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "Không thể tìm thấy máy chủ cho tham chiếu HEAD"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "Không tìm thấy đối tượng %s"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[đã cập nhật]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s -> %s  (không thể fetch (lấy) về nhánh hiện hành)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[Bị từ chối]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[cập nhật thẻ]"
 
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (không thể cập nhật tham chiếu nội bộ)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[thẻ mới]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[nhánh mới]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[ref (tham chiếu) mới]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "không thể cập nhật tham chiếu nội bộ"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "cưỡng bức cập nhật"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(không-chuyển-tiếp-nhanh)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "không thể mở %s: %s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s đã không gửi tất cả các đối tượng cần thiết\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "từ chối %s bởi vì các gốc nông thì không được phép cập nhật"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "Từ %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -5997,57 +6184,57 @@
 "một số tham chiếu nội bộ không thể được cập nhật; hãy thử chạy\n"
 " “git remote prune %s” để bỏ đi những nhánh cũ, hay bị xung đột"
 
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s sẽ trở thành không đầu (không được quản lý))"
 
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s đã trở thành không đầu (không được quản lý))"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[đã xóa]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(không)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr ""
 "Từ chối việc lấy vào trong nhánh hiện tại %s của một kho chứa không phải kho "
 "trần (bare)"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "Tùy chọn \"%s\" có giá trị \"%s\" là không hợp lệ cho %s"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "Tùy chọn \"%s\" bị bỏ qua với %s\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "Không biết làm cách nào để lấy về từ %s"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Đang lấy “%s” về\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "không thể “%s” về"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -6055,32 +6242,32 @@
 "Chưa chỉ ra kho chứa máy chủ.  Xin hãy chỉ định hoặc là URL hoặc\n"
 "tên máy chủ từ cái mà những điểm xét duyệt mới có thể được fetch (lấy về)."
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "Bạn phải định rõ tên thẻ."
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "tùy chọn --depth và --unshallow không thể sử dụng cùng với nhau"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "--unshallow trên kho hoàn chỉnh là không hợp lý"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "lệnh lấy về \"fetch --all\" không lấy đối số kho chứa"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "lệnh lấy về \"fetch --all\" không hợp lý với refspecs"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "không có nhóm máy chủ hay máy chủ như thế: %s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "Việc lấy về cả một nhóm và chỉ định refspecs không hợp lý"
 
@@ -6308,227 +6495,241 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<các-tùy-chọn>] [-e] <mẫu> [<rev>…] [[--] <đường-dẫn>…]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: gặp lỗi tạo tuyến (thread): %s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "số tuyến đã cho không hợp lệ (%d) cho %s"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "không thể đọc cây (%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "không thể thực hiện lệnh grep (lọc tìm) từ đối tượng thuộc kiểu %s"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "chuyển đến “%c” cần một giá trị bằng số"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "không mở được “%s”"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "tìm trong bảng mục lục thay vì trong cây làm việc"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "tìm trong nội dung không được quản lý bởi git"
 
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "tìm kiếm các tập tin được và chưa được theo dõi dấu vết"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "các tập tin bị bỏ qua được chỉ định thông qua “.gitignore”"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "hiển thị những dòng không khớp với mẫu"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "phân biệt HOA/thường"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "chỉ khớp mẫu tại đường ranh giới từ"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "xử lý tập tin nhị phân như là dạng văn bản thường"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "không khớp mẫu trong các tập tin nhị phân"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "xử lý tập tin nhị phân với các bộ lọc “textconv”"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "hạ xuống ít nhất là mức <sâu>"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "dùng biểu thức chính qui POSIX có mở rộng"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "sử dụng biểu thức chính quy kiểu POSIX (mặc định)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "diễn dịch các mẫu như là chuỗi cố định"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "sử dụng biểu thức chính quy tương thích Perl"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "hiển thị số của dòng"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "không hiển thị tên tập tin"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "hiển thị các tên tập tin"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "hiển thị tên tập tin tương đối với thư mục đỉnh (top)"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "chỉ hiển thị tên tập tin thay vì những dòng khớp với mẫu"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "đồng nghĩa với --files-with-matches"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "chỉ hiển thị tên cho những tập tin không khớp với mẫu"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "thêm NUL vào sau tên tập tin"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "hiển thị số lượng khớp thay vì những dòng khớp với mẫu"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "tô sáng phần khớp mẫu"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr "hiển thị dòng trống giữa các lần khớp từ các tập tin khác biệt"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr ""
 "hiển thị tên tập tin một lần phía trên các lần khớp từ cùng một tập tin"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "hiển thị <n> dòng nội dung phía trước và sau các lần khớp"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "hiển thị <n> dòng nội dung trước khớp"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "hiển thị <n> dòng nội dung sau khớp"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "dùng <n> tuyến trình làm việc"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "dạng viết tắt của -C SỐ"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "hiển thị dòng vói tên hàm trước các lần khớp"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "hiển thị hàm bao quanh"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "đọc mẫu từ tập-tin"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "match <mẫu>"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "tổ hợp mẫu được chỉ ra với tùy chọn -e"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "đưa ra gợi ý với trạng thái thoát mà không có kết xuất"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr "chỉ hiển thị những cái khớp từ tập tin mà nó khớp toàn bộ các mẫu"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "hiển thị cây phân tích cú pháp cho biểu thức “grep” (tìm kiếm)"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "dàn trang"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "hiển thị các tập tin khớp trong trang giấy"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "cho phép gọi grep(1) (bị bỏ qua bởi lần dịch này)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "chưa chỉ ra mẫu."
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "số tuyến chỉ ra không hợp lệ (%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager chỉ làm việc trên cây-làm-việc"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached hay --untracked không được sử dụng với --no-index."
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr ""
 "--no-index hay --untracked không được sử dụng cùng với các tùy chọn liên "
 "quan đến revs."
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard không thể sử dụng cho nội dung lưu dấu vết."
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "cả hai --cached và các cây phải được chỉ ra."
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6536,36 +6737,36 @@
 "git hash-object [-t <kiểu>] [-w] [--path=<tập-tin> | --no-filters] [--stdin] "
 "[--] <tập-tin>…"
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "kiểu"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "kiểu đối tượng"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "ghi đối tượng vào dữ liệu đối tượng"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "đọc đối tượng từ đầu vào tiêu chuẩn stdin"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "lưu các tập tin mà nó không có các bộ lọc"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr "chỉ cần băm rác ngẫu nhiên để tạo một đối tượng hỏng để mà gỡ lỗi Git"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "xử lý tập tin như là nó đang ở thư mục này"
 
@@ -6616,7 +6817,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "gặp lỗi khi thực thi “%s”: %s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6625,7 +6826,7 @@
 "“%s”: đường dẫn không hỗ trợ bộ trình chiếu man.\n"
 "Hãy cân nhắc đến việc sử dụng “man.<tool>.cmd” để thay thế."
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -6634,61 +6835,61 @@
 "“%s”: cmd (lệnh) hỗ trợ bộ trình chiếu man.\n"
 "Hãy cân nhắc đến việc sử dụng “man.<tool>.path” để thay thế."
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "“%s”: không rõ chương trình xem man."
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "không có trình xem trợ giúp dạng manpage tiếp hợp với yêu cầu"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "không có trình xem trợ giúp dạng info tiếp hợp với yêu cầu"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "Định nghĩa các thuộc tính cho mỗi đường dẫn"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "Mỗi ngày học 20 lệnh Git hay hơn"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "Thuật ngữ chuyên môn Git"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "Chỉ định các tập tin không cần theo dõi"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "Định nghĩa thuộc tính mô-đun-con"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "Chỉ định điểm xét duyệt và vùng cho Git"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "Hướng dẫn cách dùng Git ở mức cơ bản (bản 1.5.1 hay mới hơn)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Tổng quan về luồng công việc khuyến nghị nên dùng với Git."
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "Các chỉ dẫn chung về cách dùng Git là:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "cách dùng: %s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "“git %s” được đặt bí danh thành “%s”"
@@ -6921,58 +7122,53 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "sai pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "số tuyến chỉ ra không hợp lệ (%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "không hỗ trợ đa tuyến, bỏ qua %s"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Không thể mở tập tin gói đã sẵn có “%s”"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "Không thể mở tập tin idx của gói cho “%s”"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "không delta: %d đối tượng"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "chiều dài xích = %d: %lu đối tượng"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "Không thể quay lại cwd"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "%s sai"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin không thể được dùng mà không có --stdin"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "tên tập tin tập tin gói “%s” không được kết thúc bằng đuôi “.pack”"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "dùng tùy chọn --verify mà không đưa ra tên packfile"
 
@@ -7098,24 +7294,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <thẻ>[(=|:)<giá-trị>])…] "
-"[<tập-tin>…]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<thẻ>[(=|:)<giá-trị>])…] [<tập-tin>…]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "sửa các tập tin tại chỗ"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "bộ dò vết cắt bỏ phần trống rỗng"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "bộ dò vết"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "bộ dò vết cần thêm"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "không đưa ra tập tin đầu vào để sửa tại-chỗ"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<các-tùy-chọn>] [<vùng-xem-xét>] [[--] <đường-dẫn>…]"
@@ -7169,220 +7373,224 @@
 msgid "Unknown type: %d"
 msgstr "Không nhận ra kiểu: %d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers không có giá trị cụ thể"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "tên của thư mục kết xuất quá dài"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "Không thể mở tập tin miếng vá: %s"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "Cần chính xác một vùng."
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "Không phải là một vùng."
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "“Cover letter” cần cho định dạng thư"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "in-reply-to điên rồ: %s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<các-tùy-chọn>] [<kể-từ> | <vùng-xem-xét>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "Hai thư mục kết xuất?"
 
-#: builtin/log.c:1210
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "dùng [PATCH n/m] ngay cả với miếng vá đơn"
 
-#: builtin/log.c:1213
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "dùng [VÁ] ngay cả với các miếng vá phức tạp"
 
-#: builtin/log.c:1217
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "hiển thị miếng vá ra đầu ra chuẩn"
 
-#: builtin/log.c:1219
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "tạo bì thư"
 
-#: builtin/log.c:1221
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "sử dụng chỗi dãy số dạng đơn giản cho tên tập-tin xuất ra"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "sfx"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "sử dụng <sfx> thay cho “.patch”"
 
-#: builtin/log.c:1225
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "bắt đầu đánh số miếng vá từ <n> thay vì 1"
 
-#: builtin/log.c:1227
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "đánh dấu chuỗi nối tiếp dạng thứ-N re-roll"
 
-#: builtin/log.c:1229
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "Dùng [<tiền-tố>] thay cho [VÁ]"
 
-#: builtin/log.c:1232
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "lưu các tập tin kết quả trong <t.mục>"
 
-#: builtin/log.c:1235
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "không strip/add [VÁ]"
 
-#: builtin/log.c:1238
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "không kết xuất diff (những khác biệt) nhị phân"
 
-#: builtin/log.c:1240
+#: builtin/log.c:1244
+msgid "output all-zero hash in From header"
+msgstr "xuất mọi mã băm all-zero trong phần đầu From"
+
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "không bao gồm miếng vá khớp với một lần chuyển giao thượng nguồn"
 
-#: builtin/log.c:1242
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "hiển thị định dạng miếng vá thay vì mặc định (miếng vá + thống kê)"
 
-#: builtin/log.c:1244
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "Lời nhắn"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1251
 msgid "header"
 msgstr "đầu đề thư"
 
-#: builtin/log.c:1246
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "thêm đầu đề thư"
 
-#: builtin/log.c:1247 builtin/log.c:1249
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "thư điện tử"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "thêm To: đầu đề thư"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "thêm Cc: đầu đề thư"
 
-#: builtin/log.c:1251
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "thụt lề"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr ""
 "đặt “Địa chỉ gửi” thành <thụ lề> (hoặc thụt lề người commit nếu bỏ quên)"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "message-id"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "dùng thư đầu tiên để trả lời <message-id>"
 
-#: builtin/log.c:1256 builtin/log.c:1259
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "ranh giới"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "đính kèm miếng vá"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "dùng miếng vá làm nội dung"
 
-#: builtin/log.c:1264
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "cho phép luồng lời nhắn, kiểu: “shallow”, “deep”"
 
-#: builtin/log.c:1266
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "chữ ký"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "thêm chữ ký"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "thêm chữ ký từ một tập tin"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "không hiển thị các tên tập tin của miếng vá"
 
-#: builtin/log.c:1359
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n và  -k loại từ lẫn nhau."
 
-#: builtin/log.c:1361
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix và -k xung khắc nhau."
 
-#: builtin/log.c:1369
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "--name-only không hợp lý"
 
-#: builtin/log.c:1371
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "--name-status không hợp lý"
 
-#: builtin/log.c:1373
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "--check không hợp lý"
 
-#: builtin/log.c:1396
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "đầu ra chuẩn, hay thư mục, chọn cái nào?"
 
-#: builtin/log.c:1398
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "Không thể tạo thư mục “%s”"
 
-#: builtin/log.c:1495
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "không thể đọc tập tin chữ ký “%s”"
 
-#: builtin/log.c:1558
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "Gặp lỗi khi tạo các tập tin kết xuất"
 
-#: builtin/log.c:1606
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<thượng-nguồn> [<đầu> [<giới-hạn>]]]"
 
-#: builtin/log.c:1660
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
@@ -7390,106 +7598,156 @@
 "Không tìm thấy nhánh mạng được theo dõi, hãy chỉ định <thượng-nguồn> một "
 "cách thủ công.\n"
 
-#: builtin/log.c:1671 builtin/log.c:1673 builtin/log.c:1685
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "Không hiểu lần chuyển giao %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<các-tùy-chọn>] [<tập-tin>…]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "nhận dạng các trạng thái tập tin với thẻ"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr ""
 "dùng chữ cái viết thường cho các tập tin “assume unchanged” (giả định không "
 "thay đổi)"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "hiển thị các tập tin được nhớ tạm vào đầu ra (mặc định)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "hiển thị các tập tin đã xóa trong kết xuất"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "hiển thị các tập tin đã bị sửa đổi ra kết xuất"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "hiển thị các tập tin khác trong kết xuất"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "hiển thị các tập tin bị bỏ qua trong kết xuất"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "hiển thị tên đối tượng của nội dung được đặt lên bệ phóng ra kết xuất"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "hiển thị các tập tin trên hệ thống tập tin mà nó cần được gỡ bỏ"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "chỉ hiển thị tên của các thư mục “khác”"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "hiển thị kết thúc dòng của các tập tin"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "không hiển thị thư mục rỗng"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "hiển thị các tập tin chưa hòa trộn trong kết xuất"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "hiển thị thông tin resolve-undo"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "bỏ qua những tập tin khớp với một mẫu"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "mẫu loại trừ được đọc từ <tập tin>"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "đọc thêm các mẫu ngoại trừ mỗi thư mục trong <tập tin>"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "thêm loại trừ tiêu chuẩn kiểu git"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "làm cho kết xuất liên quan đến thư mục ở mức cao nhất (gốc) của dự án"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "nếu <tập tin> bất kỳ không ở trong bảng mục lục, xử lý nó như một lỗi"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "tree-ish"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr ""
 "giả định rằng các đường dẫn đã bị gỡ bỏ kể từ <tree-ish> nay vẫn hiện diện"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "hiển thị dữ liệu gỡ lỗi"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<kho> [<các tham chiếu>…]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "không hiển thị URL máy chủ"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "thực thi"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "đường dẫn của git-upload-pack trên máy chủ"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "giới hạn tới các thẻ"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "giới hạn cho các đầu"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "không hiển thị thẻ bị peel (gọt bỏ)"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "lấy url.<base>.insteadOf vào trong tài khoản"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "thoát với mã là 2 nếu không tìm thấy tham chiếu nào khớp"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "hiển thị tham chiếu nằm dưới để thêm vào đối tượng được chỉ bởi nó"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<các-tùy-chọn>] <tree-ish> [<đường-dẫn>…]"
@@ -7557,31 +7815,31 @@
 msgid "Available custom strategies are:"
 msgstr "Các chiến lược tùy chỉnh sẵn sàng là:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "không hiển thị thống kê khác biệt tại cuối của lần hòa trộn"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "hiển thị thống kê khác biệt tại cuối của hòa trộn"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(đồng nghĩa với --stat)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "thêm (ít nhất <n>) mục từ shortlog cho ghi chú chuyển giao hòa trộn"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "tạo một lần chuyển giao đưon thay vì thực hiện việc hòa trộn"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "thực hiện chuyển giao nếu hòa trộn thành công (mặc định)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "sửa chú thích trước khi chuyển giao"
 
@@ -7589,7 +7847,7 @@
 msgid "allow fast-forward (default)"
 msgstr "cho phép chuyển-tiếp-nhanh (mặc định)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "bỏ qua nếu chuyển-tiếp-nhanh không thể được"
 
@@ -7597,20 +7855,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "Thẩm tra xem lần chuyển giao có tên đó có chữ ký GPG hợp lệ hay không"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "chiến lược"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "chiến lược hòa trộn sẽ dùng"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "tùy_chọn=giá_trị"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "tùy chọn cho chiến lược hòa trộn đã chọn"
 
@@ -7650,8 +7908,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "Squash commit -- không cập nhật HEAD\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "Không thể ghi vào “%s”"
@@ -7669,43 +7927,43 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "Không có lời chú thích hòa trộn -- nên không cập nhật HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "“%s” không chỉ đến một lần chuyển giao nào cả"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "Chuỗi branch.%s.mergeoptions sai: %s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "Không cầm nắm gì ngoài hai head hòa trộn"
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Không hiểu tùy chọn cho merge-recursive: -X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "không thể ghi %s"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "Không thể đọc từ “%s”"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
 "Vẫn chưa hòa trộn các lần chuyển giao; sử dụng lệnh “git commit” để hoàn tất "
 "việc hòa trộn.\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7723,55 +7981,55 @@
 "rỗng\n"
 "sẽ hủy bỏ lần chuyển giao.\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Chú thích của lần commit (chuyển giao) bị trống rỗng."
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Tuyệt vời.\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 "Việc tự động hòa trộn gặp lỗi; hãy sửa các xung đột sau đó chuyển giao kết "
 "quả.\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "%s không phải là một lần commit (chuyển giao)"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "không phải nhánh hiện hành"
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "Không có máy chủ cho nhánh hiện hành."
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "Không có thượng nguồn mặc định được định nghĩa cho nhánh hiện hành."
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "Không nhánh mạng theo dõi cho %s từ %s"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "không thể đóng “%s”"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr ""
 "Ở đây không có lần hòa trộn nào được hủy bỏ giữa chừng cả (thiếu MERGE_HEAD)."
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7779,7 +8037,7 @@
 "Bạn chưa kết thúc việc hòa trộn (MERGE_HEAD vẫn tồn tại).\n"
 "Hãy chuyển giao các thay đổi trước khi bạn có thể hòa trộn."
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7787,103 +8045,103 @@
 "Bạn chưa kết thúc việc cherry-pick (CHERRY_PICK_HEAD vẫn tồn tại).\n"
 "Hãy chuyển giao các thay đổi trước khi bạn có thể hòa trộn."
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "Bạn chưa kết thúc việc cherry-pick (CHERRY_PICK_HEAD vẫn tồn tại)."
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "Bạn không thể kết hợp --squash với --no-ff."
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "Không chỉ ra lần chuyển giao và merge.defaultToUpstream chưa được đặt."
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr "Squash commit vào một head trống rỗng vẫn chưa được hỗ trợ"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr ""
 "Chuyển giao không-chuyển-tiếp-nhanh không hợp lý ở trong một head trống rỗng"
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - không phải là một số thứ chúng tôi có thể hòa trộn"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr ""
 "Không thể hòa trộn một cách đúng đắn một lần chuyển giao vào một head rỗng"
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr ""
 "Lần chuyển giao %s có một chữ ký GPG không đáng tin, được cho là bởi %s."
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "Lần chuyển giao %s có một chữ ký GPG sai, được cho là bởi %s."
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "Lần chuyển giao %s không có chữ ký GPG."
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "Lần chuyển giao %s có một chữ ký GPG tốt bởi %s\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Đang cập nhật %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Đang thử hòa trộn kiểu “trivial in-index”…\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "Không.\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "Thực hiện lệnh chuyển-tiếp-nhanh là không thể được, đang bỏ qua."
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Đang tua lại cây thành thời xa xưa…\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Đang thử chiến lược hòa trộn %s…\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Không có chiến lược hòa trộn nào được nắm giữ (handle) sự hòa trộn.\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "Hòa trộn với chiến lược %s gặp lỗi.\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Sử dụng %s để chuẩn bị giải quyết bằng tay.\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
@@ -7970,19 +8228,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "đặt nhãn cho tập-tin-1/tập-tin-gốc/tập-tin-2"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "đầu vào được chấm dứt bởi NUL"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "cho phép thiếu đối tượng"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "cho phép tạo nhiều hơn một cây"
 
@@ -7990,91 +8248,91 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<các-tùy-chọn>] <nguồn>… <đích>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "Thư mục “%s” có ở trong chỉ mục mà không có mô-đun con?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr ""
 "Hãy đưa các thay đổi của bạn vào .gitmodules hay tạm cất chúng đi để xử lý"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s trong bảng mục lục"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "ép buộc di chuyển hay đổi tên thậm chí cả khi đích đã tồn tại"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "bỏ qua các lỗi liên quan đến di chuyển, đổi tên"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "có đích “%s” nhưng đây không phải là một thư mục"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "Đang kiểm tra việc đổi tên của “%s” thành “%s”\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "nguồn sai"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "không thể di chuyển một thư mục vào trong chính nó được"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "không di chuyển được thư mục thông qua tập tin"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "thư mục nguồn là trống rỗng"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "không nằm dưới sự quản lý mã nguồn"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "đích đã tồn tại sẵn rồi"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "đang ghi đè lên “%s”"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "Không thể ghi đè"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "Nhiều nguồn cho cùng một đích"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "thư mục đích không tồn tại"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s, nguồn=%s, đích=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "Đổi tên %s thành %s\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "gặp lỗi khi đổi tên “%s”"
@@ -8274,9 +8532,9 @@
 msgstr "không thể mở hay đọc “%s”"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Gặp lỗi khi phân giải “%s” như là một tham chiếu hợp lệ."
@@ -8291,42 +8549,42 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "không thể đọc dữ liệu ghi chú từ đối tượng không-blob “%s”."
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "quá nhiều đối số"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "không tìm thấy ghi chú cho đối tượng %s."
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "nội dung ghi chú (note) nằm trong một chuỗi"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "nội dung ghi chú (note) nằm trong một tập tin"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "dùng lại nhưng có sửa chữa đối tượng note đã chỉ ra"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "dùng lại đối tượng ghi chú (note) đã chỉ ra"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "cho lưu trữ ghi chú trống rỗng"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "thay thế ghi chú trước"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8335,29 +8593,29 @@
 "Không thể thêm các ghi chú. Đã tìm thấy các ghi chú đã có sẵn cho đối tượng "
 "%s. Sử dụng tùy chọn “-f” để ghi đè lên các ghi chú cũ"
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Đang ghi đè lên ghi chú cũ cho đối tượng %s\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Đang gỡ bỏ ghi chú (note) cho đối tượng %s\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "đọc các đối tượng từ đầu vào tiêu chuẩn"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "tải cấu hình chép lại cho <lệnh> (ngầm định là --stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "quá ít đối số"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -8366,12 +8624,12 @@
 "Không thể sao chép các ghi chú. Đã tìm thấy các ghi chú đã có sẵn cho đối "
 "tượng %s. Sử dụng tùy chọn “-f” để ghi đè lên các ghi chú cũ"
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Thiếu ghi chú trên đối tượng nguồn %s. Không thể sao chép."
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8380,15 +8638,15 @@
 "Các tùy chọn -m/-F/-c/-C đã cổ không còn dùng nữa cho lệnh con “edit”.\n"
 "Xin hãy sử dụng lệnh sau để thay thế: “git notes add -f -m/-F/-c/-C”.\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "Tùy chọn chung"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "Tùy chọn về hòa trộn"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
@@ -8396,51 +8654,51 @@
 "phân giải các xung đột “notes” sử dụng chiến lược đã đưa ra (manual/ours/"
 "theirs/union/cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "Chuyển giao các note chưa được hòa trộn"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr ""
 "các note cuối cùng được hòa trộn bởi các note chưa hòa trộn của lần chuyển "
 "giao"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "Hủy bỏ phân giải ghi chú (note) hòa trộn"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "bỏ qua hòa trộn các ghi chú (note)"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "Các ghi chú hòa trộn vào %s đã sẵn trong quá trình xử lý tại %s"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "Đối tượng %s không có ghi chú (note)\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "cố gắng gỡ bỏ một note chưa từng tồn tại không phải là một lỗi"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "đọc tên đối tượng từ thiết bị nhập chuẩn"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "notes-ref"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "dùng “notes” từ <notes-ref>"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "Không hiểu câu lệnh con: %s"
@@ -8464,166 +8722,166 @@
 msgid "deflate error (%d)"
 msgstr "lỗi giải nén (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "Đang ghi lại các đối tượng"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "tắt ghi bitmap, như vậy một số đối tượng sẽ không được đóng gói"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "Đang nén các đối tượng"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "phiên bản mục lục không được hỗ trợ %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "phiên bản mục lục sai “%s”"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "không hiển thị bộ đo tiến trình"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "hiển thị bộ đo tiến trình"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "hiển thị bộ đo tiến triển trong suốt pha ghi đối tượng"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "tương tự --all-progress khi bộ đo tiến trình được xuất hiện"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "phiên bản[,offset]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr "ghi tập tin bảng mục lục gói (pack) ở phiên bản định dạng idx đã cho"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "kcíh thước tối đa cho tập tin gói được tạo"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "bỏ qua các đối tượng vay mượn từ kho đối tượng thay thế"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "bỏ qua các đối tượng đóng gói"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "giới hạn cửa sổ đóng gói theo đối tượng"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr "giới hạn cửa sổ đóng gói theo bộ nhớ cộng thêm với giới hạn đối tượng"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "độ dài tối đa của chuỗi móc xích “delta” được phép trong gói kết quả"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "dùng lại các delta sẵn có"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "dùng lại các đối tượng sẵn có"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "dùng các đối tượng OFS_DELTA"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr "sử dụng các tuyến trình khi tìm kiếm cho các mẫu khớp delta tốt nhất"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "không thể tạo kết xuất gói trống rỗng"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr " đọc tham số “revision” từ thiết bị nhập chuẩn"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "giới hạn các đối tượng thành những cái mà chúng vẫn chưa được đóng gói"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "bao gồm các đối tượng có thể đọc được từ bất kỳ tham chiếu nào"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr "bao gồm các đối tượng được tham chiếu bởi các mục reflog"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "bao gồm các đối tượng được tham chiếu bởi mục lục"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "xuất gói ra đầu ra tiêu chuẩn"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "bao gồm các đối tượng tham chiếu đến các đối tượng được đóng gói"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "giữ lại các đối tượng không thể đọc được"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "thời-gian"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr ""
 "xả nén (gỡ khỏi gói) các đối tượng không thể đọc được mới hơn <thời-gian>"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "tạo gói nhẹ"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "tạo gói để phù hợp cho lấy về nông (shallow)"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "bỏ qua các gói mà nó có tập tin .keep đi kèm"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "mức nén gói"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "không ẩn các lần chuyển giao bởi “grafts”"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "dùng mục lục ánh xạ nếu có thể được để nâng cao tốc độ đếm đối tượng"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "ghi một mục lục ánh xạ cùng với mục lục gói"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "Đang đếm các đối tượng"
 
@@ -8667,50 +8925,54 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "không thể tỉa bớt trong một kho đối_tượng_vĩ_đại"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<các-tùy-chọn>] [<kho-chứa> [<refspec>…]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "Các tùy chọn liên quan đến hòa trộn"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "các thay đổi hợp nhất bằng cải tổ thay vì hòa trộn"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "cho phép chuyển-tiếp-nhanh"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "thẩm tra xem lần chuyển giao có tên đó có chữ ký GPG hợp lệ hay không"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "Các tùy chọn liên quan đến lệnh lấy về"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "số lượng mô-đun-con được đẩy lên đồng thời"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "Giá trị không hợp lệ cho pull.ff: %s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr ""
 "Không thể pull với cải tổ: Bạn có các thay đổi chưa được đưa lên bệ phóng."
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr ""
 "Thêm vào đó, bảng mục lục của bạn có chứa các thay đổi chưa được chuyển giao."
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr "Không thể pull với cải tổ: Bạn có các thay đổi chưa được chuyển giao."
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
@@ -8718,14 +8980,14 @@
 "Ở đây không có ứng cử nào để cải tổ lại trong số các tham chiếu mà bạn vừa "
 "lấy về."
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr ""
 "Ở đây không có ứng cử nào để hòa trộn trong số các tham chiếu mà bạn vừa lấy "
 "về."
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
@@ -8734,7 +8996,7 @@
 "tự\n"
 "đại diện mà nó lại không khớp trên điểm cuối máy phục vụ."
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8746,27 +9008,27 @@
 "theo mặc định cho nhánh hiện tại của bạn, bạn phải chỉ định\n"
 "một nhánh trên dòng lệnh."
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "Hiện tại bạn chẳng ở nhánh nào cả."
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "Vui lòng chỉ định nhánh nào bạn muốn cải tổ lại."
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "Vui lòng chỉ định nhánh nào bạn muốn hòa trộn vào."
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "Xem git-pull(1) để biết thêm chi tiết."
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "Ở đây không có thông tin theo dõi cho nhánh hiện hành."
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8779,7 +9041,7 @@
 "    git branch --set-upstream-to=%s/<nhánh> %s\n"
 "\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8788,13 +9050,13 @@
 "Các đặc tả cấu hình của bạn để hòa trộn với tham chiếu “%s”\n"
 "từ máy dịch vụ, nhưng không có nhánh nào như thế được lấy về."
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr ""
 "Đang cập nhật một nhánh chưa được sinh ra với các thay đổi được thêm vào "
 "bảng mục lục."
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8805,7 +9067,7 @@
 "đang chuyển-tiếp-nhanh cây làm việc của bạn từ\n"
 "lần chuyển giaot %s."
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8823,27 +9085,27 @@
 "$ git reset --hard\n"
 "để khôi phục lại."
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "Không thể hòa trộn nhiều nhánh vào trong một head trống rỗng."
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "Không thể thực hiện lệnh rebase (cải tổ) trên nhiều nhánh."
 
-#: builtin/push.c:15
+#: builtin/push.c:16
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<các-tùy-chọn>] [<kho-chứa> [<refspec>…]]"
 
-#: builtin/push.c:86
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "dùng tốc ký thẻ không có <thẻ>"
 
-#: builtin/push.c:96
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete chỉ chấp nhận các tên tham chiếu dạng thường"
 
-#: builtin/push.c:140
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -8852,7 +9114,7 @@
 "Để chọn mỗi tùy chọn một cách cố định, xem push.default trong “git help "
 "config”."
 
-#: builtin/push.c:143
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8877,7 +9139,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:158
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8892,7 +9154,7 @@
 "\n"
 "    git push %s HEAD:<tên-của-nhánh-máy-chủ>\n"
 
-#: builtin/push.c:172
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8906,12 +9168,12 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:180
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "Nhánh hiện tại %s có nhiều nhánh thượng nguồn, từ chối push."
 
-#: builtin/push.c:183
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8923,60 +9185,14 @@
 "nhánh hiện tại “%s” của bạn, mà không báo cho tôi biết là cái gì được push\n"
 "để cập nhật nhánh máy chủ nào."
 
-#: builtin/push.c:206
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"biến push.default chưa được đặt; giá trị ngầm định của nó\n"
-"đã được thay đổi trong Git 2.0 từ “matching” thành “simple”.\n"
-"Để không hiển thị nhắc nhở này và duy trì cách xử lý cũ, hãy chạy lệnh:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"Để không hiển thị nhắc nhở này và áp dụng cách ứng xử mới, hãy chạy lệnh:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"Khi push.default được đặt thành “matching”, git sẽ đẩy các nhánh nội bộ\n"
-"lên các nhánh trên máy chủ, cái mà đã sẵn có và cùng tên.\n"
-"\n"
-"Trong 2.0, Git sẽ mặc định duy trì các ứng xử “simple”,\n"
-"cái này chỉ đẩy những nhánh hiện hành lên các nhánh tương ứng\n"
-"trên máy chủ cái mà lệnh “git pull” dùng để cập nhật nhánh hiện tại.\n"
-"\n"
-"Xem “git help config” và tìm đến “push.default” để có thêm thông tin.\n"
-"(chế độ “simple” được bắt đầu sử dụng từ Git 1.7.11. Sử dụng chế độ tương "
-"tự\n"
-"“current” thay vì “simple” nếu bạn thỉnh thoảng phải sử dụng bản Git cũ)"
-
-#: builtin/push.c:273
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr ""
 "Bạn đã không chỉ ra một refspecs nào để đẩy lên, và push.default là \"không "
 "là gì cả\"."
 
-#: builtin/push.c:280
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8989,7 +9205,7 @@
 "Xem “Note about fast-forwards” trong “git push --help” để có thông tin chi "
 "tiết."
 
-#: builtin/push.c:286
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -9003,7 +9219,7 @@
 "Xem “Note about fast-forwards” trong “git push --help” để có thông tin chi "
 "tiết."
 
-#: builtin/push.c:292
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -9018,11 +9234,11 @@
 "Xem “Note about fast-forwards” trong “git push --help” để có thông tin chi "
 "tiết."
 
-#: builtin/push.c:299
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr "Việc cập nhật bị từ chối bởi vì thẻ đã sẵn có từ trước trên máy chủ."
 
-#: builtin/push.c:302
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -9034,22 +9250,22 @@
 "đối tượng\n"
 "không phải chuyển giao, mà không sử dụng tùy chọn “--force”.\n"
 
-#: builtin/push.c:361
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "Đang đẩy lên %s\n"
 
-#: builtin/push.c:365
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "gặp lỗi khi đẩy tới một số tham chiếu đến “%s”"
 
-#: builtin/push.c:395
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "repository (kho) sai “%s”"
 
-#: builtin/push.c:396
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -9070,100 +9286,100 @@
 "\n"
 "    git push <tên>\n"
 
-#: builtin/push.c:411
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all và --tags xung khắc nhau"
 
-#: builtin/push.c:412
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all không thể được tổ hợp cùng với đặc tả đường dẫn"
 
-#: builtin/push.c:417
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror và --tags xung khắc nhau"
 
-#: builtin/push.c:418
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror không thể được tổ hợp cùng với đặc tả đường dẫn"
 
-#: builtin/push.c:423
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all và --mirror xung khắc nhau"
 
-#: builtin/push.c:539
+#: builtin/push.c:505
 msgid "repository"
 msgstr "kho"
 
-#: builtin/push.c:540 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "đẩy tất cả các tham chiếu"
 
-#: builtin/push.c:541 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "mirror tất cả các tham chiếu"
 
-#: builtin/push.c:543
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "xóa các tham chiếu"
 
-#: builtin/push.c:544
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "đẩy các thẻ (không dùng cùng với --all hay --mirror)"
 
-#: builtin/push.c:547 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "ép buộc cập nhật"
 
-#: builtin/push.c:549 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "tên-tham-chiếu>:<cần"
 
-#: builtin/push.c:550 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "yêu cầu giá-trị cũ của tham chiếu thì là giá-trị này"
 
-#: builtin/push.c:553
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "điều khiển việc đẩy lên (push) đệ qui của mô-đun-con"
 
-#: builtin/push.c:555 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "tạo gói nhẹ"
 
-#: builtin/push.c:556 builtin/push.c:557 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "chương trình nhận gói"
 
-#: builtin/push.c:558
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "đặt thượng nguồn cho git pull/status"
 
-#: builtin/push.c:561
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "xén tỉa những tham chiếu bị gỡ bỏ"
 
-#: builtin/push.c:563
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "vòng qua móc tiền-đẩy (pre-push)"
 
-#: builtin/push.c:564
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "push phần bị thiếu nhưng các thẻ lại thích hợp"
 
-#: builtin/push.c:567 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "ký lần đẩy dùng GPG"
 
-#: builtin/push.c:569 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "yêu cầu giao dịch hạt nhân bên phía máy chủ"
 
-#: builtin/push.c:579
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete là xung khắc với các tùy chọn --all, --mirror và --tags"
 
-#: builtin/push.c:581
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete không hợp lý nếu không có bất kỳ tham chiếu nào"
 
@@ -9243,12 +9459,12 @@
 msgid "debug unpack-trees"
 msgstr "gỡ lỗi “unpack-trees”"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "“%s” dành cho “%s” không phải là dấu vết thời gian hợp lệ"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "“%s” không phải là dấu thời gian hợp lệ"
@@ -9389,55 +9605,45 @@
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr "chỉ định những nhánh để theo dõi chỉ hợp lý với các “fetch mirror”"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "máy chủ %s đã tồn tại rồi."
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "“%s” không phải tên máy chủ hợp lệ"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "Không thể cài đặt nhánh master “%s”"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "Không thể lấy ánh xạ (map) fetch cho đặc tả tham chiếu %s"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(khớp)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(xóa)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "Không thể nối thêm “%s” vào “%s”"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "Không có máy chủ nào như thế: %s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "Không thể đổi tên phần của cấu hình từ “%s” thành “%s”"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "Không thể gỡ bỏ phần cấu hình “%s”"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9448,27 +9654,17 @@
 "\t%s\n"
 "\tXin hãy cập nhật phần cấu hình một cách thủ công nếu thấy cần thiết."
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "Không thể nối thêm “%s”"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "Không thể đặt “%s”"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "gặp lỗi khi xóa “%s”"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "gặp lỗi khi tạo “%s”"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9480,272 +9676,277 @@
 "đi;\n"
 "để xóa đi, sử dụng:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "Không thể gỡ bỏ phần cấu hình “%s”"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " mới (lần lấy về tiếp theo sẽ lưu trong remotes/%s)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " được theo dõi"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " cũ rích (dùng “git remote prune” để gỡ bỏ)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "branch.%s.merge không hợp lệ; không thể cải tổ về phía > 1 nhánh"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "thực hiện rebase trên máy chủ %s"
+msgid "rebases interactively onto remote %s"
+msgstr "thực hiện rebase một cách tương tác trên máy chủ %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " hòa trộn với máy chủ %s"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    và với máy chủ"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "hòa trộn với máy chủ %s"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   và với máy chủ"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "tạo"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "xóa"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "đã cập nhật"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "có-thể-chuyển-tiếp-nhanh"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "dữ liệu nội bộ đã cũ"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s ép buộc thành %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s đẩy lên thành %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s ép buộc thành %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s đẩy lên thành %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "không truy vấn các máy chủ"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* máy chủ %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  URL để lấy về: %s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(không có URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  URL để đẩy lên: %s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  Nhánh HEAD: %s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr "  nhánh HEAD (HEAD máy chủ chưa rõ ràng, có lẽ là một trong số sau):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
 msgstr[0] "  Những nhánh trên máy chủ:%s"
 
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr " (trạng thái không được yêu cầu)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  Những nhánh nội bộ đã được cấu hình cho lệnh “git pull”:"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  refs nội bộ sẽ được phản chiếu bởi lệnh “git push”"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  Những tham chiếu nội bộ được cấu hình cho lệnh “git push”%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "đặt refs/remotes/<tên>/HEAD cho phù hợp với máy chủ"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "xóa refs/remotes/<tên>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "Không thể xác định được HEAD máy chủ"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr "Nhiều nhánh HEAD máy chủ. Hãy chọn rõ ràng một:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "Không thể xóa bỏ %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "Không phải là tham chiếu hợp lệ: %s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "Không thể cài đặt %s"
 
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s sẽ trở thành không đầu (không được quản lý)!"
 
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s đã trở thành không đầu (không được quản lý)!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "Đang xén bớt %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL: %s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [nên xén bớt] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [đã bị xén] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "cắt máy chủ sau khi lấy về"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "Không có máy chủ nào có tên “%s”"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "thêm nhánh"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "chưa chỉ ra máy chủ nào"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "truy vấn đẩy URL thay vì lấy"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "trả về mọi URL"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "không có URL nào được cấu hình cho nhánh “%s”"
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "đẩy các “URL” bằng tay"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "thêm URL"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "xóa URLs"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete không hợp lý"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "Kiểu mẫu URL cũ không hợp lệ: %s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "Không tìm thấy URL như vậy: %s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "Sẽ không xóa những địa chỉ URL không-push"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "chi tiết; phải được đặt trước một lệnh-con"
 
@@ -10049,7 +10250,7 @@
 msgid "Could not write new index file."
 msgstr "Không thể ghi tập tin lưu bảng mục lục mới."
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list không hỗ trợ hiển thị các ghi chú"
 
@@ -10297,28 +10498,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<các-tùy-chọn>] [<vùng-xét-duyệt>] [[--] [<đường-dẫn>…]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "Thiếu tên tác giả: %s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "sắp xếp kết xuất tuân theo số lượng chuyển giao trên mỗi tác giả"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "Chặn mọi mô tả lần chuyển giao, chỉ đưa ra số lượng lần chuyển giao"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "Hiển thị thư điện tử cho từng tác giả"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "Ngắt dòng khi quá dài"
 
@@ -10463,45 +10659,45 @@
 msgstr "giữ và xóa bỏ mọi dòng bắt đầu bằng ký tự ghi chú"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
-msgstr "treo trước ký tự ghi chú và để trắng cho từng dòng"
+msgid "prepend comment character and space to each line"
+msgstr "treo trước ký tự ghi chú và ký tự khoảng trắng cho từng dòng"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "điểm neo thay thế cho các đường dẫn tương đối"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<đường/dẫn>] [<đường/dẫn>…]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <đường/dẫn>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr ""
 "Không tìm thấy ánh xạ (mapping) mô-đun-con trong .gitmodules cho đường dẫn "
 "“%s”"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "nhân bản mô-đun-con mới vào chỗ nào"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "tên của mô-đun-con mới"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "url nơi mà nhân bản mô-đun-con từ đó"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "chiều sâu lịch sử khi tạo bản sao"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10509,38 +10705,38 @@
 "git submodule--helper clone [--prefix=<đường/dẫn>] [--quiet] [--reference "
 "<kho>] [--name <tên>] [--url <url>][--depth <đường/dẫn>] [--] [<đường/dẫn>…]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "không thể tạo thư mục “%s”"
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "Nhân bản “%s” vào đường dẫn mô-đun-con “%s” gặp lỗi"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "không thể mở tập tin “%s”"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "không thể đóng tập tin %s"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "không thể lấy thư mục mô-đun-con cho “%s”"
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr ""
 "lỗi nghiêm trọng: lệnh con submodule--helper phải được gói với một lệnh con"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr "lỗi nghiêm trọng: “%s” không phải là lệnh con submodule--helper hợp lệ"
@@ -10786,194 +10982,207 @@
 msgid "Unpacking objects"
 msgstr "Đang giải nén các đối tượng"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "tạo thư mục \"%s\" gặp lỗi"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "gặp lỗi khi lấy thông tin thống kê về %s"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "gặp lỗi khi tạo tập tin %s"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "gặp lỗi khi xóa tập tin %s"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "gặp lỗi khi xóa thư mục %s"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "Đang thử"
+msgid "Testing mtime in '%s' "
+msgstr "Đang kiểm thử mtime trong “%s”"
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr "thông tin thống kê thư mục không thay đổi sau khi thêm tập tin mới"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr "thông tin thống kê thư mục không thay đổi sau khi thêm thư mục mới"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr "thông tin thống kê thư mục thay đổi sau khi cập nhật tập tin"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr ""
 "thông tin thống kê thư mục thay đổi sau khi thêm tập tin mới vào trong thư "
 "mục con"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr "thông tin thống kê thư mục không thay đổi sau khi xóa tập tin"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr "thông tin thống kê thư mục không thay đổi sau khi xóa thư mục"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " Đồng ý"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<các-tùy-chọn>] [--] [<tập-tin>…]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr "tiếp tục làm mới ngay cả khi bảng mục lục cần được cập nhật"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "refresh: lờ đi mô-đun-con"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "không bỏ qua các tập tin mới tạo"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "để các tập tin thay thế các thư mục và “vice-versa”"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "thông báo các tập-tin thiếu trong thư-mục làm việc"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr ""
 "làm tươi mới thậm chí khi bảng mục lục chứa các mục tin chưa được hòa trộn"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "lấy lại thông tin thống kê"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "giống --refresh, nhưng bỏ qua các cài đặt “assume-unchanged”"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<chế_độ>,<đối_tượng>,<đường_dẫn>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "thêm các tập tin đã chỉ ra vào bảng mục lục"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "ghi đè lên bít thi hành của các tập tin được liệt kê"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "Đánh dấu các tập tin là \"không thay đổi\""
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "xóa bít assumed-unchanged (giả định là không thay đổi)"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "đánh dấu các tập tin là “chỉ-đọc”"
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "xóa bít skip-worktree"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr ""
 "chỉ thêm vào bảng mục lục; không thêm nội dung vào cơ sở dữ liệu đối tượng"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr ""
 "gỡ bỏ các đường dẫn được đặt tên thậm chí cả khi nó hiện diện trong thư mục "
 "làm việc"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "với tùy chọn --stdin: các dòng đầu vào được chấm dứt bởi ký tự null"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "đọc danh sách đường dẫn cần cập nhật từ đầu vào tiêu chuẩn"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "không thể đọc các mục từ đầu vào tiêu chuẩn vào bảng mục lục"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "phục hồi các trạng thái #2 và #3 cho các đường dẫn được liệt kê"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "chỉ cập nhật các mục tin mà nó khác biệt so với HEAD"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "bỏ qua các tập-tin thiếu trong thư-mục làm việc"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "báo cáo các thao tác ra thiết bị xuất chuẩn"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(cho “porcelains”) quên các xung đột chưa được giải quyết đã ghi"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "ghi mục lục ở định dạng này"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "bật/tắt chia cắt bảng mục lục"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "bật/tắt bộ đệm không theo vết"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "kiểm tra xem hệ thống tập tin có hỗ trợ đệm không theo dõi hay không"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr "bật bộ đệm không theo vết mà không kiểm tra hệ thống tập tin"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "Nhớ đệm không theo vết bị tắt"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "Nhớ đệm không theo vết được bật cho “%s”"
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<các-tùy-chọn>] -d <refname> [<biến-cũ>]"
@@ -11089,33 +11298,33 @@
 msgid "'%s' already exists"
 msgstr "“%s” đã có từ trước rồi"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "không thể tạo thư mục của “%s”"
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "Đang chuẩn bị %s (định danh %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "lấy ra <nhánh> ngay cả khi nó đã được lấy ra ở cây làm việc khác"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "tạo nhánh mới"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "tạo hay đặt lại một nhánh"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "rời bỏ HEAD tại lần chuyển giao theo tên"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "Các tùy chọn -b, -B, và --detach loại từ lẫn nhau"
 
@@ -11135,7 +11344,7 @@
 msgid "only useful for debugging"
 msgstr "chỉ hữu ích khi cần gỡ lỗi"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "in thông tin gỡ lỗi ra đầu ra lỗi tiêu chuẩn"
 
@@ -11149,6 +11358,10 @@
 "hướng dẫn về khái niệm. Xem “git help <lệnh>” hay “git help <khái-niệm>”\n"
 "để xem các đặc tả cho lệnh hay khái niệm cụ thể."
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "Chốt khóa công không được hỗ trợ với cURL < 7.44.0"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "bắt đầu một vùng làm việc (xem thêm: git help tutorial)"
@@ -11232,9 +11445,8 @@
 msgstr "Cập nhật th.chiếu máy chủ cùng với các đối tượng liên quan đến nó"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr ""
-"Chuyển tiếp những lần chuyển giao nội bộ tới head thượng nguồn đã cập nhật"
+msgid "Reapply commits on top of another base tip"
+msgstr "Thu hoạch các lần chuyển giao trên đỉnh của đầu mút cơ sở khác"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11950,7 +12162,7 @@
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr "Mô-đun-con “$name” ($url) được bỏ đăng ký cho đường dẫn “$displaypath”"
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -11959,55 +12171,55 @@
 "Đường dẫn mô-đun-con “$displaypath” chưa được khởi tạo.\n"
 "Có lẽ bạn muốn sử dụng lệnh “update --init”?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr ""
 "Không tìm thấy điểm xét duyệt hiện hành trong đường dẫn mô-đun-con "
 "“$displaypath”"
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "Không thể lấy về trong đường dẫn mô-đun-con “$sm_path”"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "Không thể lấy về trong đường dẫn mô-đun-con “$displaypath”"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "Không thể lấy ra “$sha1” trong đường dẫn mô-đun-con “$displaypath”"
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "Đường dẫn mô-đun-con “$displaypath”: đã checkout “$sha1”"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "Không thể cải tổ “$sha1” trong đường dẫn mô-đun-con “$displaypath”"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "Đường dẫn mô-đun-con “$displaypath”: được rebase vào trong “$sha1”"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr ""
 "Không thể hòa trộn (merge) “$sha1” trong đường dẫn mô-đun-con “$displaypath”"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "Đường dẫn mô-đun-con “$displaypath”: được hòa trộn vào “$sha1”"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
@@ -12015,56 +12227,133 @@
 "Thực hiện không thành công lệnh “$command $sha1” trong đường dẫn mô-đun-con "
 "“$prefix$sm_path”"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "Đường dẫn mô-đun-con “$prefix$sm_path”: “$command $sha1”"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Gặp lỗi khi đệ quy vào trong đường dẫn mô-đun-con “$displaypath”"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "Tùy chọn --cached không thể dùng cùng với tùy chọn --files"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "chế độ không như mong chờ $mod_dst"
 
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Cảnh báo: $display_name không chứa lần chuyển giao $sha1_src"
 
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Cảnh báo: $display_name không chứa lần chuyển giao $sha1_dst"
 
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr ""
 "  Cảnh báo: $display_name không chứa những lần chuyển giao $sha1_src và "
 "$sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "blob"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "Gặp lỗi khi đệ quy vào trong đường dẫn mô-đun-con “$sm_path”"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "Url Mô-đun-con đồng bộ hóa cho “$displaypath”"
 
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr ""
+#~ "Chuyển tiếp những lần chuyển giao nội bộ tới head thượng nguồn đã cập nhật"
+
+#~ msgid "unable to parse format"
+#~ msgstr "không thể phân tích định dạng"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "định dạng không đúng chỗ căn chỉnh:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "Không thể đặt “core.worktree” trong “%s”."
+
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "biến push.default chưa được đặt; giá trị ngầm định của nó\n"
+#~ "đã được thay đổi trong Git 2.0 từ “matching” thành “simple”.\n"
+#~ "Để không hiển thị nhắc nhở này và duy trì cách xử lý cũ, hãy chạy lệnh:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "Để không hiển thị nhắc nhở này và áp dụng cách ứng xử mới, hãy chạy "
+#~ "lệnh:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "Khi push.default được đặt thành “matching”, git sẽ đẩy các nhánh nội bộ\n"
+#~ "lên các nhánh trên máy chủ, cái mà đã sẵn có và cùng tên.\n"
+#~ "\n"
+#~ "Trong 2.0, Git sẽ mặc định duy trì các ứng xử “simple”,\n"
+#~ "cái này chỉ đẩy những nhánh hiện hành lên các nhánh tương ứng\n"
+#~ "trên máy chủ cái mà lệnh “git pull” dùng để cập nhật nhánh hiện tại.\n"
+#~ "\n"
+#~ "Xem “git help config” và tìm đến “push.default” để có thêm thông tin.\n"
+#~ "(chế độ “simple” được bắt đầu sử dụng từ Git 1.7.11. Sử dụng chế độ tương "
+#~ "tự\n"
+#~ "“current” thay vì “simple” nếu bạn thỉnh thoảng phải sử dụng bản Git cũ)"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "Không thể nối thêm “%s”"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "Không thể đặt “%s”"
+
+#~ msgid "unable to look up current user in the passwd file: %s"
+#~ msgstr "không tìm thấy người dùng hiện tại trong tập tin passwd: %s"
+
+#~ msgid "no such user"
+#~ msgstr "không có người dùng như vậy"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "Thiếu tên tác giả: %s"
+
+#~ msgid "Testing "
+#~ msgstr "Đang thử"
+
 #~ msgid "branch '%s' does not point at a commit"
 #~ msgstr "nhánh “%s” không chỉ đến một lần chuyển giao nào cả"
 
@@ -12129,9 +12418,6 @@
 #~ msgid "unable to parse value '%s' for option %s"
 #~ msgstr "không thể phân tích giá trị “%s” cho tùy chọn %s"
 
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "không thể phân giải HEAD"
-
 #~ msgid "-b and -B are mutually exclusive"
 #~ msgstr "-b và -B loại từ lẫn nhau."
 
@@ -12201,9 +12487,6 @@
 #~ msgid "prune .git/worktrees"
 #~ msgstr "xén .git/worktrees"
 
-#~ msgid "--worktrees does not take extra arguments"
-#~ msgstr "--worktrees không nhận các đối số thêm"
-
 #~ msgid "The most commonly used git commands are:"
 #~ msgstr "Những lệnh git hay được dùng nhất là:"
 
@@ -12234,9 +12517,6 @@
 #~ msgid "force creation (when already exists)"
 #~ msgstr "ép buộc tạo (khi đã có nhánh cùng tên)"
 
-#~ msgid "Malformed ident string: '%s'"
-#~ msgstr "Chuỗi thụt lề đầu dòng dị hình: “%s”"
-
 #~ msgid "slot"
 #~ msgstr "khe"
 
@@ -12285,9 +12565,6 @@
 #~ msgid "bug"
 #~ msgstr "lỗi"
 
-#~ msgid "ahead "
-#~ msgstr "phía trước "
-
 #~ msgid ", behind "
 #~ msgstr ", đằng sau "
 
diff --git a/po/zh_CN.po b/po/zh_CN.po
index c7fed46..a6b06f9 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -135,8 +135,8 @@
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-12-22 22:50+0800\n"
-"PO-Revision-Date: 2015-12-22 23:06+0800\n"
+"POT-Creation-Date: 2016-03-16 00:16+0800\n"
+"PO-Revision-Date: 2016-03-16 00:18+0800\n"
 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n"
 "Language-Team: GitHub <https://github.com/jiangxin/git/>\n"
 "Language: zh_CN\n"
@@ -158,7 +158,7 @@
 "请在工作区改正文件,然后酌情使用 'git add/rm <文件>' 命令标记\n"
 "解决方案并提交。"
 
-#: advice.c:101 builtin/merge.c:1225
+#: advice.c:101 builtin/merge.c:1226
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr "您尚未结束您的合并(存在 MERGE_HEAD)。"
 
@@ -201,7 +201,7 @@
 msgid "archive format"
 msgstr "归档格式"
 
-#: archive.c:430 builtin/log.c:1229
+#: archive.c:430 builtin/log.c:1232
 msgid "prefix"
 msgstr "前缀"
 
@@ -209,11 +209,11 @@
 msgid "prepend prefix to each pathname in the archive"
 msgstr "为归档中每个路径名加上前缀"
 
-#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535
-#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987
-#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
-#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
+#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2547
+#: builtin/blame.c:2548 builtin/config.c:60 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:720 builtin/hash-object.c:100
+#: builtin/ls-files.c:459 builtin/ls-files.c:462 builtin/notes.c:398
+#: builtin/notes.c:561 builtin/read-tree.c:109 parse-options.h:153
 msgid "file"
 msgstr "文件"
 
@@ -245,7 +245,7 @@
 msgid "list supported archive formats"
 msgstr "列出支持的归档格式"
 
-#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:451 builtin/archive.c:90 builtin/clone.c:78
 msgid "repo"
 msgstr "仓库"
 
@@ -253,7 +253,7 @@
 msgid "retrieve the archive from remote repository <repo>"
 msgstr "从远程仓库(<仓库>)提取归档文件"
 
-#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479
+#: archive.c:453 builtin/archive.c:92 builtin/notes.c:482
 msgid "command"
 msgstr "命令"
 
@@ -261,7 +261,7 @@
 msgid "path to the remote git-upload-archive command"
 msgstr "远程 git-upload-archive 命令的路径"
 
-#: attr.c:265
+#: attr.c:263
 msgid ""
 "Negative patterns are ignored in git attributes\n"
 "Use '\\!' for literal leading exclamation."
@@ -269,81 +269,97 @@
 "负值模版在 git attributes 中被忽略\n"
 "当字符串确实要以感叹号开始时,使用 '\\!'。"
 
-#: branch.c:61
+#: branch.c:53
+#, c-format
+msgid ""
+"\n"
+"After fixing the error cause you may try to fix up\n"
+"the remote tracking information by invoking\n"
+"\"git branch --set-upstream-to=%s%s%s\"."
+msgstr ""
+"\n"
+"在修复错误后,您可以尝试修改远程跟踪分支,通过执行命令\n"
+"\"git branch --set-upstream-to=%s%s%s\" 。"
+
+#: branch.c:67
 #, c-format
 msgid "Not setting branch %s as its own upstream."
 msgstr "未设置分支 %s 作为它自己的上游。"
 
-#: branch.c:84
+#: branch.c:93
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s by rebasing."
 msgstr "分支 %1$s 设置为使用变基来跟踪来自 %3$s 的远程分支 %2$s。"
 
-#: branch.c:85
+#: branch.c:94
 #, c-format
 msgid "Branch %s set up to track remote branch %s from %s."
 msgstr "分支 %1$s 设置为跟踪来自 %3$s 的远程分支 %2$s。"
 
-#: branch.c:89
+#: branch.c:98
 #, c-format
 msgid "Branch %s set up to track local branch %s by rebasing."
 msgstr "分支 %s 设置为使用变基来跟踪本地分支 %s。"
 
-#: branch.c:90
+#: branch.c:99
 #, c-format
 msgid "Branch %s set up to track local branch %s."
 msgstr "分支 %s 设置为跟踪本地分支 %s。"
 
-#: branch.c:95
+#: branch.c:104
 #, c-format
 msgid "Branch %s set up to track remote ref %s by rebasing."
 msgstr "分支 %s 设置为使用变基来跟踪远程引用 %s。"
 
-#: branch.c:96
+#: branch.c:105
 #, c-format
 msgid "Branch %s set up to track remote ref %s."
 msgstr "分支 %s 设置为跟踪远程引用 %s。"
 
-#: branch.c:100
+#: branch.c:109
 #, c-format
 msgid "Branch %s set up to track local ref %s by rebasing."
 msgstr "分支 %s 设置为使用变基来跟踪本地引用 %s。"
 
-#: branch.c:101
+#: branch.c:110
 #, c-format
 msgid "Branch %s set up to track local ref %s."
 msgstr "分支 %s 设置为跟踪本地引用 %s。"
 
-#: branch.c:134
+#: branch.c:119
+msgid "Unable to write upstream branch configuration"
+msgstr "无法写入上游分支配置"
+
+#: branch.c:156
 #, c-format
 msgid "Not tracking: ambiguous information for ref %s"
 msgstr "未跟踪:引用 %s 有歧义"
 
-#: branch.c:163
+#: branch.c:185
 #, c-format
 msgid "'%s' is not a valid branch name."
 msgstr "'%s' 不是一个有效的分支名称。"
 
-#: branch.c:168
+#: branch.c:190
 #, c-format
 msgid "A branch named '%s' already exists."
 msgstr "一个分支名 '%s' 已经存在。"
 
-#: branch.c:176
+#: branch.c:198
 msgid "Cannot force update the current branch."
 msgstr "无法强制更新当前分支。"
 
-#: branch.c:196
+#: branch.c:218
 #, c-format
 msgid "Cannot setup tracking information; starting point '%s' is not a branch."
 msgstr "无法设置跟踪信息;起始点 '%s' 不是一个分支。"
 
-#: branch.c:198
+#: branch.c:220
 #, c-format
 msgid "the requested upstream branch '%s' does not exist"
 msgstr "请求的上游分支 '%s' 不存在"
 
-#: branch.c:200
+#: branch.c:222
 msgid ""
 "\n"
 "If you are planning on basing your work on an upstream\n"
@@ -361,22 +377,22 @@
 "如果您正计划推送一个能与对应远程分支建立跟踪的新的本地分支,\n"
 "您可能需要使用 \"git push -u\" 推送分支并配置和上游的关联。"
 
-#: branch.c:244
+#: branch.c:266
 #, c-format
 msgid "Not a valid object name: '%s'."
 msgstr "不是一个有效的对象名:'%s'。"
 
-#: branch.c:264
+#: branch.c:286
 #, c-format
 msgid "Ambiguous object name: '%s'."
 msgstr "歧义的对象名:'%s'。"
 
-#: branch.c:269
+#: branch.c:291
 #, c-format
 msgid "Not a valid branch point: '%s'."
 msgstr "无效的分支点:'%s'。"
 
-#: branch.c:322
+#: branch.c:344
 #, c-format
 msgid "'%s' is already checked out at '%s'"
 msgstr "'%s' 已经检出到 '%s'"
@@ -400,10 +416,10 @@
 msgid "Repository lacks these prerequisite commits:"
 msgstr "仓库中缺少这些必备的提交:"
 
-#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083
-#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334
-#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358
-#: builtin/shortlog.c:158
+#: bundle.c:163 ref-filter.c:1462 sequencer.c:627 sequencer.c:1074
+#: builtin/blame.c:2754 builtin/commit.c:1045 builtin/log.c:334
+#: builtin/log.c:852 builtin/log.c:1467 builtin/log.c:1700 builtin/merge.c:358
+#: builtin/shortlog.c:170
 msgid "revision walk setup failed"
 msgstr "版本遍历设置失败"
 
@@ -442,7 +458,7 @@
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "引用 '%s' 被 rev-list 选项排除"
 
-#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1372 builtin/shortlog.c:273
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "未能识别的参数:%s"
@@ -465,8 +481,8 @@
 msgid "invalid color value: %.*s"
 msgstr "无效的颜色值:%.*s"
 
-#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520
-#: builtin/am.c:2149
+#: commit.c:40 builtin/am.c:437 builtin/am.c:473 builtin/am.c:1505
+#: builtin/am.c:2135
 #, c-format
 msgid "could not parse %s"
 msgstr "不能解析 %s"
@@ -480,59 +496,64 @@
 msgid "memory exhausted"
 msgstr "内存耗尽"
 
-#: config.c:474 config.c:476
+#: config.c:475 config.c:477
 #, c-format
-msgid "bad config file line %d in %s"
-msgstr "配置文件 %2$s 出错于第 %1$d 行"
+msgid "bad config line %d in %s %s"
+msgstr "%2$s %3$s 出错于第 %1$d 行"
 
-#: config.c:592
+#: config.c:593
 #, c-format
-msgid "bad numeric config value '%s' for '%s' in %s: %s"
-msgstr "文件 %3$s 中配置变量 '%2$s' 的数字取值 '%1$s' 设置错误: %4$s"
+msgid "bad numeric config value '%s' for '%s' in %s %s: %s"
+msgstr "%3$s %4$s 中配置变量 '%2$s' 的数字取值 '%1$s' 设置错误: %5$s"
 
-#: config.c:594
+#: config.c:595
 #, c-format
 msgid "bad numeric config value '%s' for '%s': %s"
 msgstr "配置变量 '%2$s' 的数字取值 '%1$s' 设置错误: %3$s"
 
-#: config.c:679
+#: config.c:680
 #, c-format
 msgid "failed to expand user dir in: '%s'"
 msgstr "无法扩展 '%s' 中的用户目录"
 
-#: config.c:757 config.c:768
+#: config.c:758 config.c:769
 #, c-format
 msgid "bad zlib compression level %d"
 msgstr "错误的 zlib 压缩级别 %d"
 
-#: config.c:890
+#: config.c:891
 #, c-format
 msgid "invalid mode for object creation: %s"
 msgstr "无效的对象创建模式:%s"
 
-#: config.c:1216
+#: config.c:1220
 msgid "unable to parse command-line config"
 msgstr "无法解析命令行中的配置"
 
-#: config.c:1277
+#: config.c:1281
 msgid "unknown error occured while reading the configuration files"
 msgstr "在读取配置文件时遇到未知错误"
 
-#: config.c:1601
+#: config.c:1629
 #, c-format
 msgid "unable to parse '%s' from command-line config"
 msgstr "无法解析命令行配置中的 '%s'"
 
-#: config.c:1603
+#: config.c:1631
 #, c-format
 msgid "bad config variable '%s' in file '%s' at line %d"
 msgstr "在文件 '%2$s' 的第 %3$d 行发现错误的配置变量 '%1$s'"
 
-#: config.c:1662
+#: config.c:1690
 #, c-format
 msgid "%s has multiple values"
 msgstr "%s 有多个取值"
 
+#: config.c:2226
+#, c-format
+msgid "Could not set '%s' to '%s'"
+msgstr "不能设置 '%s' 为 '%s'"
+
 #: connected.c:69
 msgid "Could not run 'git rev-list'"
 msgstr "不能执行 'git rev-list'"
@@ -650,16 +671,16 @@
 "发现配置变量 'diff.dirstat' 中的错误:\n"
 "%s"
 
-#: diff.c:3000
+#: diff.c:2997
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "外部 diff 退出,停止在 %s"
 
-#: diff.c:3396
+#: diff.c:3393
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow 参数后只跟一个 pathspec"
 
-#: diff.c:3559
+#: diff.c:3556
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -668,18 +689,18 @@
 "无法解析 --dirstat/-X 选项的参数:\n"
 "%s"
 
-#: diff.c:3573
+#: diff.c:3570
 #, c-format
 msgid "Failed to parse --submodule option parameter: '%s'"
 msgstr "无法解析 --submodule 选项的参数:'%s'"
 
-#: dir.c:1915
+#: dir.c:2004
 msgid "failed to get kernel name and information"
 msgstr "无法获得内核名称和信息"
 
-#: dir.c:1998
-msgid "Untracked cache is disabled on this system."
-msgstr "缓存未跟踪文件在本系统被禁用"
+#: dir.c:2123
+msgid "Untracked cache is disabled on this system or location."
+msgstr "缓存未跟踪文件在本系统或位置中被禁用。"
 
 #: gpg-interface.c:166 gpg-interface.c:237
 msgid "could not run gpg."
@@ -718,20 +739,20 @@
 msgid "'%s': short read %s"
 msgstr "'%s':读取不完整 %s"
 
-#: help.c:207
+#: help.c:205
 #, c-format
 msgid "available git commands in '%s'"
 msgstr "在 '%s' 下可用的 git 命令"
 
-#: help.c:214
+#: help.c:212
 msgid "git commands available from elsewhere on your $PATH"
 msgstr "在 $PATH 路径中的其他地方可用的 git 命令"
 
-#: help.c:246
+#: help.c:244
 msgid "These are common Git commands used in various situations:"
 msgstr "这些是各种场合常见的 Git 命令:"
 
-#: help.c:311
+#: help.c:309
 #, c-format
 msgid ""
 "'%s' appears to be a git command, but we were not\n"
@@ -740,11 +761,11 @@
 "'%s' 像是一个 git 命令,但却无法运行。\n"
 "可能是 git-%s 受损?"
 
-#: help.c:368
+#: help.c:366
 msgid "Uh oh. Your system reports no Git commands at all."
 msgstr "唉呀,您的系统中未发现 Git 命令。"
 
-#: help.c:390
+#: help.c:388
 #, c-format
 msgid ""
 "WARNING: You called a Git command named '%s', which does not exist.\n"
@@ -753,17 +774,17 @@
 "警告:您运行一个不存在的 Git 命令 '%s'。继续执行假定您要要运行的\n"
 "是 '%s'"
 
-#: help.c:395
+#: help.c:393
 #, c-format
 msgid "in %0.1f seconds automatically..."
 msgstr "在 %0.1f 秒钟后自动运行..."
 
-#: help.c:402
+#: help.c:400
 #, c-format
 msgid "git: '%s' is not a git command. See 'git --help'."
 msgstr "git:'%s' 不是一个 git 命令。参见 'git --help'。"
 
-#: help.c:406 help.c:466
+#: help.c:404 help.c:464
 msgid ""
 "\n"
 "Did you mean this?"
@@ -777,7 +798,7 @@
 "\n"
 "您指的是这其中的某一个么?"
 
-#: help.c:462
+#: help.c:460
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s:%s - %s"
@@ -786,8 +807,8 @@
 msgid "failed to read the cache"
 msgstr "无法读取缓存"
 
-#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376
-#: builtin/checkout.c:587 builtin/clone.c:722
+#: merge.c:94 builtin/am.c:2008 builtin/am.c:2043 builtin/checkout.c:376
+#: builtin/checkout.c:587 builtin/clone.c:730
 msgid "unable to write new index file"
 msgstr "无法写新的索引文件"
 
@@ -805,64 +826,64 @@
 msgid "error building trees"
 msgstr "无法创建树"
 
-#: merge-recursive.c:686
+#: merge-recursive.c:689
 #, c-format
 msgid "failed to create path '%s'%s"
 msgstr "无法创建路径 '%s'%s"
 
-#: merge-recursive.c:697
+#: merge-recursive.c:700
 #, c-format
 msgid "Removing %s to make room for subdirectory\n"
 msgstr "删除 %s 以便为子目录留出空间\n"
 
-#: merge-recursive.c:711 merge-recursive.c:732
+#: merge-recursive.c:714 merge-recursive.c:735
 msgid ": perhaps a D/F conflict?"
 msgstr ":可能是一个目录/文件冲突?"
 
-#: merge-recursive.c:722
+#: merge-recursive.c:725
 #, c-format
 msgid "refusing to lose untracked file at '%s'"
 msgstr "拒绝丢弃 '%s' 中的未跟踪文件"
 
-#: merge-recursive.c:762
+#: merge-recursive.c:765
 #, c-format
 msgid "cannot read object %s '%s'"
 msgstr "不能读取对象 %s '%s'"
 
-#: merge-recursive.c:764
+#: merge-recursive.c:767
 #, c-format
 msgid "blob expected for %s '%s'"
 msgstr "%s '%s' 应为数据对象"
 
-#: merge-recursive.c:787 builtin/clone.c:369
+#: merge-recursive.c:790 builtin/clone.c:374
 #, c-format
 msgid "failed to open '%s'"
 msgstr "无法打开 '%s'"
 
-#: merge-recursive.c:795
+#: merge-recursive.c:798
 #, c-format
 msgid "failed to symlink '%s'"
 msgstr "无法创建符号链接 '%s'"
 
-#: merge-recursive.c:798
+#: merge-recursive.c:801
 #, c-format
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "不知道如何处理 %06o %s '%s'"
 
-#: merge-recursive.c:936
+#: merge-recursive.c:939
 msgid "Failed to execute internal merge"
 msgstr "无法执行内部合并"
 
-#: merge-recursive.c:940
+#: merge-recursive.c:943
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "不能添加 %s 至对象库"
 
-#: merge-recursive.c:956
+#: merge-recursive.c:959
 msgid "unsupported object type in the tree"
 msgstr "在树中有不支持的对象类型"
 
-#: merge-recursive.c:1031 merge-recursive.c:1045
+#: merge-recursive.c:1034 merge-recursive.c:1048
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -871,7 +892,7 @@
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 在 %6$s 中"
 "的版本被保留。"
 
-#: merge-recursive.c:1037 merge-recursive.c:1050
+#: merge-recursive.c:1040 merge-recursive.c:1053
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -880,20 +901,20 @@
 "冲突(%1$s/删除):%2$s 在 %3$s 中被删除,在 %5$s 中被 %4$s。%7$s 在 %6$s 中"
 "的版本保留于 %8$s 中。"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "rename"
 msgstr "重命名"
 
-#: merge-recursive.c:1091
+#: merge-recursive.c:1094
 msgid "renamed"
 msgstr "重命名"
 
-#: merge-recursive.c:1147
+#: merge-recursive.c:1150
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s 是 %s 中的一个目录而以 %s 为名被添加"
 
-#: merge-recursive.c:1169
+#: merge-recursive.c:1172
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -902,144 +923,144 @@
 "冲突(重命名/重命名):在分支 \"%3$s\" 中重命名 \"%1$s\"->\"%2$s\",在分支 "
 "\"%6$s\" 中重命名 \"%4$s\"->\"%5$s\"%7$s"
 
-#: merge-recursive.c:1174
+#: merge-recursive.c:1177
 msgid " (left unresolved)"
 msgstr "(留下未解决)"
 
-#: merge-recursive.c:1228
+#: merge-recursive.c:1231
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "冲突(重命名/重命名):在 %3$s 中重命名 %1$s->%2$s,在 %6$s 中重命名 %4$s->"
 "%5$s"
 
-#: merge-recursive.c:1258
+#: merge-recursive.c:1261
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "而是重命名 %s 至 %s,以及 %s 至 %s"
 
-#: merge-recursive.c:1457
+#: merge-recursive.c:1460
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr "冲突(重命名/添加):在 %3$s 中重命名 %1$s->%2$s。在 %5$s 中添加 %4$s"
 
-#: merge-recursive.c:1467
+#: merge-recursive.c:1470
 #, c-format
 msgid "Adding merged %s"
 msgstr "添加合并后的 %s"
 
-#: merge-recursive.c:1472 merge-recursive.c:1674
+#: merge-recursive.c:1475 merge-recursive.c:1677
 #, c-format
 msgid "Adding as %s instead"
 msgstr "而是以 %s 为名添加"
 
-#: merge-recursive.c:1523
+#: merge-recursive.c:1526
 #, c-format
 msgid "cannot read object %s"
 msgstr "不能读取对象 %s"
 
-#: merge-recursive.c:1526
+#: merge-recursive.c:1529
 #, c-format
 msgid "object %s is not a blob"
 msgstr "对象 %s 不是一个数据对象"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modify"
 msgstr "修改"
 
-#: merge-recursive.c:1578
+#: merge-recursive.c:1581
 msgid "modified"
 msgstr "修改"
 
-#: merge-recursive.c:1588
+#: merge-recursive.c:1591
 msgid "content"
 msgstr "内容"
 
-#: merge-recursive.c:1595
+#: merge-recursive.c:1598
 msgid "add/add"
 msgstr "添加/添加"
 
-#: merge-recursive.c:1629
+#: merge-recursive.c:1632
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "略过 %s(已经做过相同合并)"
 
-#: merge-recursive.c:1643
+#: merge-recursive.c:1646
 #, c-format
 msgid "Auto-merging %s"
 msgstr "自动合并 %s"
 
-#: merge-recursive.c:1647 git-submodule.sh:1025
+#: merge-recursive.c:1650 git-submodule.sh:1048
 msgid "submodule"
 msgstr "子模组"
 
-#: merge-recursive.c:1648
+#: merge-recursive.c:1651
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "冲突(%s):合并冲突于 %s"
 
-#: merge-recursive.c:1734
+#: merge-recursive.c:1737
 #, c-format
 msgid "Removing %s"
 msgstr "删除 %s"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1762
 msgid "file/directory"
 msgstr "文件/目录"
 
-#: merge-recursive.c:1765
+#: merge-recursive.c:1768
 msgid "directory/file"
 msgstr "目录/文件"
 
-#: merge-recursive.c:1770
+#: merge-recursive.c:1773
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr "冲突(%1$s):在 %3$s 中有一个名为 %2$s 的目录。以 %5$s 为名添加 %4$s"
 
-#: merge-recursive.c:1780
+#: merge-recursive.c:1783
 #, c-format
 msgid "Adding %s"
 msgstr "添加 %s"
 
-#: merge-recursive.c:1797
+#: merge-recursive.c:1800
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "严重的合并错误,不应发生。"
 
-#: merge-recursive.c:1816
+#: merge-recursive.c:1819
 msgid "Already up-to-date!"
 msgstr "已经是最新的!"
 
-#: merge-recursive.c:1825
+#: merge-recursive.c:1828
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "无法合并树 %s 和 %s"
 
-#: merge-recursive.c:1855
+#: merge-recursive.c:1858
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "未处理的路径??? %s"
 
-#: merge-recursive.c:1903
+#: merge-recursive.c:1906
 msgid "Merging:"
 msgstr "合并:"
 
-#: merge-recursive.c:1916
+#: merge-recursive.c:1919
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "发现 %u 个共同祖先:"
 msgstr[1] "发现 %u 个共同祖先:"
 
-#: merge-recursive.c:1953
+#: merge-recursive.c:1956
 msgid "merge returned no commit"
 msgstr "合并未返回提交"
 
-#: merge-recursive.c:2010
+#: merge-recursive.c:2013
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "不能解析对象 '%s'"
 
-#: merge-recursive.c:2021 builtin/merge.c:645
+#: merge-recursive.c:2024 builtin/merge.c:646
 msgid "Unable to write index."
 msgstr "不能写入索引。"
 
@@ -1154,12 +1175,12 @@
 msgid "%s: pathspec magic not supported by this command: %s"
 msgstr "%s:路径规格神奇前缀不被此命令支持:%s"
 
-#: pathspec.c:432
+#: pathspec.c:433
 #, c-format
 msgid "pathspec '%s' is beyond a symbolic link"
 msgstr "路径规格 '%s' 位于符号链接中"
 
-#: pathspec.c:441
+#: pathspec.c:442
 msgid ""
 "There is nothing to exclude from by :(exclude) patterns.\n"
 "Perhaps you forgot to add either ':/' or '.' ?"
@@ -1193,163 +1214,248 @@
 "设置了 GIT_INDEX_VERSION,但是取值无效。\n"
 "使用版本 %i"
 
-#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
+#: refs.c:543 builtin/merge.c:761 builtin/merge.c:872 builtin/merge.c:974
+#: builtin/merge.c:984
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "无法打开 '%s' 进行写入"
 
-#: refs/files-backend.c:2359
+#: refs/files-backend.c:2374
 #, c-format
 msgid "could not delete reference %s: %s"
 msgstr "无法删除引用 %s:%s"
 
-#: refs/files-backend.c:2362
+#: refs/files-backend.c:2377
 #, c-format
 msgid "could not delete references: %s"
 msgstr "无法删除引用:%s"
 
-#: refs/files-backend.c:2371
+#: refs/files-backend.c:2386
 #, c-format
 msgid "could not remove reference %s"
 msgstr "无法删除引用 %s"
 
-#: ref-filter.c:245
-#, c-format
-msgid "format: %%(end) atom used without corresponding atom"
-msgstr "格式:使用了 %%(end) 元素却没有它的对应元素"
-
-#: ref-filter.c:704
-#, c-format
-msgid "positive value expected contents:lines=%s"
-msgstr "要为 contents:lines=%s 提供一个正数"
-
-#: ref-filter.c:833
+#: ref-filter.c:55
 #, c-format
 msgid "expected format: %%(color:<color>)"
 msgstr "期望的格式:%%(color:<color>)"
 
-#: ref-filter.c:835
-msgid "unable to parse format"
-msgstr "不能解析格式"
+#: ref-filter.c:57
+#, c-format
+msgid "unrecognized color: %%(color:%s)"
+msgstr "未能识别的颜色:%%(color:%s)"
 
-#: ref-filter.c:870
+#: ref-filter.c:71
+#, c-format
+msgid "unrecognized format: %%(%s)"
+msgstr "未能识别的格式:%%(%s)"
+
+#: ref-filter.c:77
+#, c-format
+msgid "%%(body) does not take arguments"
+msgstr "%%(body) 不带参数"
+
+#: ref-filter.c:84
+#, c-format
+msgid "%%(subject) does not take arguments"
+msgstr "%%(subject) 不带参数"
+
+#: ref-filter.c:101
+#, c-format
+msgid "positive value expected contents:lines=%s"
+msgstr "要为 contents:lines=%s 提供一个正数"
+
+#: ref-filter.c:103
+#, c-format
+msgid "unrecognized %%(contents) argument: %s"
+msgstr "未能识别的 %%(contents) 参数:%s"
+
+#: ref-filter.c:113
+#, c-format
+msgid "unrecognized %%(objectname) argument: %s"
+msgstr "未能识别的 %%(objectname) 参数:%s"
+
+#: ref-filter.c:135
 #, c-format
 msgid "expected format: %%(align:<width>,<position>)"
 msgstr "期望的格式:%%(align:<width>,<position>)"
 
-#: ref-filter.c:893
+#: ref-filter.c:147
 #, c-format
-msgid "improper format entered align:%s"
-msgstr "输入了不正确的格式 align:%s"
+msgid "unrecognized position:%s"
+msgstr "未能识别的位置:%s"
 
-#: ref-filter.c:898
+#: ref-filter.c:151
+#, c-format
+msgid "unrecognized width:%s"
+msgstr "未能识别的宽度:%s"
+
+#: ref-filter.c:157
+#, c-format
+msgid "unrecognized %%(align) argument: %s"
+msgstr "未能识别的 %%(align) 参数:%s"
+
+#: ref-filter.c:161
 #, c-format
 msgid "positive width expected with the %%(align) atom"
 msgstr "元素 %%(align) 需要一个正数的宽度"
 
-#: ref-filter.c:1219
+#: ref-filter.c:244
+#, c-format
+msgid "malformed field name: %.*s"
+msgstr "非法的字段名:%.*s"
+
+#: ref-filter.c:270
+#, c-format
+msgid "unknown field name: %.*s"
+msgstr "未知的字段名:%.*s"
+
+#: ref-filter.c:372
+#, c-format
+msgid "format: %%(end) atom used without corresponding atom"
+msgstr "格式:使用了 %%(end) 元素却没有它的对应元素"
+
+#: ref-filter.c:424
+#, c-format
+msgid "malformed format string %s"
+msgstr "非法的格式化字符串 %s"
+
+#: ref-filter.c:878
+msgid ":strip= requires a positive integer argument"
+msgstr ":strip= 需要一个正整型参数"
+
+#: ref-filter.c:883
+#, c-format
+msgid "ref '%s' does not have %ld components to :strip"
+msgstr "引用 '%s' 未提供用于 :strip 的 %ld 个组件"
+
+#: ref-filter.c:1046
+#, c-format
+msgid "unknown %.*s format %s"
+msgstr "未知的 %.*s 格式 %s"
+
+#: ref-filter.c:1066 ref-filter.c:1097
+#, c-format
+msgid "missing object %s for %s"
+msgstr "缺失 %2$s 的对象 %1$s"
+
+#: ref-filter.c:1069 ref-filter.c:1100
+#, c-format
+msgid "parse_object_buffer failed on %s for %s"
+msgstr "parse_object_buffer 失败于 %2$s 的 %1$s"
+
+#: ref-filter.c:1311
 #, c-format
 msgid "malformed object at '%s'"
 msgstr "非法的对象于 '%s'"
 
-#: ref-filter.c:1561
+#: ref-filter.c:1373
+#, c-format
+msgid "ignoring ref with broken name %s"
+msgstr "忽略带有错误名称 %s 的引用"
+
+#: ref-filter.c:1378
+#, c-format
+msgid "ignoring broken ref %s"
+msgstr "忽略损坏的引用 %s"
+
+#: ref-filter.c:1651
 #, c-format
 msgid "format: %%(end) atom missing"
 msgstr "格式:缺少 %%(end) 元素"
 
-#: ref-filter.c:1615
+#: ref-filter.c:1705
 #, c-format
 msgid "malformed object name %s"
 msgstr "非法的对象名 %s"
 
-#: remote.c:756
+#: remote.c:745
 #, c-format
 msgid "Cannot fetch both %s and %s to %s"
 msgstr "不能同时获取 %s 和 %s 至 %s"
 
-#: remote.c:760
+#: remote.c:749
 #, c-format
 msgid "%s usually tracks %s, not %s"
 msgstr "%s 通常跟踪 %s,而非 %s"
 
-#: remote.c:764
+#: remote.c:753
 #, c-format
 msgid "%s tracks both %s and %s"
 msgstr "%s 同时跟踪 %s 和 %s"
 
-#: remote.c:772
+#: remote.c:761
 msgid "Internal error"
 msgstr "内部错误"
 
-#: remote.c:1687 remote.c:1730
+#: remote.c:1677 remote.c:1720
 msgid "HEAD does not point to a branch"
 msgstr "HEAD 没有指向一个分支"
 
-#: remote.c:1696
+#: remote.c:1686
 #, c-format
 msgid "no such branch: '%s'"
 msgstr "没有此分支:'%s'"
 
-#: remote.c:1699
+#: remote.c:1689
 #, c-format
 msgid "no upstream configured for branch '%s'"
 msgstr "尚未给分支 '%s' 设置上游"
 
-#: remote.c:1705
+#: remote.c:1695
 #, c-format
 msgid "upstream branch '%s' not stored as a remote-tracking branch"
 msgstr "上游分支 '%s' 没有存储为一个远程跟踪分支"
 
-#: remote.c:1720
+#: remote.c:1710
 #, c-format
 msgid "push destination '%s' on remote '%s' has no local tracking branch"
 msgstr "推送目标 '%s' 至远程 '%s' 没有本地跟踪分支"
 
-#: remote.c:1735
+#: remote.c:1725
 #, c-format
 msgid "branch '%s' has no remote for pushing"
 msgstr "分支 '%s' 没有设置要推送的远程服务器"
 
-#: remote.c:1746
+#: remote.c:1736
 #, c-format
 msgid "push refspecs for '%s' do not include '%s'"
 msgstr "向 '%s' 推送引用规格未包含 '%s'"
 
-#: remote.c:1759
+#: remote.c:1749
 msgid "push has no destination (push.default is 'nothing')"
 msgstr "推送无目标(push.default 是 'nothing')"
 
-#: remote.c:1781
+#: remote.c:1771
 msgid "cannot resolve 'simple' push to a single destination"
 msgstr "无法解析 'simple' 推送至一个单独的目标"
 
-#: remote.c:2083
+#: remote.c:2073
 #, c-format
 msgid "Your branch is based on '%s', but the upstream is gone.\n"
 msgstr "您的分支基于 '%s',但此上游分支已经不存在。\n"
 
-#: remote.c:2087
+#: remote.c:2077
 msgid "  (use \"git branch --unset-upstream\" to fixup)\n"
 msgstr "  (使用 \"git branch --unset-upstream\" 来修复)\n"
 
-#: remote.c:2090
+#: remote.c:2080
 #, c-format
 msgid "Your branch is up-to-date with '%s'.\n"
 msgstr "您的分支与上游分支 '%s' 一致。\n"
 
-#: remote.c:2094
+#: remote.c:2084
 #, c-format
 msgid "Your branch is ahead of '%s' by %d commit.\n"
 msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "您的分支领先 '%s' 共 %d 个提交。\n"
 msgstr[1] "您的分支领先 '%s' 共 %d 个提交。\n"
 
-#: remote.c:2100
+#: remote.c:2090
 msgid "  (use \"git push\" to publish your local commits)\n"
 msgstr "  (使用 \"git push\" 来发布您的本地提交)\n"
 
-#: remote.c:2103
+#: remote.c:2093
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -1358,11 +1464,11 @@
 msgstr[1] "您的分支落后 '%s' 共 %d 个提交,并且可以快进。\n"
 
 #  译者:注意保持前导空格
-#: remote.c:2111
+#: remote.c:2101
 msgid "  (use \"git pull\" to update your local branch)\n"
 msgstr "  (使用 \"git pull\" 来更新您的本地分支)\n"
 
-#: remote.c:2114
+#: remote.c:2104
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -1378,28 +1484,28 @@
 "并且分别有 %d 和 %d 处不同的提交。\n"
 
 #  译者:注意保持前导空格
-#: remote.c:2124
+#: remote.c:2114
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr "  (使用 \"git pull\" 来合并远程分支)\n"
 
-#: revision.c:2193
+#: revision.c:2131
 msgid "your current branch appears to be broken"
 msgstr "您的当前分支好像被损坏"
 
-#: revision.c:2196
+#: revision.c:2134
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "您的当前分支 '%s' 尚无任何提交"
 
-#: revision.c:2390
+#: revision.c:2328
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent 与 --bisect 不兼容"
 
-#: run-command.c:90
+#: run-command.c:92
 msgid "open /dev/null failed"
 msgstr "不能打开 /dev/null"
 
-#: run-command.c:92
+#: run-command.c:94
 #, c-format
 msgid "dup2(%d,%d) failed"
 msgstr "不能调用 dup2(%d,%d)"
@@ -1422,7 +1528,7 @@
 msgid "the receiving end does not support --atomic push"
 msgstr "接收端不支持原子推送"
 
-#: sequencer.c:183
+#: sequencer.c:174
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'"
@@ -1430,7 +1536,7 @@
 "冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
 "命令标记修正后的文件"
 
-#: sequencer.c:186
+#: sequencer.c:177
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add <paths>' or 'git rm <paths>'\n"
@@ -1439,229 +1545,243 @@
 "冲突解决完毕后,用 'git add <路径>' 或 'git rm <路径>'\n"
 "对修正后的文件做标记,然后用 'git commit' 提交"
 
-#: sequencer.c:199 sequencer.c:842 sequencer.c:922
+#: sequencer.c:190 sequencer.c:833 sequencer.c:913
 #, c-format
 msgid "Could not write to %s"
 msgstr "不能写入 %s"
 
-#: sequencer.c:202
+#: sequencer.c:193
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "错误收尾 %s"
 
-#: sequencer.c:217
+#: sequencer.c:208
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr "您的本地修改将被拣选操作覆盖。"
 
-#: sequencer.c:219
+#: sequencer.c:210
 msgid "Your local changes would be overwritten by revert."
 msgstr "您的本地修改将被还原操作覆盖。"
 
-#: sequencer.c:222
+#: sequencer.c:213
 msgid "Commit your changes or stash them to proceed."
 msgstr "提交您的修改或保存进度后再继续。"
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:309
+#: sequencer.c:300
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s:无法写入新索引文件"
 
-#: sequencer.c:327
+#: sequencer.c:318
 msgid "Could not resolve HEAD commit\n"
 msgstr "不能解析 HEAD 提交\n"
 
-#: sequencer.c:347
+#: sequencer.c:338
 msgid "Unable to update cache tree\n"
 msgstr "不能更新缓存\n"
 
-#: sequencer.c:399
+#: sequencer.c:390
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "不能解析提交 %s\n"
 
-#: sequencer.c:404
+#: sequencer.c:395
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "不能解析父提交 %s\n"
 
-#: sequencer.c:469
+#: sequencer.c:460
 msgid "Your index file is unmerged."
 msgstr "您的索引文件未完成合并。"
 
-#: sequencer.c:488
+#: sequencer.c:479
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr "提交 %s 是一个合并提交但未提供 -m 选项。"
 
-#: sequencer.c:496
+#: sequencer.c:487
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "提交 %s 没有父提交 %d"
 
-#: sequencer.c:500
+#: sequencer.c:491
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr "指定了主线但提交 %s 不是一个合并。"
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:513
+#: sequencer.c:504
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s:不能解析父提交 %s"
 
-#: sequencer.c:517
+#: sequencer.c:508
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "不能得到 %s 的提交说明"
 
-#: sequencer.c:603
+#: sequencer.c:594
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "不能还原 %s... %s"
 
-#: sequencer.c:604
+#: sequencer.c:595
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "不能应用 %s... %s"
 
-#: sequencer.c:639
+#: sequencer.c:630
 msgid "empty commit set passed"
 msgstr "提供了空的提交集"
 
-#: sequencer.c:647
+#: sequencer.c:638
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s:无法读取索引"
 
-#: sequencer.c:651
+#: sequencer.c:642
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s:无法刷新索引"
 
-#: sequencer.c:711
+#: sequencer.c:702
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "无法 %s 在一个 %s 过程中"
 
-#: sequencer.c:733
+#: sequencer.c:724
 #, c-format
 msgid "Could not parse line %d."
 msgstr "不能解析第 %d 行。"
 
-#: sequencer.c:738
+#: sequencer.c:729
 msgid "No commits parsed."
 msgstr "没有提交被解析。"
 
-#: sequencer.c:750
+#: sequencer.c:741
 #, c-format
 msgid "Could not open %s"
 msgstr "不能打开 %s"
 
-#: sequencer.c:754
+#: sequencer.c:745
 #, c-format
 msgid "Could not read %s."
 msgstr "不能读取 %s。"
 
-#: sequencer.c:761
+#: sequencer.c:752
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "无用的指令表单:%s"
 
-#: sequencer.c:791
+#: sequencer.c:782
 #, c-format
 msgid "Invalid key: %s"
 msgstr "无效键名:%s"
 
-#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
+#: sequencer.c:785 builtin/pull.c:50 builtin/pull.c:52
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "%s 的值无效:%s"
 
-#: sequencer.c:804
+#: sequencer.c:795
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "非法的选项表单:%s"
 
-#: sequencer.c:823
+#: sequencer.c:814
 msgid "a cherry-pick or revert is already in progress"
 msgstr "一个拣选或还原操作已在进行"
 
-#: sequencer.c:824
+#: sequencer.c:815
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "尝试 \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:828
+#: sequencer.c:819
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "不能创建序列目录 %s"
 
-#: sequencer.c:844 sequencer.c:926
+#: sequencer.c:835 sequencer.c:917
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "错误收尾 %s。"
 
-#: sequencer.c:863 sequencer.c:996
+#: sequencer.c:854 sequencer.c:987
 msgid "no cherry-pick or revert in progress"
 msgstr "拣选或还原操作并未进行"
 
-#: sequencer.c:865
+#: sequencer.c:856
 msgid "cannot resolve HEAD"
 msgstr "不能解析 HEAD"
 
-#: sequencer.c:867
+#: sequencer.c:858
 msgid "cannot abort from a branch yet to be born"
 msgstr "不能从尚未建立的分支终止"
 
-#: sequencer.c:887 builtin/apply.c:4287
+#: sequencer.c:878 builtin/apply.c:4287
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "不能打开 %s:%s"
 
-#: sequencer.c:890
+#: sequencer.c:881
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "不能读取 %s:%s"
 
-#: sequencer.c:891
+#: sequencer.c:882
 msgid "unexpected end of file"
 msgstr "意外的文件结束"
 
-#: sequencer.c:897
+#: sequencer.c:888
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr "保存拣选提交前的 HEAD 文件 '%s' 损坏"
 
-#: sequencer.c:919
+#: sequencer.c:910
 #, c-format
 msgid "Could not format %s."
 msgstr "不能格式化 %s。"
 
-#: sequencer.c:1064
+#: sequencer.c:1055
 #, c-format
 msgid "%s: can't cherry-pick a %s"
 msgstr "%s:不能拣选一个%s"
 
-#: sequencer.c:1067
+#: sequencer.c:1058
 #, c-format
 msgid "%s: bad revision"
 msgstr "%s:错误的版本"
 
-#: sequencer.c:1101
+#: sequencer.c:1092
 msgid "Can't revert as initial commit"
 msgstr "不能作为初始提交还原"
 
-#: sequencer.c:1102
+#: sequencer.c:1093
 msgid "Can't cherry-pick into empty head"
 msgstr "不能拣选到空分支"
 
-#: setup.c:248
+#: setup.c:246
 #, c-format
 msgid "failed to read %s"
 msgstr "无法读取 %s"
 
-#: sha1_name.c:463
+#: sha1_file.c:1080
+msgid "offset before end of packfile (broken .idx?)"
+msgstr "偏移量在包文件结束之前(损坏的 .idx?)"
+
+#: sha1_file.c:2459
+#, c-format
+msgid "offset before start of pack index for %s (corrupt index?)"
+msgstr "偏移量在 %s 的包索引开始之前(损坏的索引?)"
+
+#: sha1_file.c:2463
+#, c-format
+msgid "offset beyond end of pack index for %s (truncated index?)"
+msgstr "偏移量越过了 %s 的包索引的结尾(被截断的索引?)"
+
+#: sha1_name.c:462
 msgid ""
 "Git normally never creates a ref that ends with 40 hex characters\n"
 "because it will be ignored when you just specify 40-hex. These refs\n"
@@ -1682,60 +1802,84 @@
 "可能需要删除它们。用 \"git config advice.objectNameWarning false\"\n"
 "命令关闭本消息通知。"
 
-#: submodule.c:61 submodule.c:95
+#: submodule.c:62 submodule.c:96
 msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
 msgstr "无法修改未合并的 .gitmodules,先解决合并冲突"
 
-#: submodule.c:65 submodule.c:99
+#: submodule.c:66 submodule.c:100
 #, c-format
 msgid "Could not find section in .gitmodules where path=%s"
 msgstr "无法在 .gitmodules 中找到 path=%s 的小节"
 
-#: submodule.c:73
+#: submodule.c:74
 #, c-format
 msgid "Could not update .gitmodules entry %s"
 msgstr "不能更新 .gitmodules 条目 %s"
 
-#: submodule.c:106
+#: submodule.c:107
 #, c-format
 msgid "Could not remove .gitmodules entry for %s"
 msgstr "无法移除 %s 的 .gitmodules 条目"
 
-#: submodule.c:117
+#: submodule.c:118
 msgid "staging updated .gitmodules failed"
 msgstr "将更新后 .gitmodules 添加暂存区失败"
 
-#: submodule.c:1040
+#: trailer.c:237
 #, c-format
-msgid "Could not set core.worktree in %s"
-msgstr "不能在 %s 中设置 core.worktree"
+msgid "running trailer command '%s' failed"
+msgstr "执行 trailer 命令 '%s' 失败"
 
-#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557
-#: trailer.c:561
+#: trailer.c:492 trailer.c:496 trailer.c:500 trailer.c:554 trailer.c:558
+#: trailer.c:562
 #, c-format
 msgid "unknown value '%s' for key '%s'"
 msgstr "键 '%2$s' 的未知取值 '%1$s'"
 
-#: trailer.c:543 trailer.c:548 builtin/remote.c:296
+#: trailer.c:544 trailer.c:549 builtin/remote.c:289
 #, c-format
 msgid "more than one %s"
 msgstr "多于一个 %s"
 
-#: trailer.c:581
+#: trailer.c:582
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
 msgstr "签名 '%.*s' 的键为空"
 
-#: trailer.c:701
+#: trailer.c:702
 #, c-format
 msgid "could not read input file '%s'"
 msgstr "不能读取输入文件 '%s'"
 
-#: trailer.c:704
+#: trailer.c:705
 msgid "could not read from stdin"
 msgstr "不能自标准输入读取"
 
-#: transport-helper.c:1025
+#: trailer.c:857 builtin/am.c:42
+#, c-format
+msgid "could not stat %s"
+msgstr "不能获取 %s 的文件状态"
+
+#: trailer.c:859
+#, c-format
+msgid "file %s is not a regular file"
+msgstr "文件 %s 不是一个正规文件"
+
+#: trailer.c:861
+#, c-format
+msgid "file %s is not writable by user"
+msgstr "文件 %s 用户不可写"
+
+#: trailer.c:873
+msgid "could not open temporary file"
+msgstr "不能打开临时文件"
+
+#: trailer.c:912
+#, c-format
+msgid "could not rename temporary file to %s"
+msgstr "不能重命名临时文件为 %s"
+
+#: transport-helper.c:1041
 #, c-format
 msgid "Could not read ref %s"
 msgstr "不能读取引用 %s"
@@ -1773,47 +1917,47 @@
 msgid "invalid '..' path segment"
 msgstr "无效的 '..' 路径片段"
 
-#: wrapper.c:219 wrapper.c:362
+#: wrapper.c:222 wrapper.c:381
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "无法打开 '%s' 进行读写"
 
-#: wrapper.c:221 wrapper.c:364
+#: wrapper.c:224 wrapper.c:383
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "无法打开 '%s' 进行写入"
 
-#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691
-#: builtin/merge.c:1074 builtin/pull.c:380
+#: wrapper.c:226 wrapper.c:385 builtin/am.c:323 builtin/commit.c:1691
+#: builtin/merge.c:1075 builtin/pull.c:387
 #, c-format
 msgid "could not open '%s' for reading"
 msgstr "无法打开 '%s' 进行读取"
 
-#: wrapper.c:579
+#: wrapper.c:611
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "不能访问 '%s':%s"
 
-#: wrapper.c:600
+#: wrapper.c:632
 #, c-format
 msgid "unable to access '%s'"
 msgstr "不能访问 '%s'"
 
-#: wrapper.c:608
+#: wrapper.c:640
 msgid "unable to get current working directory"
 msgstr "不能获取当前工作目录"
 
-#: wrapper.c:635
+#: wrapper.c:667
 #, c-format
 msgid "could not open %s for writing"
 msgstr "不能写入 %s"
 
-#: wrapper.c:646 builtin/am.c:425
+#: wrapper.c:678 builtin/am.c:410
 #, c-format
 msgid "could not write to %s"
 msgstr "不能写入 %s"
 
-#: wrapper.c:652
+#: wrapper.c:684
 #, c-format
 msgid "could not close %s"
 msgstr "不能关闭 %s"
@@ -2298,7 +2442,11 @@
 msgid "behind "
 msgstr "落后 "
 
-#: compat/precompose_utf8.c:56 builtin/clone.c:408
+#: wt-status.c:1680 wt-status.c:1683
+msgid "ahead "
+msgstr "领先 "
+
+#: compat/precompose_utf8.c:57 builtin/clone.c:413
 #, c-format
 msgid "failed to unlink '%s'"
 msgstr "无法删除 '%s'"
@@ -2325,7 +2473,7 @@
 msgid "Unstaged changes after refreshing the index:"
 msgstr "刷新索引之后尚未被暂存的变更:"
 
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:797
 msgid "Could not read the index"
 msgstr "不能读取索引"
 
@@ -2360,15 +2508,15 @@
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr "下列路径根据您的一个 .gitignore 文件而被忽略:\n"
 
-#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543
-#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162
+#: builtin/add.c:249 builtin/clean.c:870 builtin/fetch.c:112 builtin/mv.c:111
+#: builtin/prune-packed.c:55 builtin/pull.c:189 builtin/push.c:511
+#: builtin/remote.c:1330 builtin/rm.c:268 builtin/send-pack.c:162
 msgid "dry run"
 msgstr "演习"
 
-#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19
+#: builtin/add.c:250 builtin/apply.c:4561 builtin/check-ignore.c:19
 #: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558
-#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/log.c:1651 builtin/mv.c:110 builtin/read-tree.c:114
 msgid "be verbose"
 msgstr "冗长输出"
 
@@ -2376,7 +2524,7 @@
 msgid "interactive picking"
 msgstr "交互式拣选"
 
-#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1155 builtin/reset.c:286
 msgid "select hunks interactively"
 msgstr "交互式挑选数据块"
 
@@ -2443,135 +2591,130 @@
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "也许您想要执行 'git add .'?\n"
 
-#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938
-#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
-#: builtin/submodule--helper.c:40
+#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:914
+#: builtin/commit.c:337 builtin/mv.c:131 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/submodule--helper.c:35
 msgid "index file corrupt"
 msgstr "索引文件损坏"
 
-#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:439 builtin/apply.c:4659 builtin/mv.c:280 builtin/rm.c:430
 msgid "Unable to write new index file"
 msgstr "无法写入新索引文件"
 
-#: builtin/am.c:42
-#, c-format
-msgid "could not stat %s"
-msgstr "不能获取 %s 的文件状态"
-
-#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077
+#: builtin/am.c:256 builtin/commit.c:738 builtin/merge.c:1078
 #, c-format
 msgid "could not read '%s'"
 msgstr "不能读取 '%s'"
 
-#: builtin/am.c:445
+#: builtin/am.c:430
 msgid "could not parse author script"
 msgstr "不能解析作者脚本"
 
-#: builtin/am.c:522
+#: builtin/am.c:507
 #, c-format
 msgid "'%s' was deleted by the applypatch-msg hook"
 msgstr "'%s' 被 applypatch-msg 钩子删除"
 
-#: builtin/am.c:563 builtin/notes.c:300
+#: builtin/am.c:548 builtin/notes.c:300
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "非法的输入行:'%s'。"
 
-#: builtin/am.c:600 builtin/notes.c:315
+#: builtin/am.c:585 builtin/notes.c:315
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "从 '%s' 拷贝注解到 '%s' 时失败"
 
-#: builtin/am.c:626
+#: builtin/am.c:611
 msgid "fseek failed"
 msgstr "fseek 失败"
 
-#: builtin/am.c:787 builtin/am.c:875
+#: builtin/am.c:772 builtin/am.c:860
 #, c-format
 msgid "could not open '%s' for reading: %s"
 msgstr "无法打开 '%s' 进行读取:%s"
 
-#: builtin/am.c:794
+#: builtin/am.c:779
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "无法打开 '%s' 进行写入:%s"
 
-#: builtin/am.c:803
+#: builtin/am.c:788
 #, c-format
 msgid "could not parse patch '%s'"
 msgstr "无法解析补丁 '%s'"
 
-#: builtin/am.c:868
+#: builtin/am.c:853
 msgid "Only one StGIT patch series can be applied at once"
 msgstr "一次只能有一个 StGIT 补丁队列被应用"
 
-#: builtin/am.c:916
+#: builtin/am.c:901
 msgid "invalid timestamp"
 msgstr "无效的时间戳"
 
-#: builtin/am.c:919 builtin/am.c:927
+#: builtin/am.c:904 builtin/am.c:912
 msgid "invalid Date line"
 msgstr "无效的日期行"
 
-#: builtin/am.c:924
+#: builtin/am.c:909
 msgid "invalid timezone offset"
 msgstr "无效的时区偏移值"
 
-#: builtin/am.c:1011
+#: builtin/am.c:996
 msgid "Patch format detection failed."
 msgstr "补丁格式检测失败。"
 
-#: builtin/am.c:1016 builtin/clone.c:373
+#: builtin/am.c:1001 builtin/clone.c:378
 #, c-format
 msgid "failed to create directory '%s'"
 msgstr "无法创建目录 '%s'"
 
-#: builtin/am.c:1020
+#: builtin/am.c:1005
 msgid "Failed to split patches."
 msgstr "无法拆分补丁。"
 
-#: builtin/am.c:1152 builtin/commit.c:363
+#: builtin/am.c:1137 builtin/commit.c:363
 msgid "unable to write index file"
 msgstr "无法写入索引文件"
 
-#: builtin/am.c:1203
+#: builtin/am.c:1188
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
 msgstr "当您解决这一问题,执行 \"%s --continue\"。"
 
-#: builtin/am.c:1204
+#: builtin/am.c:1189
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
 msgstr "如果您想要跳过这一补丁,则执行 \"%s --skip\"。"
 
-#: builtin/am.c:1205
+#: builtin/am.c:1190
 #, c-format
 msgid "To restore the original branch and stop patching, run \"%s --abort\"."
 msgstr "若要复原至原始分支并停止补丁操作,执行 \"%s --abort\"。"
 
-#: builtin/am.c:1343
+#: builtin/am.c:1328
 msgid "Patch is empty. Was it split wrong?"
 msgstr "补丁为空。是不是切分错误?"
 
-#: builtin/am.c:1417 builtin/log.c:1347
+#: builtin/am.c:1402 builtin/log.c:1350
 #, c-format
 msgid "invalid ident line: %s"
 msgstr "包含无效的身份标识:%s"
 
-#: builtin/am.c:1444
+#: builtin/am.c:1429
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "不能解析提交 %s"
 
-#: builtin/am.c:1646
+#: builtin/am.c:1631
 msgid "Repository lacks necessary blobs to fall back on 3-way merge."
 msgstr "仓库缺乏必要的数据对象以进行三方合并。"
 
-#: builtin/am.c:1648
+#: builtin/am.c:1633
 msgid "Using index info to reconstruct a base tree..."
 msgstr "使用索引来重建一个(三方合并的)基础目录树..."
 
-#: builtin/am.c:1667
+#: builtin/am.c:1652
 msgid ""
 "Did you hand edit your patch?\n"
 "It does not apply to blobs recorded in its index."
@@ -2579,37 +2722,37 @@
 "您是否曾手动编辑过您的补丁?\n"
 "无法应用补丁到索引中的数据对象上。"
 
-#: builtin/am.c:1673
+#: builtin/am.c:1658
 msgid "Falling back to patching base and 3-way merge..."
 msgstr "回落到基础版本上打补丁及进行三方合并..."
 
-#: builtin/am.c:1688
+#: builtin/am.c:1673
 msgid "Failed to merge in the changes."
 msgstr "无法合并变更。"
 
-#: builtin/am.c:1712 builtin/merge.c:632
+#: builtin/am.c:1697 builtin/merge.c:633
 msgid "git write-tree failed to write a tree"
 msgstr "git write-tree 无法写入一树对象"
 
-#: builtin/am.c:1719
+#: builtin/am.c:1704
 msgid "applying to an empty history"
 msgstr "正应用到一个空历史上"
 
-#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829
-#: builtin/merge.c:854
+#: builtin/am.c:1717 builtin/commit.c:1755 builtin/merge.c:830
+#: builtin/merge.c:855
 msgid "failed to write commit object"
 msgstr "无法写提交对象"
 
-#: builtin/am.c:1764 builtin/am.c:1768
+#: builtin/am.c:1749 builtin/am.c:1753
 #, c-format
 msgid "cannot resume: %s does not exist."
 msgstr "无法继续:%s 不存在。"
 
-#: builtin/am.c:1784
+#: builtin/am.c:1769
 msgid "cannot be interactive without stdin connected to a terminal."
 msgstr "标准输入没有和终端关联,不能进行交互式操作。"
 
-#: builtin/am.c:1789
+#: builtin/am.c:1774
 msgid "Commit Body is:"
 msgstr "提交内容为:"
 
@@ -2618,35 +2761,35 @@
 #. in your translation. The program will only accept English
 #. input at this point.
 #.
-#: builtin/am.c:1799
+#: builtin/am.c:1784
 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
 msgstr "应用?是[y]/否[n]/编辑[e]/查看补丁[v]/应用所有[a]:"
 
-#: builtin/am.c:1849
+#: builtin/am.c:1834
 #, c-format
 msgid "Dirty index: cannot apply patches (dirty: %s)"
 msgstr "脏索引:不能应用补丁(脏文件:%s)"
 
-#: builtin/am.c:1884 builtin/am.c:1955
+#: builtin/am.c:1869 builtin/am.c:1941
 #, c-format
 msgid "Applying: %.*s"
 msgstr "应用:%.*s"
 
-#: builtin/am.c:1900
+#: builtin/am.c:1885
 msgid "No changes -- Patch already applied."
 msgstr "没有变更 —— 补丁已经应用过。"
 
-#: builtin/am.c:1908
+#: builtin/am.c:1893
 #, c-format
 msgid "Patch failed at %s %.*s"
 msgstr "打补丁失败于 %s %.*s"
 
-#: builtin/am.c:1914
+#: builtin/am.c:1899
 #, c-format
 msgid "The copy of the patch that failed is found in: %s"
 msgstr "失败的补丁文件副本位于:%s"
 
-#: builtin/am.c:1958
+#: builtin/am.c:1944
 msgid ""
 "No changes - did you forget to use 'git add'?\n"
 "If there is nothing left to stage, chances are that something else\n"
@@ -2656,7 +2799,7 @@
 "如果没有什么要添加到暂存区的,则很可能是其它提交已经引入了相同的变更。\n"
 "您也许想要跳过这个补丁。"
 
-#: builtin/am.c:1965
+#: builtin/am.c:1951
 msgid ""
 "You still have unmerged paths in your index.\n"
 "Did you forget to use 'git add'?"
@@ -2664,168 +2807,168 @@
 "您的索引中仍有未合并的路径。\n"
 "您是否忘了执行 'git add'?"
 
-#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308
+#: builtin/am.c:2059 builtin/am.c:2063 builtin/am.c:2075 builtin/reset.c:308
 #: builtin/reset.c:316
 #, c-format
 msgid "Could not parse object '%s'."
 msgstr "不能解析对象 '%s'。"
 
-#: builtin/am.c:2125
+#: builtin/am.c:2111
 msgid "failed to clean index"
 msgstr "无法清空索引"
 
-#: builtin/am.c:2159
+#: builtin/am.c:2145
 msgid ""
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr "您好像在上一次 'am' 失败后移动了 HEAD。未回退至 ORIG_HEAD"
 
-#: builtin/am.c:2220
+#: builtin/am.c:2206
 #, c-format
 msgid "Invalid value for --patch-format: %s"
 msgstr "无效的 --patch-format 值:%s"
 
-#: builtin/am.c:2253
+#: builtin/am.c:2239
 msgid "git am [<options>] [(<mbox>|<Maildir>)...]"
 msgstr "git am [<选项>] [(<mbox>|<Maildir>)...]"
 
-#: builtin/am.c:2254
+#: builtin/am.c:2240
 msgid "git am [<options>] (--continue | --skip | --abort)"
 msgstr "git am [<选项>] (--continue | --skip | --abort)"
 
-#: builtin/am.c:2260
+#: builtin/am.c:2246
 msgid "run interactively"
 msgstr "以交互式方式运行"
 
-#: builtin/am.c:2262
+#: builtin/am.c:2248
 msgid "historical option -- no-op"
 msgstr "老的参数 —— 无作用"
 
-#: builtin/am.c:2264
+#: builtin/am.c:2250
 msgid "allow fall back on 3way merging if needed"
 msgstr "如果必要,允许使用三方合并。"
 
-#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57
+#: builtin/am.c:2251 builtin/init-db.c:474 builtin/prune-packed.c:57
 #: builtin/repack.c:171
 msgid "be quiet"
 msgstr "静默模式"
 
-#: builtin/am.c:2267
+#: builtin/am.c:2253
 msgid "add a Signed-off-by line to the commit message"
 msgstr "在提交说明中添加一个 Signed-off-by 签名"
 
-#: builtin/am.c:2270
+#: builtin/am.c:2256
 msgid "recode into utf8 (default)"
 msgstr "使用 utf8 字符集(默认)"
 
-#: builtin/am.c:2272
+#: builtin/am.c:2258
 msgid "pass -k flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -k 参数"
 
-#: builtin/am.c:2274
+#: builtin/am.c:2260
 msgid "pass -b flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -b 参数"
 
-#: builtin/am.c:2276
+#: builtin/am.c:2262
 msgid "pass -m flag to git-mailinfo"
 msgstr "向 git-mailinfo 传递 -m 参数"
 
-#: builtin/am.c:2278
+#: builtin/am.c:2264
 msgid "pass --keep-cr flag to git-mailsplit for mbox format"
 msgstr "针对 mbox 格式,向 git-mailsplit 传递 --keep-cr 参数"
 
-#: builtin/am.c:2281
+#: builtin/am.c:2267
 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
 msgstr "不向 git-mailsplit 传递 --keep-cr 参数,覆盖 am.keepcr 的设置"
 
-#: builtin/am.c:2284
+#: builtin/am.c:2270
 msgid "strip everything before a scissors line"
 msgstr "丢弃裁切线前的所有内容"
 
-#: builtin/am.c:2285 builtin/apply.c:4554
+#: builtin/am.c:2271 builtin/apply.c:4544
 msgid "action"
 msgstr "动作"
 
-#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295
-#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307
-#: builtin/am.c:2313
+#: builtin/am.c:2272 builtin/am.c:2275 builtin/am.c:2278 builtin/am.c:2281
+#: builtin/am.c:2284 builtin/am.c:2287 builtin/am.c:2290 builtin/am.c:2293
+#: builtin/am.c:2299
 msgid "pass it through git-apply"
 msgstr "传递给 git-apply"
 
-#: builtin/am.c:2294 builtin/apply.c:4578
+#: builtin/am.c:2280 builtin/apply.c:4568
 msgid "root"
 msgstr "根目录"
 
-#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516
-#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93
-#: builtin/pull.c:167 builtin/submodule--helper.c:78
-#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
+#: builtin/am.c:2283 builtin/am.c:2286 builtin/apply.c:4506
+#: builtin/apply.c:4509 builtin/clone.c:86 builtin/fetch.c:95
+#: builtin/pull.c:171 builtin/submodule--helper.c:72
+#: builtin/submodule--helper.c:160 builtin/submodule--helper.c:163
 msgid "path"
 msgstr "路径"
 
-#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
-#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127
-#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645
-#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132
-#: parse-options.h:134 parse-options.h:244
+#: builtin/am.c:2289 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669
+#: builtin/grep.c:704 builtin/merge.c:198 builtin/pull.c:131
+#: builtin/pull.c:185 builtin/repack.c:178 builtin/repack.c:182
+#: builtin/show-branch.c:645 builtin/show-ref.c:175 builtin/tag.c:340
+#: parse-options.h:132 parse-options.h:134 parse-options.h:244
 msgid "n"
 msgstr "n"
 
-#: builtin/am.c:2306 builtin/apply.c:4522
+#: builtin/am.c:2292 builtin/apply.c:4512
 msgid "num"
 msgstr "数字"
 
-#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438
+#: builtin/am.c:2295 builtin/for-each-ref.c:37 builtin/replace.c:438
 #: builtin/tag.c:372
 msgid "format"
 msgstr "格式"
 
-#: builtin/am.c:2310
+#: builtin/am.c:2296
 msgid "format the patch(es) are in"
 msgstr "补丁的格式"
 
-#: builtin/am.c:2316
+#: builtin/am.c:2302
 msgid "override error message when patch failure occurs"
 msgstr "打补丁失败时显示的错误信息"
 
-#: builtin/am.c:2318
+#: builtin/am.c:2304
 msgid "continue applying patches after resolving a conflict"
 msgstr "冲突解决后继续应用补丁"
 
-#: builtin/am.c:2321
+#: builtin/am.c:2307
 msgid "synonyms for --continue"
 msgstr "和 --continue 同义"
 
-#: builtin/am.c:2324
+#: builtin/am.c:2310
 msgid "skip the current patch"
 msgstr "跳过当前补丁"
 
-#: builtin/am.c:2327
+#: builtin/am.c:2313
 msgid "restore the original branch and abort the patching operation."
 msgstr "恢复原始分支并终止打补丁操作。"
 
-#: builtin/am.c:2331
+#: builtin/am.c:2317
 msgid "lie about committer date"
 msgstr "将作者日期作为提交日期"
 
-#: builtin/am.c:2333
+#: builtin/am.c:2319
 msgid "use current timestamp for author date"
 msgstr "用当前时间作为作者日期"
 
-#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225
-#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355
+#: builtin/am.c:2321 builtin/commit.c:1593 builtin/merge.c:225
+#: builtin/pull.c:159 builtin/revert.c:92 builtin/tag.c:355
 msgid "key-id"
 msgstr "key-id"
 
-#: builtin/am.c:2336
+#: builtin/am.c:2322
 msgid "GPG-sign commits"
 msgstr "使用 GPG 签名提交"
 
-#: builtin/am.c:2339
+#: builtin/am.c:2325
 msgid "(internal use for git-rebase)"
 msgstr "(内部使用,用于 git-rebase)"
 
-#: builtin/am.c:2354
+#: builtin/am.c:2340
 msgid ""
 "The -b/--binary option has been a no-op for long time, and\n"
 "it will be removed. Please do not use it anymore."
@@ -2833,16 +2976,16 @@
 "参数 -b/--binary 已经很长时间不做任何实质操作了,并且将被移除。\n"
 "请不要再使用它了。"
 
-#: builtin/am.c:2361
+#: builtin/am.c:2347
 msgid "failed to read the index"
 msgstr "无法读取索引"
 
-#: builtin/am.c:2376
+#: builtin/am.c:2362
 #, c-format
 msgid "previous rebase directory %s still exists but mbox given."
 msgstr "之前的变基目录 %s 仍然存在,但却提供了 mbox。"
 
-#: builtin/am.c:2400
+#: builtin/am.c:2386
 #, c-format
 msgid ""
 "Stray %s directory found.\n"
@@ -2851,7 +2994,7 @@
 "发现了错误的 %s 目录。\n"
 "使用 \"git am --abort\" 删除它。"
 
-#: builtin/am.c:2406
+#: builtin/am.c:2392
 msgid "Resolve operation not in progress, we are not resuming."
 msgstr "解决操作未进行,我们不会继续。"
 
@@ -3192,131 +3335,131 @@
 msgid "unable to read index file"
 msgstr "无法读取索引文件"
 
-#: builtin/apply.c:4517
+#: builtin/apply.c:4507
 msgid "don't apply changes matching the given path"
 msgstr "不要应用与给出路径向匹配的变更"
 
-#: builtin/apply.c:4520
+#: builtin/apply.c:4510
 msgid "apply changes matching the given path"
 msgstr "应用与给出路径向匹配的变更"
 
-#: builtin/apply.c:4523
+#: builtin/apply.c:4513
 msgid "remove <num> leading slashes from traditional diff paths"
 msgstr "从传统的 diff 路径中移除指定数量的前导斜线"
 
-#: builtin/apply.c:4526
+#: builtin/apply.c:4516
 msgid "ignore additions made by the patch"
 msgstr "忽略补丁中的添加的文件"
 
-#: builtin/apply.c:4528
+#: builtin/apply.c:4518
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr "不应用补丁,而是显示输入的差异统计(diffstat)"
 
-#: builtin/apply.c:4532
+#: builtin/apply.c:4522
 msgid "show number of added and deleted lines in decimal notation"
 msgstr "以十进制数显示添加和删除的行数"
 
-#: builtin/apply.c:4534
+#: builtin/apply.c:4524
 msgid "instead of applying the patch, output a summary for the input"
 msgstr "不应用补丁,而是显示输入的概要"
 
-#: builtin/apply.c:4536
+#: builtin/apply.c:4526
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr "不应用补丁,而是查看补丁是否可应用"
 
-#: builtin/apply.c:4538
+#: builtin/apply.c:4528
 msgid "make sure the patch is applicable to the current index"
 msgstr "确认补丁可以应用到当前索引"
 
-#: builtin/apply.c:4540
+#: builtin/apply.c:4530
 msgid "apply a patch without touching the working tree"
 msgstr "应用补丁而不修改工作区"
 
-#: builtin/apply.c:4542
+#: builtin/apply.c:4532
 msgid "accept a patch that touches outside the working area"
 msgstr "接受修改工作区之外文件的补丁"
 
-#: builtin/apply.c:4544
+#: builtin/apply.c:4534
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "还应用此补丁(与 --stat/--summary/--check 选项同时使用)"
 
-#: builtin/apply.c:4546
+#: builtin/apply.c:4536
 msgid "attempt three-way merge if a patch does not apply"
 msgstr "如果一个补丁不能应用则尝试三方合并"
 
-#: builtin/apply.c:4548
+#: builtin/apply.c:4538
 msgid "build a temporary index based on embedded index information"
 msgstr "创建一个临时索引基于嵌入的索引信息"
 
-#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412
+#: builtin/apply.c:4541 builtin/checkout-index.c:169 builtin/ls-files.c:425
 msgid "paths are separated with NUL character"
 msgstr "路径以 NUL 字符分隔"
 
-#: builtin/apply.c:4553
+#: builtin/apply.c:4543
 msgid "ensure at least <n> lines of context match"
 msgstr "确保至少匹配 <n> 行上下文"
 
-#: builtin/apply.c:4555
+#: builtin/apply.c:4545
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "检查新增和修改的行中间的空白字符滥用"
 
-#: builtin/apply.c:4558 builtin/apply.c:4561
+#: builtin/apply.c:4548 builtin/apply.c:4551
 msgid "ignore changes in whitespace when finding context"
 msgstr "查找上下文时忽略空白字符的变更"
 
-#: builtin/apply.c:4564
+#: builtin/apply.c:4554
 msgid "apply the patch in reverse"
 msgstr "反向应用补丁"
 
-#: builtin/apply.c:4566
+#: builtin/apply.c:4556
 msgid "don't expect at least one line of context"
 msgstr "无需至少一行上下文"
 
-#: builtin/apply.c:4568
+#: builtin/apply.c:4558
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr "将拒绝的补丁片段保存在对应的 *.rej 文件中"
 
-#: builtin/apply.c:4570
+#: builtin/apply.c:4560
 msgid "allow overlapping hunks"
 msgstr "允许重叠的补丁片段"
 
-#: builtin/apply.c:4573
+#: builtin/apply.c:4563
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "允许不正确的文件末尾换行符"
 
-#: builtin/apply.c:4576
+#: builtin/apply.c:4566
 msgid "do not trust the line counts in the hunk headers"
 msgstr "不信任补丁片段的头信息中的行号"
 
-#: builtin/apply.c:4579
+#: builtin/apply.c:4569
 msgid "prepend <root> to all filenames"
 msgstr "为所有文件名前添加 <根目录>"
 
-#: builtin/apply.c:4601
+#: builtin/apply.c:4591
 msgid "--3way outside a repository"
 msgstr "--3way 在一个仓库之外"
 
-#: builtin/apply.c:4609
+#: builtin/apply.c:4599
 msgid "--index outside a repository"
 msgstr "--index 在一个仓库之外"
 
-#: builtin/apply.c:4612
+#: builtin/apply.c:4602
 msgid "--cached outside a repository"
 msgstr "--cached 在一个仓库之外"
 
-#: builtin/apply.c:4631
+#: builtin/apply.c:4621
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "不能打开补丁 '%s'"
 
-#: builtin/apply.c:4645
+#: builtin/apply.c:4635
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "抑制下仍有 %d 个空白字符误用"
 msgstr[1] "抑制下仍有 %d 个空白字符误用"
 
-#: builtin/apply.c:4651 builtin/apply.c:4661
+#: builtin/apply.c:4641 builtin/apply.c:4651
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -3370,103 +3513,111 @@
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "更新 BISECT_HEAD 而非检出当前提交"
 
-#: builtin/blame.c:32
+#: builtin/blame.c:33
 msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
 msgstr "git blame [<选项>] [<版本选项>] [<版本>] [--] <文件>"
 
-#: builtin/blame.c:37
+#: builtin/blame.c:38
 msgid "<rev-opts> are documented in git-rev-list(1)"
 msgstr "<版本选项> 的文档记录在 git-rev-list(1) 中"
 
-#: builtin/blame.c:2519
+#: builtin/blame.c:1782
+msgid "Blaming lines"
+msgstr "追踪代码行"
+
+#: builtin/blame.c:2530
 msgid "Show blame entries as we find them, incrementally"
 msgstr "增量式地显示发现的 blame 条目"
 
-#: builtin/blame.c:2520
+#: builtin/blame.c:2531
 msgid "Show blank SHA-1 for boundary commits (Default: off)"
 msgstr "边界提交显示空的 SHA-1(默认:关闭)"
 
-#: builtin/blame.c:2521
+#: builtin/blame.c:2532
 msgid "Do not treat root commits as boundaries (Default: off)"
 msgstr "不把根提交作为边界(默认:关闭)"
 
-#: builtin/blame.c:2522
+#: builtin/blame.c:2533
 msgid "Show work cost statistics"
 msgstr "显示命令消耗统计"
 
-#: builtin/blame.c:2523
+#: builtin/blame.c:2534
+msgid "Force progress reporting"
+msgstr "强制进度显示"
+
+#: builtin/blame.c:2535
 msgid "Show output score for blame entries"
 msgstr "显示判断 blame 条目位移的得分诊断信息"
 
-#: builtin/blame.c:2524
+#: builtin/blame.c:2536
 msgid "Show original filename (Default: auto)"
 msgstr "显示原始文件名(默认:自动)"
 
-#: builtin/blame.c:2525
+#: builtin/blame.c:2537
 msgid "Show original linenumber (Default: off)"
 msgstr "显示原始的行号(默认:关闭)"
 
-#: builtin/blame.c:2526
+#: builtin/blame.c:2538
 msgid "Show in a format designed for machine consumption"
 msgstr "显示为一个适合机器读取的格式"
 
-#: builtin/blame.c:2527
+#: builtin/blame.c:2539
 msgid "Show porcelain format with per-line commit information"
 msgstr "为每一行显示机器适用的提交信息"
 
-#: builtin/blame.c:2528
+#: builtin/blame.c:2540
 msgid "Use the same output mode as git-annotate (Default: off)"
 msgstr "使用和 git-annotate 相同的输出模式(默认:关闭)"
 
-#: builtin/blame.c:2529
+#: builtin/blame.c:2541
 msgid "Show raw timestamp (Default: off)"
 msgstr "显示原始时间戳(默认:关闭)"
 
-#: builtin/blame.c:2530
+#: builtin/blame.c:2542
 msgid "Show long commit SHA1 (Default: off)"
 msgstr "显示长的 SHA1 提交号(默认:关闭)"
 
-#: builtin/blame.c:2531
+#: builtin/blame.c:2543
 msgid "Suppress author name and timestamp (Default: off)"
 msgstr "隐藏作者名字和时间戳(默认:关闭)"
 
-#: builtin/blame.c:2532
+#: builtin/blame.c:2544
 msgid "Show author email instead of name (Default: off)"
 msgstr "显示作者的邮箱而不是名字(默认:关闭)"
 
-#: builtin/blame.c:2533
+#: builtin/blame.c:2545
 msgid "Ignore whitespace differences"
 msgstr "忽略空白差异"
 
-#: builtin/blame.c:2534
+#: builtin/blame.c:2546
 msgid "Spend extra cycles to find better match"
 msgstr "花费额外的循环来找到更好的匹配"
 
-#: builtin/blame.c:2535
+#: builtin/blame.c:2547
 msgid "Use revisions from <file> instead of calling git-rev-list"
 msgstr "使用来自 <文件> 的修订集而不是调用 git-rev-list"
 
-#: builtin/blame.c:2536
+#: builtin/blame.c:2548
 msgid "Use <file>'s contents as the final image"
 msgstr "使用 <文件> 的内容作为最终的图片"
 
-#: builtin/blame.c:2537 builtin/blame.c:2538
+#: builtin/blame.c:2549 builtin/blame.c:2550
 msgid "score"
 msgstr "得分"
 
-#: builtin/blame.c:2537
+#: builtin/blame.c:2549
 msgid "Find line copies within and across files"
 msgstr "找到文件内及跨文件的行拷贝"
 
-#: builtin/blame.c:2538
+#: builtin/blame.c:2550
 msgid "Find line movements within and across files"
 msgstr "找到文件内及跨文件的行移动"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "n,m"
 msgstr "n,m"
 
-#: builtin/blame.c:2539
+#: builtin/blame.c:2551
 msgid "Process only line range n,m, counting from 1"
 msgstr "只处理行范围在 n 和 m 之间的,从 1 开始"
 
@@ -3476,7 +3627,7 @@
 #. takes 22 places, is the longest among various forms of
 #. relative timestamps, but your language may need more or
 #. fewer display columns.
-#: builtin/blame.c:2620
+#: builtin/blame.c:2640
 msgid "4 years, 11 months ago"
 msgstr "4 年 11 个月前"
 
@@ -3676,193 +3827,193 @@
 msgid "Branch is renamed, but update of config-file failed"
 msgstr "分支被重命名,但更新 config 文件失败"
 
-#: builtin/branch.c:587
+#: builtin/branch.c:586
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "不能写分支描述模版:%s"
 
-#: builtin/branch.c:616
+#: builtin/branch.c:615
 msgid "Generic options"
 msgstr "通用选项"
 
-#: builtin/branch.c:618
+#: builtin/branch.c:617
 msgid "show hash and subject, give twice for upstream branch"
 msgstr "显示哈希值和主题,若参数出现两次则显示上游分支"
 
-#: builtin/branch.c:619
+#: builtin/branch.c:618
 msgid "suppress informational messages"
 msgstr "不显示信息"
 
-#: builtin/branch.c:620
+#: builtin/branch.c:619
 msgid "set up tracking mode (see git-pull(1))"
 msgstr "设置跟踪模式(参见 git-pull(1))"
 
-#: builtin/branch.c:622
+#: builtin/branch.c:621
 msgid "change upstream info"
 msgstr "改变上游信息"
 
-#: builtin/branch.c:626
+#: builtin/branch.c:625
 msgid "use colored output"
 msgstr "使用彩色输出"
 
-#: builtin/branch.c:627
+#: builtin/branch.c:626
 msgid "act on remote-tracking branches"
 msgstr "作用于远程跟踪分支"
 
-#: builtin/branch.c:629 builtin/branch.c:630
+#: builtin/branch.c:628 builtin/branch.c:629
 msgid "print only branches that contain the commit"
 msgstr "只打印包含该提交的分支"
 
-#: builtin/branch.c:633
+#: builtin/branch.c:632
 msgid "Specific git-branch actions:"
 msgstr "具体的 git-branch 动作:"
 
-#: builtin/branch.c:634
+#: builtin/branch.c:633
 msgid "list both remote-tracking and local branches"
 msgstr "列出远程跟踪及本地分支"
 
-#: builtin/branch.c:636
+#: builtin/branch.c:635
 msgid "delete fully merged branch"
 msgstr "删除完全合并的分支"
 
-#: builtin/branch.c:637
+#: builtin/branch.c:636
 msgid "delete branch (even if not merged)"
 msgstr "删除分支(即使没有合并)"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:637
 msgid "move/rename a branch and its reflog"
 msgstr "移动/重命名一个分支,以及它的引用日志"
 
-#: builtin/branch.c:639
+#: builtin/branch.c:638
 msgid "move/rename a branch, even if target exists"
 msgstr "移动/重命名一个分支,即使目标已存在"
 
-#: builtin/branch.c:640
+#: builtin/branch.c:639
 msgid "list branch names"
 msgstr "列出分支名"
 
-#: builtin/branch.c:641
+#: builtin/branch.c:640
 msgid "create the branch's reflog"
 msgstr "创建分支的引用日志"
 
-#: builtin/branch.c:643
+#: builtin/branch.c:642
 msgid "edit the description for the branch"
 msgstr "标记分支的描述"
 
-#: builtin/branch.c:644
+#: builtin/branch.c:643
 msgid "force creation, move/rename, deletion"
 msgstr "强制创建、移动/重命名、删除"
 
-#: builtin/branch.c:645
+#: builtin/branch.c:644
 msgid "print only branches that are merged"
 msgstr "只打印已经合并的分支"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:645
 msgid "print only branches that are not merged"
 msgstr "只打印尚未合并的分支"
 
-#: builtin/branch.c:647
+#: builtin/branch.c:646
 msgid "list branches in columns"
 msgstr "以列的方式显示分支"
 
-#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366
+#: builtin/branch.c:647 builtin/for-each-ref.c:38 builtin/tag.c:366
 msgid "key"
 msgstr "key"
 
-#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367
+#: builtin/branch.c:648 builtin/for-each-ref.c:39 builtin/tag.c:367
 msgid "field name to sort on"
 msgstr "排序的字段名"
 
-#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398
-#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564
+#: builtin/branch.c:650 builtin/for-each-ref.c:41 builtin/notes.c:401
+#: builtin/notes.c:404 builtin/notes.c:564 builtin/notes.c:567
 #: builtin/tag.c:369
 msgid "object"
 msgstr "对象"
 
-#: builtin/branch.c:652
+#: builtin/branch.c:651
 msgid "print only branches of the object"
 msgstr "只打印指向该对象的分支"
 
-#: builtin/branch.c:670
+#: builtin/branch.c:669
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "无法将 HEAD 解析为有效引用。"
 
-#: builtin/branch.c:674 builtin/clone.c:697
+#: builtin/branch.c:673 builtin/clone.c:705
 msgid "HEAD not found below refs/heads!"
 msgstr "HEAD 没有位于 /refs/heads 之下!"
 
-#: builtin/branch.c:694
+#: builtin/branch.c:693
 msgid "--column and --verbose are incompatible"
 msgstr "--column 和 --verbose 不兼容"
 
-#: builtin/branch.c:705 builtin/branch.c:747
+#: builtin/branch.c:704 builtin/branch.c:746
 msgid "branch name required"
 msgstr "必须提供分支名"
 
-#: builtin/branch.c:723
+#: builtin/branch.c:722
 msgid "Cannot give description to detached HEAD"
 msgstr "不能向分离头指针提供描述"
 
-#: builtin/branch.c:728
+#: builtin/branch.c:727
 msgid "cannot edit description of more than one branch"
 msgstr "不能为一个以上的分支编辑描述"
 
-#: builtin/branch.c:735
+#: builtin/branch.c:734
 #, c-format
 msgid "No commit on branch '%s' yet."
 msgstr "分支 '%s' 尚无提交。"
 
-#: builtin/branch.c:738
+#: builtin/branch.c:737
 #, c-format
 msgid "No branch named '%s'."
 msgstr "没有分支 '%s'。"
 
-#: builtin/branch.c:753
+#: builtin/branch.c:752
 msgid "too many branches for a rename operation"
 msgstr "为重命名操作提供了太多的分支名"
 
-#: builtin/branch.c:758
+#: builtin/branch.c:757
 msgid "too many branches to set new upstream"
 msgstr "为设置新上游提供了太多的分支名"
 
-#: builtin/branch.c:762
+#: builtin/branch.c:761
 #, c-format
 msgid ""
 "could not set upstream of HEAD to %s when it does not point to any branch."
 msgstr "无法设置 HEAD 的上游为 %s,因为 HEAD 没有指向任何分支。"
 
-#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808
+#: builtin/branch.c:764 builtin/branch.c:786 builtin/branch.c:807
 #, c-format
 msgid "no such branch '%s'"
 msgstr "没有此分支 '%s'"
 
-#: builtin/branch.c:769
+#: builtin/branch.c:768
 #, c-format
 msgid "branch '%s' does not exist"
 msgstr "分支 '%s' 不存在"
 
-#: builtin/branch.c:781
+#: builtin/branch.c:780
 msgid "too many branches to unset upstream"
 msgstr "为取消上游设置操作提供了太多的分支名"
 
-#: builtin/branch.c:785
+#: builtin/branch.c:784
 msgid "could not unset upstream of HEAD when it does not point to any branch."
 msgstr "无法取消 HEAD 的上游设置因为它没有指向一个分支"
 
-#: builtin/branch.c:791
+#: builtin/branch.c:790
 #, c-format
 msgid "Branch '%s' has no upstream information"
 msgstr "分支 '%s' 没有上游信息"
 
-#: builtin/branch.c:805
+#: builtin/branch.c:804
 msgid "it does not make sense to create 'HEAD' manually"
 msgstr "手工创建 'HEAD' 没有意义"
 
-#: builtin/branch.c:811
+#: builtin/branch.c:810
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr "'git branch' 的 -a 和 -r 选项带一个分支名参数没有意义"
 
-#: builtin/branch.c:814
+#: builtin/branch.c:813
 #, c-format
 msgid ""
 "The --set-upstream flag is deprecated and will be removed. Consider using --"
@@ -3870,7 +4021,7 @@
 msgstr ""
 "选项 --set-upstream 已弃用并将被移除。考虑使用 --track 或 --set-upstream-to\n"
 
-#: builtin/branch.c:831
+#: builtin/branch.c:830
 #, c-format
 msgid ""
 "\n"
@@ -3881,12 +4032,12 @@
 "如果你想用 '%s' 跟踪 '%s', 这么做:\n"
 "\n"
 
-#: builtin/branch.c:832
+#: builtin/branch.c:831
 #, c-format
 msgid "    git branch -d %s\n"
 msgstr "    git branch -d %s\n"
 
-#: builtin/branch.c:833
+#: builtin/branch.c:832
 #, c-format
 msgid "    git branch --set-upstream-to %s\n"
 msgstr "    git branch --set-upstream-to %s\n"
@@ -3980,7 +4131,7 @@
 msgid "use .gitattributes only from the index"
 msgstr "只使用索引中的 .gitattributes"
 
-#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96
+#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:97
 msgid "read file names from stdin"
 msgstr "从标准输入读出文件名"
 
@@ -3988,7 +4139,7 @@
 msgid "terminate input and output records by a NUL character"
 msgstr "输入和输出的记录使用 NUL 字符终结"
 
-#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325
+#: builtin/check-ignore.c:18 builtin/checkout.c:1136 builtin/gc.c:325
 msgid "suppress progress reporting"
 msgstr "不显示进度报告"
 
@@ -4041,49 +4192,53 @@
 msgid "no contacts specified"
 msgstr "未指定联系地址"
 
-#: builtin/checkout-index.c:126
+#: builtin/checkout-index.c:127
 msgid "git checkout-index [<options>] [--] [<file>...]"
 msgstr "git checkout-index [<选项>] [--] [<文件>...]"
 
-#: builtin/checkout-index.c:188
+#: builtin/checkout-index.c:144
+msgid "stage should be between 1 and 3 or all"
+msgstr "索引值应该取值 1 到 3 或者 all"
+
+#: builtin/checkout-index.c:160
 msgid "check out all files in the index"
 msgstr "检出索引区的所有文件"
 
-#: builtin/checkout-index.c:189
+#: builtin/checkout-index.c:161
 msgid "force overwrite of existing files"
 msgstr "强制覆盖现有的文件"
 
-#: builtin/checkout-index.c:191
+#: builtin/checkout-index.c:163
 msgid "no warning for existing files and files not in index"
 msgstr "存在或不在索引中的文件都没有警告"
 
-#: builtin/checkout-index.c:193
+#: builtin/checkout-index.c:165
 msgid "don't checkout new files"
 msgstr "不检出新文件"
 
-#: builtin/checkout-index.c:195
+#: builtin/checkout-index.c:167
 msgid "update stat information in the index file"
 msgstr "更新索引中文件的状态信息"
 
-#: builtin/checkout-index.c:201
+#: builtin/checkout-index.c:171
 msgid "read list of paths from the standard input"
 msgstr "从标准输入读取路径列表"
 
-#: builtin/checkout-index.c:203
+#: builtin/checkout-index.c:173
 msgid "write the content to temporary files"
 msgstr "将内容写入临时文件"
 
-#: builtin/checkout-index.c:204 builtin/column.c:30
+#: builtin/checkout-index.c:174 builtin/column.c:30
+#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169
 #: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175
-#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181
 msgid "string"
 msgstr "字符串"
 
-#: builtin/checkout-index.c:205
+#: builtin/checkout-index.c:175
 msgid "when creating files, prepend <string>"
 msgstr "在创建文件时,在前面加上 <字符串>"
 
-#: builtin/checkout-index.c:208
+#: builtin/checkout-index.c:177
 msgid "copy out the files from named stage"
 msgstr "从指定暂存区中拷出文件"
 
@@ -4163,38 +4318,42 @@
 msgid "HEAD is now at"
 msgstr "HEAD 目前位于"
 
-#: builtin/checkout.c:668
+#: builtin/checkout.c:665 builtin/clone.c:659
+msgid "unable to update HEAD"
+msgstr "不能更新 HEAD"
+
+#: builtin/checkout.c:669
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "重置分支 '%s'\n"
 
-#: builtin/checkout.c:671
+#: builtin/checkout.c:672
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "已经位于 '%s'\n"
 
-#: builtin/checkout.c:675
+#: builtin/checkout.c:676
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "切换并重置分支 '%s'\n"
 
-#: builtin/checkout.c:677 builtin/checkout.c:1066
+#: builtin/checkout.c:678 builtin/checkout.c:1068
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "切换到一个新分支 '%s'\n"
 
-#: builtin/checkout.c:679
+#: builtin/checkout.c:680
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "切换到分支 '%s'\n"
 
 #  译者:注意保持前导空格
-#: builtin/checkout.c:731
+#: builtin/checkout.c:732
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... 及其它 %d 个。\n"
 
-#: builtin/checkout.c:737
+#: builtin/checkout.c:738
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -4215,7 +4374,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:756
+#: builtin/checkout.c:757
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -4242,150 +4401,150 @@
 " git branch <新分支名> %s\n"
 "\n"
 
-#: builtin/checkout.c:792
+#: builtin/checkout.c:793
 msgid "internal error in revision walk"
 msgstr "在版本遍历时遇到内部错误"
 
-#: builtin/checkout.c:796
+#: builtin/checkout.c:797
 msgid "Previous HEAD position was"
 msgstr "之前的 HEAD 位置是"
 
-#: builtin/checkout.c:823 builtin/checkout.c:1061
+#: builtin/checkout.c:824 builtin/checkout.c:1063
 msgid "You are on a branch yet to be born"
 msgstr "您位于一个尚未初始化的分支"
 
-#: builtin/checkout.c:968
+#: builtin/checkout.c:969
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "只要一个引用,却给出了 %d 个"
 
-#: builtin/checkout.c:1007 builtin/worktree.c:213
+#: builtin/checkout.c:1009 builtin/worktree.c:211
 #, c-format
 msgid "invalid reference: %s"
 msgstr "无效引用:%s"
 
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:1038
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "引用不是一个树:%s"
 
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1077
 msgid "paths cannot be used with switching branches"
 msgstr "路径不能和切换分支同时使用"
 
-#: builtin/checkout.c:1078 builtin/checkout.c:1082
+#: builtin/checkout.c:1080 builtin/checkout.c:1084
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' 不能和切换分支同时使用"
 
-#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094
-#: builtin/checkout.c:1097
+#: builtin/checkout.c:1088 builtin/checkout.c:1091 builtin/checkout.c:1096
+#: builtin/checkout.c:1099
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' 不能和 '%s' 同时使用"
 
-#: builtin/checkout.c:1102
+#: builtin/checkout.c:1104
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "不能切换分支到一个非提交 '%s'"
 
-#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83
-#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320
-#: builtin/worktree.c:322
+#: builtin/checkout.c:1137 builtin/checkout.c:1139 builtin/clone.c:84
+#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:318
+#: builtin/worktree.c:320
 msgid "branch"
 msgstr "分支"
 
-#: builtin/checkout.c:1136
+#: builtin/checkout.c:1138
 msgid "create and checkout a new branch"
 msgstr "创建并检出一个新的分支"
 
-#: builtin/checkout.c:1138
+#: builtin/checkout.c:1140
 msgid "create/reset and checkout a branch"
 msgstr "创建/重置并检出一个分支"
 
-#: builtin/checkout.c:1139
+#: builtin/checkout.c:1141
 msgid "create reflog for new branch"
 msgstr "为新的分支创建引用日志"
 
-#: builtin/checkout.c:1140
+#: builtin/checkout.c:1142
 msgid "detach the HEAD at named commit"
 msgstr "成为指向该提交的分离头指针"
 
-#: builtin/checkout.c:1141
+#: builtin/checkout.c:1143
 msgid "set upstream info for new branch"
 msgstr "为新的分支设置上游信息"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new-branch"
 msgstr "新分支"
 
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1145
 msgid "new unparented branch"
 msgstr "新的没有父提交的分支"
 
-#: builtin/checkout.c:1144
+#: builtin/checkout.c:1146
 msgid "checkout our version for unmerged files"
 msgstr "对尚未合并的文件检出我们的版本"
 
-#: builtin/checkout.c:1146
+#: builtin/checkout.c:1148
 msgid "checkout their version for unmerged files"
 msgstr "对尚未合并的文件检出他们的版本"
 
-#: builtin/checkout.c:1148
+#: builtin/checkout.c:1150
 msgid "force checkout (throw away local modifications)"
 msgstr "强制检出(丢弃本地修改)"
 
-#: builtin/checkout.c:1149
+#: builtin/checkout.c:1151
 msgid "perform a 3-way merge with the new branch"
 msgstr "和新的分支执行三方合并"
 
-#: builtin/checkout.c:1150 builtin/merge.c:227
+#: builtin/checkout.c:1152 builtin/merge.c:227
 msgid "update ignored files (default)"
 msgstr "更新忽略的文件(默认)"
 
-#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250
+#: builtin/checkout.c:1153 builtin/log.c:1269 parse-options.h:250
 msgid "style"
 msgstr "风格"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1154
 msgid "conflict style (merge or diff3)"
 msgstr "冲突输出风格(merge 或 diff3)"
 
-#: builtin/checkout.c:1155
+#: builtin/checkout.c:1157
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "对路径不做稀疏检出的限制"
 
-#: builtin/checkout.c:1157
+#: builtin/checkout.c:1159
 msgid "second guess 'git checkout <no-such-branch>'"
 msgstr "二次猜测'git checkout <无此分支>'"
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1161
 msgid "do not check if another worktree is holding the given ref"
 msgstr "不检查指定的引用是否被其他工作区所占用"
 
-#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112
-#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558
+#: builtin/checkout.c:1162 builtin/clone.c:58 builtin/fetch.c:116
+#: builtin/merge.c:224 builtin/pull.c:113 builtin/push.c:526
 #: builtin/send-pack.c:168
 msgid "force progress reporting"
 msgstr "强制显示进度报告"
 
-#: builtin/checkout.c:1191
+#: builtin/checkout.c:1193
 msgid "-b, -B and --orphan are mutually exclusive"
 msgstr "-b、-B 和 --orphan 是互斥的"
 
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1210
 msgid "--track needs a branch name"
 msgstr "--track 需要一个分支名"
 
-#: builtin/checkout.c:1213
+#: builtin/checkout.c:1215
 msgid "Missing branch name; try -b"
 msgstr "缺少分支名;尝试 -b"
 
-#: builtin/checkout.c:1249
+#: builtin/checkout.c:1251
 msgid "invalid path specification"
 msgstr "无效的路径规格"
 
-#: builtin/checkout.c:1256
+#: builtin/checkout.c:1258
 #, c-format
 msgid ""
 "Cannot update paths and switch to branch '%s' at the same time.\n"
@@ -4394,12 +4553,12 @@
 "不能同时更新路径并切换到分支'%s'。\n"
 "您是想要检出 '%s' 但其未能解析为提交么?"
 
-#: builtin/checkout.c:1261
+#: builtin/checkout.c:1263
 #, c-format
 msgid "git checkout: --detach does not take a path argument '%s'"
 msgstr "git checkout:--detach 不能接收路径参数 '%s'"
 
-#: builtin/checkout.c:1265
+#: builtin/checkout.c:1267
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -4437,7 +4596,7 @@
 msgid "failed to remove %s"
 msgstr "无法删除 %s"
 
-#: builtin/clean.c:315
+#: builtin/clean.c:291
 msgid ""
 "Prompt help:\n"
 "1          - select a numbered item\n"
@@ -4449,7 +4608,7 @@
 "foo        - 通过标题选择一个选项\n"
 "           - (空)什么也不选择"
 
-#: builtin/clean.c:319
+#: builtin/clean.c:295
 msgid ""
 "Prompt help:\n"
 "1          - select a single item\n"
@@ -4469,36 +4628,36 @@
 "*          - 选择所有选项\n"
 "           - (空)结束选择"
 
-#: builtin/clean.c:535
+#: builtin/clean.c:511
 #, c-format
 msgid "Huh (%s)?"
 msgstr "嗯(%s)?"
 
-#: builtin/clean.c:677
+#: builtin/clean.c:653
 #, c-format
 msgid "Input ignore patterns>> "
 msgstr "输入模版以排除条目>> "
 
-#: builtin/clean.c:714
+#: builtin/clean.c:690
 #, c-format
 msgid "WARNING: Cannot find items matched by: %s"
 msgstr "警告:无法找到和 %s 匹配的条目"
 
-#: builtin/clean.c:735
+#: builtin/clean.c:711
 msgid "Select items to delete"
 msgstr "选择要删除的条目"
 
 #. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:776
+#: builtin/clean.c:752
 #, c-format
 msgid "Remove %s [y/N]? "
 msgstr "删除 %s [y/N]?"
 
-#: builtin/clean.c:801
+#: builtin/clean.c:777
 msgid "Bye."
 msgstr "再见。"
 
-#: builtin/clean.c:809
+#: builtin/clean.c:785
 msgid ""
 "clean               - start cleaning\n"
 "filter by pattern   - exclude items from deletion\n"
@@ -4516,69 +4675,69 @@
 "help                - 显示本帮助\n"
 "?                   - 显示如何在提示符下选择的帮助"
 
-#: builtin/clean.c:836
+#: builtin/clean.c:812
 msgid "*** Commands ***"
 msgstr "*** 命令 ***"
 
-#: builtin/clean.c:837
+#: builtin/clean.c:813
 msgid "What now"
 msgstr "请选择"
 
-#: builtin/clean.c:845
+#: builtin/clean.c:821
 msgid "Would remove the following item:"
 msgid_plural "Would remove the following items:"
 msgstr[0] "将删除如下条目:"
 msgstr[1] "将删除如下条目:"
 
-#: builtin/clean.c:862
+#: builtin/clean.c:838
 msgid "No more files to clean, exiting."
 msgstr "没有要清理的文件,退出。"
 
-#: builtin/clean.c:893
+#: builtin/clean.c:869
 msgid "do not print names of files removed"
 msgstr "不打印删除文件的名称"
 
-#: builtin/clean.c:895
+#: builtin/clean.c:871
 msgid "force"
 msgstr "强制"
 
-#: builtin/clean.c:896
+#: builtin/clean.c:872
 msgid "interactive cleaning"
 msgstr "交互式清除"
 
-#: builtin/clean.c:898
+#: builtin/clean.c:874
 msgid "remove whole directories"
 msgstr "删除整个目录"
 
-#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709
-#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182
+#: builtin/clean.c:875 builtin/describe.c:407 builtin/grep.c:722
+#: builtin/ls-files.c:456 builtin/name-rev.c:307 builtin/show-ref.c:182
 msgid "pattern"
 msgstr "模式"
 
-#: builtin/clean.c:900
+#: builtin/clean.c:876
 msgid "add <pattern> to ignore rules"
 msgstr "添加 <模式> 到忽略规则"
 
-#: builtin/clean.c:901
+#: builtin/clean.c:877
 msgid "remove ignored files, too"
 msgstr "也删除忽略的文件"
 
-#: builtin/clean.c:903
+#: builtin/clean.c:879
 msgid "remove only ignored files"
 msgstr "只删除忽略的文件"
 
-#: builtin/clean.c:921
+#: builtin/clean.c:897
 msgid "-x and -X cannot be used together"
 msgstr "-x 和 -X 不能同时使用"
 
-#: builtin/clean.c:925
+#: builtin/clean.c:901
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
 msgstr ""
 "clean.requireForce 设置为 true 且未提供 -i、-n 或 -f 选项,拒绝执行清理动作"
 
-#: builtin/clean.c:928
+#: builtin/clean.c:904
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -4589,146 +4748,162 @@
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<选项>] [--] <仓库> [<路径>]"
 
-#: builtin/clone.c:59
+#: builtin/clone.c:60
 msgid "don't create a checkout"
 msgstr "不创建一个检出"
 
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469
+#: builtin/clone.c:61 builtin/clone.c:63 builtin/init-db.c:469
 msgid "create a bare repository"
 msgstr "创建一个纯仓库"
 
-#: builtin/clone.c:64
+#: builtin/clone.c:65
 msgid "create a mirror repository (implies bare)"
 msgstr "创建一个镜像仓库(也是纯仓库)"
 
-#: builtin/clone.c:66
+#: builtin/clone.c:67
 msgid "to clone from a local repository"
 msgstr "从本地仓库克隆"
 
-#: builtin/clone.c:68
+#: builtin/clone.c:69
 msgid "don't use local hardlinks, always copy"
 msgstr "不使用本地硬链接,始终复制"
 
-#: builtin/clone.c:70
+#: builtin/clone.c:71
 msgid "setup as shared repository"
 msgstr "设置为共享仓库"
 
-#: builtin/clone.c:72 builtin/clone.c:74
+#: builtin/clone.c:73 builtin/clone.c:75
 msgid "initialize submodules in the clone"
 msgstr "在克隆时初始化子模组"
 
-#: builtin/clone.c:75 builtin/init-db.c:466
+#: builtin/clone.c:76 builtin/init-db.c:466
 msgid "template-directory"
 msgstr "模板目录"
 
-#: builtin/clone.c:76 builtin/init-db.c:467
+#: builtin/clone.c:77 builtin/init-db.c:467
 msgid "directory from which templates will be used"
 msgstr "模板目录将被使用"
 
-#: builtin/clone.c:78 builtin/submodule--helper.c:179
+#: builtin/clone.c:79 builtin/submodule--helper.c:173
 msgid "reference repository"
 msgstr "参考仓库"
 
-#: builtin/clone.c:80
+#: builtin/clone.c:81
 msgid "use --reference only while cloning"
 msgstr "仅在克隆时参考 --reference 指向的本地仓库"
 
-#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44
+#: builtin/clone.c:82 builtin/column.c:26 builtin/merge-file.c:44
 msgid "name"
 msgstr "名称"
 
-#: builtin/clone.c:82
+#: builtin/clone.c:83
 msgid "use <name> instead of 'origin' to track upstream"
 msgstr "使用 <名称> 而不是 'origin' 去跟踪上游"
 
-#: builtin/clone.c:84
+#: builtin/clone.c:85
 msgid "checkout <branch> instead of the remote's HEAD"
 msgstr "检出 <分支> 而不是远程 HEAD"
 
-#: builtin/clone.c:86
+#: builtin/clone.c:87
 msgid "path to git-upload-pack on the remote"
 msgstr "远程 git-upload-pack 路径"
 
-#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654
-#: builtin/pull.c:186
+#: builtin/clone.c:88 builtin/fetch.c:117 builtin/grep.c:665
+#: builtin/pull.c:193
 msgid "depth"
 msgstr "深度"
 
-#: builtin/clone.c:88
+#: builtin/clone.c:89
 msgid "create a shallow clone of that depth"
 msgstr "创建一个指定深度的浅克隆"
 
-#: builtin/clone.c:90
+#: builtin/clone.c:91
 msgid "clone only one branch, HEAD or --branch"
 msgstr "只克隆一个分支、HEAD 或 --branch"
 
-#: builtin/clone.c:91 builtin/init-db.c:475
+#: builtin/clone.c:92 builtin/init-db.c:475
 msgid "gitdir"
 msgstr "git目录"
 
-#: builtin/clone.c:92 builtin/init-db.c:476
+#: builtin/clone.c:93 builtin/init-db.c:476
 msgid "separate git dir from working tree"
 msgstr "git目录和工作区分离"
 
-#: builtin/clone.c:93
+#: builtin/clone.c:94
 msgid "key=value"
 msgstr "key=value"
 
-#: builtin/clone.c:94
+#: builtin/clone.c:95
 msgid "set config inside the new repository"
 msgstr "在新仓库中设置配置信息"
 
-#: builtin/clone.c:300
+#: builtin/clone.c:96 builtin/fetch.c:131 builtin/push.c:536
+msgid "use IPv4 addresses only"
+msgstr "只使用 IPv4 地址"
+
+#: builtin/clone.c:98 builtin/fetch.c:133 builtin/push.c:538
+msgid "use IPv6 addresses only"
+msgstr "只使用 IPv6 地址"
+
+#: builtin/clone.c:239
+msgid ""
+"No directory name could be guessed.\n"
+"Please specify a directory on the command line"
+msgstr ""
+"无法猜到目录名。\n"
+"请在命令行指定一个目录"
+
+#: builtin/clone.c:305
 #, c-format
 msgid "reference repository '%s' as a linked checkout is not supported yet."
 msgstr "尚不支持将参考仓库 '%s' 作为一个链接检出。"
 
-#: builtin/clone.c:302
+#: builtin/clone.c:307
 #, c-format
 msgid "reference repository '%s' is not a local repository."
 msgstr "参考仓库 '%s' 不是一个本地仓库。"
 
-#: builtin/clone.c:307
+#: builtin/clone.c:312
 #, c-format
 msgid "reference repository '%s' is shallow"
 msgstr "参考仓库 '%s' 是一个浅克隆"
 
-#: builtin/clone.c:310
+#: builtin/clone.c:315
 #, c-format
 msgid "reference repository '%s' is grafted"
 msgstr "参考仓库 '%s' 已被嫁接"
 
-#: builtin/clone.c:375 builtin/diff.c:84
+#: builtin/clone.c:380 builtin/diff.c:84
 #, c-format
 msgid "failed to stat '%s'"
 msgstr "无法枚举 '%s' 状态"
 
-#: builtin/clone.c:377
+#: builtin/clone.c:382
 #, c-format
 msgid "%s exists and is not a directory"
 msgstr "%s 存在且不是一个目录"
 
-#: builtin/clone.c:391
+#: builtin/clone.c:396
 #, c-format
 msgid "failed to stat %s\n"
 msgstr "无法枚举 %s 状态\n"
 
-#: builtin/clone.c:413
+#: builtin/clone.c:418
 #, c-format
 msgid "failed to create link '%s'"
 msgstr "无法创建链接 '%s'"
 
-#: builtin/clone.c:417
+#: builtin/clone.c:422
 #, c-format
 msgid "failed to copy file to '%s'"
 msgstr "无法拷贝文件至 '%s'"
 
-#: builtin/clone.c:442 builtin/clone.c:626
+#: builtin/clone.c:447 builtin/clone.c:631
 #, c-format
 msgid "done.\n"
 msgstr "完成。\n"
 
-#: builtin/clone.c:454
+#: builtin/clone.c:459
 msgid ""
 "Clone succeeded, but checkout failed.\n"
 "You can inspect what was checked out with 'git status'\n"
@@ -4738,117 +4913,126 @@
 "您可以通过 'git status' 检查哪些已被检出,然后使用命令\n"
 "'git checkout -f HEAD' 重试\n"
 
-#: builtin/clone.c:531
+#: builtin/clone.c:536
 #, c-format
 msgid "Could not find remote branch %s to clone."
 msgstr "不能发现要克隆的远程分支 %s。"
 
-#: builtin/clone.c:621
+#: builtin/clone.c:626
 #, c-format
 msgid "Checking connectivity... "
 msgstr "检查连接... "
 
-#: builtin/clone.c:624
+#: builtin/clone.c:629
 msgid "remote did not send all necessary objects"
 msgstr "远程没有发送所有必须的对象"
 
-#: builtin/clone.c:688
+#: builtin/clone.c:647
+#, c-format
+msgid "unable to update %s"
+msgstr "不能更新 %s"
+
+#: builtin/clone.c:696
 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
 msgstr "远程 HEAD 指向一个不存在的引用,无法检出。\n"
 
-#: builtin/clone.c:719
+#: builtin/clone.c:727
 msgid "unable to checkout working tree"
 msgstr "不能检出工作区"
 
-#: builtin/clone.c:808
+#: builtin/clone.c:753
+msgid "unable to write parameters to config file"
+msgstr "无法将参数写入配置文件"
+
+#: builtin/clone.c:816
 msgid "cannot repack to clean up"
 msgstr "无法执行 repack 来清理"
 
-#: builtin/clone.c:810
+#: builtin/clone.c:818
 msgid "cannot unlink temporary alternates file"
 msgstr "无法删除临时的 alternates 文件"
 
-#: builtin/clone.c:842
+#: builtin/clone.c:850
 msgid "Too many arguments."
 msgstr "太多参数。"
 
-#: builtin/clone.c:846
+#: builtin/clone.c:854
 msgid "You must specify a repository to clone."
 msgstr "您必须指定一个仓库来克隆。"
 
-#: builtin/clone.c:857
+#: builtin/clone.c:865
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare 和 --origin %s 选项不兼容。"
 
-#: builtin/clone.c:860
+#: builtin/clone.c:868
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "--bare 和 --separate-git-dir 选项不兼容。"
 
-#: builtin/clone.c:873
+#: builtin/clone.c:881
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "仓库 '%s' 不存在"
 
-#: builtin/clone.c:879 builtin/fetch.c:1166
+#: builtin/clone.c:887 builtin/fetch.c:1174
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "深度 %s 不是一个正数"
 
-#: builtin/clone.c:889
+#: builtin/clone.c:897
 #, c-format
 msgid "destination path '%s' already exists and is not an empty directory."
 msgstr "目标路径 '%s' 已经存在,并且不是一个空目录。"
 
-#: builtin/clone.c:899
+#: builtin/clone.c:907
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "工作区 '%s' 已经存在。"
 
-#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224
-#: builtin/worktree.c:221 builtin/worktree.c:248
+#: builtin/clone.c:922 builtin/clone.c:933 builtin/submodule--helper.c:218
+#: builtin/worktree.c:219 builtin/worktree.c:246
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "不能为 '%s' 创建先导目录"
 
-#: builtin/clone.c:917
+#: builtin/clone.c:925
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "不能创建工作区目录 '%s'"
 
-#: builtin/clone.c:935
+#: builtin/clone.c:943
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "克隆到纯仓库 '%s'...\n"
 
-#: builtin/clone.c:937
+#: builtin/clone.c:945
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "正克隆到 '%s'...\n"
 
-#: builtin/clone.c:975
+#: builtin/clone.c:984
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth 在本地克隆被忽略,改为 file:// 协议试试。"
 
-#: builtin/clone.c:978
+#: builtin/clone.c:987
 msgid "source repository is shallow, ignoring --local"
 msgstr "源仓库是浅克隆,忽略 --local"
 
-#: builtin/clone.c:983
+#: builtin/clone.c:992
 msgid "--local is ignored"
 msgstr "--local 被忽略"
 
-#: builtin/clone.c:987
+#: builtin/clone.c:996
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "不知道如何克隆 %s"
 
-#: builtin/clone.c:1036 builtin/clone.c:1044
+#: builtin/clone.c:1045 builtin/clone.c:1053
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "远程分支 %s 在上游 %s 未发现"
 
-#: builtin/clone.c:1047
+#: builtin/clone.c:1056
 msgid "You appear to have cloned an empty repository."
 msgstr "您似乎克隆了一个空仓库。"
 
@@ -5052,7 +5236,7 @@
 msgid "could not lookup commit %s"
 msgstr "不能查询提交 %s"
 
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:702 builtin/shortlog.c:285
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(正从标准输入中读取日志信息)\n"
@@ -5235,8 +5419,8 @@
 msgid "show branch information"
 msgstr "显示分支信息"
 
-#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544
-#: builtin/worktree.c:423
+#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:512
+#: builtin/worktree.c:430
 msgid "machine-readable output"
 msgstr "机器可读的输出"
 
@@ -5325,8 +5509,8 @@
 msgid "override date for commit"
 msgstr "提交时覆盖日期"
 
-#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392
-#: builtin/notes.c:555 builtin/tag.c:349
+#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/tag.c:349
 msgid "message"
 msgstr "说明"
 
@@ -5359,7 +5543,7 @@
 msgid "the commit is authored by me now (used with -C/-c/--amend)"
 msgstr "现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)"
 
-#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86
+#: builtin/commit.c:1588 builtin/log.c:1219 builtin/revert.c:86
 msgid "add Signed-off-by:"
 msgstr "添加 Signed-off-by: 签名"
 
@@ -5384,7 +5568,7 @@
 msgid "include status in commit message template"
 msgstr "在提交说明模板里包含状态信息"
 
-#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:160
 #: builtin/revert.c:93
 msgid "GPG sign commit"
 msgstr "GPG 提交签名"
@@ -5474,139 +5658,143 @@
 "仓库已更新,但无法写 new_index 文件。检查是否磁盘已满\n"
 "或磁盘配额已耗尽,然后执行 \"git reset HEAD\" 恢复。"
 
-#: builtin/config.c:8
+#: builtin/config.c:9
 msgid "git config [<options>]"
 msgstr "git config [<选项>]"
 
-#: builtin/config.c:54
+#: builtin/config.c:56
 msgid "Config file location"
 msgstr "配置文件位置"
 
-#: builtin/config.c:55
+#: builtin/config.c:57
 msgid "use global config file"
 msgstr "使用全局配置文件"
 
-#: builtin/config.c:56
+#: builtin/config.c:58
 msgid "use system config file"
 msgstr "使用系统级配置文件"
 
-#: builtin/config.c:57
+#: builtin/config.c:59
 msgid "use repository config file"
 msgstr "使用仓库级配置文件"
 
-#: builtin/config.c:58
+#: builtin/config.c:60
 msgid "use given config file"
 msgstr "使用指定的配置文件"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "blob-id"
 msgstr "数据对象 ID"
 
-#: builtin/config.c:59
+#: builtin/config.c:61
 msgid "read config from given blob object"
 msgstr "从给定的数据对象读取配置"
 
-#: builtin/config.c:60
+#: builtin/config.c:62
 msgid "Action"
 msgstr "操作"
 
-#: builtin/config.c:61
+#: builtin/config.c:63
 msgid "get value: name [value-regex]"
 msgstr "获取值:name [value-regex]"
 
-#: builtin/config.c:62
+#: builtin/config.c:64
 msgid "get all values: key [value-regex]"
 msgstr "获得所有的值:key [value-regex]"
 
-#: builtin/config.c:63
+#: builtin/config.c:65
 msgid "get values for regexp: name-regex [value-regex]"
 msgstr "根据正则表达式获得值:name-regex [value-regex]"
 
-#: builtin/config.c:64
+#: builtin/config.c:66
 msgid "get value specific for the URL: section[.var] URL"
 msgstr "获得 URL 取值:section[.var] URL"
 
-#: builtin/config.c:65
+#: builtin/config.c:67
 msgid "replace all matching variables: name value [value_regex]"
 msgstr "替换所有匹配的变量:name value [value_regex]"
 
-#: builtin/config.c:66
+#: builtin/config.c:68
 msgid "add a new variable: name value"
 msgstr "添加一个新的变量:name value"
 
-#: builtin/config.c:67
+#: builtin/config.c:69
 msgid "remove a variable: name [value-regex]"
 msgstr "删除一个变量:name [value-regex]"
 
-#: builtin/config.c:68
+#: builtin/config.c:70
 msgid "remove all matches: name [value-regex]"
 msgstr "删除所有匹配项:name [value-regex]"
 
-#: builtin/config.c:69
+#: builtin/config.c:71
 msgid "rename section: old-name new-name"
 msgstr "重命名小节:old-name new-name"
 
-#: builtin/config.c:70
+#: builtin/config.c:72
 msgid "remove a section: name"
 msgstr "删除一个小节:name"
 
-#: builtin/config.c:71
+#: builtin/config.c:73
 msgid "list all"
 msgstr "列出所有"
 
-#: builtin/config.c:72
+#: builtin/config.c:74
 msgid "open an editor"
 msgstr "打开一个编辑器"
 
-#: builtin/config.c:73
+#: builtin/config.c:75
 msgid "find the color configured: slot [default]"
 msgstr "获得配置的颜色:配置 [默认]"
 
-#: builtin/config.c:74
+#: builtin/config.c:76
 msgid "find the color setting: slot [stdout-is-tty]"
 msgstr "获得颜色设置:配置 [stdout-is-tty]"
 
-#: builtin/config.c:75
+#: builtin/config.c:77
 msgid "Type"
 msgstr "类型"
 
-#: builtin/config.c:76
+#: builtin/config.c:78
 msgid "value is \"true\" or \"false\""
 msgstr "值是 \"true\" 或 \"false\""
 
-#: builtin/config.c:77
+#: builtin/config.c:79
 msgid "value is decimal number"
 msgstr "值是十进制数"
 
-#: builtin/config.c:78
+#: builtin/config.c:80
 msgid "value is --bool or --int"
 msgstr "值是 --bool or --int"
 
-#: builtin/config.c:79
+#: builtin/config.c:81
 msgid "value is a path (file or directory name)"
 msgstr "值是一个路径(文件或目录名)"
 
-#: builtin/config.c:80
+#: builtin/config.c:82
 msgid "Other"
 msgstr "其它"
 
-#: builtin/config.c:81
+#: builtin/config.c:83
 msgid "terminate values with NUL byte"
 msgstr "终止值是 NUL 字节"
 
-#: builtin/config.c:82
+#: builtin/config.c:84
 msgid "show variable names only"
 msgstr "只显示变量名"
 
-#: builtin/config.c:83
+#: builtin/config.c:85
 msgid "respect include directives on lookup"
 msgstr "查询时参照 include 指令递归查找"
 
-#: builtin/config.c:303
+#: builtin/config.c:86
+msgid "show origin of config (file, standard input, blob, command line)"
+msgstr "显示配置的来源(文件、标准输入、数据对象,或命令行)"
+
+#: builtin/config.c:328
 msgid "unable to parse default color value"
 msgstr "不能解析默认颜色值"
 
-#: builtin/config.c:441
+#: builtin/config.c:469
 #, c-format
 msgid ""
 "# This is Git's per-user configuration file.\n"
@@ -5621,7 +5809,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 
-#: builtin/config.c:575
+#: builtin/config.c:611
 #, c-format
 msgid "cannot create configuration file %s"
 msgstr "不能创建配置文件 %s"
@@ -5871,163 +6059,167 @@
 msgid "git fetch --all [<options>]"
 msgstr "git fetch --all [<选项>]"
 
-#: builtin/fetch.c:90 builtin/pull.c:162
+#: builtin/fetch.c:92 builtin/pull.c:166
 msgid "fetch from all remotes"
 msgstr "从所有的远程抓取"
 
-#: builtin/fetch.c:92 builtin/pull.c:165
+#: builtin/fetch.c:94 builtin/pull.c:169
 msgid "append to .git/FETCH_HEAD instead of overwriting"
 msgstr "追加到 .git/FETCH_HEAD 而不是覆盖它"
 
-#: builtin/fetch.c:94 builtin/pull.c:168
+#: builtin/fetch.c:96 builtin/pull.c:172
 msgid "path to upload pack on remote end"
 msgstr "上传包到远程的路径"
 
-#: builtin/fetch.c:95 builtin/pull.c:170
+#: builtin/fetch.c:97 builtin/pull.c:174
 msgid "force overwrite of local branch"
 msgstr "强制覆盖本地分支"
 
-#: builtin/fetch.c:97
+#: builtin/fetch.c:99
 msgid "fetch from multiple remotes"
 msgstr "从多个远程抓取"
 
-#: builtin/fetch.c:99 builtin/pull.c:172
+#: builtin/fetch.c:101 builtin/pull.c:176
 msgid "fetch all tags and associated objects"
 msgstr "抓取所有的标签和关联对象"
 
-#: builtin/fetch.c:101
+#: builtin/fetch.c:103
 msgid "do not fetch all tags (--no-tags)"
 msgstr "不抓取任何标签(--no-tags)"
 
-#: builtin/fetch.c:103 builtin/pull.c:175
+#: builtin/fetch.c:105
+msgid "number of submodules fetched in parallel"
+msgstr "子模组获取的并发数"
+
+#: builtin/fetch.c:107 builtin/pull.c:179
 msgid "prune remote-tracking branches no longer on remote"
 msgstr "清除远程已经不存在的分支的跟踪分支"
 
 #  译者:可选值,不能翻译
-#: builtin/fetch.c:104 builtin/pull.c:178
+#: builtin/fetch.c:108 builtin/pull.c:182
 msgid "on-demand"
 msgstr "on-demand"
 
-#: builtin/fetch.c:105 builtin/pull.c:179
+#: builtin/fetch.c:109 builtin/pull.c:183
 msgid "control recursive fetching of submodules"
 msgstr "控制子模组的递归抓取"
 
-#: builtin/fetch.c:109 builtin/pull.c:184
+#: builtin/fetch.c:113 builtin/pull.c:191
 msgid "keep downloaded pack"
 msgstr "保持下载包"
 
-#: builtin/fetch.c:111
+#: builtin/fetch.c:115
 msgid "allow updating of HEAD ref"
 msgstr "允许更新 HEAD 引用"
 
-#: builtin/fetch.c:114 builtin/pull.c:187
+#: builtin/fetch.c:118 builtin/pull.c:194
 msgid "deepen history of shallow clone"
 msgstr "深化浅克隆的历史"
 
-#: builtin/fetch.c:116 builtin/pull.c:190
+#: builtin/fetch.c:120 builtin/pull.c:197
 msgid "convert to a complete repository"
 msgstr "转换为一个完整的仓库"
 
-#: builtin/fetch.c:118 builtin/log.c:1233
+#: builtin/fetch.c:122 builtin/log.c:1236
 msgid "dir"
 msgstr "目录"
 
-#: builtin/fetch.c:119
+#: builtin/fetch.c:123
 msgid "prepend this to submodule path output"
 msgstr "在子模组路径输出的前面加上此目录"
 
-#: builtin/fetch.c:122
+#: builtin/fetch.c:126
 msgid "default mode for recursion"
 msgstr "递归的默认模式"
 
-#: builtin/fetch.c:124 builtin/pull.c:193
+#: builtin/fetch.c:128 builtin/pull.c:200
 msgid "accept refs that update .git/shallow"
 msgstr "接受更新 .git/shallow 的引用"
 
-#: builtin/fetch.c:125 builtin/pull.c:195
+#: builtin/fetch.c:129 builtin/pull.c:202
 msgid "refmap"
 msgstr "引用映射"
 
-#: builtin/fetch.c:126 builtin/pull.c:196
+#: builtin/fetch.c:130 builtin/pull.c:203
 msgid "specify fetch refmap"
 msgstr "指定获取操作的引用映射"
 
-#: builtin/fetch.c:378
+#: builtin/fetch.c:386
 msgid "Couldn't find remote ref HEAD"
 msgstr "无法发现远程 HEAD 引用"
 
-#: builtin/fetch.c:458
+#: builtin/fetch.c:466
 #, c-format
 msgid "object %s not found"
 msgstr "对象 %s 未发现"
 
-#: builtin/fetch.c:463
+#: builtin/fetch.c:471
 msgid "[up to date]"
 msgstr "[最新]"
 
-#: builtin/fetch.c:477
+#: builtin/fetch.c:485
 #, c-format
 msgid "! %-*s %-*s -> %s  (can't fetch in current branch)"
 msgstr "! %-*s %-*s -> %s  (在当前分支下不能获取)"
 
-#: builtin/fetch.c:478 builtin/fetch.c:566
+#: builtin/fetch.c:486 builtin/fetch.c:574
 msgid "[rejected]"
 msgstr "[已拒绝]"
 
-#: builtin/fetch.c:489
+#: builtin/fetch.c:497
 msgid "[tag update]"
 msgstr "[标签更新]"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
+#: builtin/fetch.c:499 builtin/fetch.c:534 builtin/fetch.c:552
 msgid "  (unable to update local ref)"
 msgstr "  (不能更新本地引用)"
 
-#: builtin/fetch.c:509
+#: builtin/fetch.c:517
 msgid "[new tag]"
 msgstr "[新标签]"
 
-#: builtin/fetch.c:512
+#: builtin/fetch.c:520
 msgid "[new branch]"
 msgstr "[新分支]"
 
-#: builtin/fetch.c:515
+#: builtin/fetch.c:523
 msgid "[new ref]"
 msgstr "[新引用]"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "unable to update local ref"
 msgstr "不能更新本地引用"
 
-#: builtin/fetch.c:561
+#: builtin/fetch.c:569
 msgid "forced update"
 msgstr "强制更新"
 
-#: builtin/fetch.c:568
+#: builtin/fetch.c:576
 msgid "(non-fast-forward)"
 msgstr "(非快进式)"
 
-#: builtin/fetch.c:602 builtin/fetch.c:843
+#: builtin/fetch.c:610 builtin/fetch.c:851
 #, c-format
 msgid "cannot open %s: %s\n"
 msgstr "无法打开 %s:%s\n"
 
-#: builtin/fetch.c:611
+#: builtin/fetch.c:619
 #, c-format
 msgid "%s did not send all necessary objects\n"
 msgstr "%s 未发送所有必须的对象\n"
 
-#: builtin/fetch.c:629
+#: builtin/fetch.c:637
 #, c-format
 msgid "reject %s because shallow roots are not allowed to be updated"
 msgstr "拒绝 %s 因为浅克隆不允许被更新"
 
-#: builtin/fetch.c:716 builtin/fetch.c:808
+#: builtin/fetch.c:724 builtin/fetch.c:816
 #, c-format
 msgid "From %.*s\n"
 msgstr "来自 %.*s\n"
 
-#: builtin/fetch.c:727
+#: builtin/fetch.c:735
 #, c-format
 msgid ""
 "some local refs could not be updated; try running\n"
@@ -6037,87 +6229,87 @@
 " 'git remote prune %s' 来删除旧的、有冲突的分支"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:779
+#: builtin/fetch.c:787
 #, c-format
 msgid "   (%s will become dangling)"
 msgstr "   (%s 将成为摇摆状态)"
 
 #  译者:注意保持前导空格
-#: builtin/fetch.c:780
+#: builtin/fetch.c:788
 #, c-format
 msgid "   (%s has become dangling)"
 msgstr "   (%s 已成为摇摆状态)"
 
-#: builtin/fetch.c:812
+#: builtin/fetch.c:820
 msgid "[deleted]"
 msgstr "[已删除]"
 
-#: builtin/fetch.c:813 builtin/remote.c:1040
+#: builtin/fetch.c:821 builtin/remote.c:1025
 msgid "(none)"
 msgstr "(无)"
 
-#: builtin/fetch.c:833
+#: builtin/fetch.c:841
 #, c-format
 msgid "Refusing to fetch into current branch %s of non-bare repository"
 msgstr "拒绝获取到非纯仓库的当前分支 %s"
 
-#: builtin/fetch.c:852
+#: builtin/fetch.c:860
 #, c-format
 msgid "Option \"%s\" value \"%s\" is not valid for %s"
 msgstr "选项 \"%s\" 的值 \"%s\" 对于 %s 是无效的"
 
-#: builtin/fetch.c:855
+#: builtin/fetch.c:863
 #, c-format
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "选项 \"%s\" 为 %s 所忽略\n"
 
-#: builtin/fetch.c:911
+#: builtin/fetch.c:920
 #, c-format
 msgid "Don't know how to fetch from %s"
 msgstr "不知道如何从 %s 获取"
 
-#: builtin/fetch.c:1072
+#: builtin/fetch.c:1080
 #, c-format
 msgid "Fetching %s\n"
 msgstr "正在获取 %s\n"
 
-#: builtin/fetch.c:1074 builtin/remote.c:96
+#: builtin/fetch.c:1082 builtin/remote.c:96
 #, c-format
 msgid "Could not fetch %s"
 msgstr "不能获取 %s"
 
-#: builtin/fetch.c:1092
+#: builtin/fetch.c:1100
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
 msgstr "未指定远程仓库。请通过一个 URL 或远程仓库名指定,用以获取新提交。"
 
-#: builtin/fetch.c:1115
+#: builtin/fetch.c:1123
 msgid "You need to specify a tag name."
 msgstr "您需要指定一个标签名称。"
 
-#: builtin/fetch.c:1157
+#: builtin/fetch.c:1165
 msgid "--depth and --unshallow cannot be used together"
 msgstr "--depth 和 --unshallow 不能同时使用"
 
-#: builtin/fetch.c:1159
+#: builtin/fetch.c:1167
 msgid "--unshallow on a complete repository does not make sense"
 msgstr "对于一个完整的仓库,参数 --unshallow 没有意义"
 
-#: builtin/fetch.c:1179
+#: builtin/fetch.c:1187
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all 不能带一个仓库参数"
 
-#: builtin/fetch.c:1181
+#: builtin/fetch.c:1189
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all 带引用规格没有任何意义"
 
-#: builtin/fetch.c:1192
+#: builtin/fetch.c:1200
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "没有这样的远程或远程组:%s"
 
-#: builtin/fetch.c:1200
+#: builtin/fetch.c:1208
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr "获取组并指定引用规格没有意义"
 
@@ -6337,225 +6529,239 @@
 msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]"
 msgstr "git grep [<选项>] [-e] <模式> [<版本>...] [[--] <路径>...]"
 
-#: builtin/grep.c:218
+#: builtin/grep.c:219
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep:无法创建线程:%s"
 
-#: builtin/grep.c:441 builtin/grep.c:476
+#: builtin/grep.c:277
+#, c-format
+msgid "invalid number of threads specified (%d) for %s"
+msgstr "为 %2$s 设定的线程数 (%1$d) 无效"
+
+#: builtin/grep.c:452 builtin/grep.c:487
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "无法读取树(%s)"
 
-#: builtin/grep.c:491
+#: builtin/grep.c:502
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "无法抓取来自于 %s 类型的对象"
 
-#: builtin/grep.c:547
+#: builtin/grep.c:558
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "开关 `%c' 期望一个数字值"
 
-#: builtin/grep.c:564
+#: builtin/grep.c:575
 #, c-format
 msgid "cannot open '%s'"
 msgstr "不能打开 '%s'"
 
-#: builtin/grep.c:633
+#: builtin/grep.c:644
 msgid "search in index instead of in the work tree"
 msgstr "在索引区搜索而不是在工作区"
 
-#: builtin/grep.c:635
+#: builtin/grep.c:646
 msgid "find in contents not managed by git"
 msgstr "在未被 git 管理的内容中查找"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/grep.c:637
+#: builtin/grep.c:648
 msgid "search in both tracked and untracked files"
 msgstr "在跟踪和未跟踪的文件中搜索"
 
-#: builtin/grep.c:639
+#: builtin/grep.c:650
 msgid "ignore files specified via '.gitignore'"
 msgstr "忽略 '.gitignore' 包含的文件"
 
-#: builtin/grep.c:642
+#: builtin/grep.c:653
 msgid "show non-matching lines"
 msgstr "显示未匹配的行"
 
-#: builtin/grep.c:644
+#: builtin/grep.c:655
 msgid "case insensitive matching"
 msgstr "不区分大小写匹配"
 
-#: builtin/grep.c:646
+#: builtin/grep.c:657
 msgid "match patterns only at word boundaries"
 msgstr "只在单词边界匹配模式"
 
-#: builtin/grep.c:648
+#: builtin/grep.c:659
 msgid "process binary files as text"
 msgstr "把二进制文件当做文本处理"
 
-#: builtin/grep.c:650
+#: builtin/grep.c:661
 msgid "don't match patterns in binary files"
 msgstr "不在二进制文件中匹配模式"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:664
 msgid "process binary files with textconv filters"
 msgstr "用 textconv 过滤器处理二进制文件"
 
-#: builtin/grep.c:655
+#: builtin/grep.c:666
 msgid "descend at most <depth> levels"
 msgstr "最多以指定的深度向下寻找"
 
-#: builtin/grep.c:659
+#: builtin/grep.c:670
 msgid "use extended POSIX regular expressions"
 msgstr "使用扩展的 POSIX 正则表达式"
 
-#: builtin/grep.c:662
+#: builtin/grep.c:673
 msgid "use basic POSIX regular expressions (default)"
 msgstr "使用基本的 POSIX 正则表达式(默认)"
 
-#: builtin/grep.c:665
+#: builtin/grep.c:676
 msgid "interpret patterns as fixed strings"
 msgstr "把模式解析为固定的字符串"
 
-#: builtin/grep.c:668
+#: builtin/grep.c:679
 msgid "use Perl-compatible regular expressions"
 msgstr "使用 Perl 兼容的正则表达式"
 
-#: builtin/grep.c:671
+#: builtin/grep.c:682
 msgid "show line numbers"
 msgstr "显示行号"
 
-#: builtin/grep.c:672
+#: builtin/grep.c:683
 msgid "don't show filenames"
 msgstr "不显示文件名"
 
-#: builtin/grep.c:673
+#: builtin/grep.c:684
 msgid "show filenames"
 msgstr "显示文件名"
 
-#: builtin/grep.c:675
+#: builtin/grep.c:686
 msgid "show filenames relative to top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/grep.c:677
+#: builtin/grep.c:688
 msgid "show only filenames instead of matching lines"
 msgstr "只显示文件名而不显示匹配的行"
 
-#: builtin/grep.c:679
+#: builtin/grep.c:690
 msgid "synonym for --files-with-matches"
 msgstr "和 --files-with-matches 同义"
 
-#: builtin/grep.c:682
+#: builtin/grep.c:693
 msgid "show only the names of files without match"
 msgstr "只显示未匹配的文件名"
 
-#: builtin/grep.c:684
+#: builtin/grep.c:695
 msgid "print NUL after filenames"
 msgstr "在文件名后输出 NUL 字符"
 
-#: builtin/grep.c:686
+#: builtin/grep.c:697
 msgid "show the number of matches instead of matching lines"
 msgstr "显示总匹配行数,而不显示匹配的行"
 
-#: builtin/grep.c:687
+#: builtin/grep.c:698
 msgid "highlight matches"
 msgstr "高亮显示匹配项"
 
-#: builtin/grep.c:689
+#: builtin/grep.c:700
 msgid "print empty line between matches from different files"
 msgstr "在不同文件的匹配项之间打印空行"
 
-#: builtin/grep.c:691
+#: builtin/grep.c:702
 msgid "show filename only once above matches from same file"
 msgstr "只在同一文件的匹配项的上面显示一次文件名"
 
-#: builtin/grep.c:694
+#: builtin/grep.c:705
 msgid "show <n> context lines before and after matches"
 msgstr "显示匹配项前后的 <n> 行上下文"
 
-#: builtin/grep.c:697
+#: builtin/grep.c:708
 msgid "show <n> context lines before matches"
 msgstr "显示匹配项前 <n> 行上下文"
 
-#: builtin/grep.c:699
+#: builtin/grep.c:710
 msgid "show <n> context lines after matches"
 msgstr "显示匹配项后 <n> 行上下文"
 
-#: builtin/grep.c:700
+#: builtin/grep.c:712
+msgid "use <n> worker threads"
+msgstr "使用 <n> 个工作线程"
+
+#: builtin/grep.c:713
 msgid "shortcut for -C NUM"
 msgstr "快捷键 -C 数字"
 
-#: builtin/grep.c:703
+#: builtin/grep.c:716
 msgid "show a line with the function name before matches"
 msgstr "在匹配的前面显示一行函数名"
 
-#: builtin/grep.c:705
+#: builtin/grep.c:718
 msgid "show the surrounding function"
 msgstr "显示所在函数的前后内容"
 
-#: builtin/grep.c:708
+#: builtin/grep.c:721
 msgid "read patterns from file"
 msgstr "从文件读取模式"
 
-#: builtin/grep.c:710
+#: builtin/grep.c:723
 msgid "match <pattern>"
 msgstr "匹配 <模式>"
 
-#: builtin/grep.c:712
+#: builtin/grep.c:725
 msgid "combine patterns specified with -e"
 msgstr "组合用 -e 参数设定的模式"
 
-#: builtin/grep.c:724
+#: builtin/grep.c:737
 msgid "indicate hit with exit status without output"
 msgstr "不输出,而用退出码标识命中状态"
 
-#: builtin/grep.c:726
+#: builtin/grep.c:739
 msgid "show only matches from files that match all patterns"
 msgstr "只显示匹配所有模式的文件中的匹配"
 
-#: builtin/grep.c:728
+#: builtin/grep.c:741
 msgid "show parse tree for grep expression"
 msgstr "显示 grep 表达式的解析树"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "pager"
 msgstr "分页"
 
-#: builtin/grep.c:732
+#: builtin/grep.c:745
 msgid "show matching files in the pager"
 msgstr "分页显示匹配的文件"
 
-#: builtin/grep.c:735
+#: builtin/grep.c:748
 msgid "allow calling of grep(1) (ignored by this build)"
 msgstr "允许调用 grep(1)(本次构建忽略)"
 
-#: builtin/grep.c:793
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "未提供模式匹配。"
 
-#: builtin/grep.c:851
+#: builtin/grep.c:843 builtin/index-pack.c:1475
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "指定的线程数无效(%d)"
+
+#: builtin/grep.c:873
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager 仅用于工作区"
 
-#: builtin/grep.c:877
+#: builtin/grep.c:899
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached 或 --untracked 不能与 --no-index 同时使用。"
 
-#: builtin/grep.c:882
+#: builtin/grep.c:904
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index 或 --untracked 不能和版本同时使用。"
 
-#: builtin/grep.c:885
+#: builtin/grep.c:907
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr "--[no-]exclude-standard 不能用于已跟踪内容。"
 
-#: builtin/grep.c:893
+#: builtin/grep.c:915
 msgid "both --cached and trees are given."
 msgstr "同时给出了 --cached 和树对象。"
 
-#: builtin/hash-object.c:80
+#: builtin/hash-object.c:81
 msgid ""
 "git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] "
 "[--] <file>..."
@@ -6563,36 +6769,36 @@
 "git hash-object [-t <类型>] [-w] [--path=<文件> | --no-filters] [--stdin] "
 "[--] <文件>..."
 
-#: builtin/hash-object.c:81
+#: builtin/hash-object.c:82
 msgid "git hash-object  --stdin-paths"
 msgstr "git hash-object  --stdin-paths"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "type"
 msgstr "类型"
 
-#: builtin/hash-object.c:92
+#: builtin/hash-object.c:93
 msgid "object type"
 msgstr "对象类型"
 
-#: builtin/hash-object.c:93
+#: builtin/hash-object.c:94
 msgid "write the object into the object database"
 msgstr "将对象写入对象数据库"
 
-#: builtin/hash-object.c:95
+#: builtin/hash-object.c:96
 msgid "read the object from stdin"
 msgstr "从标准输入读取对象"
 
-#: builtin/hash-object.c:97
+#: builtin/hash-object.c:98
 msgid "store file as is without filters"
 msgstr "原样存储文件不使用过滤器"
 
-#: builtin/hash-object.c:98
+#: builtin/hash-object.c:99
 msgid ""
 "just hash any random garbage to create corrupt objects for debugging Git"
 msgstr "允许对任意随机垃圾数据做散列来创建损坏的对象以便调试 Git"
 
-#: builtin/hash-object.c:99
+#: builtin/hash-object.c:100
 msgid "process file as it were from this path"
 msgstr "处理文件并假设其来自于此路径"
 
@@ -6643,7 +6849,7 @@
 msgid "failed to exec '%s': %s"
 msgstr "无法执行 '%s':%s"
 
-#: builtin/help.c:208
+#: builtin/help.c:205
 #, c-format
 msgid ""
 "'%s': path for unsupported man viewer.\n"
@@ -6652,7 +6858,7 @@
 "'%s':不支持的 man 手册查看器的路径。\n"
 "请使用 'man.<工具>.cmd'。"
 
-#: builtin/help.c:220
+#: builtin/help.c:217
 #, c-format
 msgid ""
 "'%s': cmd for supported man viewer.\n"
@@ -6661,61 +6867,61 @@
 "'%s': 支持的 man 手册查看器命令。\n"
 "请使用 'man.<工具>.path'。"
 
-#: builtin/help.c:337
+#: builtin/help.c:334
 #, c-format
 msgid "'%s': unknown man viewer."
 msgstr "'%s':未知的 man 查看器。"
 
-#: builtin/help.c:354
+#: builtin/help.c:351
 msgid "no man viewer handled the request"
 msgstr "没有 man 查看器处理此请求"
 
-#: builtin/help.c:362
+#: builtin/help.c:359
 msgid "no info viewer handled the request"
 msgstr "没有 info 查看器处理此请求"
 
-#: builtin/help.c:411
+#: builtin/help.c:408
 msgid "Defining attributes per path"
 msgstr "定义路径的属性"
 
-#: builtin/help.c:412
+#: builtin/help.c:409
 msgid "Everyday Git With 20 Commands Or So"
 msgstr "每一天 Git 常用的约 20 条命令"
 
-#: builtin/help.c:413
+#: builtin/help.c:410
 msgid "A Git glossary"
 msgstr "Git 词汇表"
 
-#: builtin/help.c:414
+#: builtin/help.c:411
 msgid "Specifies intentionally untracked files to ignore"
 msgstr "忽略指定的未跟踪文件"
 
-#: builtin/help.c:415
+#: builtin/help.c:412
 msgid "Defining submodule properties"
 msgstr "定义子模组属性"
 
-#: builtin/help.c:416
+#: builtin/help.c:413
 msgid "Specifying revisions and ranges for Git"
 msgstr "指定 Git 的版本和版本范围"
 
-#: builtin/help.c:417
+#: builtin/help.c:414
 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)"
 msgstr "一个 Git 教程(针对 1.5.1 或更新版本)"
 
-#: builtin/help.c:418
+#: builtin/help.c:415
 msgid "An overview of recommended workflows with Git"
 msgstr "Git 推荐的工作流概览"
 
-#: builtin/help.c:430
+#: builtin/help.c:427
 msgid "The common Git guides are:\n"
 msgstr "最常用的 Git 向导有:\n"
 
-#: builtin/help.c:451 builtin/help.c:468
+#: builtin/help.c:448 builtin/help.c:465
 #, c-format
 msgid "usage: %s%s"
 msgstr "用法:%s%s"
 
-#: builtin/help.c:484
+#: builtin/help.c:481
 #, c-format
 msgid "`git %s' is aliased to `%s'"
 msgstr "`git %s' 是 `%s' 的别名"
@@ -6951,60 +7157,55 @@
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "坏的 pack.indexversion=%<PRIu32>"
 
-#: builtin/index-pack.c:1475
-#, c-format
-msgid "invalid number of threads specified (%d)"
-msgstr "指定的线程数无效(%d)"
-
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1664
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "没有线程支持,忽略 %s"
 
-#: builtin/index-pack.c:1537
+#: builtin/index-pack.c:1538
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "无法打开现存包文件 '%s'"
 
-#: builtin/index-pack.c:1539
+#: builtin/index-pack.c:1540
 #, c-format
 msgid "Cannot open existing pack idx file for '%s'"
 msgstr "无法为 %s 打开包索引文件"
 
-#: builtin/index-pack.c:1586
+#: builtin/index-pack.c:1587
 #, c-format
 msgid "non delta: %d object"
 msgid_plural "non delta: %d objects"
 msgstr[0] "非 delta:%d 个对象"
 msgstr[1] "非 delta:%d 个对象"
 
-#: builtin/index-pack.c:1593
+#: builtin/index-pack.c:1594
 #, c-format
 msgid "chain length = %d: %lu object"
 msgid_plural "chain length = %d: %lu objects"
 msgstr[0] "链长 = %d: %lu 对象"
 msgstr[1] "链长 = %d: %lu 对象"
 
-#: builtin/index-pack.c:1623
+#: builtin/index-pack.c:1624
 msgid "Cannot come back to cwd"
 msgstr "无法返回当前工作目录"
 
-#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
-#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
+#: builtin/index-pack.c:1676 builtin/index-pack.c:1679
+#: builtin/index-pack.c:1691 builtin/index-pack.c:1695
 #, c-format
 msgid "bad %s"
 msgstr "错误选项 %s"
 
-#: builtin/index-pack.c:1708
+#: builtin/index-pack.c:1709
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin 不能和 --stdin 同时使用"
 
-#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
+#: builtin/index-pack.c:1713 builtin/index-pack.c:1722
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "包文件名 '%s' 没有以 '.pack' 结尾"
 
-#: builtin/index-pack.c:1729
+#: builtin/index-pack.c:1730
 msgid "--verify with no packfile name given"
 msgstr "--verify 没有提供包文件名参数"
 
@@ -7129,24 +7330,32 @@
 
 #: builtin/interpret-trailers.c:15
 msgid ""
-"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] "
-"[<file>...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer "
+"<token>[(=|:)<value>])...] [<file>...]"
 msgstr ""
-"git interpret-trailers [--trim-empty] [(--trailer <键>[(=|:)<值>])...] [<文件"
-">...]"
+"git interpret-trailers [--in-place] [--trim-empty] [(--trailer <键>[(=|:)<值"
+">])...] [<文件>...]"
 
-#: builtin/interpret-trailers.c:25
+#: builtin/interpret-trailers.c:26
+msgid "edit files in place"
+msgstr "在原位编辑文件"
+
+#: builtin/interpret-trailers.c:27
 msgid "trim empty trailers"
 msgstr "删除空签名"
 
-#: builtin/interpret-trailers.c:26
+#: builtin/interpret-trailers.c:28
 msgid "trailer"
 msgstr "签名"
 
-#: builtin/interpret-trailers.c:27
+#: builtin/interpret-trailers.c:29
 msgid "trailer(s) to add"
 msgstr "要添加的签名"
 
+#: builtin/interpret-trailers.c:42
+msgid "no input file given for in-place editing"
+msgstr "没有给出要原位编辑的文件"
+
 #: builtin/log.c:43
 msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
 msgstr "git log [<选项>] [<版本范围>] [[--] <路径>...]"
@@ -7200,325 +7409,375 @@
 msgid "Unknown type: %d"
 msgstr "未知类型:%d"
 
-#: builtin/log.c:714
+#: builtin/log.c:715
 msgid "format.headers without value"
 msgstr "format.headers 没有值"
 
-#: builtin/log.c:798
+#: builtin/log.c:801
 msgid "name of output directory is too long"
 msgstr "输出目录名太长"
 
-#: builtin/log.c:813
+#: builtin/log.c:816
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "无法打开补丁文件 %s"
 
-#: builtin/log.c:827
+#: builtin/log.c:830
 msgid "Need exactly one range."
 msgstr "只需要一个范围。"
 
-#: builtin/log.c:837
+#: builtin/log.c:840
 msgid "Not a range."
 msgstr "不是一个范围。"
 
-#: builtin/log.c:943
+#: builtin/log.c:946
 msgid "Cover letter needs email format"
 msgstr "信封需要邮件地址格式"
 
-#: builtin/log.c:1022
+#: builtin/log.c:1025
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "不正常的 in-reply-to:%s"
 
-#: builtin/log.c:1050
+#: builtin/log.c:1053
 msgid "git format-patch [<options>] [<since> | <revision-range>]"
 msgstr "git format-patch [<选项>] [<从> | <版本范围>]"
 
-#: builtin/log.c:1095
+#: builtin/log.c:1098
 msgid "Two output directories?"
 msgstr "两个输出目录?"
 
-#: builtin/log.c:1211
+#: builtin/log.c:1214
 msgid "use [PATCH n/m] even with a single patch"
 msgstr "使用 [PATCH n/m],即使只有一个补丁"
 
-#: builtin/log.c:1214
+#: builtin/log.c:1217
 msgid "use [PATCH] even with multiple patches"
 msgstr "使用 [PATCH],即使有多个补丁"
 
-#: builtin/log.c:1218
+#: builtin/log.c:1221
 msgid "print patches to standard out"
 msgstr "打印补丁到标准输出"
 
-#: builtin/log.c:1220
+#: builtin/log.c:1223
 msgid "generate a cover letter"
 msgstr "生成一封附信"
 
-#: builtin/log.c:1222
+#: builtin/log.c:1225
 msgid "use simple number sequence for output file names"
 msgstr "使用简单的数字序列作为输出文件名"
 
-#: builtin/log.c:1223
+#: builtin/log.c:1226
 msgid "sfx"
 msgstr "后缀"
 
-#: builtin/log.c:1224
+#: builtin/log.c:1227
 msgid "use <sfx> instead of '.patch'"
 msgstr "使用 <后缀> 代替 '.patch'"
 
-#: builtin/log.c:1226
+#: builtin/log.c:1229
 msgid "start numbering patches at <n> instead of 1"
 msgstr "补丁以 <n> 开始编号,而不是1"
 
-#: builtin/log.c:1228
+#: builtin/log.c:1231
 msgid "mark the series as Nth re-roll"
 msgstr "标记补丁系列是第几次重制"
 
-#: builtin/log.c:1230
+#: builtin/log.c:1233
 msgid "Use [<prefix>] instead of [PATCH]"
 msgstr "使用 [<前缀>] 代替 [PATCH]"
 
-#: builtin/log.c:1233
+#: builtin/log.c:1236
 msgid "store resulting files in <dir>"
 msgstr "把结果文件存储在 <目录>"
 
-#: builtin/log.c:1236
+#: builtin/log.c:1239
 msgid "don't strip/add [PATCH]"
 msgstr "不删除/添加 [PATCH]"
 
-#: builtin/log.c:1239
+#: builtin/log.c:1242
 msgid "don't output binary diffs"
 msgstr "不输出二进制差异"
 
-#: builtin/log.c:1241
+#: builtin/log.c:1244
 msgid "output all-zero hash in From header"
 msgstr "在 From 头信息中输出全为零的哈希值"
 
-#: builtin/log.c:1243
+#: builtin/log.c:1246
 msgid "don't include a patch matching a commit upstream"
 msgstr "不包含已在上游提交中的补丁"
 
-#: builtin/log.c:1245
+#: builtin/log.c:1248
 msgid "show patch format instead of default (patch + stat)"
 msgstr "显示纯补丁格式而非默认的(补丁+状态)"
 
-#: builtin/log.c:1247
+#: builtin/log.c:1250
 msgid "Messaging"
 msgstr "邮件发送"
 
-#: builtin/log.c:1248
+#: builtin/log.c:1251
 msgid "header"
 msgstr "header"
 
-#: builtin/log.c:1249
+#: builtin/log.c:1252
 msgid "add email header"
 msgstr "添加邮件头"
 
-#: builtin/log.c:1250 builtin/log.c:1252
+#: builtin/log.c:1253 builtin/log.c:1255
 msgid "email"
 msgstr "邮件地址"
 
-#: builtin/log.c:1250
+#: builtin/log.c:1253
 msgid "add To: header"
 msgstr "添加收件人"
 
-#: builtin/log.c:1252
+#: builtin/log.c:1255
 msgid "add Cc: header"
 msgstr "添加抄送"
 
-#: builtin/log.c:1254
+#: builtin/log.c:1257
 msgid "ident"
 msgstr "标识"
 
-#: builtin/log.c:1255
+#: builtin/log.c:1258
 msgid "set From address to <ident> (or committer ident if absent)"
 msgstr "将 From 地址设置为 <标识>(如若不提供,则用提交者 ID 做为地址)"
 
-#: builtin/log.c:1257
+#: builtin/log.c:1260
 msgid "message-id"
 msgstr "邮件标识"
 
-#: builtin/log.c:1258
+#: builtin/log.c:1261
 msgid "make first mail a reply to <message-id>"
 msgstr "使第一封邮件作为对 <邮件标识> 的回复"
 
-#: builtin/log.c:1259 builtin/log.c:1262
+#: builtin/log.c:1262 builtin/log.c:1265
 msgid "boundary"
 msgstr "边界"
 
-#: builtin/log.c:1260
+#: builtin/log.c:1263
 msgid "attach the patch"
 msgstr "附件方式添加补丁"
 
-#: builtin/log.c:1263
+#: builtin/log.c:1266
 msgid "inline the patch"
 msgstr "内联显示补丁"
 
-#: builtin/log.c:1267
+#: builtin/log.c:1270
 msgid "enable message threading, styles: shallow, deep"
 msgstr "启用邮件线索,风格:浅,深"
 
-#: builtin/log.c:1269
+#: builtin/log.c:1272
 msgid "signature"
 msgstr "签名"
 
-#: builtin/log.c:1270
+#: builtin/log.c:1273
 msgid "add a signature"
 msgstr "添加一个签名"
 
-#: builtin/log.c:1272
+#: builtin/log.c:1275
 msgid "add a signature from a file"
 msgstr "从文件添加一个签名"
 
-#: builtin/log.c:1273
+#: builtin/log.c:1276
 msgid "don't print the patch filenames"
 msgstr "不要打印补丁文件名"
 
-#: builtin/log.c:1362
+#: builtin/log.c:1365
 msgid "-n and -k are mutually exclusive."
 msgstr "-n 和 -k 互斥。"
 
-#: builtin/log.c:1364
+#: builtin/log.c:1367
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix 和 -k 互斥。"
 
-#: builtin/log.c:1372
+#: builtin/log.c:1375
 msgid "--name-only does not make sense"
 msgstr "--name-only 无意义"
 
-#: builtin/log.c:1374
+#: builtin/log.c:1377
 msgid "--name-status does not make sense"
 msgstr "--name-status 无意义"
 
-#: builtin/log.c:1376
+#: builtin/log.c:1379
 msgid "--check does not make sense"
 msgstr "--check 无意义"
 
-#: builtin/log.c:1401
+#: builtin/log.c:1407
 msgid "standard output, or directory, which one?"
 msgstr "标准输出或目录,哪一个?"
 
-#: builtin/log.c:1403
+#: builtin/log.c:1409
 #, c-format
 msgid "Could not create directory '%s'"
 msgstr "不能创建目录 '%s'"
 
-#: builtin/log.c:1500
+#: builtin/log.c:1506
 #, c-format
 msgid "unable to read signature file '%s'"
 msgstr "无法读取签名文件 '%s'"
 
-#: builtin/log.c:1563
+#: builtin/log.c:1569
 msgid "Failed to create output files"
 msgstr "无法创建输出文件"
 
-#: builtin/log.c:1611
+#: builtin/log.c:1617
 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
 msgstr "git cherry [-v] [<上游> [<头> [<限制>]]]"
 
-#: builtin/log.c:1665
+#: builtin/log.c:1671
 #, c-format
 msgid ""
 "Could not find a tracked remote branch, please specify <upstream> manually.\n"
 msgstr "不能找到跟踪的远程分支,请手工指定 <上游>。\n"
 
-#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690
+#: builtin/log.c:1682 builtin/log.c:1684 builtin/log.c:1696
 #, c-format
 msgid "Unknown commit %s"
 msgstr "未知提交 %s"
 
-#: builtin/ls-files.c:358
+#: builtin/ls-files.c:378
 msgid "git ls-files [<options>] [<file>...]"
 msgstr "git ls-files [<选项>] [<文件>...]"
 
-#: builtin/ls-files.c:415
+#: builtin/ls-files.c:427
 msgid "identify the file status with tags"
 msgstr "用标签标识文件的状态"
 
-#: builtin/ls-files.c:417
+#: builtin/ls-files.c:429
 msgid "use lowercase letters for 'assume unchanged' files"
 msgstr "使用小写字母表示 '假设未改变的' 文件"
 
-#: builtin/ls-files.c:419
+#: builtin/ls-files.c:431
 msgid "show cached files in the output (default)"
 msgstr "显示缓存的文件(默认)"
 
-#: builtin/ls-files.c:421
+#: builtin/ls-files.c:433
 msgid "show deleted files in the output"
 msgstr "显示已删除的文件"
 
-#: builtin/ls-files.c:423
+#: builtin/ls-files.c:435
 msgid "show modified files in the output"
 msgstr "显示已修改的文件"
 
-#: builtin/ls-files.c:425
+#: builtin/ls-files.c:437
 msgid "show other files in the output"
 msgstr "显示其它文件"
 
-#: builtin/ls-files.c:427
+#: builtin/ls-files.c:439
 msgid "show ignored files in the output"
 msgstr "显示忽略的文件"
 
-#: builtin/ls-files.c:430
+#: builtin/ls-files.c:442
 msgid "show staged contents' object name in the output"
 msgstr "显示暂存区内容的对象名称"
 
-#: builtin/ls-files.c:432
+#: builtin/ls-files.c:444
 msgid "show files on the filesystem that need to be removed"
 msgstr "显示文件系统需要删除的文件"
 
-#: builtin/ls-files.c:434
+#: builtin/ls-files.c:446
 msgid "show 'other' directories' names only"
 msgstr "只显示“其他”目录的名称"
 
-#: builtin/ls-files.c:437
+#: builtin/ls-files.c:448
+msgid "show line endings of files"
+msgstr "显示文件换行符格式"
+
+#: builtin/ls-files.c:450
 msgid "don't show empty directories"
 msgstr "不显示空目录"
 
-#: builtin/ls-files.c:440
+#: builtin/ls-files.c:453
 msgid "show unmerged files in the output"
 msgstr "显示未合并的文件"
 
-#: builtin/ls-files.c:442
+#: builtin/ls-files.c:455
 msgid "show resolve-undo information"
 msgstr "显示 resolve-undo 信息"
 
-#: builtin/ls-files.c:444
+#: builtin/ls-files.c:457
 msgid "skip files matching pattern"
 msgstr "匹配排除文件的模式"
 
-#: builtin/ls-files.c:447
+#: builtin/ls-files.c:460
 msgid "exclude patterns are read from <file>"
 msgstr "从 <文件> 中读取排除模式"
 
-#: builtin/ls-files.c:450
+#: builtin/ls-files.c:463
 msgid "read additional per-directory exclude patterns in <file>"
 msgstr "从 <文件> 读取额外的每个目录的排除模式"
 
-#: builtin/ls-files.c:452
+#: builtin/ls-files.c:465
 msgid "add the standard git exclusions"
 msgstr "添加标准的 git 排除"
 
-#: builtin/ls-files.c:455
+#: builtin/ls-files.c:468
 msgid "make the output relative to the project top directory"
 msgstr "显示相对于顶级目录的文件名"
 
-#: builtin/ls-files.c:458
+#: builtin/ls-files.c:471
 msgid "if any <file> is not in the index, treat this as an error"
 msgstr "如果任何 <文件> 都不在索引区,视为错误"
 
-#: builtin/ls-files.c:459
+#: builtin/ls-files.c:472
 msgid "tree-ish"
 msgstr "树或提交"
 
-#: builtin/ls-files.c:460
+#: builtin/ls-files.c:473
 msgid "pretend that paths removed since <tree-ish> are still present"
 msgstr "假装自从 <树或提交> 之后删除的路径仍然存在"
 
-#: builtin/ls-files.c:462
+#: builtin/ls-files.c:475
 msgid "show debugging data"
 msgstr "显示调试数据"
 
+#: builtin/ls-remote.c:7
+msgid ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<repository> [<refs>...]]"
+msgstr ""
+"git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n"
+"                     [-q | --quiet] [--exit-code] [--get-url]\n"
+"                     [--symref] [<仓库> [<引用>...]]"
+
+#: builtin/ls-remote.c:50
+msgid "do not print remote URL"
+msgstr "不打印远程 URL"
+
+#: builtin/ls-remote.c:51 builtin/ls-remote.c:53
+msgid "exec"
+msgstr "exec"
+
+#: builtin/ls-remote.c:52 builtin/ls-remote.c:54
+msgid "path of git-upload-pack on the remote host"
+msgstr "远程主机上的 git-upload-pack 路径"
+
+#: builtin/ls-remote.c:56
+msgid "limit to tags"
+msgstr "仅限于标签"
+
+#: builtin/ls-remote.c:57
+msgid "limit to heads"
+msgstr "仅限于分支"
+
+#: builtin/ls-remote.c:58
+msgid "do not show peeled tags"
+msgstr "不显示已解析的标签"
+
+#: builtin/ls-remote.c:60
+msgid "take url.<base>.insteadOf into account"
+msgstr "参考 url.<base>.insteadOf 设置"
+
+#: builtin/ls-remote.c:62
+msgid "exit with exit code 2 if no matching refs are found"
+msgstr "若未找到匹配的引用则以退出码2退出"
+
+#: builtin/ls-remote.c:64
+msgid "show underlying ref in addition to the object pointed by it"
+msgstr "除了显示指向的对象外,显示指向的引用名"
+
 #: builtin/ls-tree.c:28
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
 msgstr "git ls-tree [<选项>] <树或提交> [<路径>...]"
@@ -7586,31 +7845,31 @@
 msgid "Available custom strategies are:"
 msgstr "可用的自定义策略有:"
 
-#: builtin/merge.c:193 builtin/pull.c:119
+#: builtin/merge.c:193 builtin/pull.c:123
 msgid "do not show a diffstat at the end of the merge"
 msgstr "在合并的最后不显示差异统计"
 
-#: builtin/merge.c:196 builtin/pull.c:122
+#: builtin/merge.c:196 builtin/pull.c:126
 msgid "show a diffstat at the end of the merge"
 msgstr "在合并的最后显示差异统计"
 
-#: builtin/merge.c:197 builtin/pull.c:125
+#: builtin/merge.c:197 builtin/pull.c:129
 msgid "(synonym to --stat)"
 msgstr "(和 --stat 同义)"
 
-#: builtin/merge.c:199 builtin/pull.c:128
+#: builtin/merge.c:199 builtin/pull.c:132
 msgid "add (at most <n>) entries from shortlog to merge commit message"
 msgstr "在合并提交信息中添加(最多 <n> 条)精简提交记录"
 
-#: builtin/merge.c:202 builtin/pull.c:131
+#: builtin/merge.c:202 builtin/pull.c:135
 msgid "create a single commit instead of doing a merge"
 msgstr "创建一个单独的提交而不是做一次合并"
 
-#: builtin/merge.c:204 builtin/pull.c:134
+#: builtin/merge.c:204 builtin/pull.c:138
 msgid "perform a commit if the merge succeeds (default)"
 msgstr "如果合并成功,执行一次提交(默认)"
 
-#: builtin/merge.c:206 builtin/pull.c:137
+#: builtin/merge.c:206 builtin/pull.c:141
 msgid "edit message before committing"
 msgstr "在提交前编辑提交说明"
 
@@ -7618,7 +7877,7 @@
 msgid "allow fast-forward (default)"
 msgstr "允许快进(默认)"
 
-#: builtin/merge.c:209 builtin/pull.c:143
+#: builtin/merge.c:209 builtin/pull.c:147
 msgid "abort if fast-forward is not possible"
 msgstr "如果不能快进就放弃合并"
 
@@ -7626,20 +7885,20 @@
 msgid "Verify that the named commit has a valid GPG signature"
 msgstr "验证指定的提交是否包含一个有效的 GPG 签名"
 
-#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/merge.c:214 builtin/notes.c:770 builtin/pull.c:152
 #: builtin/revert.c:89
 msgid "strategy"
 msgstr "策略"
 
-#: builtin/merge.c:215 builtin/pull.c:149
+#: builtin/merge.c:215 builtin/pull.c:153
 msgid "merge strategy to use"
 msgstr "要使用的合并策略"
 
-#: builtin/merge.c:216 builtin/pull.c:152
+#: builtin/merge.c:216 builtin/pull.c:156
 msgid "option=value"
 msgstr "option=value"
 
-#: builtin/merge.c:217 builtin/pull.c:153
+#: builtin/merge.c:217 builtin/pull.c:157
 msgid "option for selected merge strategy"
 msgstr "所选的合并策略的选项"
 
@@ -7678,8 +7937,8 @@
 msgid "Squash commit -- not updating HEAD\n"
 msgstr "压缩提交 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
+#: builtin/merge.c:344 builtin/merge.c:764 builtin/merge.c:976
+#: builtin/merge.c:989
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "不能写入 '%s'"
@@ -7697,41 +7956,41 @@
 msgid "No merge message -- not updating HEAD\n"
 msgstr "无合并信息 -- 未更新 HEAD\n"
 
-#: builtin/merge.c:447
+#: builtin/merge.c:448
 #, c-format
 msgid "'%s' does not point to a commit"
 msgstr "'%s' 没有指向一个提交"
 
-#: builtin/merge.c:537
+#: builtin/merge.c:538
 #, c-format
 msgid "Bad branch.%s.mergeoptions string: %s"
 msgstr "坏的 branch.%s.mergeoptions 字符串:%s"
 
-#: builtin/merge.c:656
+#: builtin/merge.c:657
 msgid "Not handling anything other than two heads merge."
 msgstr "不能处理两个头合并之外的任何操作。"
 
-#: builtin/merge.c:670
+#: builtin/merge.c:671
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "merge-recursive 的未知选项:-X%s"
 
-#: builtin/merge.c:683
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "不能写 %s"
 
-#: builtin/merge.c:772
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "不能从 '%s' 读取"
 
-#: builtin/merge.c:781
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr "未提交合并,使用 'git commit' 完成此次合并。\n"
 
-#: builtin/merge.c:787
+#: builtin/merge.c:788
 #, c-format
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
@@ -7745,52 +8004,52 @@
 "\n"
 "以 '%c' 开头的行将被忽略,而且空提交说明将会终止提交。\n"
 
-#: builtin/merge.c:811
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "空提交信息。"
 
-#: builtin/merge.c:823
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "太棒了。\n"
 
-#: builtin/merge.c:878
+#: builtin/merge.c:879
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr "自动合并失败,修正冲突然后提交修正的结果。\n"
 
-#: builtin/merge.c:894
+#: builtin/merge.c:895
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' 不是一个提交"
 
-#: builtin/merge.c:935
+#: builtin/merge.c:936
 msgid "No current branch."
 msgstr "没有当前分支。"
 
-#: builtin/merge.c:937
+#: builtin/merge.c:938
 msgid "No remote for the current branch."
 msgstr "当前分支没有对应的远程仓库。"
 
-#: builtin/merge.c:939
+#: builtin/merge.c:940
 msgid "No default upstream defined for the current branch."
 msgstr "当前分支没有定义默认的上游分支。"
 
-#: builtin/merge.c:944
+#: builtin/merge.c:945
 #, c-format
 msgid "No remote-tracking branch for %s from %s"
 msgstr "对于 %s 没有来自 %s 的远程跟踪分支"
 
-#: builtin/merge.c:1079
+#: builtin/merge.c:1080
 #, c-format
 msgid "could not close '%s'"
 msgstr "不能关闭 '%s'"
 
-#: builtin/merge.c:1206
+#: builtin/merge.c:1207
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "没有要终止的合并(MERGE_HEAD 丢失)。"
 
-#: builtin/merge.c:1222
+#: builtin/merge.c:1223
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7798,7 +8057,7 @@
 "您尚未结束您的合并(存在 MERGE_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1229
+#: builtin/merge.c:1230
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you merge."
@@ -7806,100 +8065,100 @@
 "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。\n"
 "请在合并前先提交您的修改。"
 
-#: builtin/merge.c:1232
+#: builtin/merge.c:1233
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr "您尚未结束您的拣选(存在 CHERRY_PICK_HEAD)。"
 
-#: builtin/merge.c:1241
+#: builtin/merge.c:1242
 msgid "You cannot combine --squash with --no-ff."
 msgstr "您不能将 --squash 与 --no-ff 同时使用。"
 
-#: builtin/merge.c:1249
+#: builtin/merge.c:1250
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "未指定提交并且 merge.defaultToUpstream 未设置。"
 
-#: builtin/merge.c:1266
+#: builtin/merge.c:1267
 msgid "Squash commit into empty head not supported yet"
 msgstr "尚不支持到空分支的压缩提交"
 
-#: builtin/merge.c:1268
+#: builtin/merge.c:1269
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "到空分支的非快进式提交没有意义"
 
-#: builtin/merge.c:1274
+#: builtin/merge.c:1275
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - 不能被合并"
 
-#: builtin/merge.c:1276
+#: builtin/merge.c:1277
 msgid "Can merge only exactly one commit into empty head"
 msgstr "只能将一个提交合并到空分支上"
 
-#: builtin/merge.c:1331
+#: builtin/merge.c:1332
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "提交 %s 有一个非可信的声称来自 %s 的 GPG 签名。"
 
-#: builtin/merge.c:1334
+#: builtin/merge.c:1335
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "提交 %s 有一个错误的声称来自 %s 的 GPG 签名。"
 
-#: builtin/merge.c:1337
+#: builtin/merge.c:1338
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "提交 %s 没有一个 GPG 签名。"
 
-#: builtin/merge.c:1340
+#: builtin/merge.c:1341
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "提交 %s 有一个来自 %s 的好的 GPG 签名。\n"
 
-#: builtin/merge.c:1423
+#: builtin/merge.c:1424
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "更新 %s..%s\n"
 
-#: builtin/merge.c:1460
+#: builtin/merge.c:1461
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "尝试非常小的索引内合并...\n"
 
-#: builtin/merge.c:1467
+#: builtin/merge.c:1468
 #, c-format
 msgid "Nope.\n"
 msgstr "无。\n"
 
-#: builtin/merge.c:1499
+#: builtin/merge.c:1500
 msgid "Not possible to fast-forward, aborting."
 msgstr "无法快进,终止。"
 
-#: builtin/merge.c:1522 builtin/merge.c:1601
+#: builtin/merge.c:1523 builtin/merge.c:1602
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "将树回滚至原始状态...\n"
 
-#: builtin/merge.c:1526
+#: builtin/merge.c:1527
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "尝试合并策略 %s...\n"
 
-#: builtin/merge.c:1592
+#: builtin/merge.c:1593
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "没有合并策略处理此合并。\n"
 
-#: builtin/merge.c:1594
+#: builtin/merge.c:1595
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "使用策略 %s 合并失败。\n"
 
-#: builtin/merge.c:1603
+#: builtin/merge.c:1604
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "使用 %s 以准备手工解决。\n"
 
-#: builtin/merge.c:1615
+#: builtin/merge.c:1616
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr "自动合并进展顺利,按要求在提交前停止\n"
@@ -7984,19 +8243,19 @@
 msgid "set labels for file1/orig-file/file2"
 msgstr "为 文件1/初始文件/文件2 设置标签"
 
-#: builtin/mktree.c:64
+#: builtin/mktree.c:65
 msgid "git mktree [-z] [--missing] [--batch]"
 msgstr "git mktree [-z] [--missing] [--batch]"
 
-#: builtin/mktree.c:150
+#: builtin/mktree.c:152
 msgid "input is NUL terminated"
 msgstr "输入以 NUL 字符终止"
 
-#: builtin/mktree.c:151 builtin/write-tree.c:24
+#: builtin/mktree.c:153 builtin/write-tree.c:24
 msgid "allow missing objects"
 msgstr "允许丢失的对象"
 
-#: builtin/mktree.c:152
+#: builtin/mktree.c:154
 msgid "allow creation of more than one tree"
 msgstr "允许创建一个以上的树"
 
@@ -8004,90 +8263,90 @@
 msgid "git mv [<options>] <source>... <destination>"
 msgstr "git mv [<选项>] <源>... <目标>"
 
-#: builtin/mv.c:69
+#: builtin/mv.c:70
 #, c-format
 msgid "Directory %s is in index and no submodule?"
 msgstr "目录 %s 在索引中并且不是子模组?"
 
-#: builtin/mv.c:71
+#: builtin/mv.c:72
 msgid "Please stage your changes to .gitmodules or stash them to proceed"
 msgstr "请将您的修改暂存到 .gitmodules 中或保存进度后再继续"
 
-#: builtin/mv.c:89
+#: builtin/mv.c:90
 #, c-format
 msgid "%.*s is in index"
 msgstr "%.*s 在索引中"
 
-#: builtin/mv.c:111
+#: builtin/mv.c:112
 msgid "force move/rename even if target exists"
 msgstr "强制移动/重命令,即使目标存在"
 
-#: builtin/mv.c:112
+#: builtin/mv.c:113
 msgid "skip move/rename errors"
 msgstr "跳过移动/重命名错误"
 
-#: builtin/mv.c:151
+#: builtin/mv.c:152
 #, c-format
 msgid "destination '%s' is not a directory"
 msgstr "目标 '%s' 不是一个目录"
 
-#: builtin/mv.c:162
+#: builtin/mv.c:163
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
 msgstr "检查 '%s' 到 '%s' 的重命名\n"
 
-#: builtin/mv.c:166
+#: builtin/mv.c:167
 msgid "bad source"
 msgstr "坏的源"
 
-#: builtin/mv.c:169
+#: builtin/mv.c:170
 msgid "can not move directory into itself"
 msgstr "不能将目录移动到自身"
 
-#: builtin/mv.c:172
+#: builtin/mv.c:173
 msgid "cannot move directory over file"
 msgstr "不能将目录移动到文件"
 
-#: builtin/mv.c:181
+#: builtin/mv.c:182
 msgid "source directory is empty"
 msgstr "源目录为空"
 
-#: builtin/mv.c:206
+#: builtin/mv.c:207
 msgid "not under version control"
 msgstr "不在版本控制之下"
 
-#: builtin/mv.c:209
+#: builtin/mv.c:210
 msgid "destination exists"
 msgstr "目标已存在"
 
-#: builtin/mv.c:217
+#: builtin/mv.c:218
 #, c-format
 msgid "overwriting '%s'"
 msgstr "覆盖 '%s'"
 
-#: builtin/mv.c:220
+#: builtin/mv.c:221
 msgid "Cannot overwrite"
 msgstr "不能覆盖"
 
-#: builtin/mv.c:223
+#: builtin/mv.c:224
 msgid "multiple sources for the same target"
 msgstr "同一目标具有多个源"
 
-#: builtin/mv.c:225
+#: builtin/mv.c:226
 msgid "destination directory does not exist"
 msgstr "目标目录不存在"
 
-#: builtin/mv.c:232
+#: builtin/mv.c:233
 #, c-format
 msgid "%s, source=%s, destination=%s"
 msgstr "%s,源=%s,目标=%s"
 
-#: builtin/mv.c:253
+#: builtin/mv.c:254
 #, c-format
 msgid "Renaming %s to %s\n"
 msgstr "重命名 %s 至 %s\n"
 
-#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365
+#: builtin/mv.c:257 builtin/remote.c:714 builtin/repack.c:365
 #, c-format
 msgid "renaming '%s' failed"
 msgstr "重命名 '%s' 失败"
@@ -8284,9 +8543,9 @@
 msgstr "不能打开或读取 '%s'"
 
 #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
-#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
-#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
-#: builtin/notes.c:877 builtin/tag.c:456
+#: builtin/notes.c:369 builtin/notes.c:424 builtin/notes.c:510
+#: builtin/notes.c:515 builtin/notes.c:593 builtin/notes.c:656
+#: builtin/notes.c:880 builtin/tag.c:456
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "无法解析 '%s' 为一个有效引用。"
@@ -8301,83 +8560,83 @@
 msgid "Cannot read note data from non-blob object '%s'."
 msgstr "不能从非数据对象 '%s' 中读取注解数据"
 
-#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
-#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
-#: builtin/notes.c:942
+#: builtin/notes.c:362 builtin/notes.c:417 builtin/notes.c:493
+#: builtin/notes.c:505 builtin/notes.c:581 builtin/notes.c:649
+#: builtin/notes.c:945
 msgid "too many parameters"
 msgstr "参数太多"
 
-#: builtin/notes.c:372 builtin/notes.c:659
+#: builtin/notes.c:375 builtin/notes.c:662
 #, c-format
 msgid "No note found for object %s."
 msgstr "未发现对象 %s 的注解。"
 
-#: builtin/notes.c:393 builtin/notes.c:556
+#: builtin/notes.c:396 builtin/notes.c:559
 msgid "note contents as a string"
 msgstr "注解内容作为一个字符串"
 
-#: builtin/notes.c:396 builtin/notes.c:559
+#: builtin/notes.c:399 builtin/notes.c:562
 msgid "note contents in a file"
 msgstr "注解内容到一个文件中"
 
-#: builtin/notes.c:399 builtin/notes.c:562
+#: builtin/notes.c:402 builtin/notes.c:565
 msgid "reuse and edit specified note object"
 msgstr "重用和编辑指定的注解对象"
 
-#: builtin/notes.c:402 builtin/notes.c:565
+#: builtin/notes.c:405 builtin/notes.c:568
 msgid "reuse specified note object"
 msgstr "重用指定的注解对象"
 
-#: builtin/notes.c:405 builtin/notes.c:568
+#: builtin/notes.c:408 builtin/notes.c:571
 msgid "allow storing empty note"
 msgstr "允许保存空白注释"
 
-#: builtin/notes.c:406 builtin/notes.c:477
+#: builtin/notes.c:409 builtin/notes.c:480
 msgid "replace existing notes"
 msgstr "替换已存在的注解"
 
-#: builtin/notes.c:431
+#: builtin/notes.c:434
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr "不能添加注解。发现对象 %s 已存在注解。使用 '-f' 覆盖现存注解"
 
-#: builtin/notes.c:446 builtin/notes.c:525
+#: builtin/notes.c:449 builtin/notes.c:528
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "覆盖对象 %s 现存注解\n"
 
-#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
+#: builtin/notes.c:460 builtin/notes.c:621 builtin/notes.c:885
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "删除对象 %s 的注解\n"
 
-#: builtin/notes.c:478
+#: builtin/notes.c:481
 msgid "read objects from stdin"
 msgstr "从标准输入读取对象"
 
-#: builtin/notes.c:480
+#: builtin/notes.c:483
 msgid "load rewriting config for <command> (implies --stdin)"
 msgstr "重新加载 <命令> 的配置(隐含 --stdin)"
 
-#: builtin/notes.c:498
+#: builtin/notes.c:501
 msgid "too few parameters"
 msgstr "参数太少"
 
-#: builtin/notes.c:519
+#: builtin/notes.c:522
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
 "existing notes"
 msgstr "不能拷贝注解。发现对象 %s 已存在注解。使用 '-f' 覆盖现存注解"
 
-#: builtin/notes.c:531
+#: builtin/notes.c:534
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "源对象 %s 缺少注解。不能拷贝。"
 
-#: builtin/notes.c:583
+#: builtin/notes.c:586
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -8386,63 +8645,63 @@
 "子命令 'edit' 的选项 -m/-F/-c/-C 已弃用。\n"
 "请换用 'git notes add -f -m/-F/-c/-C'。\n"
 
-#: builtin/notes.c:764
+#: builtin/notes.c:767
 msgid "General options"
 msgstr "通用选项"
 
-#: builtin/notes.c:766
+#: builtin/notes.c:769
 msgid "Merge options"
 msgstr "合并选项"
 
-#: builtin/notes.c:768
+#: builtin/notes.c:771
 msgid ""
 "resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
 "cat_sort_uniq)"
 msgstr "使用指定的策略解决注解冲突 (manual/ours/theirs/union/cat_sort_uniq)"
 
-#: builtin/notes.c:770
+#: builtin/notes.c:773
 msgid "Committing unmerged notes"
 msgstr "提交未合并的注解"
 
-#: builtin/notes.c:772
+#: builtin/notes.c:775
 msgid "finalize notes merge by committing unmerged notes"
 msgstr "通过提交未合并的注解来完成注解合并"
 
-#: builtin/notes.c:774
+#: builtin/notes.c:777
 msgid "Aborting notes merge resolution"
 msgstr "中止注解合并的方案"
 
-#: builtin/notes.c:776
+#: builtin/notes.c:779
 msgid "abort notes merge"
 msgstr "中止注解合并"
 
-#: builtin/notes.c:853
+#: builtin/notes.c:856
 #, c-format
 msgid "A notes merge into %s is already in-progress at %s"
 msgstr "一个到 %s 的注解合并已经在 %s 执行中"
 
-#: builtin/notes.c:880
+#: builtin/notes.c:883
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "对象 %s 没有注解\n"
 
-#: builtin/notes.c:892
+#: builtin/notes.c:895
 msgid "attempt to remove non-existent note is not an error"
 msgstr "尝试删除不存在的注解不是一个错误"
 
-#: builtin/notes.c:895
+#: builtin/notes.c:898
 msgid "read object names from the standard input"
 msgstr "从标准输入读取对象名称"
 
-#: builtin/notes.c:976
+#: builtin/notes.c:979
 msgid "notes-ref"
 msgstr "注解引用"
 
-#: builtin/notes.c:977
+#: builtin/notes.c:980
 msgid "use notes from <notes-ref>"
 msgstr "从 <注解引用> 使用注解"
 
-#: builtin/notes.c:1012 builtin/remote.c:1647
+#: builtin/notes.c:1015 builtin/remote.c:1626
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "未知子命令:%s"
@@ -8462,165 +8721,165 @@
 msgid "deflate error (%d)"
 msgstr "压缩错误 (%d)"
 
-#: builtin/pack-objects.c:771
+#: builtin/pack-objects.c:772
 msgid "Writing objects"
 msgstr "写入对象中"
 
-#: builtin/pack-objects.c:1011
+#: builtin/pack-objects.c:1012
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr "禁用 bitmap 写入,因为一些对象将不会被打包"
 
-#: builtin/pack-objects.c:2171
+#: builtin/pack-objects.c:2172
 msgid "Compressing objects"
 msgstr "压缩对象中"
 
-#: builtin/pack-objects.c:2568
+#: builtin/pack-objects.c:2558
 #, c-format
 msgid "unsupported index version %s"
 msgstr "不支持的索引版本 %s"
 
-#: builtin/pack-objects.c:2572
+#: builtin/pack-objects.c:2562
 #, c-format
 msgid "bad index version '%s'"
 msgstr "坏的索引版本 '%s'"
 
-#: builtin/pack-objects.c:2602
+#: builtin/pack-objects.c:2592
 msgid "do not show progress meter"
 msgstr "不显示进度表"
 
-#: builtin/pack-objects.c:2604
+#: builtin/pack-objects.c:2594
 msgid "show progress meter"
 msgstr "显示进度表"
 
-#: builtin/pack-objects.c:2606
+#: builtin/pack-objects.c:2596
 msgid "show progress meter during object writing phase"
 msgstr "在对象写入阶段显示进度表"
 
-#: builtin/pack-objects.c:2609
+#: builtin/pack-objects.c:2599
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "当进度表显示时类似于 --all-progress"
 
-#: builtin/pack-objects.c:2610
+#: builtin/pack-objects.c:2600
 msgid "version[,offset]"
 msgstr "版本[,偏移]"
 
-#: builtin/pack-objects.c:2611
+#: builtin/pack-objects.c:2601
 msgid "write the pack index file in the specified idx format version"
 msgstr "用指定的 idx 格式版本来写包索引文件"
 
-#: builtin/pack-objects.c:2614
+#: builtin/pack-objects.c:2604
 msgid "maximum size of each output pack file"
 msgstr "每个输出包的最大尺寸"
 
-#: builtin/pack-objects.c:2616
+#: builtin/pack-objects.c:2606
 msgid "ignore borrowed objects from alternate object store"
 msgstr "忽略从备用对象存储里借用对象"
 
-#: builtin/pack-objects.c:2618
+#: builtin/pack-objects.c:2608
 msgid "ignore packed objects"
 msgstr "忽略包对象"
 
-#: builtin/pack-objects.c:2620
+#: builtin/pack-objects.c:2610
 msgid "limit pack window by objects"
 msgstr "限制打包窗口的对象数"
 
-#: builtin/pack-objects.c:2622
+#: builtin/pack-objects.c:2612
 msgid "limit pack window by memory in addition to object limit"
 msgstr "除对象数量限制外设置打包窗口的内存限制"
 
-#: builtin/pack-objects.c:2624
+#: builtin/pack-objects.c:2614
 msgid "maximum length of delta chain allowed in the resulting pack"
 msgstr "打包允许的 delta 链的最大长度"
 
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2616
 msgid "reuse existing deltas"
 msgstr "重用已存在的 deltas"
 
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2618
 msgid "reuse existing objects"
 msgstr "重用已存在的对象"
 
-#: builtin/pack-objects.c:2630
+#: builtin/pack-objects.c:2620
 msgid "use OFS_DELTA objects"
 msgstr "使用 OFS_DELTA 对象"
 
-#: builtin/pack-objects.c:2632
+#: builtin/pack-objects.c:2622
 msgid "use threads when searching for best delta matches"
 msgstr "使用线程查询最佳 delta 匹配"
 
-#: builtin/pack-objects.c:2634
+#: builtin/pack-objects.c:2624
 msgid "do not create an empty pack output"
 msgstr "不创建空的包输出"
 
-#: builtin/pack-objects.c:2636
+#: builtin/pack-objects.c:2626
 msgid "read revision arguments from standard input"
 msgstr "从标准输入读取版本号参数"
 
-#: builtin/pack-objects.c:2638
+#: builtin/pack-objects.c:2628
 msgid "limit the objects to those that are not yet packed"
 msgstr "限制那些尚未打包的对象"
 
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2631
 msgid "include objects reachable from any reference"
 msgstr "包括可以从任何引用访问到的对象"
 
-#: builtin/pack-objects.c:2644
+#: builtin/pack-objects.c:2634
 msgid "include objects referred by reflog entries"
 msgstr "包括被引用日志引用到的对象"
 
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2637
 msgid "include objects referred to by the index"
 msgstr "包括被索引引用到的对象"
 
-#: builtin/pack-objects.c:2650
+#: builtin/pack-objects.c:2640
 msgid "output pack to stdout"
 msgstr "输出包到标准输出"
 
-#: builtin/pack-objects.c:2652
+#: builtin/pack-objects.c:2642
 msgid "include tag objects that refer to objects to be packed"
 msgstr "包括那些引用了待打包对象的标签对象"
 
-#: builtin/pack-objects.c:2654
+#: builtin/pack-objects.c:2644
 msgid "keep unreachable objects"
 msgstr "维持不可达的对象"
 
-#: builtin/pack-objects.c:2655 parse-options.h:142
+#: builtin/pack-objects.c:2645 parse-options.h:142
 msgid "time"
 msgstr "时间"
 
-#: builtin/pack-objects.c:2656
+#: builtin/pack-objects.c:2646
 msgid "unpack unreachable objects newer than <time>"
 msgstr "将比给定 <时间> 新的无法访问的对象解包"
 
-#: builtin/pack-objects.c:2659
+#: builtin/pack-objects.c:2649
 msgid "create thin packs"
 msgstr "创建精简包"
 
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2651
 msgid "create packs suitable for shallow fetches"
 msgstr "创建适合浅克隆仓库获取的包"
 
-#: builtin/pack-objects.c:2663
+#: builtin/pack-objects.c:2653
 msgid "ignore packs that have companion .keep file"
 msgstr "忽略配有 .keep 文件的包"
 
-#: builtin/pack-objects.c:2665
+#: builtin/pack-objects.c:2655
 msgid "pack compression level"
 msgstr "打包压缩级别"
 
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2657
 msgid "do not hide commits by grafts"
 msgstr "显示被嫁接隐藏的提交"
 
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2659
 msgid "use a bitmap index if available to speed up counting objects"
 msgstr "使用 bitmap 索引(如果有的话)以提高对象计数时的速度"
 
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2661
 msgid "write a bitmap index together with the pack index"
 msgstr "在建立包索引的同时创建 bitmap 索引"
 
-#: builtin/pack-objects.c:2762
+#: builtin/pack-objects.c:2752
 msgid "Counting objects"
 msgstr "对象计数中"
 
@@ -8664,65 +8923,69 @@
 msgid "cannot prune in a precious-objects repo"
 msgstr "不能在珍品仓库中执行清理操作"
 
-#: builtin/pull.c:69
+#: builtin/pull.c:72
 msgid "git pull [<options>] [<repository> [<refspec>...]]"
 msgstr "git pull [<选项>] [<仓库> [<引用规格>...]]"
 
-#: builtin/pull.c:113
+#: builtin/pull.c:117
 msgid "Options related to merging"
 msgstr "和合并相关的选项"
 
-#: builtin/pull.c:116
+#: builtin/pull.c:120
 msgid "incorporate changes by rebasing rather than merging"
 msgstr "使用变基操作取代合并操作以合入修改"
 
-#: builtin/pull.c:140 builtin/revert.c:105
+#: builtin/pull.c:144 builtin/revert.c:105
 msgid "allow fast-forward"
 msgstr "允许快进式"
 
-#: builtin/pull.c:146
+#: builtin/pull.c:150
 msgid "verify that the named commit has a valid GPG signature"
 msgstr "验证指定的提交是否包含一个有效的 GPG 签名"
 
-#: builtin/pull.c:160
+#: builtin/pull.c:164
 msgid "Options related to fetching"
 msgstr "和获取相关的参数"
 
-#: builtin/pull.c:268
+#: builtin/pull.c:186
+msgid "number of submodules pulled in parallel"
+msgstr "并发拉取的子模组的数量"
+
+#: builtin/pull.c:275
 #, c-format
 msgid "Invalid value for pull.ff: %s"
 msgstr "pull.ff 的取值无效:%s"
 
-#: builtin/pull.c:352
+#: builtin/pull.c:359
 msgid "Cannot pull with rebase: You have unstaged changes."
 msgstr "无法通过变基方式拉取:您有未暂存的变更。"
 
-#: builtin/pull.c:358
+#: builtin/pull.c:365
 msgid "Additionally, your index contains uncommitted changes."
 msgstr "而且您的索引中包含未提交的变更。"
 
-#: builtin/pull.c:360
+#: builtin/pull.c:367
 msgid "Cannot pull with rebase: Your index contains uncommitted changes."
 msgstr "无法通过变基方式拉取:您的索引中包含未提交的变更。"
 
-#: builtin/pull.c:436
+#: builtin/pull.c:443
 msgid ""
 "There is no candidate for rebasing against among the refs that you just "
 "fetched."
 msgstr "在您刚刚获取到的引用中没有变基操作的候选。"
 
-#: builtin/pull.c:438
+#: builtin/pull.c:445
 msgid ""
 "There are no candidates for merging among the refs that you just fetched."
 msgstr "在您刚刚获取到的引用中没有合并操作的候选。"
 
-#: builtin/pull.c:439
+#: builtin/pull.c:446
 msgid ""
 "Generally this means that you provided a wildcard refspec which had no\n"
 "matches on the remote end."
 msgstr "通常这意味着您提供了一个通配符引用规格但未能和远端匹配。"
 
-#: builtin/pull.c:442
+#: builtin/pull.c:449
 #, c-format
 msgid ""
 "You asked to pull from the remote '%s', but did not specify\n"
@@ -8732,27 +8995,27 @@
 "您要求从远程 '%s' 拉取,但是未指定一个分支。因为这不是当前\n"
 "分支默认的远程仓库,您必须在命令行中指定一个分支名。"
 
-#: builtin/pull.c:447
+#: builtin/pull.c:454
 msgid "You are not currently on a branch."
 msgstr "您当前不在一个分支上。"
 
-#: builtin/pull.c:449 builtin/pull.c:464
+#: builtin/pull.c:456 builtin/pull.c:471
 msgid "Please specify which branch you want to rebase against."
 msgstr "请指定您要变基到哪一个分支。"
 
-#: builtin/pull.c:451 builtin/pull.c:466
+#: builtin/pull.c:458 builtin/pull.c:473
 msgid "Please specify which branch you want to merge with."
 msgstr "请指定您要合并哪一个分支。"
 
-#: builtin/pull.c:452 builtin/pull.c:467
+#: builtin/pull.c:459 builtin/pull.c:474
 msgid "See git-pull(1) for details."
 msgstr "详见 git-pull(1)。"
 
-#: builtin/pull.c:462
+#: builtin/pull.c:469
 msgid "There is no tracking information for the current branch."
 msgstr "当前分支没有跟踪信息。"
 
-#: builtin/pull.c:471
+#: builtin/pull.c:478
 #, c-format
 msgid ""
 "If you wish to set tracking information for this branch you can do so with:\n"
@@ -8763,7 +9026,7 @@
 "\n"
 "    git branch --set-upstream-to=%s/<branch> %s\n"
 
-#: builtin/pull.c:476
+#: builtin/pull.c:483
 #, c-format
 msgid ""
 "Your configuration specifies to merge with the ref '%s'\n"
@@ -8772,11 +9035,11 @@
 "您的配置中指定要合并远程的引用 '%s',\n"
 "但是没有获取到这个引用。"
 
-#: builtin/pull.c:830
+#: builtin/pull.c:841
 msgid "Updating an unborn branch with changes added to the index."
 msgstr "更新尚未诞生的分支,变更添加至索引。"
 
-#: builtin/pull.c:859
+#: builtin/pull.c:870
 #, c-format
 msgid ""
 "fetch updated the current branch head.\n"
@@ -8786,7 +9049,7 @@
 "fetch 更新了当前的分支。快进您的工作区\n"
 "至提交 %s。"
 
-#: builtin/pull.c:864
+#: builtin/pull.c:875
 #, c-format
 msgid ""
 "Cannot fast-forward your working tree.\n"
@@ -8803,11 +9066,11 @@
 "$ git reset --hard\n"
 "恢复之前的状态。"
 
-#: builtin/pull.c:879
+#: builtin/pull.c:890
 msgid "Cannot merge multiple branches into empty head."
 msgstr "无法将多个分支合并到空分支。"
 
-#: builtin/pull.c:883
+#: builtin/pull.c:894
 msgid "Cannot rebase onto multiple branches."
 msgstr "无法变基到多个分支。"
 
@@ -8815,15 +9078,15 @@
 msgid "git push [<options>] [<repository> [<refspec>...]]"
 msgstr "git push [<选项>] [<仓库> [<引用规格>...]]"
 
-#: builtin/push.c:88
+#: builtin/push.c:89
 msgid "tag shorthand without <tag>"
 msgstr "标签后面未提供 <标签> 参数"
 
-#: builtin/push.c:98
+#: builtin/push.c:99
 msgid "--delete only accepts plain target ref names"
 msgstr "--delete 只接受简单的目标引用名"
 
-#: builtin/push.c:142
+#: builtin/push.c:143
 msgid ""
 "\n"
 "To choose either option permanently, see push.default in 'git help config'."
@@ -8831,7 +9094,7 @@
 "\n"
 "为了永久地选择任一选项,参见 'git help config' 中的 push.default。"
 
-#: builtin/push.c:145
+#: builtin/push.c:146
 #, c-format
 msgid ""
 "The upstream branch of your current branch does not match\n"
@@ -8855,7 +9118,7 @@
 "    git push %s %s\n"
 "%s"
 
-#: builtin/push.c:160
+#: builtin/push.c:161
 #, c-format
 msgid ""
 "You are not currently on a branch.\n"
@@ -8869,7 +9132,7 @@
 "\n"
 "    git push %s HEAD:<远程分支名字>\n"
 
-#: builtin/push.c:174
+#: builtin/push.c:175
 #, c-format
 msgid ""
 "The current branch %s has no upstream branch.\n"
@@ -8882,12 +9145,12 @@
 "\n"
 "    git push --set-upstream %s %s\n"
 
-#: builtin/push.c:182
+#: builtin/push.c:183
 #, c-format
 msgid "The current branch %s has multiple upstream branches, refusing to push."
 msgstr "当前分支 %s 有多个上游分支,拒绝推送。"
 
-#: builtin/push.c:185
+#: builtin/push.c:186
 #, c-format
 msgid ""
 "You are pushing to remote '%s', which is not the upstream of\n"
@@ -8897,56 +9160,12 @@
 "您正推送至远程 '%s'(其并非当前分支 '%s' 的上游),\n"
 "而没有告诉我要推送什么、更新哪个远程分支。"
 
-#  译者:字符串首行行首要添加“warning: ”字串,故此首行要较其余行短
-#: builtin/push.c:208
-msgid ""
-"push.default is unset; its implicit value has changed in\n"
-"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
-"and maintain the traditional behavior, use:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"To squelch this message and adopt the new behavior now, use:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"When push.default is set to 'matching', git will push local branches\n"
-"to the remote branches that already exist with the same name.\n"
-"\n"
-"Since Git 2.0, Git defaults to the more conservative 'simple'\n"
-"behavior, which only pushes the current branch to the corresponding\n"
-"remote branch that 'git pull' uses to update the current branch.\n"
-"\n"
-"See 'git help config' and search for 'push.default' for further "
-"information.\n"
-"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
-"'current' instead of 'simple' if you sometimes use older versions of Git)"
-msgstr ""
-"push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching'\n"
-"变更为 'simple'。若要不再显示本信息并保持传统习惯,进行如下设置:\n"
-"\n"
-"  git config --global push.default matching\n"
-"\n"
-"若要不再显示本信息并从现在开始采用新的使用习惯,设置:\n"
-"\n"
-"  git config --global push.default simple\n"
-"\n"
-"当 push.default 设置为 'matching' 后,git 将推送和远程同名的所有\n"
-"本地分支。\n"
-"\n"
-"从 Git 2.0 开始,Git 默认采用更为保守的 'simple' 模式,只推送当前\n"
-"分支到远程关联的同名分支,即 'git push' 推送当前分支。\n"
-"\n"
-"参见 'git help config' 并查找 'push.default' 以获取更多信息。\n"
-"('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,\n"
-"为保持兼容,请用 'current' 代替 'simple')"
-
-#: builtin/push.c:275
+#: builtin/push.c:242
 msgid ""
 "You didn't specify any refspecs to push, and push.default is \"nothing\"."
 msgstr "您没有为推送指定任何引用规格,并且 push.default 为 \"nothing\"。"
 
-#: builtin/push.c:282
+#: builtin/push.c:249
 msgid ""
 "Updates were rejected because the tip of your current branch is behind\n"
 "its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -8957,7 +9176,7 @@
 "再次推送前,先与远程变更合并(如 'git pull ...')。详见\n"
 "'git push --help' 中的 'Note about fast-forwards' 小节。"
 
-#: builtin/push.c:288
+#: builtin/push.c:255
 msgid ""
 "Updates were rejected because a pushed branch tip is behind its remote\n"
 "counterpart. Check out this branch and integrate the remote changes\n"
@@ -8968,7 +9187,7 @@
 "检出该分支并整合远程变更(如 'git pull ...'),然后再推送。详见\n"
 "'git push --help' 中的 'Note about fast-forwards' 小节。"
 
-#: builtin/push.c:294
+#: builtin/push.c:261
 msgid ""
 "Updates were rejected because the remote contains work that you do\n"
 "not have locally. This is usually caused by another repository pushing\n"
@@ -8981,11 +9200,11 @@
 "(如 'git pull ...')。\n"
 "详见 'git push --help' 中的 'Note about fast-forwards' 小节。"
 
-#: builtin/push.c:301
+#: builtin/push.c:268
 msgid "Updates were rejected because the tag already exists in the remote."
 msgstr "更新被拒绝,因为该标签在远程已经存在。"
 
-#: builtin/push.c:304
+#: builtin/push.c:271
 msgid ""
 "You cannot update a remote ref that points at a non-commit object,\n"
 "or update a remote ref to make it point at a non-commit object,\n"
@@ -8994,22 +9213,22 @@
 "如果不使用 '--force' 参数,您不能更新一个指向非提交对象的远程引用,\n"
 "也不能更新远程引用让其指向一个非提交对象。\n"
 
-#: builtin/push.c:363
+#: builtin/push.c:331
 #, c-format
 msgid "Pushing to %s\n"
 msgstr "推送到 %s\n"
 
-#: builtin/push.c:367
+#: builtin/push.c:335
 #, c-format
 msgid "failed to push some refs to '%s'"
 msgstr "无法推送一些引用到 '%s'"
 
-#: builtin/push.c:397
+#: builtin/push.c:365
 #, c-format
 msgid "bad repository '%s'"
 msgstr "坏的仓库 '%s'"
 
-#: builtin/push.c:398
+#: builtin/push.c:366
 msgid ""
 "No configured push destination.\n"
 "Either specify the URL from the command-line or configure a remote "
@@ -9030,105 +9249,100 @@
 "\n"
 "    git push <名称>\n"
 
-#: builtin/push.c:413
+#: builtin/push.c:381
 msgid "--all and --tags are incompatible"
 msgstr "--all 和 --tags 不兼容"
 
-#: builtin/push.c:414
+#: builtin/push.c:382
 msgid "--all can't be combined with refspecs"
 msgstr "--all 不能和引用规格同时使用"
 
-#: builtin/push.c:419
+#: builtin/push.c:387
 msgid "--mirror and --tags are incompatible"
 msgstr "--mirror 和 --tags 不兼容"
 
-#: builtin/push.c:420
+#: builtin/push.c:388
 msgid "--mirror can't be combined with refspecs"
 msgstr "--mirror 不能和引用规格同时使用"
 
-#: builtin/push.c:425
+#: builtin/push.c:393
 msgid "--all and --mirror are incompatible"
 msgstr "--all 和 --mirror 不兼容"
 
-#: builtin/push.c:537
+#: builtin/push.c:505
 msgid "repository"
 msgstr "仓库"
 
-#: builtin/push.c:538 builtin/send-pack.c:161
+#: builtin/push.c:506 builtin/send-pack.c:161
 msgid "push all refs"
 msgstr "推送所有引用"
 
-#: builtin/push.c:539 builtin/send-pack.c:163
+#: builtin/push.c:507 builtin/send-pack.c:163
 msgid "mirror all refs"
 msgstr "镜像所有引用"
 
-#: builtin/push.c:541
+#: builtin/push.c:509
 msgid "delete refs"
 msgstr "删除引用"
 
-#: builtin/push.c:542
+#: builtin/push.c:510
 msgid "push tags (can't be used with --all or --mirror)"
 msgstr "推送标签(不能使用 --all or --mirror)"
 
-#: builtin/push.c:545 builtin/send-pack.c:164
+#: builtin/push.c:513 builtin/send-pack.c:164
 msgid "force updates"
 msgstr "强制更新"
 
-#: builtin/push.c:547 builtin/send-pack.c:175
+#: builtin/push.c:515 builtin/send-pack.c:175
 msgid "refname>:<expect"
 msgstr "引用名>:<期望值"
 
-#: builtin/push.c:548 builtin/send-pack.c:176
+#: builtin/push.c:516 builtin/send-pack.c:176
 msgid "require old value of ref to be at this value"
 msgstr "要求引用旧的取值为设定值"
 
-#  译者:可选值,不能翻译
-#: builtin/push.c:550
-msgid "check|on-demand|no"
-msgstr "check|on-demand|no"
-
-#: builtin/push.c:551
+#: builtin/push.c:519
 msgid "control recursive pushing of submodules"
 msgstr "控制子模组的递归推送"
 
-#: builtin/push.c:553 builtin/send-pack.c:169
+#: builtin/push.c:521 builtin/send-pack.c:169
 msgid "use thin pack"
 msgstr "使用精简打包"
 
-#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158
+#: builtin/push.c:522 builtin/push.c:523 builtin/send-pack.c:158
 #: builtin/send-pack.c:159
 msgid "receive pack program"
 msgstr "接收包程序"
 
-#: builtin/push.c:556
+#: builtin/push.c:524
 msgid "set upstream for git pull/status"
 msgstr "设置 git pull/status 的上游"
 
-#: builtin/push.c:559
+#: builtin/push.c:527
 msgid "prune locally removed refs"
 msgstr "清除本地删除的引用"
 
-#: builtin/push.c:561
+#: builtin/push.c:529
 msgid "bypass pre-push hook"
 msgstr "绕过 pre-push 钩子"
 
-#: builtin/push.c:562
+#: builtin/push.c:530
 msgid "push missing but relevant tags"
 msgstr "推送缺失但有关的标签"
 
-#: builtin/push.c:565 builtin/send-pack.c:166
+#: builtin/push.c:533 builtin/send-pack.c:166
 msgid "GPG sign the push"
 msgstr "用 GPG 为推送签名"
 
-#: builtin/push.c:567 builtin/send-pack.c:170
+#: builtin/push.c:535 builtin/send-pack.c:170
 msgid "request atomic transaction on remote side"
 msgstr "需要远端支持原子事务"
 
-#: builtin/push.c:577
+#: builtin/push.c:549
 msgid "--delete is incompatible with --all, --mirror and --tags"
 msgstr "--delete 与 --all、--mirror 及 --tags 不兼容"
 
-#: builtin/push.c:579
+#: builtin/push.c:551
 msgid "--delete doesn't make sense without any refs"
 msgstr "--delete 未接任何引用没有意义"
 
@@ -9206,12 +9420,12 @@
 msgid "debug unpack-trees"
 msgstr "调试 unpack-trees"
 
-#: builtin/reflog.c:428
+#: builtin/reflog.c:423
 #, c-format
 msgid "'%s' for '%s' is not a valid timestamp"
 msgstr "'%2$s' 的值 '%1$s' 不是一个有效的时间戳"
 
-#: builtin/reflog.c:545 builtin/reflog.c:550
+#: builtin/reflog.c:540 builtin/reflog.c:545
 #, c-format
 msgid "'%s' is not a valid timestamp"
 msgstr "'%s' 不是一个有效的时间戳"
@@ -9351,55 +9565,45 @@
 msgid "specifying branches to track makes sense only with fetch mirrors"
 msgstr "指定要跟踪的分支只在与获取镜像同时使用才有意义"
 
-#: builtin/remote.c:193 builtin/remote.c:643
+#: builtin/remote.c:190 builtin/remote.c:633
 #, c-format
 msgid "remote %s already exists."
 msgstr "远程 %s 已经存在。"
 
-#: builtin/remote.c:197 builtin/remote.c:647
+#: builtin/remote.c:194 builtin/remote.c:637
 #, c-format
 msgid "'%s' is not a valid remote name"
 msgstr "'%s' 不是一个有效的远程名称"
 
-#: builtin/remote.c:241
+#: builtin/remote.c:234
 #, c-format
 msgid "Could not setup master '%s'"
 msgstr "无法设置 master '%s'"
 
-#: builtin/remote.c:341
+#: builtin/remote.c:336
 #, c-format
 msgid "Could not get fetch map for refspec %s"
 msgstr "无法得到引用规格 %s 的获取列表"
 
-#: builtin/remote.c:442 builtin/remote.c:450
+#: builtin/remote.c:437 builtin/remote.c:445
 msgid "(matching)"
 msgstr "(匹配)"
 
-#: builtin/remote.c:454
+#: builtin/remote.c:449
 msgid "(delete)"
 msgstr "(删除)"
 
-#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606
-#, c-format
-msgid "Could not append '%s' to '%s'"
-msgstr "不能添加 '%s' 至 '%s'"
-
-#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875
+#: builtin/remote.c:626 builtin/remote.c:761 builtin/remote.c:858
 #, c-format
 msgid "No such remote: %s"
 msgstr "没有这样的远程:%s"
 
-#: builtin/remote.c:653
+#: builtin/remote.c:643
 #, c-format
 msgid "Could not rename config section '%s' to '%s'"
 msgstr "不能重命名配置小节 '%s' 到 '%s'"
 
-#: builtin/remote.c:659 builtin/remote.c:827
-#, c-format
-msgid "Could not remove config section '%s'"
-msgstr "不能移除配置小节 '%s'"
-
-#: builtin/remote.c:674
+#: builtin/remote.c:663
 #, c-format
 msgid ""
 "Not updating non-default fetch refspec\n"
@@ -9410,27 +9614,17 @@
 "\t%s\n"
 "\t如果必要请手动更新配置。"
 
-#: builtin/remote.c:680
-#, c-format
-msgid "Could not append '%s'"
-msgstr "不能追加 '%s'"
-
-#: builtin/remote.c:691
-#, c-format
-msgid "Could not set '%s'"
-msgstr "不能设置 '%s'"
-
-#: builtin/remote.c:713
+#: builtin/remote.c:699
 #, c-format
 msgid "deleting '%s' failed"
 msgstr "删除 '%s' 失败"
 
-#: builtin/remote.c:747
+#: builtin/remote.c:733
 #, c-format
 msgid "creating '%s' failed"
 msgstr "创建 '%s' 失败"
 
-#: builtin/remote.c:813
+#: builtin/remote.c:796
 msgid ""
 "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
 "to delete it, use:"
@@ -9440,126 +9634,131 @@
 msgstr[0] "注意:ref/remotes 层级之外的一个分支未被移除。要删除它,使用:"
 msgstr[1] "注意:ref/remotes 层级之外的一些分支未被移除。要删除它们,使用:"
 
-#: builtin/remote.c:928
+#: builtin/remote.c:810
+#, c-format
+msgid "Could not remove config section '%s'"
+msgstr "不能移除配置小节 '%s'"
+
+#: builtin/remote.c:911
 #, c-format
 msgid " new (next fetch will store in remotes/%s)"
 msgstr " 新的(下一次获取将存储于 remotes/%s)"
 
-#: builtin/remote.c:931
+#: builtin/remote.c:914
 msgid " tracked"
 msgstr " 已跟踪"
 
-#: builtin/remote.c:933
+#: builtin/remote.c:916
 msgid " stale (use 'git remote prune' to remove)"
 msgstr " 过时(使用 'git remote prune' 来移除)"
 
-#: builtin/remote.c:935
+#: builtin/remote.c:918
 msgid " ???"
 msgstr " ???"
 
-#: builtin/remote.c:976
+#: builtin/remote.c:959
 #, c-format
 msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
 msgstr "无效的 branch.%s.merge,不能变基到一个以上的分支"
 
-#: builtin/remote.c:983
+#: builtin/remote.c:967
 #, c-format
-msgid "rebases onto remote %s"
-msgstr "变基到远程 %s"
+msgid "rebases interactively onto remote %s"
+msgstr "交互式变基到远程 %s"
 
-#: builtin/remote.c:986
+#: builtin/remote.c:971
 #, c-format
 msgid " merges with remote %s"
 msgstr " 与远程 %s 合并"
 
-#: builtin/remote.c:987
+#: builtin/remote.c:972
 msgid "    and with remote"
 msgstr "    且有远程"
 
-#: builtin/remote.c:989
+#: builtin/remote.c:974
 #, c-format
 msgid "merges with remote %s"
 msgstr "与远程 %s 合并"
 
-#: builtin/remote.c:990
+#: builtin/remote.c:975
 msgid "   and with remote"
 msgstr "   且有远程"
 
-#: builtin/remote.c:1036
+#: builtin/remote.c:1021
 msgid "create"
 msgstr "创建"
 
-#: builtin/remote.c:1039
+#: builtin/remote.c:1024
 msgid "delete"
 msgstr "删除"
 
-#: builtin/remote.c:1043
+#: builtin/remote.c:1028
 msgid "up to date"
 msgstr "最新"
 
-#: builtin/remote.c:1046
+#: builtin/remote.c:1031
 msgid "fast-forwardable"
 msgstr "可快进"
 
-#: builtin/remote.c:1049
+#: builtin/remote.c:1034
 msgid "local out of date"
 msgstr "本地已过时"
 
-#: builtin/remote.c:1056
+#: builtin/remote.c:1041
 #, c-format
 msgid "    %-*s forces to %-*s (%s)"
 msgstr "    %-*s 强制推送至 %-*s (%s)"
 
-#: builtin/remote.c:1059
+#: builtin/remote.c:1044
 #, c-format
 msgid "    %-*s pushes to %-*s (%s)"
 msgstr "    %-*s 推送至 %-*s (%s)"
 
-#: builtin/remote.c:1063
+#: builtin/remote.c:1048
 #, c-format
 msgid "    %-*s forces to %s"
 msgstr "    %-*s 强制推送至 %s"
 
-#: builtin/remote.c:1066
+#: builtin/remote.c:1051
 #, c-format
 msgid "    %-*s pushes to %s"
 msgstr "    %-*s 推送至 %s"
 
-#: builtin/remote.c:1134
+#: builtin/remote.c:1119
 msgid "do not query remotes"
 msgstr "不查询远程"
 
-#: builtin/remote.c:1161
+#: builtin/remote.c:1146
 #, c-format
 msgid "* remote %s"
 msgstr "* 远程 %s"
 
-#: builtin/remote.c:1162
+#: builtin/remote.c:1147
 #, c-format
 msgid "  Fetch URL: %s"
 msgstr "  获取地址:%s"
 
-#: builtin/remote.c:1163 builtin/remote.c:1314
+#: builtin/remote.c:1148 builtin/remote.c:1299
 msgid "(no URL)"
 msgstr "(无 URL)"
 
-#: builtin/remote.c:1172 builtin/remote.c:1174
+#: builtin/remote.c:1157 builtin/remote.c:1159
 #, c-format
 msgid "  Push  URL: %s"
 msgstr "  推送地址:%s"
 
-#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180
+#: builtin/remote.c:1161 builtin/remote.c:1163 builtin/remote.c:1165
 #, c-format
 msgid "  HEAD branch: %s"
 msgstr "  HEAD 分支:%s"
 
-#: builtin/remote.c:1182
+#: builtin/remote.c:1167
 #, c-format
 msgid ""
 "  HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
 msgstr "  HEAD 分支(远程 HEAD 模糊,可能是下列中的一个):\n"
 
-#: builtin/remote.c:1194
+#: builtin/remote.c:1179
 #, c-format
 msgid "  Remote branch:%s"
 msgid_plural "  Remote branches:%s"
@@ -9567,151 +9766,151 @@
 msgstr[1] "  远程分支:%s"
 
 #  译者:中文字符串拼接,可删除前导空格
-#: builtin/remote.c:1197 builtin/remote.c:1224
+#: builtin/remote.c:1182 builtin/remote.c:1209
 msgid " (status not queried)"
 msgstr "(状态未查询)"
 
-#: builtin/remote.c:1206
+#: builtin/remote.c:1191
 msgid "  Local branch configured for 'git pull':"
 msgid_plural "  Local branches configured for 'git pull':"
 msgstr[0] "  为 'git pull' 配置的本地分支:"
 msgstr[1] "  为 'git pull' 配置的本地分支:"
 
-#: builtin/remote.c:1214
+#: builtin/remote.c:1199
 msgid "  Local refs will be mirrored by 'git push'"
 msgstr "  本地引用将在 'git push' 时被镜像"
 
-#: builtin/remote.c:1221
+#: builtin/remote.c:1206
 #, c-format
 msgid "  Local ref configured for 'git push'%s:"
 msgid_plural "  Local refs configured for 'git push'%s:"
 msgstr[0] "  为 'git push' 配置的本地引用%s:"
 msgstr[1] "  为 'git push' 配置的本地引用%s:"
 
-#: builtin/remote.c:1242
+#: builtin/remote.c:1227
 msgid "set refs/remotes/<name>/HEAD according to remote"
 msgstr "根据远程设置 refs/remotes/<名称>/HEAD"
 
-#: builtin/remote.c:1244
+#: builtin/remote.c:1229
 msgid "delete refs/remotes/<name>/HEAD"
 msgstr "删除 refs/remotes/<名称>/HEAD"
 
-#: builtin/remote.c:1259
+#: builtin/remote.c:1244
 msgid "Cannot determine remote HEAD"
 msgstr "无法确定远程 HEAD"
 
-#: builtin/remote.c:1261
+#: builtin/remote.c:1246
 msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
 msgstr "多个远程 HEAD 分支。请明确地选择一个用命令:"
 
-#: builtin/remote.c:1271
+#: builtin/remote.c:1256
 #, c-format
 msgid "Could not delete %s"
 msgstr "无法删除 %s"
 
-#: builtin/remote.c:1279
+#: builtin/remote.c:1264
 #, c-format
 msgid "Not a valid ref: %s"
 msgstr "不是一个有效引用:%s"
 
-#: builtin/remote.c:1281
+#: builtin/remote.c:1266
 #, c-format
 msgid "Could not setup %s"
 msgstr "不能设置 %s"
 
 #  译者:注意保持前导空格
-#: builtin/remote.c:1299
+#: builtin/remote.c:1284
 #, c-format
 msgid " %s will become dangling!"
 msgstr " %s 将成为摇摆状态!"
 
 #  译者:注意保持前导空格
-#: builtin/remote.c:1300
+#: builtin/remote.c:1285
 #, c-format
 msgid " %s has become dangling!"
 msgstr " %s 已成为摇摆状态!"
 
-#: builtin/remote.c:1310
+#: builtin/remote.c:1295
 #, c-format
 msgid "Pruning %s"
 msgstr "修剪 %s"
 
-#: builtin/remote.c:1311
+#: builtin/remote.c:1296
 #, c-format
 msgid "URL: %s"
 msgstr "URL:%s"
 
-#: builtin/remote.c:1327
+#: builtin/remote.c:1312
 #, c-format
 msgid " * [would prune] %s"
 msgstr " * [将删除] %s"
 
-#: builtin/remote.c:1330
+#: builtin/remote.c:1315
 #, c-format
 msgid " * [pruned] %s"
 msgstr " * [已删除] %s"
 
-#: builtin/remote.c:1375
+#: builtin/remote.c:1360
 msgid "prune remotes after fetching"
 msgstr "抓取后清除远程"
 
-#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566
+#: builtin/remote.c:1423 builtin/remote.c:1477 builtin/remote.c:1545
 #, c-format
 msgid "No such remote '%s'"
 msgstr "没有此远程 '%s'"
 
-#: builtin/remote.c:1461
+#: builtin/remote.c:1439
 msgid "add branch"
 msgstr "添加分支"
 
-#: builtin/remote.c:1468
+#: builtin/remote.c:1446
 msgid "no remote specified"
 msgstr "未指定远程"
 
-#: builtin/remote.c:1485
+#: builtin/remote.c:1463
 msgid "query push URLs rather than fetch URLs"
 msgstr "查询推送 URL 地址,而非获取 URL 地址"
 
-#: builtin/remote.c:1487
+#: builtin/remote.c:1465
 msgid "return all URLs"
 msgstr "返回所有 URL 地址"
 
-#: builtin/remote.c:1515
+#: builtin/remote.c:1493
 #, c-format
 msgid "no URLs configured for remote '%s'"
 msgstr "没有给远程仓库 '%s' 设定 URL"
 
-#: builtin/remote.c:1541
+#: builtin/remote.c:1519
 msgid "manipulate push URLs"
 msgstr "操作推送 URLS"
 
-#: builtin/remote.c:1543
+#: builtin/remote.c:1521
 msgid "add URL"
 msgstr "添加 URL"
 
-#: builtin/remote.c:1545
+#: builtin/remote.c:1523
 msgid "delete URLs"
 msgstr "删除 URLS"
 
-#: builtin/remote.c:1552
+#: builtin/remote.c:1530
 msgid "--add --delete doesn't make sense"
 msgstr "--add --delete 无意义"
 
-#: builtin/remote.c:1592
+#: builtin/remote.c:1571
 #, c-format
 msgid "Invalid old URL pattern: %s"
 msgstr "无效的旧 URL 匹配模版:%s"
 
-#: builtin/remote.c:1600
+#: builtin/remote.c:1579
 #, c-format
 msgid "No such URL found: %s"
 msgstr "未找到此 URL:%s"
 
-#: builtin/remote.c:1602
+#: builtin/remote.c:1581
 msgid "Will not delete all non-push URLs"
 msgstr "将不会删除所有非推送 URL 地址"
 
-#: builtin/remote.c:1616
+#: builtin/remote.c:1595
 msgid "be verbose; must be placed before a subcommand"
 msgstr "冗长输出;必须置于子命令之前"
 
@@ -10012,7 +10211,7 @@
 msgid "Could not write new index file."
 msgstr "不能写入新的索引文件。"
 
-#: builtin/rev-list.c:354
+#: builtin/rev-list.c:350
 msgid "rev-list does not support display of notes"
 msgstr "rev-list 不支持显示注解"
 
@@ -10256,28 +10455,23 @@
 msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
 msgstr "git shortlog [<选项>] [<版本范围>] [[--] [<路径>...]]"
 
-#: builtin/shortlog.c:131
-#, c-format
-msgid "Missing author: %s"
-msgstr "缺少作者:%s"
-
-#: builtin/shortlog.c:230
+#: builtin/shortlog.c:242
 msgid "sort output according to the number of commits per author"
 msgstr "根据每个作者的提交数量排序"
 
-#: builtin/shortlog.c:232
+#: builtin/shortlog.c:244
 msgid "Suppress commit descriptions, only provides commit count"
 msgstr "隐藏提交说明,只提供提交数量"
 
-#: builtin/shortlog.c:234
+#: builtin/shortlog.c:246
 msgid "Show the email address of each author"
 msgstr "显示每个作者的电子邮件地址"
 
-#: builtin/shortlog.c:235
+#: builtin/shortlog.c:247
 msgid "w[,i1[,i2]]"
 msgstr "w[,i1[,i2]]"
 
-#: builtin/shortlog.c:236
+#: builtin/shortlog.c:248
 msgid "Linewrap output"
 msgstr "折行输出"
 
@@ -10418,43 +10612,43 @@
 msgstr "跳过和移除所有的注释行"
 
 #: builtin/stripspace.c:38
-msgid "prepend comment character and blank to each line"
+msgid "prepend comment character and space to each line"
 msgstr "为每一行的行首添加注释符和空格"
 
-#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167
+#: builtin/submodule--helper.c:73 builtin/submodule--helper.c:161
 msgid "alternative anchor for relative paths"
 msgstr "相对路径的替代锚记(anchor)"
 
-#: builtin/submodule--helper.c:84
+#: builtin/submodule--helper.c:78
 msgid "git submodule--helper list [--prefix=<path>] [<path>...]"
 msgstr "git submodule--helper list [--prefix=<路径>] [<路径>...]"
 
-#: builtin/submodule--helper.c:114
+#: builtin/submodule--helper.c:108
 msgid "git submodule--helper name <path>"
 msgstr "git submodule--helper name <路径>"
 
-#: builtin/submodule--helper.c:120
+#: builtin/submodule--helper.c:114
 #, c-format
 msgid "no submodule mapping found in .gitmodules for path '%s'"
 msgstr "在 .gitmodules 中没有发现路径 '%s' 的子模组映射"
 
-#: builtin/submodule--helper.c:170
+#: builtin/submodule--helper.c:164
 msgid "where the new submodule will be cloned to"
 msgstr "新的子模组将要克隆的路径"
 
-#: builtin/submodule--helper.c:173
+#: builtin/submodule--helper.c:167
 msgid "name of the new submodule"
 msgstr "新子模组的名称"
 
-#: builtin/submodule--helper.c:176
+#: builtin/submodule--helper.c:170
 msgid "url where to clone the submodule from"
 msgstr "克隆子模组的 url 地址"
 
-#: builtin/submodule--helper.c:182
+#: builtin/submodule--helper.c:176
 msgid "depth for shallow clones"
 msgstr "浅克隆的深度"
 
-#: builtin/submodule--helper.c:188
+#: builtin/submodule--helper.c:182
 msgid ""
 "git submodule--helper clone [--prefix=<path>] [--quiet] [--reference "
 "<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]"
@@ -10462,37 +10656,37 @@
 "git submodule--helper clone [--prefix=<路径>] [--quiet] [--reference <仓库>] "
 "[--name <名字>] [--url <地址>][--depth <深度>] [--] [<路径>...]"
 
-#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208
-#: builtin/submodule--helper.c:216
+#: builtin/submodule--helper.c:196 builtin/submodule--helper.c:202
+#: builtin/submodule--helper.c:210
 #, c-format
 msgid "could not create directory '%s'"
 msgstr "不能创建目录 '%s'"
 
-#: builtin/submodule--helper.c:204
+#: builtin/submodule--helper.c:198
 #, c-format
 msgid "clone of '%s' into submodule path '%s' failed"
 msgstr "无法克隆 '%s' 到子模组路径 '%s'"
 
-#: builtin/submodule--helper.c:227
+#: builtin/submodule--helper.c:221
 #, c-format
 msgid "cannot open file '%s'"
 msgstr "无法打开文件 '%s'"
 
-#: builtin/submodule--helper.c:232
+#: builtin/submodule--helper.c:226
 #, c-format
 msgid "could not close file %s"
 msgstr "无法关闭文件 %s"
 
-#: builtin/submodule--helper.c:247
+#: builtin/submodule--helper.c:241
 #, c-format
 msgid "could not get submodule directory for '%s'"
 msgstr "无法得到 '%s' 的子模组目录"
 
-#: builtin/submodule--helper.c:273
+#: builtin/submodule--helper.c:267
 msgid "fatal: submodule--helper subcommand must be called with a subcommand"
 msgstr "严重错误:submodule-helper 子命令必须由另外的子命令调用"
 
-#: builtin/submodule--helper.c:280
+#: builtin/submodule--helper.c:274
 #, c-format
 msgid "fatal: '%s' is not a valid submodule--helper subcommand"
 msgstr "严重错误:'%s' 不是一个有效的 submodule--helper 子命令"
@@ -10735,188 +10929,201 @@
 msgid "Unpacking objects"
 msgstr "展开对象中"
 
-#: builtin/update-index.c:70
+#: builtin/update-index.c:79
 #, c-format
 msgid "failed to create directory %s"
 msgstr "无法创建目录 %s"
 
-#: builtin/update-index.c:76
+#: builtin/update-index.c:85
 #, c-format
 msgid "failed to stat %s"
 msgstr "无法枚举 %s 状态"
 
-#: builtin/update-index.c:86
+#: builtin/update-index.c:95
 #, c-format
 msgid "failed to create file %s"
 msgstr "无法创建文件 %s"
 
-#: builtin/update-index.c:94
+#: builtin/update-index.c:103
 #, c-format
 msgid "failed to delete file %s"
 msgstr "无法删除文件 %s"
 
-#: builtin/update-index.c:101 builtin/update-index.c:203
+#: builtin/update-index.c:110 builtin/update-index.c:212
 #, c-format
 msgid "failed to delete directory %s"
 msgstr "无法删除目录 %s"
 
-#: builtin/update-index.c:124
+#: builtin/update-index.c:133
 #, c-format
-msgid "Testing "
-msgstr "正在测试 "
+msgid "Testing mtime in '%s' "
+msgstr "在 '%s' 中测试 mtime "
 
-#: builtin/update-index.c:136
+#: builtin/update-index.c:145
 msgid "directory stat info does not change after adding a new file"
 msgstr "添加一个新文件后,目录的状态信息未改变"
 
-#: builtin/update-index.c:149
+#: builtin/update-index.c:158
 msgid "directory stat info does not change after adding a new directory"
 msgstr "添加一个新目录后,目录的状态信息未改变"
 
-#: builtin/update-index.c:162
+#: builtin/update-index.c:171
 msgid "directory stat info changes after updating a file"
 msgstr "更新一个文件后,目录的状态信息被修改"
 
-#: builtin/update-index.c:173
+#: builtin/update-index.c:182
 msgid "directory stat info changes after adding a file inside subdirectory"
 msgstr "在子目录中添加文件后,目录的状态信息被修改"
 
-#: builtin/update-index.c:184
+#: builtin/update-index.c:193
 msgid "directory stat info does not change after deleting a file"
 msgstr "删除一个文件后,目录的状态信息未改变"
 
-#: builtin/update-index.c:197
+#: builtin/update-index.c:206
 msgid "directory stat info does not change after deleting a directory"
 msgstr "删除一个目录后,目录的状态信息未改变"
 
-#: builtin/update-index.c:204
+#: builtin/update-index.c:213
 msgid " OK"
 msgstr " OK"
 
-#: builtin/update-index.c:564
+#: builtin/update-index.c:575
 msgid "git update-index [<options>] [--] [<file>...]"
 msgstr "git update-index [<选项>] [--] [<文件>...]"
 
-#: builtin/update-index.c:918
+#: builtin/update-index.c:930
 msgid "continue refresh even when index needs update"
 msgstr "当索引需要更新时继续刷新"
 
-#: builtin/update-index.c:921
+#: builtin/update-index.c:933
 msgid "refresh: ignore submodules"
 msgstr "刷新:忽略子模组"
 
-#: builtin/update-index.c:924
+#: builtin/update-index.c:936
 msgid "do not ignore new files"
 msgstr "不忽略新的文件"
 
-#: builtin/update-index.c:926
+#: builtin/update-index.c:938
 msgid "let files replace directories and vice-versa"
 msgstr "让文件替换目录(反之亦然)"
 
-#: builtin/update-index.c:928
+#: builtin/update-index.c:940
 msgid "notice files missing from worktree"
 msgstr "通知文件从工作区丢失"
 
-#: builtin/update-index.c:930
+#: builtin/update-index.c:942
 msgid "refresh even if index contains unmerged entries"
 msgstr "即使索引区包含未合并的条目也执行刷新"
 
-#: builtin/update-index.c:933
+#: builtin/update-index.c:945
 msgid "refresh stat information"
 msgstr "刷新统计信息"
 
-#: builtin/update-index.c:937
+#: builtin/update-index.c:949
 msgid "like --refresh, but ignore assume-unchanged setting"
 msgstr "类似于 --refresh,但是忽略 assume-unchanged 设置"
 
-#: builtin/update-index.c:941
+#: builtin/update-index.c:953
 msgid "<mode>,<object>,<path>"
 msgstr "<存取模式>,<对象>,<路径>"
 
-#: builtin/update-index.c:942
+#: builtin/update-index.c:954
 msgid "add the specified entry to the index"
 msgstr "添加指定的条目到索引区"
 
-#: builtin/update-index.c:946
+#: builtin/update-index.c:958
 msgid "(+/-)x"
 msgstr "(+/-)x"
 
-#: builtin/update-index.c:947
+#: builtin/update-index.c:959
 msgid "override the executable bit of the listed files"
 msgstr "覆盖列表里文件的可执行位"
 
-#: builtin/update-index.c:951
+#: builtin/update-index.c:963
 msgid "mark files as \"not changing\""
 msgstr "把文件标记为 \"没有变更\""
 
-#: builtin/update-index.c:954
+#: builtin/update-index.c:966
 msgid "clear assumed-unchanged bit"
 msgstr "清除 assumed-unchanged 位"
 
-#: builtin/update-index.c:957
+#: builtin/update-index.c:969
 msgid "mark files as \"index-only\""
 msgstr "把文件标记为 \"仅索引\""
 
-#: builtin/update-index.c:960
+#: builtin/update-index.c:972
 msgid "clear skip-worktree bit"
 msgstr "清除 skip-worktree 位"
 
-#: builtin/update-index.c:963
+#: builtin/update-index.c:975
 msgid "add to index only; do not add content to object database"
 msgstr "只添加到索引区;不添加对象到对象库"
 
-#: builtin/update-index.c:965
+#: builtin/update-index.c:977
 msgid "remove named paths even if present in worktree"
 msgstr "即使存在工作区里,也删除路径"
 
-#: builtin/update-index.c:967
+#: builtin/update-index.c:979
 msgid "with --stdin: input lines are terminated by null bytes"
 msgstr "携带 --stdin:输入的行以 null 字符终止"
 
-#: builtin/update-index.c:969
+#: builtin/update-index.c:981
 msgid "read list of paths to be updated from standard input"
 msgstr "从标准输入中读取需要更新的路径列表"
 
-#: builtin/update-index.c:973
+#: builtin/update-index.c:985
 msgid "add entries from standard input to the index"
 msgstr "从标准输入添加条目到索引区"
 
-#: builtin/update-index.c:977
+#: builtin/update-index.c:989
 msgid "repopulate stages #2 and #3 for the listed paths"
 msgstr "为指定文件重新生成第2和第3暂存区"
 
-#: builtin/update-index.c:981
+#: builtin/update-index.c:993
 msgid "only update entries that differ from HEAD"
 msgstr "只更新与 HEAD 不同的条目"
 
-#: builtin/update-index.c:985
+#: builtin/update-index.c:997
 msgid "ignore files missing from worktree"
 msgstr "忽略工作区丢失的文件"
 
-#: builtin/update-index.c:988
+#: builtin/update-index.c:1000
 msgid "report actions to standard output"
 msgstr "在标准输出显示操作"
 
-#: builtin/update-index.c:990
+#: builtin/update-index.c:1002
 msgid "(for porcelains) forget saved unresolved conflicts"
 msgstr "(for porcelains) 忘记保存的未解决的冲突"
 
-#: builtin/update-index.c:994
+#: builtin/update-index.c:1006
 msgid "write index in this format"
 msgstr "以这种格式写入索引区"
 
-#: builtin/update-index.c:996
+#: builtin/update-index.c:1008
 msgid "enable or disable split index"
 msgstr "启用或禁用索引拆分"
 
-#: builtin/update-index.c:998
+#: builtin/update-index.c:1010
 msgid "enable/disable untracked cache"
 msgstr "启用/禁用对未跟踪文件的缓存"
 
-#: builtin/update-index.c:1000
+#: builtin/update-index.c:1012
+msgid "test if the filesystem supports untracked cache"
+msgstr "测试文件系统是否支持未跟踪文件缓存"
+
+#: builtin/update-index.c:1014
 msgid "enable untracked cache without testing the filesystem"
 msgstr "无需检测文件系统,启用对未跟踪文件的缓存"
 
+#: builtin/update-index.c:1134
+msgid "Untracked cache disabled"
+msgstr "缓存未跟踪文件被禁用"
+
+#: builtin/update-index.c:1146
+#, c-format
+msgid "Untracked cache enabled for '%s'"
+msgstr "缓存未跟踪文件在 '%s' 启用"
+
 #: builtin/update-ref.c:9
 msgid "git update-ref [<options>] -d <refname> [<old-val>]"
 msgstr "git update-ref [<选项>] -d <引用名> [<旧值>]"
@@ -11032,33 +11239,33 @@
 msgid "'%s' already exists"
 msgstr "'%s' 已经存在"
 
-#: builtin/worktree.c:235
+#: builtin/worktree.c:233
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "不能创建目录 '%s'"
 
-#: builtin/worktree.c:271
+#: builtin/worktree.c:269
 #, c-format
 msgid "Preparing %s (identifier %s)"
 msgstr "准备 %s (标识符 %s)"
 
-#: builtin/worktree.c:319
+#: builtin/worktree.c:317
 msgid "checkout <branch> even if already checked out in other worktree"
 msgstr "检出分支 <branch> 即使已经被检出到其它工作区"
 
-#: builtin/worktree.c:321
+#: builtin/worktree.c:319
 msgid "create a new branch"
 msgstr "创建一个新分支"
 
-#: builtin/worktree.c:323
+#: builtin/worktree.c:321
 msgid "create or reset a branch"
 msgstr "创建或重置一个分支"
 
-#: builtin/worktree.c:324
+#: builtin/worktree.c:322
 msgid "detach HEAD at named commit"
 msgstr "HEAD 从指定的提交分离"
 
-#: builtin/worktree.c:331
+#: builtin/worktree.c:329
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b、-B 和 --detach 是互斥的"
 
@@ -11078,7 +11285,7 @@
 msgid "only useful for debugging"
 msgstr "只对调试有用"
 
-#: credential-cache--daemon.c:255
+#: credential-cache--daemon.c:262
 msgid "print debugging messages to stderr"
 msgstr "调试信息输出到标准错误"
 
@@ -11092,6 +11299,10 @@
 "查看 'git help <命令>' 或 'git help <概念>' 以获取给定子命令或概念的\n"
 "帮助。"
 
+#: http.c:321
+msgid "Public key pinning not supported with cURL < 7.44.0"
+msgstr "不支持公钥文件锁定,因为 cURL < 7.44.0"
+
 #: common-cmds.h:9
 msgid "start a working area (see also: git help tutorial)"
 msgstr "开始一个工作区(参见:git help tutorial)"
@@ -11173,8 +11384,8 @@
 msgstr "更新远程引用和相关的对象"
 
 #: common-cmds.h:32
-msgid "Forward-port local commits to the updated upstream head"
-msgstr "本地提交转移至更新后的上游分支中"
+msgid "Reapply commits on top of another base tip"
+msgstr "在另一个分支上重新应用提交"
 
 #: common-cmds.h:33
 msgid "Reset current HEAD to the specified state"
@@ -11860,7 +12071,7 @@
 msgid "Submodule '$name' ($url) unregistered for path '$displaypath'"
 msgstr "子模组 '$name' ($url) 未对路径 '$displaypath' 注册"
 
-#: git-submodule.sh:705
+#: git-submodule.sh:723
 #, sh-format
 msgid ""
 "Submodule path '$displaypath' not initialized\n"
@@ -11869,108 +12080,179 @@
 "子模组路径 '$displaypath' 没有初始化\n"
 "也许您想用 'update --init'?"
 
-#: git-submodule.sh:718
+#: git-submodule.sh:736
 #, sh-format
 msgid "Unable to find current revision in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中找到当前版本"
 
-#: git-submodule.sh:727
+#: git-submodule.sh:745
 #, sh-format
 msgid "Unable to fetch in submodule path '$sm_path'"
 msgstr "无法在子模组路径 '$sm_path' 中获取"
 
-#: git-submodule.sh:751
+#: git-submodule.sh:768
 #, sh-format
 msgid "Unable to fetch in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中获取"
 
-#: git-submodule.sh:765
+#: git-submodule.sh:788
 #, sh-format
 msgid "Unable to checkout '$sha1' in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中检出 '$sha1'"
 
-#: git-submodule.sh:766
+#: git-submodule.sh:789
 #, sh-format
 msgid "Submodule path '$displaypath': checked out '$sha1'"
 msgstr "子模组路径 '$displaypath':检出 '$sha1'"
 
-#: git-submodule.sh:770
+#: git-submodule.sh:793
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr "无法在子模组路径 '$displaypath' 中变基 '$sha1'"
 
-#: git-submodule.sh:771
+#: git-submodule.sh:794
 #, sh-format
 msgid "Submodule path '$displaypath': rebased into '$sha1'"
 msgstr "子模组路径 '$displaypath':变基至 '$sha1'"
 
-#: git-submodule.sh:776
+#: git-submodule.sh:799
 #, sh-format
 msgid "Unable to merge '$sha1' in submodule path '$displaypath'"
 msgstr "无法合并 '$sha1' 到子模组路径 '$displaypath' 中"
 
-#: git-submodule.sh:777
+#: git-submodule.sh:800
 #, sh-format
 msgid "Submodule path '$displaypath': merged in '$sha1'"
 msgstr "子模组路径 '$displaypath':已合并入 '$sha1'"
 
-#: git-submodule.sh:782
+#: git-submodule.sh:805
 #, sh-format
 msgid ""
 "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
 msgstr "在子模组路径 '$prefix$sm_path' 中执行 '$command $sha1' 失败"
 
-#: git-submodule.sh:783
+#: git-submodule.sh:806
 #, sh-format
 msgid "Submodule path '$prefix$sm_path': '$command $sha1'"
 msgstr "子模组路径 '$prefix$sm_path': '$command $sha1'"
 
-#: git-submodule.sh:813
+#: git-submodule.sh:836
 #, sh-format
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "无法递归进子模组路径 '$displaypath'"
 
-#: git-submodule.sh:921
+#: git-submodule.sh:944
 msgid "The --cached option cannot be used with the --files option"
 msgstr "选项 --cached 不能和选项 --files 同时使用"
 
-#: git-submodule.sh:973
+#: git-submodule.sh:996
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "意外的模式 $mod_dst"
 
 #  译者:注意保持前导空格
-#: git-submodule.sh:993
+#: git-submodule.sh:1016
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  警告:$display_name 未包含提交 $sha1_src"
 
 #  译者:注意保持前导空格
-#: git-submodule.sh:996
+#: git-submodule.sh:1019
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  警告:$display_name 未包含提交 $sha1_dst"
 
 #  译者:注意保持前导空格
-#: git-submodule.sh:999
+#: git-submodule.sh:1022
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr "  警告:$display_name 未包含提交 $sha1_src 和 $sha1_dst"
 
-#: git-submodule.sh:1024
+#: git-submodule.sh:1047
 msgid "blob"
 msgstr "数据对象"
 
-#: git-submodule.sh:1142
+#: git-submodule.sh:1165
 #, sh-format
 msgid "Failed to recurse into submodule path '$sm_path'"
 msgstr "无法递归进子模组路径 '$sm_path'"
 
-#: git-submodule.sh:1206
+#: git-submodule.sh:1229
 #, sh-format
 msgid "Synchronizing submodule url for '$displaypath'"
 msgstr "为 '$displaypath' 同步子模组 url"
 
+#~ msgid "Forward-port local commits to the updated upstream head"
+#~ msgstr "本地提交转移至更新后的上游分支中"
+
+#~ msgid "unable to parse format"
+#~ msgstr "不能解析格式"
+
+#~ msgid "improper format entered align:%s"
+#~ msgstr "输入了不正确的格式 align:%s"
+
+#~ msgid "Could not set core.worktree in %s"
+#~ msgstr "不能在 %s 中设置 core.worktree"
+
+#  译者:字符串首行行首要添加“warning: ”字串,故此首行要较其余行短
+#~ msgid ""
+#~ "push.default is unset; its implicit value has changed in\n"
+#~ "Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
+#~ "and maintain the traditional behavior, use:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "To squelch this message and adopt the new behavior now, use:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "When push.default is set to 'matching', git will push local branches\n"
+#~ "to the remote branches that already exist with the same name.\n"
+#~ "\n"
+#~ "Since Git 2.0, Git defaults to the more conservative 'simple'\n"
+#~ "behavior, which only pushes the current branch to the corresponding\n"
+#~ "remote branch that 'git pull' uses to update the current branch.\n"
+#~ "\n"
+#~ "See 'git help config' and search for 'push.default' for further "
+#~ "information.\n"
+#~ "(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n"
+#~ "'current' instead of 'simple' if you sometimes use older versions of Git)"
+#~ msgstr ""
+#~ "push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching'\n"
+#~ "变更为 'simple'。若要不再显示本信息并保持传统习惯,进行如下设置:\n"
+#~ "\n"
+#~ "  git config --global push.default matching\n"
+#~ "\n"
+#~ "若要不再显示本信息并从现在开始采用新的使用习惯,设置:\n"
+#~ "\n"
+#~ "  git config --global push.default simple\n"
+#~ "\n"
+#~ "当 push.default 设置为 'matching' 后,git 将推送和远程同名的所有\n"
+#~ "本地分支。\n"
+#~ "\n"
+#~ "从 Git 2.0 开始,Git 默认采用更为保守的 'simple' 模式,只推送当前\n"
+#~ "分支到远程关联的同名分支,即 'git push' 推送当前分支。\n"
+#~ "\n"
+#~ "参见 'git help config' 并查找 'push.default' 以获取更多信息。\n"
+#~ "('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,\n"
+#~ "为保持兼容,请用 'current' 代替 'simple')"
+
+#~ msgid "Could not append '%s'"
+#~ msgstr "不能追加 '%s'"
+
+#~ msgid "Could not set '%s'"
+#~ msgstr "不能设置 '%s'"
+
+#  译者:可选值,不能翻译
+#~ msgid "check|on-demand|no"
+#~ msgstr "check|on-demand|no"
+
+#~ msgid "Missing author: %s"
+#~ msgstr "缺少作者:%s"
+
+#~ msgid "Testing "
+#~ msgstr "正在测试 "
+
 #~ msgid "unable to look up current user in the passwd file: %s"
 #~ msgstr "无法在口令文件中查询到当前用户:%s"
 
@@ -12037,9 +12319,6 @@
 #~ msgid "unable to parse value '%s' for option %s"
 #~ msgstr "不能解析选项 %1$s 的值 '%2$s'"
 
-#~ msgid "unable to resolve HEAD"
-#~ msgstr "不能解析 HEAD"
-
 #~ msgid "-b and -B are mutually exclusive"
 #~ msgstr "-b 和 -B 互斥"
 
diff --git a/progress.c b/progress.c
index 353bd37..76a88c5 100644
--- a/progress.c
+++ b/progress.c
@@ -247,7 +247,7 @@
 		size_t len = strlen(msg) + 5;
 		struct throughput *tp = progress->throughput;
 
-		bufp = (len < sizeof(buf)) ? buf : xmalloc(len + 1);
+		bufp = (len < sizeof(buf)) ? buf : xmallocz(len);
 		if (tp) {
 			unsigned int rate = !tp->avg_misecs ? 0 :
 					tp->avg_bytes / tp->avg_misecs;
diff --git a/reachable.c b/reachable.c
index 43616d4..ed35201 100644
--- a/reachable.c
+++ b/reachable.c
@@ -43,15 +43,14 @@
  * The traversal will have already marked us as SEEN, so we
  * only need to handle any progress reporting here.
  */
-static void mark_object(struct object *obj, const struct name_path *path,
-			const char *name, void *data)
+static void mark_object(struct object *obj, const char *name, void *data)
 {
 	update_progress(data);
 }
 
 static void mark_commit(struct commit *c, void *data)
 {
-	mark_object(&c->object, NULL, NULL, data);
+	mark_object(&c->object, NULL, data);
 }
 
 struct recent_data {
diff --git a/ref-filter.c b/ref-filter.c
index f097176..bc551a7 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -16,14 +16,162 @@
 
 typedef enum { FIELD_STR, FIELD_ULONG, FIELD_TIME } cmp_type;
 
+struct align {
+	align_type position;
+	unsigned int width;
+};
+
+/*
+ * An atom is a valid field atom listed below, possibly prefixed with
+ * a "*" to denote deref_tag().
+ *
+ * We parse given format string and sort specifiers, and make a list
+ * of properties that we need to extract out of objects.  ref_array_item
+ * structure will hold an array of values extracted that can be
+ * indexed with the "atom number", which is an index into this
+ * array.
+ */
+static struct used_atom {
+	const char *name;
+	cmp_type type;
+	union {
+		char color[COLOR_MAXLEN];
+		struct align align;
+		enum { RR_NORMAL, RR_SHORTEN, RR_TRACK, RR_TRACKSHORT }
+			remote_ref;
+		struct {
+			enum { C_BARE, C_BODY, C_BODY_DEP, C_LINES, C_SIG, C_SUB } option;
+			unsigned int nlines;
+		} contents;
+		enum { O_FULL, O_SHORT } objectname;
+	} u;
+} *used_atom;
+static int used_atom_cnt, need_tagged, need_symref;
+static int need_color_reset_at_eol;
+
+static void color_atom_parser(struct used_atom *atom, const char *color_value)
+{
+	if (!color_value)
+		die(_("expected format: %%(color:<color>)"));
+	if (color_parse(color_value, atom->u.color) < 0)
+		die(_("unrecognized color: %%(color:%s)"), color_value);
+}
+
+static void remote_ref_atom_parser(struct used_atom *atom, const char *arg)
+{
+	if (!arg)
+		atom->u.remote_ref = RR_NORMAL;
+	else if (!strcmp(arg, "short"))
+		atom->u.remote_ref = RR_SHORTEN;
+	else if (!strcmp(arg, "track"))
+		atom->u.remote_ref = RR_TRACK;
+	else if (!strcmp(arg, "trackshort"))
+		atom->u.remote_ref = RR_TRACKSHORT;
+	else
+		die(_("unrecognized format: %%(%s)"), atom->name);
+}
+
+static void body_atom_parser(struct used_atom *atom, const char *arg)
+{
+	if (arg)
+		die(_("%%(body) does not take arguments"));
+	atom->u.contents.option = C_BODY_DEP;
+}
+
+static void subject_atom_parser(struct used_atom *atom, const char *arg)
+{
+	if (arg)
+		die(_("%%(subject) does not take arguments"));
+	atom->u.contents.option = C_SUB;
+}
+
+static void contents_atom_parser(struct used_atom *atom, const char *arg)
+{
+	if (!arg)
+		atom->u.contents.option = C_BARE;
+	else if (!strcmp(arg, "body"))
+		atom->u.contents.option = C_BODY;
+	else if (!strcmp(arg, "signature"))
+		atom->u.contents.option = C_SIG;
+	else if (!strcmp(arg, "subject"))
+		atom->u.contents.option = C_SUB;
+	else if (skip_prefix(arg, "lines=", &arg)) {
+		atom->u.contents.option = C_LINES;
+		if (strtoul_ui(arg, 10, &atom->u.contents.nlines))
+			die(_("positive value expected contents:lines=%s"), arg);
+	} else
+		die(_("unrecognized %%(contents) argument: %s"), arg);
+}
+
+static void objectname_atom_parser(struct used_atom *atom, const char *arg)
+{
+	if (!arg)
+		atom->u.objectname = O_FULL;
+	else if (!strcmp(arg, "short"))
+		atom->u.objectname = O_SHORT;
+	else
+		die(_("unrecognized %%(objectname) argument: %s"), arg);
+}
+
+static align_type parse_align_position(const char *s)
+{
+	if (!strcmp(s, "right"))
+		return ALIGN_RIGHT;
+	else if (!strcmp(s, "middle"))
+		return ALIGN_MIDDLE;
+	else if (!strcmp(s, "left"))
+		return ALIGN_LEFT;
+	return -1;
+}
+
+static void align_atom_parser(struct used_atom *atom, const char *arg)
+{
+	struct align *align = &atom->u.align;
+	struct string_list params = STRING_LIST_INIT_DUP;
+	int i;
+	unsigned int width = ~0U;
+
+	if (!arg)
+		die(_("expected format: %%(align:<width>,<position>)"));
+
+	align->position = ALIGN_LEFT;
+
+	string_list_split(&params, arg, ',', -1);
+	for (i = 0; i < params.nr; i++) {
+		const char *s = params.items[i].string;
+		int position;
+
+		if (skip_prefix(s, "position=", &s)) {
+			position = parse_align_position(s);
+			if (position < 0)
+				die(_("unrecognized position:%s"), s);
+			align->position = position;
+		} else if (skip_prefix(s, "width=", &s)) {
+			if (strtoul_ui(s, 10, &width))
+				die(_("unrecognized width:%s"), s);
+		} else if (!strtoul_ui(s, 10, &width))
+			;
+		else if ((position = parse_align_position(s)) >= 0)
+			align->position = position;
+		else
+			die(_("unrecognized %%(align) argument: %s"), s);
+	}
+
+	if (width == ~0U)
+		die(_("positive width expected with the %%(align) atom"));
+	align->width = width;
+	string_list_clear(&params, 0);
+}
+
 static struct {
 	const char *name;
 	cmp_type cmp_type;
+	void (*parser)(struct used_atom *atom, const char *arg);
 } valid_atom[] = {
 	{ "refname" },
 	{ "objecttype" },
 	{ "objectsize", FIELD_ULONG },
-	{ "objectname" },
+	{ "objectname", FIELD_STR, objectname_atom_parser },
 	{ "tree" },
 	{ "parent" },
 	{ "numparent", FIELD_ULONG },
@@ -44,31 +192,21 @@
 	{ "taggerdate", FIELD_TIME },
 	{ "creator" },
 	{ "creatordate", FIELD_TIME },
-	{ "subject" },
-	{ "body" },
-	{ "contents" },
-	{ "upstream" },
-	{ "push" },
+	{ "subject", FIELD_STR, subject_atom_parser },
+	{ "body", FIELD_STR, body_atom_parser },
+	{ "contents", FIELD_STR, contents_atom_parser },
+	{ "upstream", FIELD_STR, remote_ref_atom_parser },
+	{ "push", FIELD_STR, remote_ref_atom_parser },
 	{ "symref" },
 	{ "flag" },
 	{ "HEAD" },
-	{ "color" },
-	{ "align" },
+	{ "color", FIELD_STR, color_atom_parser },
+	{ "align", FIELD_STR, align_atom_parser },
 	{ "end" },
 };
 
 #define REF_FORMATTING_STATE_INIT  { 0, NULL }
 
-struct align {
-	align_type position;
-	unsigned int width;
-};
-
-struct contents {
-	unsigned int lines;
-	struct object_id oid;
-};
-
 struct ref_formatting_stack {
 	struct ref_formatting_stack *prev;
 	struct strbuf output;
@@ -85,77 +223,66 @@
 	const char *s;
 	union {
 		struct align align;
-		struct contents contents;
 	} u;
 	void (*handler)(struct atom_value *atomv, struct ref_formatting_state *state);
 	unsigned long ul; /* used for sorting when not FIELD_STR */
 };
 
 /*
- * An atom is a valid field atom listed above, possibly prefixed with
- * a "*" to denote deref_tag().
- *
- * We parse given format string and sort specifiers, and make a list
- * of properties that we need to extract out of objects.  ref_array_item
- * structure will hold an array of values extracted that can be
- * indexed with the "atom number", which is an index into this
- * array.
- */
-static const char **used_atom;
-static cmp_type *used_atom_type;
-static int used_atom_cnt, need_tagged, need_symref;
-static int need_color_reset_at_eol;
-
-/*
  * Used to parse format string and sort specifiers
  */
 int parse_ref_filter_atom(const char *atom, const char *ep)
 {
 	const char *sp;
+	const char *arg;
 	int i, at;
 
 	sp = atom;
 	if (*sp == '*' && sp < ep)
 		sp++; /* deref */
 	if (ep <= sp)
-		die("malformed field name: %.*s", (int)(ep-atom), atom);
+		die(_("malformed field name: %.*s"), (int)(ep-atom), atom);
 
 	/* Do we have the atom already used elsewhere? */
 	for (i = 0; i < used_atom_cnt; i++) {
-		int len = strlen(used_atom[i]);
-		if (len == ep - atom && !memcmp(used_atom[i], atom, len))
+		int len = strlen(used_atom[i].name);
+		if (len == ep - atom && !memcmp(used_atom[i].name, atom, len))
 			return i;
 	}
 
 	/* Is the atom a valid one? */
 	for (i = 0; i < ARRAY_SIZE(valid_atom); i++) {
 		int len = strlen(valid_atom[i].name);
+
 		/*
 		 * If the atom name has a colon, strip it and everything after
 		 * it off - it specifies the format for this entry, and
 		 * shouldn't be used for checking against the valid_atom
 		 * table.
 		 */
-		const char *formatp = strchr(sp, ':');
-		if (!formatp || ep < formatp)
-			formatp = ep;
-		if (len == formatp - sp && !memcmp(valid_atom[i].name, sp, len))
+		arg = memchr(sp, ':', ep - sp);
+		if (len == (arg ? arg : ep) - sp &&
+		    !memcmp(valid_atom[i].name, sp, len))
 			break;
 	}
 
 	if (ARRAY_SIZE(valid_atom) <= i)
-		die("unknown field name: %.*s", (int)(ep-atom), atom);
+		die(_("unknown field name: %.*s"), (int)(ep-atom), atom);
 
 	/* Add it in, including the deref prefix */
 	at = used_atom_cnt;
 	used_atom_cnt++;
 	REALLOC_ARRAY(used_atom, used_atom_cnt);
-	REALLOC_ARRAY(used_atom_type, used_atom_cnt);
-	used_atom[at] = xmemdupz(atom, ep - atom);
-	used_atom_type[at] = valid_atom[i].cmp_type;
+	used_atom[at].name = xmemdupz(atom, ep - atom);
+	used_atom[at].type = valid_atom[i].cmp_type;
+	if (arg)
+		arg = used_atom[at].name + (arg - atom) + 1;
+	memset(&used_atom[at].u, 0, sizeof(used_atom[at].u));
+	if (valid_atom[i].parser)
+		valid_atom[i].parser(&used_atom[at], arg);
 	if (*atom == '*')
 		need_tagged = 1;
-	if (!strcmp(used_atom[at], "symref"))
+	if (!strcmp(used_atom[at].name, "symref"))
 		need_symref = 1;
 	return at;
 }
@@ -258,22 +385,6 @@
 	pop_stack_element(&state->stack);
 }
 
-static int match_atom_name(const char *name, const char *atom_name, const char **val)
-{
-	const char *body;
-
-	if (!skip_prefix(name, atom_name, &body))
-		return 0; /* doesn't even begin with "atom_name" */
-	if (!body[0]) {
-		*val = NULL; /* %(atom_name) and no customization */
-		return 1;
-	}
-	if (body[0] != ':')
-		return 0; /* "atom_namefoo" is not "atom_name" or "atom_name:..." */
-	*val = body + 1; /* "atom_name:val" */
-	return 1;
-}
-
 /*
  * In a format string, find the next occurrence of %(atom).
  */
@@ -310,12 +421,12 @@
 		int at;
 
 		if (!ep)
-			return error("malformed format string %s", sp);
+			return error(_("malformed format string %s"), sp);
 		/* sp points at "%(" and ep points at the closing ")" */
 		at = parse_ref_filter_atom(sp + 2, ep);
 		cp = ep + 1;
 
-		if (skip_prefix(used_atom[at], "color:", &color))
+		if (skip_prefix(used_atom[at].name, "color:", &color))
 			need_color_reset_at_eol = !!strcmp(color, "reset");
 	}
 	return 0;
@@ -340,15 +451,17 @@
 }
 
 static int grab_objectname(const char *name, const unsigned char *sha1,
-			    struct atom_value *v)
+			   struct atom_value *v, struct used_atom *atom)
 {
-	if (!strcmp(name, "objectname")) {
-		v->s = xstrdup(sha1_to_hex(sha1));
-		return 1;
-	}
-	if (!strcmp(name, "objectname:short")) {
-		v->s = xstrdup(find_unique_abbrev(sha1, DEFAULT_ABBREV));
-		return 1;
+	if (starts_with(name, "objectname")) {
+		if (atom->u.objectname == O_SHORT) {
+			v->s = xstrdup(find_unique_abbrev(sha1, DEFAULT_ABBREV));
+			return 1;
+		} else if (atom->u.objectname == O_FULL) {
+			v->s = xstrdup(sha1_to_hex(sha1));
+			return 1;
+		} else
+			die("BUG: unknown %%(objectname) option");
 	}
 	return 0;
 }
@@ -359,7 +472,7 @@
 	int i;
 
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		const char *name = used_atom[i].name;
 		struct atom_value *v = &val[i];
 		if (!!deref != (*name == '*'))
 			continue;
@@ -372,7 +485,7 @@
 			v->s = xstrfmt("%lu", sz);
 		}
 		else if (deref)
-			grab_objectname(name, obj->oid.hash, v);
+			grab_objectname(name, obj->oid.hash, v, &used_atom[i]);
 	}
 }
 
@@ -383,7 +496,7 @@
 	struct tag *tag = (struct tag *) obj;
 
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		const char *name = used_atom[i].name;
 		struct atom_value *v = &val[i];
 		if (!!deref != (*name == '*'))
 			continue;
@@ -405,7 +518,7 @@
 	struct commit *commit = (struct commit *) obj;
 
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		const char *name = used_atom[i].name;
 		struct atom_value *v = &val[i];
 		if (!!deref != (*name == '*'))
 			continue;
@@ -535,7 +648,7 @@
 	const char *wholine = NULL;
 
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		const char *name = used_atom[i].name;
 		struct atom_value *v = &val[i];
 		if (!!deref != (*name == '*'))
 			continue;
@@ -573,7 +686,7 @@
 	if (!wholine)
 		return;
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		const char *name = used_atom[i].name;
 		struct atom_value *v = &val[i];
 		if (!!deref != (*name == '*'))
 			continue;
@@ -663,20 +776,16 @@
 	unsigned long sublen = 0, bodylen = 0, nonsiglen = 0, siglen = 0;
 
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		struct used_atom *atom = &used_atom[i];
+		const char *name = atom->name;
 		struct atom_value *v = &val[i];
-		const char *valp = NULL;
 		if (!!deref != (*name == '*'))
 			continue;
 		if (deref)
 			name++;
 		if (strcmp(name, "subject") &&
 		    strcmp(name, "body") &&
-		    strcmp(name, "contents") &&
-		    strcmp(name, "contents:subject") &&
-		    strcmp(name, "contents:body") &&
-		    strcmp(name, "contents:signature") &&
-		    !starts_with(name, "contents:lines="))
+		    !starts_with(name, "contents"))
 			continue;
 		if (!subpos)
 			find_subpos(buf, sz,
@@ -684,28 +793,23 @@
 				    &bodypos, &bodylen, &nonsiglen,
 				    &sigpos, &siglen);
 
-		if (!strcmp(name, "subject"))
+		if (atom->u.contents.option == C_SUB)
 			v->s = copy_subject(subpos, sublen);
-		else if (!strcmp(name, "contents:subject"))
-			v->s = copy_subject(subpos, sublen);
-		else if (!strcmp(name, "body"))
+		else if (atom->u.contents.option == C_BODY_DEP)
 			v->s = xmemdupz(bodypos, bodylen);
-		else if (!strcmp(name, "contents:body"))
+		else if (atom->u.contents.option == C_BODY)
 			v->s = xmemdupz(bodypos, nonsiglen);
-		else if (!strcmp(name, "contents:signature"))
+		else if (atom->u.contents.option == C_SIG)
 			v->s = xmemdupz(sigpos, siglen);
-		else if (!strcmp(name, "contents"))
-			v->s = xstrdup(subpos);
-		else if (skip_prefix(name, "contents:lines=", &valp)) {
+		else if (atom->u.contents.option == C_LINES) {
 			struct strbuf s = STRBUF_INIT;
 			const char *contents_end = bodylen + bodypos - siglen;
 
-			if (strtoul_ui(valp, 10, &v->u.contents.lines))
-				die(_("positive value expected contents:lines=%s"), valp);
 			/*  Size is the length of the message after removing the signature */
-			append_lines(&s, subpos, contents_end - subpos, v->u.contents.lines);
+			append_lines(&s, subpos, contents_end - subpos, atom->u.contents.nlines);
 			v->s = strbuf_detach(&s, NULL);
-		}
+		} else if (atom->u.contents.option == C_BARE)
+			v->s = xstrdup(subpos);
 	}
 }
 
@@ -771,12 +875,12 @@
 	const char *start = refname;
 
 	if (nr < 1 || *end != '\0')
-		die(":strip= requires a positive integer argument");
+		die(_(":strip= requires a positive integer argument"));
 
 	while (remaining) {
 		switch (*start++) {
 		case '\0':
-			die("ref '%s' does not have %ld components to :strip",
+			die(_("ref '%s' does not have %ld components to :strip"),
 			    refname, nr);
 		case '/':
 			remaining--;
@@ -786,6 +890,43 @@
 	return start;
 }
 
+static void fill_remote_ref_details(struct used_atom *atom, const char *refname,
+				    struct branch *branch, const char **s)
+{
+	int num_ours, num_theirs;
+	if (atom->u.remote_ref == RR_SHORTEN)
+		*s = shorten_unambiguous_ref(refname, warn_ambiguous_refs);
+	else if (atom->u.remote_ref == RR_TRACK) {
+		if (stat_tracking_info(branch, &num_ours,
+				       &num_theirs, NULL))
+			return;
+
+		if (!num_ours && !num_theirs)
+			*s = "";
+		else if (!num_ours)
+			*s = xstrfmt("[behind %d]", num_theirs);
+		else if (!num_theirs)
+			*s = xstrfmt("[ahead %d]", num_ours);
+		else
+			*s = xstrfmt("[ahead %d, behind %d]",
+				     num_ours, num_theirs);
+	} else if (atom->u.remote_ref == RR_TRACKSHORT) {
+		if (stat_tracking_info(branch, &num_ours,
+				       &num_theirs, NULL))
+			return;
+
+		if (!num_ours && !num_theirs)
+			*s = "=";
+		else if (!num_ours)
+			*s = "<";
+		else if (!num_theirs)
+			*s = ">";
+		else
+			*s = "<>";
+	} else /* RR_NORMAL */
+		*s = refname;
+}
+
 /*
  * Parse the object referred by ref, and grab needed value.
  */
@@ -809,12 +950,12 @@
 
 	/* Fill in specials first */
 	for (i = 0; i < used_atom_cnt; i++) {
-		const char *name = used_atom[i];
+		struct used_atom *atom = &used_atom[i];
+		const char *name = used_atom[i].name;
 		struct atom_value *v = &ref->value[i];
 		int deref = 0;
 		const char *refname;
 		const char *formatp;
-		const char *valp;
 		struct branch *branch = NULL;
 
 		v->handler = append_atom;
@@ -837,8 +978,9 @@
 			branch = branch_get(branch_name);
 
 			refname = branch_get_upstream(branch, NULL);
-			if (!refname)
-				continue;
+			if (refname)
+				fill_remote_ref_details(atom, refname, branch, &v->s);
+			continue;
 		} else if (starts_with(name, "push")) {
 			const char *branch_name;
 			if (!skip_prefix(ref->refname, "refs/heads/",
@@ -849,14 +991,10 @@
 			refname = branch_get_push(branch, NULL);
 			if (!refname)
 				continue;
-		} else if (match_atom_name(name, "color", &valp)) {
-			char color[COLOR_MAXLEN] = "";
-
-			if (!valp)
-				die(_("expected format: %%(color:<color>)"));
-			if (color_parse(valp, color) < 0)
-				die(_("unable to parse format"));
-			v->s = xstrdup(color);
+			fill_remote_ref_details(atom, refname, branch, &v->s);
+			continue;
+		} else if (starts_with(name, "color:")) {
+			v->s = atom->u.color;
 			continue;
 		} else if (!strcmp(name, "flag")) {
 			char buf[256], *cp = buf;
@@ -871,7 +1009,7 @@
 				v->s = xstrdup(buf + 1);
 			}
 			continue;
-		} else if (!deref && grab_objectname(name, ref->objectname, v)) {
+		} else if (!deref && grab_objectname(name, ref->objectname, v, atom)) {
 			continue;
 		} else if (!strcmp(name, "HEAD")) {
 			const char *head;
@@ -884,43 +1022,8 @@
 			else
 				v->s = " ";
 			continue;
-		} else if (match_atom_name(name, "align", &valp)) {
-			struct align *align = &v->u.align;
-			struct strbuf **s, **to_free;
-			int width = -1;
-
-			if (!valp)
-				die(_("expected format: %%(align:<width>,<position>)"));
-
-			/*
-			 * TODO: Implement a function similar to strbuf_split_str()
-			 * which would omit the separator from the end of each value.
-			 */
-			s = to_free = strbuf_split_str(valp, ',', 0);
-
-			align->position = ALIGN_LEFT;
-
-			while (*s) {
-				/*  Strip trailing comma */
-				if (s[1])
-					strbuf_setlen(s[0], s[0]->len - 1);
-				if (!strtoul_ui(s[0]->buf, 10, (unsigned int *)&width))
-					;
-				else if (!strcmp(s[0]->buf, "left"))
-					align->position = ALIGN_LEFT;
-				else if (!strcmp(s[0]->buf, "right"))
-					align->position = ALIGN_RIGHT;
-				else if (!strcmp(s[0]->buf, "middle"))
-					align->position = ALIGN_MIDDLE;
-				else
-					die(_("improper format entered align:%s"), s[0]->buf);
-				s++;
-			}
-
-			if (width < 0)
-				die(_("positive width expected with the %%(align) atom"));
-			align->width = width;
-			strbuf_list_free(to_free);
+		} else if (starts_with(name, "align")) {
+			v->u.align = atom->u.align;
 			v->handler = align_atom_handler;
 			continue;
 		} else if (!strcmp(name, "end")) {
@@ -931,7 +1034,6 @@
 
 		formatp = strchr(name, ':');
 		if (formatp) {
-			int num_ours, num_theirs;
 			const char *arg;
 
 			formatp++;
@@ -940,44 +1042,8 @@
 						      warn_ambiguous_refs);
 			else if (skip_prefix(formatp, "strip=", &arg))
 				refname = strip_ref_components(refname, arg);
-			else if (!strcmp(formatp, "track") &&
-				 (starts_with(name, "upstream") ||
-				  starts_with(name, "push"))) {
-
-				if (stat_tracking_info(branch, &num_ours,
-						       &num_theirs, NULL))
-					continue;
-
-				if (!num_ours && !num_theirs)
-					v->s = "";
-				else if (!num_ours)
-					v->s = xstrfmt("[behind %d]", num_theirs);
-				else if (!num_theirs)
-					v->s = xstrfmt("[ahead %d]", num_ours);
-				else
-					v->s = xstrfmt("[ahead %d, behind %d]",
-						       num_ours, num_theirs);
-				continue;
-			} else if (!strcmp(formatp, "trackshort") &&
-				   (starts_with(name, "upstream") ||
-				    starts_with(name, "push"))) {
-				assert(branch);
-
-				if (stat_tracking_info(branch, &num_ours,
-							&num_theirs, NULL))
-					continue;
-
-				if (!num_ours && !num_theirs)
-					v->s = "=";
-				else if (!num_ours)
-					v->s = "<";
-				else if (!num_theirs)
-					v->s = ">";
-				else
-					v->s = "<>";
-				continue;
-			} else
-				die("unknown %.*s format %s",
+			else
+				die(_("unknown %.*s format %s"),
 				    (int)(formatp - name), name, formatp);
 		}
 
@@ -997,10 +1063,10 @@
  need_obj:
 	buf = get_obj(ref->objectname, &obj, &size, &eaten);
 	if (!buf)
-		die("missing object %s for %s",
+		die(_("missing object %s for %s"),
 		    sha1_to_hex(ref->objectname), ref->refname);
 	if (!obj)
-		die("parse_object_buffer failed on %s for %s",
+		die(_("parse_object_buffer failed on %s for %s"),
 		    sha1_to_hex(ref->objectname), ref->refname);
 
 	grab_values(ref->value, 0, obj, buf, size);
@@ -1028,10 +1094,10 @@
 	 */
 	buf = get_obj(tagged, &obj, &size, &eaten);
 	if (!buf)
-		die("missing object %s for %s",
+		die(_("missing object %s for %s"),
 		    sha1_to_hex(tagged), ref->refname);
 	if (!obj)
-		die("parse_object_buffer failed on %s for %s",
+		die(_("parse_object_buffer failed on %s for %s"),
 		    sha1_to_hex(tagged), ref->refname);
 	grab_values(ref->value, 1, obj, buf, size);
 	if (!eaten)
@@ -1255,10 +1321,8 @@
 						 const unsigned char *objectname,
 						 int flag)
 {
-	size_t len = strlen(refname);
-	struct ref_array_item *ref = xcalloc(1, sizeof(struct ref_array_item) + len + 1);
-	memcpy(ref->refname, refname, len);
-	ref->refname[len] = '\0';
+	struct ref_array_item *ref;
+	FLEX_ALLOC_STR(ref, refname, refname);
 	hashcpy(ref->objectname, objectname);
 	ref->flag = flag;
 
@@ -1306,12 +1370,12 @@
 	unsigned int kind;
 
 	if (flag & REF_BAD_NAME) {
-		warning("ignoring ref with broken name %s", refname);
+		warning(_("ignoring ref with broken name %s"), refname);
 		return 0;
 	}
 
 	if (flag & REF_ISBROKEN) {
-		warning("ignoring broken ref %s", refname);
+		warning(_("ignoring broken ref %s"), refname);
 		return 0;
 	}
 
@@ -1471,7 +1535,7 @@
 {
 	struct atom_value *va, *vb;
 	int cmp;
-	cmp_type cmp_type = used_atom_type[s->atom];
+	cmp_type cmp_type = used_atom[s->atom].type;
 
 	get_ref_atom_value(a, s->atom, &va);
 	get_ref_atom_value(b, s->atom, &vb);
diff --git a/refs.c b/refs.c
index e2d34b2..b0e6ece 100644
--- a/refs.c
+++ b/refs.c
@@ -124,7 +124,7 @@
 		char *buf;
 		int result;
 
-		buf = xmalloc(strlen(refname) + 1);
+		buf = xmallocz(strlen(refname));
 		/*
 		 * Does the refname try to escape refs/?
 		 * For example: refs/foo/../bar is safe but refs/foo/../../bar
@@ -761,10 +761,8 @@
 static struct ref_update *add_update(struct ref_transaction *transaction,
 				     const char *refname)
 {
-	size_t len = strlen(refname) + 1;
-	struct ref_update *update = xcalloc(1, sizeof(*update) + len);
-
-	memcpy((char *)update->refname, refname, len); /* includes NUL */
+	struct ref_update *update;
+	FLEX_ALLOC_STR(update, refname, refname);
 	ALLOC_GROW(transaction->updates, transaction->nr + 1, transaction->alloc);
 	transaction->updates[transaction->nr++] = update;
 	return update;
@@ -908,7 +906,7 @@
 			/* -2 for strlen("%.*s") - strlen("%s"); +1 for NUL */
 			total_len += strlen(ref_rev_parse_rules[nr_rules]) - 2 + 1;
 
-		scanf_fmts = xmalloc(nr_rules * sizeof(char *) + total_len);
+		scanf_fmts = xmalloc(st_add(st_mult(nr_rules, sizeof(char *)), total_len));
 
 		offset = 0;
 		for (i = 0; i < nr_rules; i++) {
diff --git a/refs.h b/refs.h
index 3c3da29..2f3decb 100644
--- a/refs.h
+++ b/refs.h
@@ -109,6 +109,11 @@
  *   If this succeeds, the ref updates will have taken place and
  *   the transaction cannot be rolled back.
  *
+ * - Instead of `ref_transaction_commit`, use
+ *   `initial_ref_transaction_commit()` if the ref database is known
+ *   to be empty (e.g. during clone).  This is likely to be much
+ *   faster.
+ *
  * - At any time call `ref_transaction_free()` to discard the
  *   transaction and free associated resources.  In particular,
  *   this rolls back the transaction if it has not been
@@ -124,6 +129,13 @@
  *
  * The message is appended to err without first clearing err.
  * err will not be '\n' terminated.
+ *
+ * Caveats
+ * -------
+ *
+ * Note that no locks are taken, and no refs are read, until
+ * `ref_transaction_commit` is called.  So `ref_transaction_verify`
+ * won't report a verification failure until the commit is attempted.
  */
 struct ref_transaction;
 
diff --git a/refs/files-backend.c b/refs/files-backend.c
index b569762..81f68f8 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -199,17 +199,14 @@
 					  const unsigned char *sha1, int flag,
 					  int check_name)
 {
-	int len;
 	struct ref_entry *ref;
 
 	if (check_name &&
 	    check_refname_format(refname, REFNAME_ALLOW_ONELEVEL))
 		die("Reference has invalid format: '%s'", refname);
-	len = strlen(refname) + 1;
-	ref = xmalloc(sizeof(struct ref_entry) + len);
+	FLEX_ALLOC_STR(ref, name, refname);
 	hashcpy(ref->u.value.oid.hash, sha1);
 	oidclr(&ref->u.value.peeled);
-	memcpy(ref->name, refname, len);
 	ref->flag = flag;
 	return ref;
 }
@@ -268,9 +265,7 @@
 					  int incomplete)
 {
 	struct ref_entry *direntry;
-	direntry = xcalloc(1, sizeof(struct ref_entry) + len + 1);
-	memcpy(direntry->name, dirname, len);
-	direntry->name[len] = '\0';
+	FLEX_ALLOC_MEM(direntry, name, dirname, len);
 	direntry->u.subdir.ref_cache = ref_cache;
 	direntry->flag = REF_DIR | (incomplete ? REF_INCOMPLETE : 0);
 	return direntry;
@@ -939,13 +934,10 @@
  */
 static struct ref_cache *create_ref_cache(const char *submodule)
 {
-	int len;
 	struct ref_cache *refs;
 	if (!submodule)
 		submodule = "";
-	len = strlen(submodule) + 1;
-	refs = xcalloc(1, sizeof(struct ref_cache) + len);
-	memcpy(refs->name, submodule, len);
+	FLEX_ALLOC_STR(refs, name, submodule);
 	refs->next = submodule_ref_caches;
 	submodule_ref_caches = refs;
 	return refs;
@@ -2197,10 +2189,9 @@
 
 	/* Schedule the loose reference for pruning if requested. */
 	if ((cb->flags & PACK_REFS_PRUNE)) {
-		int namelen = strlen(entry->name) + 1;
-		struct ref_to_prune *n = xcalloc(1, sizeof(*n) + namelen);
+		struct ref_to_prune *n;
+		FLEX_ALLOC_STR(n, name, entry->name);
 		hashcpy(n->sha1, entry->u.value.oid.hash);
-		memcpy(n->name, entry->name, namelen); /* includes NUL */
 		n->next = cb->ref_to_prune;
 		cb->ref_to_prune = n;
 	}
diff --git a/remote-curl.c b/remote-curl.c
index c704857..15e48e2 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -119,6 +119,19 @@
 		else
 			return -1;
 		return 0;
+
+#if LIBCURL_VERSION_NUM >= 0x070a08
+	} else if (!strcmp(name, "family")) {
+		if (!strcmp(value, "ipv4"))
+			git_curl_ipresolve = CURL_IPRESOLVE_V4;
+		else if (!strcmp(value, "ipv6"))
+			git_curl_ipresolve = CURL_IPRESOLVE_V6;
+		else if (!strcmp(value, "all"))
+			git_curl_ipresolve = CURL_IPRESOLVE_WHATEVER;
+		else
+			return -1;
+		return 0;
+#endif /* LIBCURL_VERSION_NUM >= 0x070a08 */
 	} else {
 		return 1 /* unsupported */;
 	}
@@ -439,8 +452,20 @@
 	err = run_one_slot(slot, results);
 
 	if (err != HTTP_OK && err != HTTP_REAUTH) {
-		error("RPC failed; result=%d, HTTP code = %ld",
-		      results->curl_result, results->http_code);
+		struct strbuf msg = STRBUF_INIT;
+		if (results->http_code && results->http_code != 200)
+			strbuf_addf(&msg, "HTTP %ld", results->http_code);
+		if (results->curl_result != CURLE_OK) {
+			if (msg.len)
+				strbuf_addch(&msg, ' ');
+			strbuf_addf(&msg, "curl %d", results->curl_result);
+			if (curl_errorstr[0]) {
+				strbuf_addch(&msg, ' ');
+				strbuf_addstr(&msg, curl_errorstr);
+			}
+		}
+		error("RPC failed; %s", msg.buf);
+		strbuf_release(&msg);
 	}
 
 	return err;
@@ -696,9 +721,10 @@
 static int fetch_dumb(int nr_heads, struct ref **to_fetch)
 {
 	struct walker *walker;
-	char **targets = xmalloc(nr_heads * sizeof(char*));
+	char **targets;
 	int ret, i;
 
+	ALLOC_ARRAY(targets, nr_heads);
 	if (options.depth)
 		die("dumb http transport does not support --depth");
 	for (i = 0; i < nr_heads; i++)
@@ -845,23 +871,22 @@
 
 static int push_dav(int nr_spec, char **specs)
 {
-	const char **argv = xmalloc((10 + nr_spec) * sizeof(char*));
-	int argc = 0, i;
+	struct child_process child = CHILD_PROCESS_INIT;
+	size_t i;
 
-	argv[argc++] = "http-push";
-	argv[argc++] = "--helper-status";
+	child.git_cmd = 1;
+	argv_array_push(&child.args, "http-push");
+	argv_array_push(&child.args, "--helper-status");
 	if (options.dry_run)
-		argv[argc++] = "--dry-run";
+		argv_array_push(&child.args, "--dry-run");
 	if (options.verbosity > 1)
-		argv[argc++] = "--verbose";
-	argv[argc++] = url.buf;
+		argv_array_push(&child.args, "--verbose");
+	argv_array_push(&child.args, url.buf);
 	for (i = 0; i < nr_spec; i++)
-		argv[argc++] = specs[i];
-	argv[argc++] = NULL;
+		argv_array_push(&child.args, specs[i]);
 
-	if (run_command_v_opt(argv, RUN_GIT_CMD))
-		die("git-%s failed", argv[0]);
-	free(argv);
+	if (run_command(&child))
+		die("git-http-push failed");
 	return 0;
 }
 
diff --git a/remote.c b/remote.c
index 02e698a..fc02698 100644
--- a/remote.c
+++ b/remote.c
@@ -318,93 +318,88 @@
 static int handle_config(const char *key, const char *value, void *cb)
 {
 	const char *name;
+	int namelen;
 	const char *subkey;
 	struct remote *remote;
 	struct branch *branch;
-	if (starts_with(key, "branch.")) {
-		name = key + 7;
-		subkey = strrchr(name, '.');
-		if (!subkey)
+	if (parse_config_key(key, "branch", &name, &namelen, &subkey) >= 0) {
+		if (!name)
 			return 0;
-		branch = make_branch(name, subkey - name);
-		if (!strcmp(subkey, ".remote")) {
+		branch = make_branch(name, namelen);
+		if (!strcmp(subkey, "remote")) {
 			return git_config_string(&branch->remote_name, key, value);
-		} else if (!strcmp(subkey, ".pushremote")) {
+		} else if (!strcmp(subkey, "pushremote")) {
 			return git_config_string(&branch->pushremote_name, key, value);
-		} else if (!strcmp(subkey, ".merge")) {
+		} else if (!strcmp(subkey, "merge")) {
 			if (!value)
 				return config_error_nonbool(key);
 			add_merge(branch, xstrdup(value));
 		}
 		return 0;
 	}
-	if (starts_with(key, "url.")) {
+	if (parse_config_key(key, "url", &name, &namelen, &subkey) >= 0) {
 		struct rewrite *rewrite;
-		name = key + 4;
-		subkey = strrchr(name, '.');
-		if (!subkey)
+		if (!name)
 			return 0;
-		if (!strcmp(subkey, ".insteadof")) {
-			rewrite = make_rewrite(&rewrites, name, subkey - name);
+		if (!strcmp(subkey, "insteadof")) {
+			rewrite = make_rewrite(&rewrites, name, namelen);
 			if (!value)
 				return config_error_nonbool(key);
 			add_instead_of(rewrite, xstrdup(value));
-		} else if (!strcmp(subkey, ".pushinsteadof")) {
-			rewrite = make_rewrite(&rewrites_push, name, subkey - name);
+		} else if (!strcmp(subkey, "pushinsteadof")) {
+			rewrite = make_rewrite(&rewrites_push, name, namelen);
 			if (!value)
 				return config_error_nonbool(key);
 			add_instead_of(rewrite, xstrdup(value));
 		}
 	}
 
-	if (!starts_with(key,  "remote."))
+	if (parse_config_key(key, "remote", &name, &namelen, &subkey) < 0)
 		return 0;
-	name = key + 7;
 
 	/* Handle remote.* variables */
-	if (!strcmp(name, "pushdefault"))
+	if (!name && !strcmp(subkey, "pushdefault"))
 		return git_config_string(&pushremote_name, key, value);
 
+	if (!name)
+		return 0;
 	/* Handle remote.<name>.* variables */
 	if (*name == '/') {
 		warning("Config remote shorthand cannot begin with '/': %s",
 			name);
 		return 0;
 	}
-	subkey = strrchr(name, '.');
-	if (!subkey)
-		return 0;
-	remote = make_remote(name, subkey - name);
+	remote = make_remote(name, namelen);
 	remote->origin = REMOTE_CONFIG;
-	if (!strcmp(subkey, ".mirror"))
+	if (!strcmp(subkey, "mirror"))
 		remote->mirror = git_config_bool(key, value);
-	else if (!strcmp(subkey, ".skipdefaultupdate"))
+	else if (!strcmp(subkey, "skipdefaultupdate"))
 		remote->skip_default_update = git_config_bool(key, value);
-	else if (!strcmp(subkey, ".skipfetchall"))
+	else if (!strcmp(subkey, "skipfetchall"))
 		remote->skip_default_update = git_config_bool(key, value);
-	else if (!strcmp(subkey, ".prune"))
+	else if (!strcmp(subkey, "prune"))
 		remote->prune = git_config_bool(key, value);
-	else if (!strcmp(subkey, ".url")) {
+	else if (!strcmp(subkey, "url")) {
 		const char *v;
 		if (git_config_string(&v, key, value))
 			return -1;
 		add_url(remote, v);
-	} else if (!strcmp(subkey, ".pushurl")) {
+	} else if (!strcmp(subkey, "pushurl")) {
 		const char *v;
 		if (git_config_string(&v, key, value))
 			return -1;
 		add_pushurl(remote, v);
-	} else if (!strcmp(subkey, ".push")) {
+	} else if (!strcmp(subkey, "push")) {
 		const char *v;
 		if (git_config_string(&v, key, value))
 			return -1;
 		add_push_refspec(remote, v);
-	} else if (!strcmp(subkey, ".fetch")) {
+	} else if (!strcmp(subkey, "fetch")) {
 		const char *v;
 		if (git_config_string(&v, key, value))
 			return -1;
 		add_fetch_refspec(remote, v);
-	} else if (!strcmp(subkey, ".receivepack")) {
+	} else if (!strcmp(subkey, "receivepack")) {
 		const char *v;
 		if (git_config_string(&v, key, value))
 			return -1;
@@ -412,7 +407,7 @@
 			remote->receivepack = v;
 		else
 			error("more than one receivepack given, using the first");
-	} else if (!strcmp(subkey, ".uploadpack")) {
+	} else if (!strcmp(subkey, "uploadpack")) {
 		const char *v;
 		if (git_config_string(&v, key, value))
 			return -1;
@@ -420,18 +415,18 @@
 			remote->uploadpack = v;
 		else
 			error("more than one uploadpack given, using the first");
-	} else if (!strcmp(subkey, ".tagopt")) {
+	} else if (!strcmp(subkey, "tagopt")) {
 		if (!strcmp(value, "--no-tags"))
 			remote->fetch_tags = -1;
 		else if (!strcmp(value, "--tags"))
 			remote->fetch_tags = 2;
-	} else if (!strcmp(subkey, ".proxy")) {
+	} else if (!strcmp(subkey, "proxy")) {
 		return git_config_string((const char **)&remote->http_proxy,
 					 key, value);
-	} else if (!strcmp(subkey, ".proxyauthmethod")) {
+	} else if (!strcmp(subkey, "proxyauthmethod")) {
 		return git_config_string((const char **)&remote->http_proxy_authmethod,
 					 key, value);
-	} else if (!strcmp(subkey, ".vcs")) {
+	} else if (!strcmp(subkey, "vcs")) {
 		return git_config_string(&remote->foreign_vcs, key, value);
 	}
 	return 0;
@@ -718,18 +713,9 @@
 	return remote_get_1(name, pushremote_for_branch);
 }
 
-int remote_is_configured(const char *name)
+int remote_is_configured(struct remote *remote)
 {
-	struct remotes_hash_key lookup;
-	struct hashmap_entry lookup_entry;
-	read_config();
-
-	init_remotes_hash();
-	lookup.str = name;
-	lookup.len = strlen(name);
-	hashmap_entry_init(&lookup_entry, memhash(name, lookup.len));
-
-	return hashmap_get(&remotes_hash, &lookup_entry, &lookup) != NULL;
+	return remote && remote->origin;
 }
 
 int for_each_remote(each_remote_fn fn, void *priv)
@@ -931,7 +917,7 @@
 		const char *name)
 {
 	size_t len = strlen(name);
-	struct ref *ref = xcalloc(1, sizeof(struct ref) + prefixlen + len + 1);
+	struct ref *ref = xcalloc(1, st_add4(sizeof(*ref), prefixlen, len, 1));
 	memcpy(ref->name, prefix, prefixlen);
 	memcpy(ref->name + prefixlen, name, len);
 	return ref;
@@ -948,9 +934,9 @@
 	size_t len;
 	if (!ref)
 		return NULL;
-	len = strlen(ref->name);
-	cpy = xmalloc(sizeof(struct ref) + len + 1);
-	memcpy(cpy, ref, sizeof(struct ref) + len + 1);
+	len = st_add3(sizeof(struct ref), strlen(ref->name), 1);
+	cpy = xmalloc(len);
+	memcpy(cpy, ref, len);
 	cpy->next = NULL;
 	cpy->symref = xstrdup_or_null(ref->symref);
 	cpy->remote_status = xstrdup_or_null(ref->remote_status);
@@ -2136,16 +2122,13 @@
 {
 	struct ref ***local_tail = cb_data;
 	struct ref *ref;
-	int len;
 
 	/* we already know it starts with refs/ to get here */
 	if (check_refname_format(refname + 5, 0))
 		return 0;
 
-	len = strlen(refname) + 1;
-	ref = xcalloc(1, sizeof(*ref) + len);
+	ref = alloc_ref(refname);
 	oidcpy(&ref->new_oid, oid);
-	memcpy(ref->name, refname, len);
 	**local_tail = ref;
 	*local_tail = &ref->next;
 	return 0;
diff --git a/remote.h b/remote.h
index 4fd7a0f..c21fd37 100644
--- a/remote.h
+++ b/remote.h
@@ -5,6 +5,7 @@
 #include "hashmap.h"
 
 enum {
+	REMOTE_UNCONFIGURED = 0,
 	REMOTE_CONFIG,
 	REMOTE_REMOTES,
 	REMOTE_BRANCHES
@@ -59,7 +60,7 @@
 
 struct remote *remote_get(const char *name);
 struct remote *pushremote_get(const char *name);
-int remote_is_configured(const char *name);
+int remote_is_configured(struct remote *remote);
 
 typedef int each_remote_fn(struct remote *remote, void *priv);
 int for_each_remote(each_remote_fn fn, void *priv);
diff --git a/revision.c b/revision.c
index f24ead5..8b2dfe3 100644
--- a/revision.c
+++ b/revision.c
@@ -25,69 +25,13 @@
 static const char *term_bad;
 static const char *term_good;
 
-char *path_name(const struct name_path *path, const char *name)
+void show_object_with_name(FILE *out, struct object *obj, const char *name)
 {
-	const struct name_path *p;
-	char *n, *m;
-	int nlen = strlen(name);
-	int len = nlen + 1;
-
-	for (p = path; p; p = p->up) {
-		if (p->elem_len)
-			len += p->elem_len + 1;
-	}
-	n = xmalloc(len);
-	m = n + len - (nlen + 1);
-	memcpy(m, name, nlen + 1);
-	for (p = path; p; p = p->up) {
-		if (p->elem_len) {
-			m -= p->elem_len + 1;
-			memcpy(m, p->elem, p->elem_len);
-			m[p->elem_len] = '/';
-		}
-	}
-	return n;
-}
-
-static int show_path_component_truncated(FILE *out, const char *name, int len)
-{
-	int cnt;
-	for (cnt = 0; cnt < len; cnt++) {
-		int ch = name[cnt];
-		if (!ch || ch == '\n')
-			return -1;
-		fputc(ch, out);
-	}
-	return len;
-}
-
-static int show_path_truncated(FILE *out, const struct name_path *path)
-{
-	int emitted, ours;
-
-	if (!path)
-		return 0;
-	emitted = show_path_truncated(out, path->up);
-	if (emitted < 0)
-		return emitted;
-	if (emitted)
-		fputc('/', out);
-	ours = show_path_component_truncated(out, path->elem, path->elem_len);
-	if (ours < 0)
-		return ours;
-	return ours || emitted;
-}
-
-void show_object_with_name(FILE *out, struct object *obj,
-			   const struct name_path *path, const char *component)
-{
-	struct name_path leaf;
-	leaf.up = (struct name_path *)path;
-	leaf.elem = component;
-	leaf.elem_len = strlen(component);
+	const char *p;
 
 	fprintf(out, "%s ", oid_to_hex(&obj->oid));
-	show_path_truncated(out, &leaf);
+	for (p = name; *p && *p != '\n'; p++)
+		fputc(*p, out);
 	fputc('\n', out);
 }
 
@@ -540,7 +484,7 @@
 static struct treesame_state *initialise_treesame(struct rev_info *revs, struct commit *commit)
 {
 	unsigned n = commit_list_count(commit->parents);
-	struct treesame_state *st = xcalloc(1, sizeof(*st) + n);
+	struct treesame_state *st = xcalloc(1, st_add(sizeof(*st), n));
 	st->nparents = n;
 	add_decoration(&revs->treesame, &commit->object, st);
 	return st;
diff --git a/revision.h b/revision.h
index 23857c0..dca0d38 100644
--- a/revision.h
+++ b/revision.h
@@ -257,16 +257,9 @@
 extern void mark_parents_uninteresting(struct commit *commit);
 extern void mark_tree_uninteresting(struct tree *tree);
 
-struct name_path {
-	struct name_path *up;
-	int elem_len;
-	const char *elem;
-};
+char *path_name(struct strbuf *path, const char *name);
 
-char *path_name(const struct name_path *path, const char *name);
-
-extern void show_object_with_name(FILE *, struct object *,
-				  const struct name_path *, const char *);
+extern void show_object_with_name(FILE *, struct object *, const char *);
 
 extern void add_pending_object(struct rev_info *revs,
 			       struct object *obj, const char *name);
diff --git a/run-command.c b/run-command.c
index cdf0184..c726010 100644
--- a/run-command.c
+++ b/run-command.c
@@ -160,50 +160,41 @@
 	return -1;
 }
 
-static const char **prepare_shell_cmd(const char **argv)
+static const char **prepare_shell_cmd(struct argv_array *out, const char **argv)
 {
-	int argc, nargc = 0;
-	const char **nargv;
-
-	for (argc = 0; argv[argc]; argc++)
-		; /* just counting */
-	/* +1 for NULL, +3 for "sh -c" plus extra $0 */
-	nargv = xmalloc(sizeof(*nargv) * (argc + 1 + 3));
-
-	if (argc < 1)
+	if (!argv[0])
 		die("BUG: shell command is empty");
 
 	if (strcspn(argv[0], "|&;<>()$`\\\"' \t\n*?[#~=%") != strlen(argv[0])) {
 #ifndef GIT_WINDOWS_NATIVE
-		nargv[nargc++] = SHELL_PATH;
+		argv_array_push(out, SHELL_PATH);
 #else
-		nargv[nargc++] = "sh";
+		argv_array_push(out, "sh");
 #endif
-		nargv[nargc++] = "-c";
+		argv_array_push(out, "-c");
 
-		if (argc < 2)
-			nargv[nargc++] = argv[0];
-		else {
-			struct strbuf arg0 = STRBUF_INIT;
-			strbuf_addf(&arg0, "%s \"$@\"", argv[0]);
-			nargv[nargc++] = strbuf_detach(&arg0, NULL);
-		}
+		/*
+		 * If we have no extra arguments, we do not even need to
+		 * bother with the "$@" magic.
+		 */
+		if (!argv[1])
+			argv_array_push(out, argv[0]);
+		else
+			argv_array_pushf(out, "%s \"$@\"", argv[0]);
 	}
 
-	for (argc = 0; argv[argc]; argc++)
-		nargv[nargc++] = argv[argc];
-	nargv[nargc] = NULL;
-
-	return nargv;
+	argv_array_pushv(out, argv);
+	return out->argv;
 }
 
 #ifndef GIT_WINDOWS_NATIVE
 static int execv_shell_cmd(const char **argv)
 {
-	const char **nargv = prepare_shell_cmd(argv);
-	trace_argv_printf(nargv, "trace: exec:");
-	sane_execvp(nargv[0], (char **)nargv);
-	free(nargv);
+	struct argv_array nargv = ARGV_ARRAY_INIT;
+	prepare_shell_cmd(&nargv, argv);
+	trace_argv_printf(nargv.argv, "trace: exec:");
+	sane_execvp(nargv.argv[0], (char **)nargv.argv);
+	argv_array_clear(&nargv);
 	return -1;
 }
 #endif
@@ -457,6 +448,7 @@
 {
 	int fhin = 0, fhout = 1, fherr = 2;
 	const char **sargv = cmd->argv;
+	struct argv_array nargv = ARGV_ARRAY_INIT;
 
 	if (cmd->no_stdin)
 		fhin = open("/dev/null", O_RDWR);
@@ -482,9 +474,9 @@
 		fhout = dup(cmd->out);
 
 	if (cmd->git_cmd)
-		cmd->argv = prepare_git_cmd(cmd->argv);
+		cmd->argv = prepare_git_cmd(&nargv, cmd->argv);
 	else if (cmd->use_shell)
-		cmd->argv = prepare_shell_cmd(cmd->argv);
+		cmd->argv = prepare_shell_cmd(&nargv, cmd->argv);
 
 	cmd->pid = mingw_spawnvpe(cmd->argv[0], cmd->argv, (char**) cmd->env,
 			cmd->dir, fhin, fhout, fherr);
@@ -494,9 +486,7 @@
 	if (cmd->clean_on_exit && cmd->pid >= 0)
 		mark_child_for_cleanup(cmd->pid);
 
-	if (cmd->git_cmd)
-		free(cmd->argv);
-
+	argv_array_clear(&nargv);
 	cmd->argv = sargv;
 	if (fhin != 0)
 		close(fhin);
@@ -635,6 +625,11 @@
 	return !pthread_equal(main_thread, pthread_self());
 }
 
+void NORETURN async_exit(int code)
+{
+	pthread_exit((void *)(intptr_t)code);
+}
+
 #else
 
 static struct {
@@ -680,6 +675,11 @@
 	return process_is_async;
 }
 
+void NORETURN async_exit(int code)
+{
+	exit(code);
+}
+
 #endif
 
 int start_async(struct async *async)
@@ -902,35 +902,18 @@
 	struct strbuf buffered_output; /* of finished children */
 };
 
-static int default_start_failure(struct child_process *cp,
-				 struct strbuf *err,
+static int default_start_failure(struct strbuf *err,
 				 void *pp_cb,
 				 void *pp_task_cb)
 {
-	int i;
-
-	strbuf_addstr(err, "Starting a child failed:");
-	for (i = 0; cp->argv[i]; i++)
-		strbuf_addf(err, " %s", cp->argv[i]);
-
 	return 0;
 }
 
 static int default_task_finished(int result,
-				 struct child_process *cp,
 				 struct strbuf *err,
 				 void *pp_cb,
 				 void *pp_task_cb)
 {
-	int i;
-
-	if (!result)
-		return 0;
-
-	strbuf_addf(err, "A child failed with return code %d:", result);
-	for (i = 0; cp->argv[i]; i++)
-		strbuf_addf(err, " %s", cp->argv[i]);
-
 	return 0;
 }
 
@@ -1048,8 +1031,7 @@
 	pp->children[i].process.no_stdin = 1;
 
 	if (start_command(&pp->children[i].process)) {
-		code = pp->start_failure(&pp->children[i].process,
-					 &pp->children[i].err,
+		code = pp->start_failure(&pp->children[i].err,
 					 pp->data,
 					 &pp->children[i].data);
 		strbuf_addbuf(&pp->buffered_output, &pp->children[i].err);
@@ -1117,7 +1099,7 @@
 
 		code = finish_command(&pp->children[i].process);
 
-		code = pp->task_finished(code, &pp->children[i].process,
+		code = pp->task_finished(code,
 					 &pp->children[i].err, pp->data,
 					 &pp->children[i].data);
 
diff --git a/run-command.h b/run-command.h
index d5a57f9..3d1e59e 100644
--- a/run-command.h
+++ b/run-command.h
@@ -121,6 +121,7 @@
 int start_async(struct async *async);
 int finish_async(struct async *async);
 int in_async(void);
+void NORETURN async_exit(int code);
 
 /**
  * This callback should initialize the child process and preload the
@@ -158,8 +159,7 @@
  * To send a signal to other child processes for abortion, return
  * the negative signal number.
  */
-typedef int (*start_failure_fn)(struct child_process *cp,
-				struct strbuf *err,
+typedef int (*start_failure_fn)(struct strbuf *err,
 				void *pp_cb,
 				void *pp_task_cb);
 
@@ -178,7 +178,6 @@
  * the negative signal number.
  */
 typedef int (*task_finished_fn)(int result,
-				struct child_process *cp,
 				struct strbuf *err,
 				void *pp_cb,
 				void *pp_task_cb);
@@ -192,9 +191,8 @@
  * (both stdout and stderr) is routed to stderr in a manner that output
  * from different tasks does not interleave.
  *
- * If start_failure_fn or task_finished_fn are NULL, default handlers
- * will be used. The default handlers will print an error message on
- * error without issuing an emergency stop.
+ * start_failure_fn and task_finished_fn can be NULL to omit any
+ * special handling.
  */
 int run_processes_parallel(int n,
 			   get_next_task_fn,
diff --git a/sequencer.c b/sequencer.c
index 8048786..e66f2fe 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -124,42 +124,33 @@
 
 struct commit_message {
 	char *parent_label;
-	const char *label;
-	const char *subject;
+	char *label;
+	char *subject;
 	const char *message;
 };
 
 static int get_message(struct commit *commit, struct commit_message *out)
 {
 	const char *abbrev, *subject;
-	int abbrev_len, subject_len;
-	char *q;
+	int subject_len;
 
-	if (!git_commit_encoding)
-		git_commit_encoding = "UTF-8";
-
-	out->message = logmsg_reencode(commit, NULL, git_commit_encoding);
+	out->message = logmsg_reencode(commit, NULL, get_commit_output_encoding());
 	abbrev = find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV);
-	abbrev_len = strlen(abbrev);
 
 	subject_len = find_commit_subject(out->message, &subject);
 
-	out->parent_label = xmalloc(strlen("parent of ") + abbrev_len +
-			      strlen("... ") + subject_len + 1);
-	q = out->parent_label;
-	q = mempcpy(q, "parent of ", strlen("parent of "));
-	out->label = q;
-	q = mempcpy(q, abbrev, abbrev_len);
-	q = mempcpy(q, "... ", strlen("... "));
-	out->subject = q;
-	q = mempcpy(q, subject, subject_len);
-	*q = '\0';
+	out->subject = xmemdupz(subject, subject_len);
+	out->label = xstrfmt("%s... %s", abbrev, out->subject);
+	out->parent_label = xstrfmt("parent of %s", out->label);
+
 	return 0;
 }
 
 static void free_message(struct commit *commit, struct commit_message *msg)
 {
 	free(msg->parent_label);
+	free(msg->label);
+	free(msg->subject);
 	unuse_commit_buffer(commit, msg->message);
 }
 
diff --git a/setup.c b/setup.c
index 0deb022..de1a2a7 100644
--- a/setup.c
+++ b/setup.c
@@ -88,7 +88,7 @@
 	const char *orig = path;
 	char *sanitized;
 	if (is_absolute_path(orig)) {
-		sanitized = xmalloc(strlen(path) + 1);
+		sanitized = xmallocz(strlen(path));
 		if (remaining_prefix)
 			*remaining_prefix = 0;
 		if (normalize_path_copy_len(sanitized, path, remaining_prefix)) {
@@ -139,9 +139,7 @@
 		if (arg[2] == '\0') /* ":/" is root dir, always exists */
 			return 1;
 		name = arg + 2;
-	} else if (!no_wildcard(arg))
-		return 1;
-	else if (prefix)
+	} else if (prefix)
 		name = prefix_filename(prefix, strlen(prefix), arg);
 	else
 		name = arg;
@@ -202,7 +200,7 @@
 {
 	if (*arg == '-')
 		die("bad flag '%s' used after filename", arg);
-	if (check_filename(prefix, arg))
+	if (check_filename(prefix, arg) || !no_wildcard(arg))
 		return;
 	die_verify_filename(prefix, arg, diagnose_misspelt_rev);
 }
@@ -488,14 +486,13 @@
 		error_code = READ_GITFILE_ERR_OPEN_FAILED;
 		goto cleanup_return;
 	}
-	buf = xmalloc(st.st_size + 1);
+	buf = xmallocz(st.st_size);
 	len = read_in_full(fd, buf, st.st_size);
 	close(fd);
 	if (len != st.st_size) {
 		error_code = READ_GITFILE_ERR_READ_FAILED;
 		goto cleanup_return;
 	}
-	buf[len] = '\0';
 	if (!starts_with(buf, "gitdir: ")) {
 		error_code = READ_GITFILE_ERR_INVALID_FORMAT;
 		goto cleanup_return;
diff --git a/sha1_file.c b/sha1_file.c
index aab1872..d0f2aa0 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -253,7 +253,7 @@
 {
 	struct alternate_object_database *ent;
 	struct alternate_object_database *alt;
-	int pfxlen, entlen;
+	size_t pfxlen, entlen;
 	struct strbuf pathbuf = STRBUF_INIT;
 
 	if (!is_absolute_path(entry) && relative_base) {
@@ -273,8 +273,8 @@
 	while (pfxlen && pathbuf.buf[pfxlen-1] == '/')
 		pfxlen -= 1;
 
-	entlen = pfxlen + 43; /* '/' + 2 hex + '/' + 38 hex + NUL */
-	ent = xmalloc(sizeof(*ent) + entlen);
+	entlen = st_add(pfxlen, 43); /* '/' + 2 hex + '/' + 38 hex + NUL */
+	ent = xmalloc(st_add(sizeof(*ent), entlen));
 	memcpy(ent->base, pathbuf.buf, pfxlen);
 	strbuf_release(&pathbuf);
 
@@ -1076,6 +1076,8 @@
 		die("packfile %s cannot be accessed", p->pack_name);
 	if (offset > (p->pack_size - 20))
 		die("offset beyond end of packfile (truncated pack?)");
+	if (offset < 0)
+		die(_("offset before end of packfile (broken .idx?)"));
 
 	if (!win || !in_window(win, offset)) {
 		if (win)
@@ -1134,7 +1136,7 @@
 
 static struct packed_git *alloc_packed_git(int extra)
 {
-	struct packed_git *p = xmalloc(sizeof(*p) + extra);
+	struct packed_git *p = xmalloc(st_add(sizeof(*p), extra));
 	memset(p, 0, sizeof(*p));
 	p->pack_fd = -1;
 	return p;
@@ -1168,7 +1170,7 @@
 	 * ".pack" is long enough to hold any suffix we're adding (and
 	 * the use xsnprintf double-checks that)
 	 */
-	alloc = path_len + strlen(".pack") + 1;
+	alloc = st_add3(path_len, strlen(".pack"), 1);
 	p = alloc_packed_git(alloc);
 	memcpy(p->pack_name, path, path_len);
 
@@ -1196,7 +1198,7 @@
 struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_path)
 {
 	const char *path = sha1_pack_name(sha1);
-	int alloc = strlen(path) + 1;
+	size_t alloc = st_add(strlen(path), 1);
 	struct packed_git *p = alloc_packed_git(alloc);
 
 	memcpy(p->pack_name, path, alloc); /* includes NUL */
@@ -1413,10 +1415,12 @@
 {
 	unsigned i;
 	for (i = 0; i < p->num_bad_objects; i++)
-		if (!hashcmp(sha1, p->bad_object_sha1 + 20 * i))
+		if (!hashcmp(sha1, p->bad_object_sha1 + GIT_SHA1_RAWSZ * i))
 			return;
-	p->bad_object_sha1 = xrealloc(p->bad_object_sha1, 20 * (p->num_bad_objects + 1));
-	hashcpy(p->bad_object_sha1 + 20 * p->num_bad_objects, sha1);
+	p->bad_object_sha1 = xrealloc(p->bad_object_sha1,
+				      st_mult(GIT_SHA1_RAWSZ,
+					      st_add(p->num_bad_objects, 1)));
+	hashcpy(p->bad_object_sha1 + GIT_SHA1_RAWSZ * p->num_bad_objects, sha1);
 	p->num_bad_objects++;
 }
 
@@ -1942,7 +1946,7 @@
 		/* Push the object we're going to leave behind */
 		if (poi_stack_nr >= poi_stack_alloc && poi_stack == small_poi_stack) {
 			poi_stack_alloc = alloc_nr(poi_stack_nr);
-			poi_stack = xmalloc(sizeof(off_t)*poi_stack_alloc);
+			ALLOC_ARRAY(poi_stack, poi_stack_alloc);
 			memcpy(poi_stack, small_poi_stack, sizeof(off_t)*poi_stack_nr);
 		} else {
 			ALLOC_GROW(poi_stack, poi_stack_nr+1, poi_stack_alloc);
@@ -2308,7 +2312,7 @@
 		if (delta_stack_nr >= delta_stack_alloc
 		    && delta_stack == small_delta_stack) {
 			delta_stack_alloc = alloc_nr(delta_stack_nr);
-			delta_stack = xmalloc(sizeof(*delta_stack)*delta_stack_alloc);
+			ALLOC_ARRAY(delta_stack, delta_stack_alloc);
 			memcpy(delta_stack, small_delta_stack,
 			       sizeof(*delta_stack)*delta_stack_nr);
 		} else {
@@ -2446,6 +2450,20 @@
 	}
 }
 
+void check_pack_index_ptr(const struct packed_git *p, const void *vptr)
+{
+	const unsigned char *ptr = vptr;
+	const unsigned char *start = p->index_data;
+	const unsigned char *end = start + p->index_size;
+	if (ptr < start)
+		die(_("offset before start of pack index for %s (corrupt index?)"),
+		    p->pack_name);
+	/* No need to check for underflow; .idx files must be at least 8 bytes */
+	if (ptr >= end - 8)
+		die(_("offset beyond end of pack index for %s (truncated index?)"),
+		    p->pack_name);
+}
+
 off_t nth_packed_object_offset(const struct packed_git *p, uint32_t n)
 {
 	const unsigned char *index = p->index_data;
@@ -2459,6 +2477,7 @@
 		if (!(off & 0x80000000))
 			return off;
 		index += p->num_objects * 4 + (off & 0x7fffffff) * 8;
+		check_pack_index_ptr(p, index);
 		return (((uint64_t)ntohl(*((uint32_t *)(index + 0)))) << 32) |
 				   ntohl(*((uint32_t *)(index + 4)));
 	}
diff --git a/sha1_name.c b/sha1_name.c
index 89918ca..3acf221 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -87,9 +87,8 @@
 		 * object databases including our own.
 		 */
 		const char *objdir = get_object_directory();
-		int objdir_len = strlen(objdir);
-		int entlen = objdir_len + 43;
-		fakeent = xmalloc(sizeof(*fakeent) + entlen);
+		size_t objdir_len = strlen(objdir);
+		fakeent = xmalloc(st_add3(sizeof(*fakeent), objdir_len, 43));
 		memcpy(fakeent->base, objdir, objdir_len);
 		fakeent->name = fakeent->base + objdir_len + 1;
 		fakeent->name[-1] = '/';
@@ -892,12 +891,12 @@
 			prefix++;
 			negative = 1;
 		} else if (prefix[0] != '!') {
-			die ("Invalid search pattern: %s", prefix);
+			return -1;
 		}
 	}
 
 	if (regcomp(&regex, prefix, REG_EXTENDED))
-		die("Invalid search pattern: %s", prefix);
+		return -1;
 
 	for (l = list; l; l = l->next) {
 		l->item->object.flags |= ONELINE_SEEN;
diff --git a/shallow.c b/shallow.c
index 60f1505..4d554ca 100644
--- a/shallow.c
+++ b/shallow.c
@@ -315,8 +315,8 @@
 	info->shallow = sa;
 	if (!sa)
 		return;
-	info->ours = xmalloc(sizeof(*info->ours) * sa->nr);
-	info->theirs = xmalloc(sizeof(*info->theirs) * sa->nr);
+	ALLOC_ARRAY(info->ours, sa->nr);
+	ALLOC_ARRAY(info->theirs, sa->nr);
 	for (i = 0; i < sa->nr; i++) {
 		if (has_sha1_file(sa->sha1[i])) {
 			struct commit_graft *graft;
@@ -389,7 +389,7 @@
 	unsigned int i, nr;
 	struct commit_list *head = NULL;
 	int bitmap_nr = (info->nr_bits + 31) / 32;
-	int bitmap_size = bitmap_nr * sizeof(uint32_t);
+	size_t bitmap_size = st_mult(bitmap_nr, sizeof(uint32_t));
 	uint32_t *tmp = xmalloc(bitmap_size); /* to be freed before return */
 	uint32_t *bitmap = paint_alloc(info);
 	struct commit *c = lookup_commit_reference_gently(sha1, 1);
@@ -487,7 +487,7 @@
 	struct paint_info pi;
 
 	trace_printf_key(&trace_shallow, "shallow: assign_shallow_commits_to_refs\n");
-	shallow = xmalloc(sizeof(*shallow) * (info->nr_ours + info->nr_theirs));
+	ALLOC_ARRAY(shallow, info->nr_ours + info->nr_theirs);
 	for (i = 0; i < info->nr_ours; i++)
 		shallow[nr_shallow++] = info->ours[i];
 	for (i = 0; i < info->nr_theirs; i++)
diff --git a/show-index.c b/show-index.c
index d9e4903..acf8d54 100644
--- a/show-index.c
+++ b/show-index.c
@@ -50,7 +50,8 @@
 			unsigned char sha1[20];
 			uint32_t crc;
 			uint32_t off;
-		} *entries = xmalloc(nr * sizeof(entries[0]));
+		} *entries;
+		ALLOC_ARRAY(entries, nr);
 		for (i = 0; i < nr; i++)
 			if (fread(entries[i].sha1, 20, 1, stdin) != 1)
 				die("unable to read sha1 %u/%u", i, nr);
diff --git a/strbuf.c b/strbuf.c
index bab316d..f60e2ee 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -718,7 +718,7 @@
 	size_t len, i;
 
 	len = strlen(string);
-	result = xmalloc(len + 1);
+	result = xmallocz(len);
 	for (i = 0; i < len; i++)
 		result[i] = tolower(string[i]);
 	result[i] = '\0';
diff --git a/submodule-config.c b/submodule-config.c
index fe8ceab..92502b5 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -427,8 +427,8 @@
 	parameter.commit_sha1 = commit_sha1;
 	parameter.gitmodules_sha1 = sha1;
 	parameter.overwrite = 0;
-	git_config_from_buf(parse_config, rev.buf, config, config_size,
-			&parameter);
+	git_config_from_mem(parse_config, "submodule-blob", rev.buf,
+			config, config_size, &parameter);
 	free(config);
 
 	switch (lookup_type) {
diff --git a/submodule.c b/submodule.c
index b83939c..62c4356 100644
--- a/submodule.c
+++ b/submodule.c
@@ -69,7 +69,7 @@
 	strbuf_addstr(&entry, "submodule.");
 	strbuf_addstr(&entry, submodule->name);
 	strbuf_addstr(&entry, ".path");
-	if (git_config_set_in_file(".gitmodules", entry.buf, newpath) < 0) {
+	if (git_config_set_in_file_gently(".gitmodules", entry.buf, newpath) < 0) {
 		/* Maybe the user already did that, don't error out here */
 		warning(_("Could not update .gitmodules entry %s"), entry.buf);
 		strbuf_release(&entry);
@@ -123,7 +123,7 @@
 	struct strbuf objects_directory = STRBUF_INIT;
 	struct alternate_object_database *alt_odb;
 	int ret = 0;
-	int alloc;
+	size_t alloc;
 
 	strbuf_git_path_submodule(&objects_directory, path, "objects/");
 	if (!is_directory(objects_directory.buf)) {
@@ -138,8 +138,8 @@
 					objects_directory.len))
 			goto done;
 
-	alloc = objects_directory.len + 42; /* for "12/345..." sha1 */
-	alt_odb = xmalloc(sizeof(*alt_odb) + alloc);
+	alloc = st_add(objects_directory.len, 42); /* for "12/345..." sha1 */
+	alt_odb = xmalloc(st_add(sizeof(*alt_odb), alloc));
 	alt_odb->next = alt_odb_list;
 	xsnprintf(alt_odb->base, alloc, "%s", objects_directory.buf);
 	alt_odb->name = alt_odb->base + objects_directory.len;
@@ -705,8 +705,7 @@
 	return 0;
 }
 
-static int fetch_start_failure(struct child_process *cp,
-			       struct strbuf *err,
+static int fetch_start_failure(struct strbuf *err,
 			       void *cb, void *task_cb)
 {
 	struct submodule_parallel_fetch *spf = cb;
@@ -716,8 +715,8 @@
 	return 0;
 }
 
-static int fetch_finish(int retvalue, struct child_process *cp,
-			struct strbuf *err, void *cb, void *task_cb)
+static int fetch_finish(int retvalue, struct strbuf *err,
+			void *cb, void *task_cb)
 {
 	struct submodule_parallel_fetch *spf = cb;
 
@@ -1087,11 +1086,9 @@
 	/* Update core.worktree setting */
 	strbuf_reset(&file_name);
 	strbuf_addf(&file_name, "%s/config", git_dir);
-	if (git_config_set_in_file(file_name.buf, "core.worktree",
-				   relative_path(real_work_tree, git_dir,
-						 &rel_path)))
-		die(_("Could not set core.worktree in %s"),
-		    file_name.buf);
+	git_config_set_in_file(file_name.buf, "core.worktree",
+			       relative_path(real_work_tree, git_dir,
+					     &rel_path));
 
 	strbuf_release(&file_name);
 	strbuf_release(&rel_path);
diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf
index 7d15e6d..f667e7c 100644
--- a/t/lib-httpd/apache.conf
+++ b/t/lib-httpd/apache.conf
@@ -64,6 +64,9 @@
 <IfModule !mod_mpm_prefork.c>
 	LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
 </IfModule>
+<IfModule !mod_unixd.c>
+	LoadModule unixd_module modules/mod_unixd.so
+</IfModule>
 </IfVersion>
 
 PassEnv GIT_VALGRIND
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 295aa59..a5b9e7a 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -88,19 +88,17 @@
 '
 
 test_expect_success 'No extra GIT_* on alias scripts' '
-	(
-		env | sed -ne "/^GIT_/s/=.*//p" &&
-		echo GIT_PREFIX &&        # setup.c
-		echo GIT_TEXTDOMAINDIR    # wrapper-for-bin.sh
-	) | sort | uniq >expected &&
-	cat <<-\EOF >script &&
-	#!/bin/sh
-	env | sed -ne "/^GIT_/s/=.*//p" | sort >actual
-	exit 0
+	write_script script <<-\EOF &&
+	env |
+		sed -n \
+			-e "/^GIT_PREFIX=/d" \
+			-e "/^GIT_TEXTDOMAINDIR=/d" \
+			-e "/^GIT_/s/=.*//p" |
+		sort
 	EOF
-	chmod 755 script &&
+	./script >expected &&
 	git config alias.script \!./script &&
-	( mkdir sub && cd sub && git script ) &&
+	( mkdir sub && cd sub && git script >../actual ) &&
 	test_cmp expected actual
 '
 
diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
index 504e5a0..f33962b 100755
--- a/t/t0027-auto-crlf.sh
+++ b/t/t0027-auto-crlf.sh
@@ -21,38 +21,32 @@
 	pfx=$1
 	exp=$2.expect
 	act=$pfx.actual.$3
-	tr '\015\000' QN <"$2" >"$exp" &&
-	tr '\015\000' QN <"$3" >"$act" &&
-	test_cmp $exp $act &&
-	rm $exp $act
+	tr '\015\000abcdef0123456789' QN00000000000000000 <"$2" >"$exp" &&
+	tr '\015\000abcdef0123456789' QN00000000000000000 <"$3" >"$act" &&
+	test_cmp "$exp" "$act" &&
+	rm "$exp" "$act"
 }
 
 create_gitattributes () {
-	attr=$1
-	case "$attr" in
-		auto)
-		echo "*.txt text=auto" >.gitattributes
-		;;
-		text)
-		echo "*.txt text" >.gitattributes
-		;;
-		-text)
-		echo "*.txt -text" >.gitattributes
-		;;
-		crlf)
-		echo "*.txt eol=crlf" >.gitattributes
-		;;
-		lf)
-		echo "*.txt eol=lf" >.gitattributes
-		;;
-		"")
-		echo >.gitattributes
-		;;
-		*)
-		echo >&2 invalid attribute: $attr
-		exit 1
-		;;
-	esac
+	{
+		while test "$#" != 0
+		do
+			case "$1" in
+			auto)	 echo '*.txt text=auto' ;;
+			ident) echo '*.txt ident' ;;
+			text)	 echo '*.txt text' ;;
+			-text) echo '*.txt -text' ;;
+			crlf)  echo '*.txt eol=crlf' ;;
+			lf)    echo '*.txt eol=lf' ;;
+			"") ;;
+			*)
+				echo >&2 invalid attribute: "$1"
+				exit 1
+				;;
+			esac &&
+			shift
+		done
+	} >.gitattributes
 }
 
 create_NNO_files () {
@@ -165,6 +159,25 @@
 
 }
 
+
+# contruct the attr/ returned by git ls-files --eol
+# Take none (=empty), one or two args
+attr_ascii () {
+	case $1,$2 in
+	-text,*)   echo "-text" ;;
+	text,)     echo "text" ;;
+	text,lf)   echo "text eol=lf" ;;
+	text,crlf) echo "text eol=crlf" ;;
+	auto,)     echo "text=auto" ;;
+	auto,lf)   echo "text=auto eol=lf" ;;
+	auto,crlf) echo "text=auto eol=crlf" ;;
+	lf,)       echo "text eol=lf" ;;
+	crlf,)     echo "text eol=crlf" ;;
+	,) echo "" ;;
+	*) echo invalid_attr "$1,$2" ;;
+	esac
+}
+
 check_files_in_repo () {
 	crlf=$1
 	attr=$2
@@ -208,55 +221,57 @@
 }
 
 checkout_files () {
-	eol=$1
-	crlf=$2
-	attr=$3
-	lfname=$4
-	crlfname=$5
-	lfmixcrlf=$6
-	lfmixcr=$7
-	crlfnul=$8
-	create_gitattributes $attr &&
+	attr=$1 ; shift
+	ident=$1; shift
+	aeol=$1 ; shift
+	crlf=$1 ; shift
+	ceol=$1 ; shift
+	lfname=$1 ; shift
+	crlfname=$1 ; shift
+	lfmixcrlf=$1 ; shift
+	lfmixcr=$1 ; shift
+	crlfnul=$1 ; shift
+	create_gitattributes "$attr" "$ident" &&
 	git config core.autocrlf $crlf &&
-	pfx=eol_${eol}_crlf_${crlf}_attr_${attr}_ &&
+	pfx=eol_${ceol}_crlf_${crlf}_attr_${attr}_ &&
 	for f in LF CRLF LF_mix_CR CRLF_mix_LF LF_nul
 	do
 		rm crlf_false_attr__$f.txt &&
-		if test -z "$eol"; then
+		if test -z "$ceol"; then
 			git checkout crlf_false_attr__$f.txt
 		else
-			git -c core.eol=$eol checkout crlf_false_attr__$f.txt
+			git -c core.eol=$ceol checkout crlf_false_attr__$f.txt
 		fi
 	done
 
-	test_expect_success "ls-files --eol $lfname ${pfx}LF.txt" '
+	test_expect_success "ls-files --eol attr=$attr $ident $aeol core.autocrlf=$crlf core.eol=$ceol" '
 		test_when_finished "rm expect actual" &&
 		sort <<-EOF >expect &&
-		i/crlf w/$(stats_ascii $crlfname) crlf_false_attr__CRLF.txt
-		i/mixed w/$(stats_ascii $lfmixcrlf) crlf_false_attr__CRLF_mix_LF.txt
-		i/lf w/$(stats_ascii $lfname) crlf_false_attr__LF.txt
-		i/-text w/$(stats_ascii $lfmixcr) crlf_false_attr__LF_mix_CR.txt
-		i/-text w/$(stats_ascii $crlfnul) crlf_false_attr__CRLF_nul.txt
-		i/-text w/$(stats_ascii $crlfnul) crlf_false_attr__LF_nul.txt
+		i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt
+		i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt
+		i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt
+		i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt
+		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt
+		i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt
 		EOF
 		git ls-files --eol crlf_false_attr__* |
-		sed -e "s!attr/[^	]*!!g" -e "s/	/ /g" -e "s/  */ /g" |
+		sed -e "s/	/ /g" -e "s/  */ /g" |
 		sort >actual &&
 		test_cmp expect actual
 	'
-	test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF" "
+	test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF" "
 		compare_ws_file $pfx $lfname    crlf_false_attr__LF.txt
 	"
-	test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF" "
+	test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=CRLF" "
 		compare_ws_file $pfx $crlfname  crlf_false_attr__CRLF.txt
 	"
-	test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=CRLF_mix_LF" "
+	test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=CRLF_mix_LF" "
 		compare_ws_file $pfx $lfmixcrlf crlf_false_attr__CRLF_mix_LF.txt
 	"
-	test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_mix_CR" "
+	test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF_mix_CR" "
 		compare_ws_file $pfx $lfmixcr   crlf_false_attr__LF_mix_CR.txt
 	"
-	test_expect_success "checkout core.eol=$eol core.autocrlf=$crlf gitattributes=$attr file=LF_nul" "
+	test_expect_success "checkout $ident $attr $aeol core.autocrlf=$crlf core.eol=$ceol file=LF_nul" "
 		compare_ws_file $pfx $crlfnul   crlf_false_attr__LF_nul.txt
 	"
 }
@@ -301,14 +316,13 @@
 	git checkout -b master &&
 	git add .gitattributes &&
 	git commit -m "add .gitattributes" "" &&
-	printf "line1\nline2\nline3"     >LF &&
-	printf "line1\r\nline2\r\nline3" >CRLF &&
-	printf "line1\r\nline2\nline3"   >repoMIX &&
-	printf "line1\r\nline2\nline3"   >CRLF_mix_LF &&
-	printf "line1\nline2\rline3"     >LF_mix_CR &&
-	printf "line1\r\nline2\rline3"   >CRLF_mix_CR &&
-	printf "line1Q\r\nline2\r\nline3" | q_to_nul >CRLF_nul &&
-	printf "line1Q\nline2\nline3" | q_to_nul >LF_nul &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE"     >LF &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE"   >CRLF_mix_LF &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\rLINETHREE"     >LF_mix_CR &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\rLINETHREE"   >CRLF_mix_CR &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONEQ\r\nLINETWO\r\nLINETHREE" | q_to_nul >CRLF_nul &&
+	printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONEQ\nLINETWO\nLINETHREE" | q_to_nul >LF_nul &&
 	create_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&
 	git -c core.autocrlf=false add NNO_*.txt &&
 	git commit -m "mixed line endings" &&
@@ -449,23 +463,18 @@
 # How to read the table below:
 # - checkout_files will check multiple files with a combination of settings
 #   and attributes (core.autocrlf=input is forbidden with core.eol=crlf)
-# - parameter $1 : core.eol               lf | crlf
-# - parameter $2 : core.autocrlf          false | true | input
-# - parameter $3 : text in .gitattributs  "" (empty) | auto | text | -text
-# - parameter $4 : reference for a file with only LF in the repo
-# - parameter $5 : reference for a file with only CRLF in the repo
-# - parameter $6 : reference for a file with mixed LF and CRLF in the repo
-# - parameter $7 : reference for a file with LF and CR in the repo (does somebody uses this ?)
-# - parameter $8 : reference for a file with CRLF and a NUL (should be handled as binary when auto)
+#
+# - parameter $1 	: text in .gitattributs  "" (empty) | auto | text | -text
+# - parameter $2 	: ident                  "" | i (i == ident)
+# - parameter $3 	: eol in .gitattributs   "" (empty) | lf | crlf
+# - parameter $4 	: core.autocrlf          false | true | input
+# - parameter $5 	: core.eol               "" | lf | crlf | "native"
+# - parameter $6 	: reference for a file with only LF in the repo
+# - parameter $7 	: reference for a file with only CRLF in the repo
+# - parameter $8 	: reference for a file with mixed LF and CRLF in the repo
+# - parameter $9 	: reference for a file with LF and CR in the repo
+# - parameter $10 : reference for a file with CRLF and a NUL (should be handled as binary when auto)
 
-#                                            What we have in the repo:
-#                                            ----------------- EOL in repo ----------------
-#                                            LF    CRLF  CRLF_mix_LF  LF_mix_CR    CRLF_nul
-#                   settings with checkout:
-#                   core.   core.   .gitattr
-#                    eol     acrlf
-#                                            ----------------------------------------------
-#                                            What we want to have in the working tree:
 if test_have_prereq NATIVE_CRLF
 then
 MIX_CRLF_LF=CRLF
@@ -480,69 +489,90 @@
 fi
 export CRLF_MIX_LF_CR MIX NL
 
-checkout_files    lf      false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      true   ""       CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      false "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
-checkout_files    lf      input "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      false "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    lf      input "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      input "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      false "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      true  "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      input "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    lf      false "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    lf      true  "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    lf      input "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+checkout_files ""      "" 	 ""    false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    false  crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    false  native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    true   ""       CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    true   crlf     CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    true   lf       CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      "" 	 ""    true   native   CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    false  crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    false  native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    true   ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    true   crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    true   lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files ""      ident ""    true   native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    false  ""       $NL   CRLF  $MIX_CRLF_LF LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    false  crlf     CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    false  native   $NL   CRLF  $MIX_CRLF_LF LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    true   ""       CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    true   crlf     CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    true   lf       CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
+checkout_files "auto"  "" 	 ""    true   native   CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    false  crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    false  native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    true   ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    true   crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    true   lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+checkout_files "auto"  ident ""    true   native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
 
-checkout_files    crlf    false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    crlf    true   ""       CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    crlf    false "auto"    CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
-checkout_files    crlf    true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
-checkout_files    crlf    false "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    crlf    true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    crlf    false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    crlf    true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    crlf    false "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    crlf    true  "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    crlf    false "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    crlf    true  "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-
-checkout_files    ""      false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      true   ""       CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      false "auto"    $NL   CRLF  $MIX_CRLF_LF LF_mix_CR    LF_nul
-checkout_files    ""      true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
-checkout_files    ""      input "auto"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      false "text"    $NL   CRLF  $MIX_CRLF_LF $MIX_LF_CR   $LFNUL
-checkout_files    ""      true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    ""      input "text"    LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      input "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      false "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      true  "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      input "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    ""      false "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    ""      true  "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    ""      input "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-
-checkout_files    native  false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    native  true   ""       CRLF  CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    native  false "auto"    $NL   CRLF  $MIX_CRLF_LF LF_mix_CR    LF_nul
-checkout_files    native  true  "auto"    CRLF  CRLF  CRLF         LF_mix_CR    LF_nul
-checkout_files    native  false "text"    $NL   CRLF  $MIX_CRLF_LF $MIX_LF_CR   $LFNUL
-checkout_files    native  true  "text"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    native  false "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    native  true  "-text"   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    native  false "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    native  true  "lf"      LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
-checkout_files    native  false "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
-checkout_files    native  true  "crlf"    CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+for id in "" ident;
+do
+	checkout_files "crlf"  "$id" ""    false  ""       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    false  crlf     CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    false  lf       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    false  native   CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    input  ""       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    input  lf       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    true   ""       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    true   crlf     CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    true   lf       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "crlf"  "$id" ""    true   native   CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "lf"    "$id" ""    false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    false  crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    false  native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    true   ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    true   crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    true   lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "lf"    "$id" ""    true   native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "text"  "$id" ""    false  ""       $NL   CRLF  $MIX_CRLF_LF $MIX_LF_CR   $LFNUL
+	checkout_files "text"  "$id" ""    false  crlf     CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "text"  "$id" ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "text"  "$id" ""    false  native   $NL   CRLF  $MIX_CRLF_LF $MIX_LF_CR   $LFNUL
+	checkout_files "text"  "$id" ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "text"  "$id" ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "text"  "$id" ""    true   ""       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "text"  "$id" ""    true   crlf     CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "text"  "$id" ""    true   lf       CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "text"  "$id" ""    true   native   CRLF  CRLF  CRLF         CRLF_mix_CR  CRLF_nul
+	checkout_files "-text" "$id" ""    false  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    false  crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    false  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    false  native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    input  ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    input  lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    true   ""       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    true   crlf     LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    true   lf       LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+	checkout_files "-text" "$id" ""    true   native   LF    CRLF  CRLF_mix_LF  LF_mix_CR    LF_nul
+done
 
 # Should be the last test case: remove some files from the worktree
 test_expect_success 'ls-files --eol -d -z' '
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index 52678e7..6767da8 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -699,11 +699,13 @@
 	echo 1auto >expect &&
 	git config aninvalid.unit >actual &&
 	test_cmp expect actual &&
-	cat >expect <<-\EOF &&
-	fatal: bad numeric config value '\''1auto'\'' for '\''aninvalid.unit'\'' in .git/config: invalid unit
-	EOF
 	test_must_fail git config --int --get aninvalid.unit 2>actual &&
-	test_i18ncmp expect actual
+	test_i18ngrep "bad numeric config value .1auto. for .aninvalid.unit. in file .git/config: invalid unit" actual
+'
+
+test_expect_success 'invalid stdin config' '
+	echo "[broken" | test_must_fail git config --list --file - >output 2>&1 &&
+	test_i18ngrep "bad config line 1 in standard input" output
 '
 
 cat > expect << EOF
@@ -957,13 +959,15 @@
 Qsection.sub=section.val5Q
 EOF
 test_expect_success '--null --list' '
-	git config --null --list | nul_to_q >result &&
+	git config --null --list >result.raw &&
+	nul_to_q <result.raw >result &&
 	echo >>result &&
 	test_cmp expect result
 '
 
 test_expect_success '--null --get-regexp' '
-	git config --null --get-regexp "val[0-9]" | nul_to_q >result &&
+	git config --null --get-regexp "val[0-9]" >result.raw &&
+	nul_to_q <result.raw >result &&
 	echo >>result &&
 	test_cmp expect result
 '
@@ -1201,4 +1205,154 @@
 	  "die q(badrename) if ((stat(q(.git/config)))[2] & 07777) != 0600"
 '
 
+! test_have_prereq MINGW ||
+HOME="$(pwd)" # convert to Windows path
+
+test_expect_success 'set up --show-origin tests' '
+	INCLUDE_DIR="$HOME/include" &&
+	mkdir -p "$INCLUDE_DIR" &&
+	cat >"$INCLUDE_DIR"/absolute.include <<-\EOF &&
+		[user]
+			absolute = include
+	EOF
+	cat >"$INCLUDE_DIR"/relative.include <<-\EOF &&
+		[user]
+			relative = include
+	EOF
+	cat >"$HOME"/.gitconfig <<-EOF &&
+		[user]
+			global = true
+			override = global
+		[include]
+			path = "$INCLUDE_DIR/absolute.include"
+	EOF
+	cat >.git/config <<-\EOF
+		[user]
+			local = true
+			override = local
+		[include]
+			path = ../include/relative.include
+	EOF
+'
+
+test_expect_success '--show-origin with --list' '
+	cat >expect <<-EOF &&
+		file:$HOME/.gitconfig	user.global=true
+		file:$HOME/.gitconfig	user.override=global
+		file:$HOME/.gitconfig	include.path=$INCLUDE_DIR/absolute.include
+		file:$INCLUDE_DIR/absolute.include	user.absolute=include
+		file:.git/config	user.local=true
+		file:.git/config	user.override=local
+		file:.git/config	include.path=../include/relative.include
+		file:.git/../include/relative.include	user.relative=include
+		command line:	user.cmdline=true
+	EOF
+	git -c user.cmdline=true config --list --show-origin >output &&
+	test_cmp expect output
+'
+
+test_expect_success '--show-origin with --list --null' '
+	cat >expect <<-EOF &&
+		file:$HOME/.gitconfigQuser.global
+		trueQfile:$HOME/.gitconfigQuser.override
+		globalQfile:$HOME/.gitconfigQinclude.path
+		$INCLUDE_DIR/absolute.includeQfile:$INCLUDE_DIR/absolute.includeQuser.absolute
+		includeQfile:.git/configQuser.local
+		trueQfile:.git/configQuser.override
+		localQfile:.git/configQinclude.path
+		../include/relative.includeQfile:.git/../include/relative.includeQuser.relative
+		includeQcommand line:Quser.cmdline
+		trueQ
+	EOF
+	git -c user.cmdline=true config --null --list --show-origin >output.raw &&
+	nul_to_q <output.raw >output &&
+	# The here-doc above adds a newline that the --null output would not
+	# include. Add it here to make the two comparable.
+	echo >>output &&
+	test_cmp expect output
+'
+
+test_expect_success '--show-origin with single file' '
+	cat >expect <<-\EOF &&
+		file:.git/config	user.local=true
+		file:.git/config	user.override=local
+		file:.git/config	include.path=../include/relative.include
+	EOF
+	git config --local --list --show-origin >output &&
+	test_cmp expect output
+'
+
+test_expect_success '--show-origin with --get-regexp' '
+	cat >expect <<-EOF &&
+		file:$HOME/.gitconfig	user.global true
+		file:.git/config	user.local true
+	EOF
+	git config --show-origin --get-regexp "user\.[g|l].*" >output &&
+	test_cmp expect output
+'
+
+test_expect_success '--show-origin getting a single key' '
+	cat >expect <<-\EOF &&
+		file:.git/config	local
+	EOF
+	git config --show-origin user.override >output &&
+	test_cmp expect output
+'
+
+test_expect_success 'set up custom config file' '
+	CUSTOM_CONFIG_FILE="file\" (dq) and spaces.conf" &&
+	cat >"$CUSTOM_CONFIG_FILE" <<-\EOF
+		[user]
+			custom = true
+	EOF
+'
+
+test_expect_success !MINGW '--show-origin escape special file name characters' '
+	cat >expect <<-\EOF &&
+		file:"file\" (dq) and spaces.conf"	user.custom=true
+	EOF
+	git config --file "$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
+	test_cmp expect output
+'
+
+test_expect_success '--show-origin stdin' '
+	cat >expect <<-\EOF &&
+		standard input:	user.custom=true
+	EOF
+	git config --file - --show-origin --list <"$CUSTOM_CONFIG_FILE" >output &&
+	test_cmp expect output
+'
+
+test_expect_success '--show-origin stdin with file include' '
+	cat >"$INCLUDE_DIR"/stdin.include <<-EOF &&
+		[user]
+			stdin = include
+	EOF
+	cat >expect <<-EOF &&
+		file:$INCLUDE_DIR/stdin.include	include
+	EOF
+	echo "[include]path=\"$INCLUDE_DIR\"/stdin.include" \
+		| git config --show-origin --includes --file - user.stdin >output &&
+	test_cmp expect output
+'
+
+test_expect_success !MINGW '--show-origin blob' '
+	cat >expect <<-\EOF &&
+		blob:a9d9f9e555b5c6f07cbe09d3f06fe3df11e09c08	user.custom=true
+	EOF
+	blob=$(git hash-object -w "$CUSTOM_CONFIG_FILE") &&
+	git config --blob=$blob --show-origin --list >output &&
+	test_cmp expect output
+'
+
+test_expect_success !MINGW '--show-origin blob ref' '
+	cat >expect <<-\EOF &&
+		blob:"master:file\" (dq) and spaces.conf"	user.custom=true
+	EOF
+	git add "$CUSTOM_CONFIG_FILE" &&
+	git commit -m "new config file" &&
+	git config --blob=master:"$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
+	test_cmp expect output
+'
+
 test_done
diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh
index 91235b7..005d66d 100755
--- a/t/t1308-config-set.sh
+++ b/t/t1308-config-set.sh
@@ -195,14 +195,14 @@
 	cp .git/config .git/config.old &&
 	test_when_finished "mv .git/config.old .git/config" &&
 	echo "[" >>.git/config &&
-	echo "fatal: bad config file line 34 in .git/config" >expect &&
+	echo "fatal: bad config line 34 in file .git/config" >expect &&
 	test_expect_code 128 test-config get_value foo.bar 2>actual &&
 	test_cmp expect actual
 '
 
 test_expect_success 'proper error on error in custom config files' '
 	echo "[" >>syntax-error &&
-	echo "fatal: bad config file line 1 in syntax-error" >expect &&
+	echo "fatal: bad config line 1 in file syntax-error" >expect &&
 	test_expect_code 128 test-config configset_get_value foo.bar syntax-error 2>actual &&
 	test_cmp expect actual
 '
@@ -218,4 +218,15 @@
 	test_i18ngrep "fatal: .*alias\.br.*\.git/config.*line 2" result
 '
 
+test_expect_success 'error on modifying repo config without repo' '
+	mkdir no-repo &&
+	(
+		GIT_CEILING_DIRECTORIES=$(pwd) &&
+		export GIT_CEILING_DIRECTORIES &&
+		cd no-repo &&
+		test_must_fail git config a.b c 2>err &&
+		grep "not in a git directory" err
+	)
+'
+
 test_done
diff --git a/t/t1501-worktree.sh b/t/t1501-work-tree.sh
similarity index 100%
rename from t/t1501-worktree.sh
rename to t/t1501-work-tree.sh
diff --git a/t/t1509-root-worktree.sh b/t/t1509-root-work-tree.sh
similarity index 100%
rename from t/t1509-root-worktree.sh
rename to t/t1509-root-work-tree.sh
diff --git a/t/t2019-checkout-ambiguous-ref.sh b/t/t2019-checkout-ambiguous-ref.sh
index 199b22d..b99d519 100755
--- a/t/t2019-checkout-ambiguous-ref.sh
+++ b/t/t2019-checkout-ambiguous-ref.sh
@@ -56,30 +56,4 @@
 	test_i18ngrep ! "^HEAD is now at" stderr
 '
 
-test_expect_success 'wildcard ambiguation, paths win' '
-	git init ambi &&
-	(
-		cd ambi &&
-		echo a >a.c &&
-		git add a.c &&
-		echo b >a.c &&
-		git checkout "*.c" &&
-		echo a >expect &&
-		test_cmp expect a.c
-	)
-'
-
-test_expect_success !MINGW 'wildcard ambiguation, refs lose' '
-	git init ambi2 &&
-	(
-		cd ambi2 &&
-		echo a >"*.c" &&
-		git add . &&
-		test_must_fail git show :"*.c" &&
-		git show :"*.c" -- >actual &&
-		echo a >expect &&
-		test_cmp expect actual
-	)
-'
-
 test_done
diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh
index 0a804da..cbfa41e 100755
--- a/t/t2025-worktree-add.sh
+++ b/t/t2025-worktree-add.sh
@@ -193,6 +193,21 @@
 	test_must_fail git worktree add -B poodle --detach bamboo master
 '
 
+test_expect_success '"add -B" fails if the branch is checked out' '
+	git rev-parse newmaster >before &&
+	test_must_fail git worktree add -B newmaster bamboo master &&
+	git rev-parse newmaster >after &&
+	test_cmp before after
+'
+
+test_expect_success 'add -B' '
+	git worktree add -B poodle bamboo2 master^ &&
+	git -C bamboo2 symbolic-ref HEAD >actual &&
+	echo refs/heads/poodle >expected &&
+	test_cmp expected actual &&
+	test_cmp_rev master^ poodle
+'
+
 test_expect_success 'local clone from linked checkout' '
 	git clone --local here here-clone &&
 	( cd here-clone && git fsck )
diff --git a/t/t2027-worktree-list.sh b/t/t2027-worktree-list.sh
index 75ebb1b..1b1b65a 100755
--- a/t/t2027-worktree-list.sh
+++ b/t/t2027-worktree-list.sh
@@ -8,6 +8,16 @@
 	test_commit init
 '
 
+test_expect_success 'rev-parse --git-common-dir on main worktree' '
+	git rev-parse --git-common-dir >actual &&
+	echo .git >expected &&
+	test_cmp expected actual &&
+	mkdir sub &&
+	git -C sub rev-parse --git-common-dir >actual2 &&
+	echo sub/.git >expected2 &&
+	test_cmp expected2 actual2
+'
+
 test_expect_success '"list" all worktrees from main' '
 	echo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect &&
 	test_when_finished "rm -rf here && git worktree prune" &&
diff --git a/t/t3032-merge-recursive-options.sh b/t/t3032-merge-recursive-space-options.sh
similarity index 98%
rename from t/t3032-merge-recursive-options.sh
rename to t/t3032-merge-recursive-space-options.sh
index 4029c9c..b56180e 100755
--- a/t/t3032-merge-recursive-options.sh
+++ b/t/t3032-merge-recursive-space-options.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-test_description='merge-recursive options
+test_description='merge-recursive space options
 
 * [master] Clarify
  ! [remote] Remove cruft
diff --git a/t/t3034-merge-recursive-rename-options.sh b/t/t3034-merge-recursive-rename-options.sh
new file mode 100755
index 0000000..b9c4028
--- /dev/null
+++ b/t/t3034-merge-recursive-rename-options.sh
@@ -0,0 +1,312 @@
+#!/bin/sh
+
+test_description='merge-recursive rename options
+
+Test rename detection by examining rename/delete conflicts.
+
+* (HEAD -> rename) rename
+| * (master) delete
+|/
+* base
+
+git diff --name-status base master
+D	0-old
+D	1-old
+D	2-old
+D	3-old
+
+git diff --name-status -M01 base rename
+R025    0-old   0-new
+R050    1-old   1-new
+R075    2-old   2-new
+R100    3-old   3-new
+
+Actual similarity indices are parsed from diff output. We rely on the fact that
+they are rounded down (see, e.g., Documentation/diff-generate-patch.txt, which
+mentions this in a different context).
+'
+
+. ./test-lib.sh
+
+get_expected_stages () {
+	git checkout rename -- $1-new &&
+	git ls-files --stage $1-new >expected-stages-undetected-$1 &&
+	sed "s/ 0	/ 2	/" <expected-stages-undetected-$1 \
+		>expected-stages-detected-$1 &&
+	git read-tree -u --reset HEAD
+}
+
+rename_detected () {
+	git ls-files --stage $1-old $1-new >stages-actual-$1 &&
+	test_cmp expected-stages-detected-$1 stages-actual-$1
+}
+
+rename_undetected () {
+	git ls-files --stage $1-old $1-new >stages-actual-$1 &&
+	test_cmp expected-stages-undetected-$1 stages-actual-$1
+}
+
+check_common () {
+	git ls-files --stage >stages-actual &&
+	test_line_count = 4 stages-actual
+}
+
+check_threshold_0 () {
+	check_common &&
+	rename_detected 0 &&
+	rename_detected 1 &&
+	rename_detected 2 &&
+	rename_detected 3
+}
+
+check_threshold_1 () {
+	check_common &&
+	rename_undetected 0 &&
+	rename_detected 1 &&
+	rename_detected 2 &&
+	rename_detected 3
+}
+
+check_threshold_2 () {
+	check_common &&
+	rename_undetected 0 &&
+	rename_undetected 1 &&
+	rename_detected 2 &&
+	rename_detected 3
+}
+
+check_exact_renames () {
+	check_common &&
+	rename_undetected 0 &&
+	rename_undetected 1 &&
+	rename_undetected 2 &&
+	rename_detected 3
+}
+
+check_no_renames () {
+	check_common &&
+	rename_undetected 0 &&
+	rename_undetected 1 &&
+	rename_undetected 2 &&
+	rename_undetected 3
+}
+
+test_expect_success 'setup repo' '
+	cat <<-\EOF >3-old &&
+	33a
+	33b
+	33c
+	33d
+	EOF
+	sed s/33/22/ <3-old >2-old &&
+	sed s/33/11/ <3-old >1-old &&
+	sed s/33/00/ <3-old >0-old &&
+	git add [0-3]-old &&
+	git commit -m base &&
+	git rm [0-3]-old &&
+	git commit -m delete &&
+	git checkout -b rename HEAD^ &&
+	cp 3-old 3-new &&
+	sed 1,1s/./x/ <2-old >2-new &&
+	sed 1,2s/./x/ <1-old >1-new &&
+	sed 1,3s/./x/ <0-old >0-new &&
+	git add [0-3]-new &&
+	git rm [0-3]-old &&
+	git commit -m rename &&
+	get_expected_stages 0 &&
+	get_expected_stages 1 &&
+	get_expected_stages 2 &&
+	get_expected_stages 3 &&
+	check_50="false" &&
+	tail="HEAD^ -- HEAD master"
+'
+
+test_expect_success 'setup thresholds' '
+	git diff --name-status -M01 HEAD^ HEAD >diff-output &&
+	test_debug "cat diff-output" &&
+	test_line_count = 4 diff-output &&
+	grep "R[0-9][0-9][0-9]	\([0-3]\)-old	\1-new" diff-output \
+		>grep-output &&
+	test_cmp diff-output grep-output &&
+	th0=$(sed -n "s/R\(...\)	0-old	0-new/\1/p" <diff-output) &&
+	th1=$(sed -n "s/R\(...\)	1-old	1-new/\1/p" <diff-output) &&
+	th2=$(sed -n "s/R\(...\)	2-old	2-new/\1/p" <diff-output) &&
+	th3=$(sed -n "s/R\(...\)	3-old	3-new/\1/p" <diff-output) &&
+	test "$th0" -lt "$th1" &&
+	test "$th1" -lt "$th2" &&
+	test "$th2" -lt "$th3" &&
+	test "$th3" = 100 &&
+	if test 50 -le "$th0"
+	then
+		check_50=check_threshold_0
+	elif test 50 -le "$th1"
+	then
+		check_50=check_threshold_1
+	elif test 50 -le "$th2"
+	then
+		check_50=check_threshold_2
+	fi &&
+	th0="$th0%" &&
+	th1="$th1%" &&
+	th2="$th2%" &&
+	th3="$th3%"
+'
+
+test_expect_success 'assumption for tests: rename detection with diff' '
+	git diff --name-status -M$th0 --diff-filter=R HEAD^ HEAD \
+		>diff-output-0 &&
+	git diff --name-status -M$th1 --diff-filter=R HEAD^ HEAD \
+		>diff-output-1 &&
+	git diff --name-status -M$th2 --diff-filter=R HEAD^ HEAD \
+		>diff-output-2 &&
+	git diff --name-status -M100% --diff-filter=R HEAD^ HEAD \
+		>diff-output-3 &&
+	test_line_count = 4 diff-output-0 &&
+	test_line_count = 3 diff-output-1 &&
+	test_line_count = 2 diff-output-2 &&
+	test_line_count = 1 diff-output-3
+'
+
+test_expect_success 'default similarity threshold is 50%' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive $tail &&
+	$check_50
+'
+
+test_expect_success 'low rename threshold' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=$th0 $tail &&
+	check_threshold_0
+'
+
+test_expect_success 'medium rename threshold' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=$th1 $tail &&
+	check_threshold_1
+'
+
+test_expect_success 'high rename threshold' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=$th2 $tail &&
+	check_threshold_2
+'
+
+test_expect_success 'exact renames only' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=100% $tail &&
+	check_exact_renames
+'
+
+test_expect_success 'rename threshold is truncated' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=200% $tail &&
+	check_exact_renames
+'
+
+test_expect_success 'disabled rename detection' '
+	git read-tree --reset -u HEAD &&
+	git merge-recursive --no-renames $tail &&
+	check_no_renames
+'
+
+test_expect_success 'last wins in --find-renames=<m> --find-renames=<n>' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive \
+		--find-renames=$th0 --find-renames=$th2 $tail &&
+	check_threshold_2
+'
+
+test_expect_success '--find-renames resets threshold' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive \
+		--find-renames=$th0 --find-renames $tail &&
+	$check_50
+'
+
+test_expect_success 'last wins in --no-renames --find-renames' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --no-renames --find-renames $tail &&
+	$check_50
+'
+
+test_expect_success 'last wins in --find-renames --no-renames' '
+	git read-tree --reset -u HEAD &&
+	git merge-recursive --find-renames --no-renames $tail &&
+	check_no_renames
+'
+
+test_expect_success 'assumption for further tests: trivial merge succeeds' '
+	git read-tree --reset -u HEAD &&
+	git merge-recursive HEAD -- HEAD HEAD &&
+	git diff --quiet --cached &&
+	git merge-recursive --find-renames=$th0 HEAD -- HEAD HEAD &&
+	git diff --quiet --cached &&
+	git merge-recursive --find-renames=$th2 HEAD -- HEAD HEAD &&
+	git diff --quiet --cached &&
+	git merge-recursive --find-renames=100% HEAD -- HEAD HEAD &&
+	git diff --quiet --cached &&
+	git merge-recursive --no-renames HEAD -- HEAD HEAD &&
+	git diff --quiet --cached
+'
+
+test_expect_success '--find-renames rejects negative argument' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=-25 \
+		HEAD -- HEAD HEAD &&
+	git diff --quiet --cached
+'
+
+test_expect_success '--find-renames rejects non-numbers' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --find-renames=0xf \
+		HEAD -- HEAD HEAD &&
+	git diff --quiet --cached
+'
+
+test_expect_success 'rename-threshold=<n> is a synonym for find-renames=<n>' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --rename-threshold=$th0 $tail &&
+	check_threshold_0
+'
+
+test_expect_success 'last wins in --no-renames --rename-threshold=<n>' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --no-renames --rename-threshold=$th0 $tail &&
+	check_threshold_0
+'
+
+test_expect_success 'last wins in --rename-threshold=<n> --no-renames' '
+	git read-tree --reset -u HEAD &&
+	git merge-recursive --rename-threshold=$th0 --no-renames $tail &&
+	check_no_renames
+'
+
+test_expect_success '--rename-threshold=<n> rejects negative argument' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --rename-threshold=-25 \
+		HEAD -- HEAD HEAD &&
+	git diff --quiet --cached
+'
+
+test_expect_success '--rename-threshold=<n> rejects non-numbers' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive --rename-threshold=0xf \
+		HEAD -- HEAD HEAD &&
+	git diff --quiet --cached
+'
+
+test_expect_success 'last wins in --rename-threshold=<m> --find-renames=<n>' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive \
+		--rename-threshold=$th0 --find-renames=$th2 $tail &&
+	check_threshold_2
+'
+
+test_expect_success 'last wins in --find-renames=<m> --rename-threshold=<n>' '
+	git read-tree --reset -u HEAD &&
+	test_must_fail git merge-recursive \
+		--find-renames=$th2 --rename-threshold=$th0 $tail &&
+	check_threshold_0
+'
+
+test_done
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index cdaf6f6..a897248 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -446,6 +446,13 @@
 	test_must_fail git branch --set-upstream-to HEAD^{}
 '
 
+test_expect_success '--set-upstream-to fails on locked config' '
+	test_when_finished "rm -f .git/config.lock" &&
+	>.git/config.lock &&
+	git branch locked &&
+	test_must_fail git branch --set-upstream-to locked
+'
+
 test_expect_success 'use --set-upstream-to modify HEAD' '
 	test_config branch.master.remote foo &&
 	test_config branch.master.merge foo &&
@@ -466,6 +473,13 @@
 	test_must_fail git branch --unset-upstream i-dont-exist
 '
 
+test_expect_success '--unset-upstream should fail if config is locked' '
+	test_when_finished "rm -f .git/config.lock" &&
+	git branch --set-upstream-to locked &&
+	>.git/config.lock &&
+	test_must_fail git branch --unset-upstream
+'
+
 test_expect_success 'test --unset-upstream on HEAD' '
 	git branch my14 &&
 	test_config branch.master.remote foo &&
@@ -579,7 +593,7 @@
 	git config remote.ambi1.fetch refs/heads/lalala:refs/heads/master &&
 	git config remote.ambi2.url lilili &&
 	git config remote.ambi2.fetch refs/heads/lilili:refs/heads/master &&
-	git branch all1 master &&
+	test_must_fail git branch all1 master &&
 	test -z "$(git config branch.all1.merge)"
 '
 
diff --git a/t/t5313-pack-bounds-checks.sh b/t/t5313-pack-bounds-checks.sh
new file mode 100755
index 0000000..a8a587a
--- /dev/null
+++ b/t/t5313-pack-bounds-checks.sh
@@ -0,0 +1,179 @@
+#!/bin/sh
+
+test_description='bounds-checking of access to mmapped on-disk file formats'
+. ./test-lib.sh
+
+clear_base () {
+	test_when_finished 'restore_base' &&
+	rm -f $base
+}
+
+restore_base () {
+	cp base-backup/* .git/objects/pack/
+}
+
+do_pack () {
+	pack_objects=$1; shift
+	sha1=$(
+		for i in $pack_objects
+		do
+			echo $i
+		done | git pack-objects "$@" .git/objects/pack/pack
+	) &&
+	pack=.git/objects/pack/pack-$sha1.pack &&
+	idx=.git/objects/pack/pack-$sha1.idx &&
+	chmod +w $pack $idx &&
+	test_when_finished 'rm -f "$pack" "$idx"'
+}
+
+munge () {
+	printf "$3" | dd of="$1" bs=1 conv=notrunc seek=$2
+}
+
+# Offset in a v2 .idx to its initial and extended offset tables. For an index
+# with "nr" objects, this is:
+#
+#   magic(4) + version(4) + fan-out(4*256) + sha1s(20*nr) + crc(4*nr),
+#
+# for the initial, and another ofs(4*nr) past that for the extended.
+#
+ofs_table () {
+	echo $((4 + 4 + 4*256 + 20*$1 + 4*$1))
+}
+extended_table () {
+	echo $(($(ofs_table "$1") + 4*$1))
+}
+
+test_expect_success 'set up base packfile and variables' '
+	# the hash of this content starts with ff, which
+	# makes some later computations much simpler
+	echo 74 >file &&
+	git add file &&
+	git commit -m base &&
+	git repack -ad &&
+	base=$(echo .git/objects/pack/*) &&
+	chmod +w $base &&
+	mkdir base-backup &&
+	cp $base base-backup/ &&
+	object=$(git rev-parse HEAD:file)
+'
+
+test_expect_success 'pack/index object count mismatch' '
+	do_pack $object &&
+	munge $pack 8 "\377\0\0\0" &&
+	clear_base &&
+
+	# We enumerate the objects from the completely-fine
+	# .idx, but notice later that the .pack is bogus
+	# and fail to show any data.
+	echo "$object missing" >expect &&
+	git cat-file --batch-all-objects --batch-check >actual &&
+	test_cmp expect actual &&
+
+	# ...and here fail to load the object (without segfaulting),
+	# but fallback to a good copy if available.
+	test_must_fail git cat-file blob $object &&
+	restore_base &&
+	git cat-file blob $object >actual &&
+	test_cmp file actual &&
+
+	# ...and make sure that index-pack --verify, which has its
+	# own reading routines, does not segfault.
+	test_must_fail git index-pack --verify $pack
+'
+
+test_expect_success 'matched bogus object count' '
+	do_pack $object &&
+	munge $pack 8 "\377\0\0\0" &&
+	munge $idx $((255 * 4)) "\377\0\0\0" &&
+	clear_base &&
+
+	# Unlike above, we should notice early that the .idx is totally
+	# bogus, and not even enumerate its contents.
+	>expect &&
+	git cat-file --batch-all-objects --batch-check >actual &&
+	test_cmp expect actual &&
+
+	# But as before, we can do the same object-access checks.
+	test_must_fail git cat-file blob $object &&
+	restore_base &&
+	git cat-file blob $object >actual &&
+	test_cmp file actual &&
+
+	test_must_fail git index-pack --verify $pack
+'
+
+# Note that we cannot check the fallback case for these
+# further .idx tests, as we notice the problem in functions
+# whose interface doesn't allow an error return (like use_pack()),
+# and thus we just die().
+#
+# There's also no point in doing enumeration tests, as
+# we are munging offsets here, which are about looking up
+# specific objects.
+
+test_expect_success 'bogus object offset (v1)' '
+	do_pack $object --index-version=1 &&
+	munge $idx $((4 * 256)) "\377\0\0\0" &&
+	clear_base &&
+	test_must_fail git cat-file blob $object &&
+	test_must_fail git index-pack --verify $pack
+'
+
+test_expect_success 'bogus object offset (v2, no msb)' '
+	do_pack $object --index-version=2 &&
+	munge $idx $(ofs_table 1) "\0\377\0\0" &&
+	clear_base &&
+	test_must_fail git cat-file blob $object &&
+	test_must_fail git index-pack --verify $pack
+'
+
+test_expect_success 'bogus offset into v2 extended table' '
+	do_pack $object --index-version=2 &&
+	munge $idx $(ofs_table 1) "\377\0\0\0" &&
+	clear_base &&
+	test_must_fail git cat-file blob $object &&
+	test_must_fail git index-pack --verify $pack
+'
+
+test_expect_success 'bogus offset inside v2 extended table' '
+	# We need two objects here, so we can plausibly require
+	# an extended table (if the first object were larger than 2^31).
+	do_pack "$object $(git rev-parse HEAD)" --index-version=2 &&
+
+	# We have to make extra room for the table, so we cannot
+	# just munge in place as usual.
+	{
+		dd if=$idx bs=1 count=$(($(ofs_table 2) + 4)) &&
+		printf "\200\0\0\0" &&
+		printf "\377\0\0\0\0\0\0\0" &&
+		dd if=$idx bs=1 skip=$(extended_table 2)
+	} >tmp &&
+	mv tmp "$idx" &&
+	clear_base &&
+	test_must_fail git cat-file blob $object &&
+	test_must_fail git index-pack --verify $pack
+'
+
+test_expect_success 'bogus OFS_DELTA in packfile' '
+	# Generate a pack with a delta in it.
+	base=$(test-genrandom foo 3000 | git hash-object --stdin -w) &&
+	delta=$(test-genrandom foo 2000 | git hash-object --stdin -w) &&
+	do_pack "$base $delta" --delta-base-offset &&
+	rm -f .git/objects/??/* &&
+
+	# Double check that we have the delta we expect.
+	echo $base >expect &&
+	echo $delta | git cat-file --batch-check="%(deltabase)" >actual &&
+	test_cmp expect actual &&
+
+	# Now corrupt it. We assume the varint size for the delta is small
+	# enough to fit in the first byte (which it should be, since it
+	# is a pure deletion from the base), and that original ofs_delta
+	# takes 2 bytes (which it should, as it should be ~3000).
+	ofs=$(git show-index <$idx | grep $delta | cut -d" " -f1) &&
+	munge $pack $(($ofs + 1)) "\177\377" &&
+	test_must_fail git cat-file blob $delta >/dev/null
+'
+
+test_done
diff --git a/t/t5504-fetch-receive-strict.sh b/t/t5504-fetch-receive-strict.sh
index 89224ed..a3e12d2 100755
--- a/t/t5504-fetch-receive-strict.sh
+++ b/t/t5504-fetch-receive-strict.sh
@@ -101,7 +101,10 @@
 		git config transfer.fsckobjects false
 	) &&
 	test_must_fail ok=sigpipe git push --porcelain dst master:refs/heads/test >act &&
-	test_cmp exp act
+	{
+		test_cmp exp act ||
+		! test -s act
+	}
 '
 
 test_expect_success 'push with transfer.fsckobjects' '
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index 0dcc752..dd2e6ce 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -144,6 +144,39 @@
 	)
 '
 
+test_expect_success 'remove errors out early when deleting non-existent branch' '
+	(
+		cd test &&
+		echo "fatal: No such remote: foo" >expect &&
+		test_must_fail git remote rm foo 2>actual &&
+		test_i18ncmp expect actual
+	)
+'
+
+test_expect_success 'rename errors out early when deleting non-existent branch' '
+	(
+		cd test &&
+		echo "fatal: No such remote: foo" >expect &&
+		test_must_fail git remote rename foo bar 2>actual &&
+		test_i18ncmp expect actual
+	)
+'
+
+test_expect_success 'add existing foreign_vcs remote' '
+	test_config remote.foo.vcs bar &&
+	echo "fatal: remote foo already exists." >expect &&
+	test_must_fail git remote add foo bar 2>actual &&
+	test_i18ncmp expect actual
+'
+
+test_expect_success 'add existing foreign_vcs remote' '
+	test_config remote.foo.vcs bar &&
+	test_config remote.bar.vcs bar &&
+	echo "fatal: remote bar already exists." >expect &&
+	test_must_fail git remote rename foo bar 2>actual &&
+	test_i18ncmp expect actual
+'
+
 cat >test/expect <<EOF
 * remote origin
   Fetch URL: $(pwd)/one
@@ -937,6 +970,15 @@
 	echo foo | get_url_test --push --all someremote
 '
 
+test_expect_success 'remote set-url with locked config' '
+	test_when_finished "rm -f .git/config.lock" &&
+	git config --get-all remote.someremote.url >expect &&
+	>.git/config.lock &&
+	test_must_fail git remote set-url someremote baz &&
+	git config --get-all remote.someremote.url >actual &&
+	cmp expect actual
+'
+
 test_expect_success 'remote set-url bar' '
 	git remote set-url someremote bar &&
 	echo bar >expect &&
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 0c10c85..38321d1 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -679,10 +679,12 @@
 	EOF
 	git clone "file://$D" auto-gc &&
 	test_commit test2 &&
-	cd auto-gc &&
-	git config gc.autoPackLimit 1 &&
-	GIT_ASK_YESNO="$D/askyesno" git fetch >fetch.out 2>&1 &&
-	! grep "Should I try again" fetch.out
+	(
+		cd auto-gc &&
+		git config gc.autoPackLimit 1 &&
+		GIT_ASK_YESNO="$D/askyesno" git fetch >fetch.out 2>&1 &&
+		! grep "Should I try again" fetch.out
+	)
 '
 
 test_done
diff --git a/t/t6133-pathspec-rev-dwim.sh b/t/t6133-pathspec-rev-dwim.sh
new file mode 100755
index 0000000..a290ffc
--- /dev/null
+++ b/t/t6133-pathspec-rev-dwim.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+test_description='test dwim of revs versus pathspecs in revision parser'
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+	test_commit base &&
+	echo content >"br[ack]ets" &&
+	git add . &&
+	test_tick &&
+	git commit -m brackets
+'
+
+test_expect_success 'non-rev wildcard dwims to pathspec' '
+	git log -- "*.t" >expect &&
+	git log    "*.t" >actual &&
+	test_cmp expect actual
+'
+
+test_expect_success 'tree:path with metacharacters dwims to rev' '
+	git show "HEAD:br[ack]ets" -- >expect &&
+	git show "HEAD:br[ack]ets"    >actual &&
+	test_cmp expect actual
+'
+
+test_expect_success '^{foo} with metacharacters dwims to rev' '
+	git log "HEAD^{/b.*}" -- >expect &&
+	git log "HEAD^{/b.*}"    >actual &&
+	test_cmp expect actual
+'
+
+test_expect_success '@{foo} with metacharacters dwims to rev' '
+	git log "HEAD@{now [or thereabouts]}" -- >expect &&
+	git log "HEAD@{now [or thereabouts]}"    >actual &&
+	test_cmp expect actual
+'
+
+test_expect_success ':/*.t from a subdir dwims to a pathspec' '
+	mkdir subdir &&
+	(
+		cd subdir &&
+		git log -- ":/*.t" >expect &&
+		git log    ":/*.t" >actual &&
+		test_cmp expect actual
+	)
+'
+
+test_done
diff --git a/t/t6302-for-each-ref-filter.sh b/t/t6302-for-each-ref-filter.sh
index fe4796c..bcf472b 100755
--- a/t/t6302-for-each-ref-filter.sh
+++ b/t/t6302-for-each-ref-filter.sh
@@ -133,6 +133,48 @@
 	test_cmp expect actual
 '
 
+cat >expect <<-\EOF
+|       refname is refs/heads/master       |refs/heads/master
+|        refname is refs/heads/side        |refs/heads/side
+|         refname is refs/odd/spot         |refs/odd/spot
+|     refname is refs/tags/double-tag      |refs/tags/double-tag
+|        refname is refs/tags/four         |refs/tags/four
+|         refname is refs/tags/one         |refs/tags/one
+|     refname is refs/tags/signed-tag      |refs/tags/signed-tag
+|        refname is refs/tags/three        |refs/tags/three
+|         refname is refs/tags/two         |refs/tags/two
+EOF
+
+test_align_permutations() {
+	while read -r option
+	do
+		test_expect_success "align:$option" '
+			git for-each-ref --format="|%(align:$option)refname is %(refname)%(end)|%(refname)" >actual &&
+			test_cmp expect actual
+		'
+	done
+}
+
+test_align_permutations <<-\EOF
+	middle,42
+	42,middle
+	position=middle,42
+	42,position=middle
+	middle,width=42
+	width=42,middle
+	position=middle,width=42
+	width=42,position=middle
+EOF
+
+# Last one wins (silently) when multiple arguments of the same type are given
+
+test_align_permutations <<-\EOF
+	32,width=42,middle
+	width=30,42,middle
+	width=42,position=right,middle
+	42,right,position=middle
+EOF
+
 # Individual atoms inside %(align:...) and %(end) must not be quoted.
 
 test_expect_success 'alignment with format quote' "
diff --git a/t/t7008-grep-binary.sh b/t/t7008-grep-binary.sh
index b146406..9c9c378 100755
--- a/t/t7008-grep-binary.sh
+++ b/t/t7008-grep-binary.sh
@@ -141,7 +141,8 @@
 	test_cmp expect actual &&
 	echo "b diff" >.gitattributes &&
 	echo "b:binQary" >expect &&
-	git grep bin b | nul_to_q >actual &&
+	git grep bin b >actual.raw &&
+	nul_to_q <actual.raw >actual &&
 	test_cmp expect actual
 '
 
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 540771c..e1abd19 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -849,6 +849,19 @@
 	git commit -m "submodule example2 added"
 '
 
+test_expect_success 'submodule deinit works on repository without submodules' '
+	test_when_finished "rm -rf newdirectory" &&
+	mkdir newdirectory &&
+	(
+		cd newdirectory &&
+		git init &&
+		>file &&
+		git add file &&
+		git commit -m "repo should not be empty"
+		git submodule deinit .
+	)
+'
+
 test_expect_success 'submodule deinit should remove the whole submodule section from .git/config' '
 	git config submodule.example.foo bar &&
 	git config submodule.example2.frotz nitfol &&
@@ -999,5 +1012,30 @@
 	)
 '
 
+test_expect_success 'submodule helper list is not confused by common prefixes' '
+	mkdir -p dir1/b &&
+	(
+		cd dir1/b &&
+		git init &&
+		echo hi >testfile2 &&
+		git add . &&
+		git commit -m "test1"
+	) &&
+	mkdir -p dir2/b &&
+	(
+		cd dir2/b &&
+		git init &&
+		echo hello >testfile1 &&
+		git add .  &&
+		git commit -m "test2"
+	) &&
+	git submodule add /dir1/b dir1/b &&
+	git submodule add /dir2/b dir2/b &&
+	git commit -m "first submodule commit" &&
+	git submodule--helper list dir1/b |cut -c51- >actual &&
+	echo "dir1/b" >expect &&
+	test_cmp expect actual
+'
+
 
 test_done
diff --git a/t/t7409-submodule-detached-worktree.sh b/t/t7409-submodule-detached-work-tree.sh
similarity index 100%
rename from t/t7409-submodule-detached-worktree.sh
rename to t/t7409-submodule-detached-work-tree.sh
diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh
index 847d098..75da219 100755
--- a/t/t8005-blame-i18n.sh
+++ b/t/t8005-blame-i18n.sh
@@ -33,11 +33,15 @@
 summary $SJIS_MSG
 EOF
 
+filter_author_summary () {
+	sed -n -e '/^author /p' -e '/^summary /p' "$@"
+}
+
 test_expect_success !MINGW \
 	'blame respects i18n.commitencoding' '
-	git blame --incremental file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 cat >expected <<EOF
@@ -52,9 +56,9 @@
 test_expect_success !MINGW \
 	'blame respects i18n.logoutputencoding' '
 	git config i18n.logoutputencoding eucJP &&
-	git blame --incremental file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 cat >expected <<EOF
@@ -68,9 +72,9 @@
 
 test_expect_success !MINGW \
 	'blame respects --encoding=UTF-8' '
-	git blame --incremental --encoding=UTF-8 file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental --encoding=UTF-8 file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 cat >expected <<EOF
@@ -84,9 +88,9 @@
 
 test_expect_success !MINGW \
 	'blame respects --encoding=none' '
-	git blame --incremental --encoding=none file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental --encoding=none file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 test_done
diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh
index a526d60..a94286c 100755
--- a/t/t9108-git-svn-glob.sh
+++ b/t/t9108-git-svn-glob.sh
@@ -86,9 +86,12 @@
 	test_cmp expect.two output.two
 	'
 
-echo "Only one set of wildcard directories" \
-     "(e.g. '*' or '*/*/*') is supported: 'branches/*/t/*'" > expect.three
-echo "" >> expect.three
+test_expect_success 'prepare test disallow multi-globs' "
+cat >expect.three <<EOF
+Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/*
+
+EOF
+	"
 
 test_expect_success 'test disallow multi-globs' '
 	git config --add svn-remote.three.url "$svnrepo" &&
diff --git a/t/t9109-git-svn-multi-glob.sh b/t/t9109-git-svn-multi-glob.sh
index f36b749..8d99e84 100755
--- a/t/t9109-git-svn-multi-glob.sh
+++ b/t/t9109-git-svn-multi-glob.sh
@@ -135,9 +135,12 @@
 	test_cmp expect.four output.four
 	'
 
-echo "Only one set of wildcard directories" \
-     "(e.g. '*' or '*/*/*') is supported: 'branches/*/t/*'" > expect.three
-echo "" >> expect.three
+test_expect_success 'prepare test disallow multiple globs' "
+cat >expect.three <<EOF
+Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/*
+
+EOF
+	"
 
 test_expect_success 'test disallow multiple globs' '
 	git config --add svn-remote.three.url "$svnrepo" &&
diff --git a/t/t9115-git-svn-dcommit-funky-renames.sh b/t/t9115-git-svn-dcommit-funky-renames.sh
index 0990f8d..a87d3d3 100755
--- a/t/t9115-git-svn-dcommit-funky-renames.sh
+++ b/t/t9115-git-svn-dcommit-funky-renames.sh
@@ -93,7 +93,7 @@
 # > to special UNICODE characters in the range 0xf000 to 0xf0ff (the
 # > "Private use area") when creating or accessing files.
 prepare_a_utf8_locale
-test_expect_success UTF8 'svn.pathnameencoding=cp932 new file on dcommit' '
+test_expect_success UTF8,!MINGW,!UTF8_NFD_TO_NFC 'svn.pathnameencoding=cp932 new file on dcommit' '
 	LC_ALL=$a_utf8_locale &&
 	export LC_ALL &&
 	neq=$(printf "\201\202") &&
@@ -105,7 +105,7 @@
 '
 
 # See the comment on the above test for setting of LC_ALL.
-test_expect_success 'svn.pathnameencoding=cp932 rename on dcommit' '
+test_expect_success !MINGW,!UTF8_NFD_TO_NFC 'svn.pathnameencoding=cp932 rename on dcommit' '
 	LC_ALL=$a_utf8_locale &&
 	export LC_ALL &&
 	inf=$(printf "\201\207") &&
diff --git a/t/t9117-git-svn-init-clone.sh b/t/t9117-git-svn-init-clone.sh
index a66f43c..69a6750 100755
--- a/t/t9117-git-svn-init-clone.sh
+++ b/t/t9117-git-svn-init-clone.sh
@@ -119,4 +119,10 @@
 	rm -f warning
 	'
 
+test_expect_success 'init with -T as a full url works' '
+	test ! -d project &&
+	git svn init -T "$svnrepo"/project/trunk project &&
+	rm -rf project
+	'
+
 test_done
diff --git a/t/t9168-git-svn-partially-globbed-names.sh b/t/t9168-git-svn-partially-globbed-names.sh
new file mode 100755
index 0000000..8b22f22
--- /dev/null
+++ b/t/t9168-git-svn-partially-globbed-names.sh
@@ -0,0 +1,223 @@
+#!/bin/sh
+test_description='git svn globbing refspecs with prefixed globs'
+. ./lib-git-svn.sh
+
+test_expect_success 'prepare test refspec prefixed globbing' '
+	cat >expect.end <<EOF
+the end
+hi
+start a new branch
+initial
+EOF
+	'
+
+test_expect_success 'test refspec prefixed globbing' '
+	mkdir -p trunk/src/a trunk/src/b trunk/doc &&
+	echo "hello world" >trunk/src/a/readme &&
+	echo "goodbye world" >trunk/src/b/readme &&
+	svn_cmd import -m "initial" trunk "$svnrepo"/trunk &&
+	svn_cmd co "$svnrepo" tmp &&
+	(
+		cd tmp &&
+		mkdir branches tags &&
+		svn_cmd add branches tags &&
+		svn_cmd cp trunk branches/b_start &&
+		svn_cmd commit -m "start a new branch" &&
+		svn_cmd up &&
+		echo "hi" >>branches/b_start/src/b/readme &&
+		poke branches/b_start/src/b/readme &&
+		echo "hey" >>branches/b_start/src/a/readme &&
+		poke branches/b_start/src/a/readme &&
+		svn_cmd commit -m "hi" &&
+		svn_cmd up &&
+		svn_cmd cp branches/b_start tags/t_end &&
+		echo "bye" >>tags/t_end/src/b/readme &&
+		poke tags/t_end/src/b/readme &&
+		echo "aye" >>tags/t_end/src/a/readme &&
+		poke tags/t_end/src/a/readme &&
+		svn_cmd commit -m "the end" &&
+		echo "byebye" >>tags/t_end/src/b/readme &&
+		poke tags/t_end/src/b/readme &&
+		svn_cmd commit -m "nothing to see here"
+	) &&
+	git config --add svn-remote.svn.url "$svnrepo" &&
+	git config --add svn-remote.svn.fetch \
+			 "trunk/src/a:refs/remotes/trunk" &&
+	git config --add svn-remote.svn.branches \
+			 "branches/b_*/src/a:refs/remotes/branches/b_*" &&
+	git config --add svn-remote.svn.tags\
+			 "tags/t_*/src/a:refs/remotes/tags/t_*" &&
+	git svn multi-fetch &&
+	git log --pretty=oneline refs/remotes/tags/t_end | \
+	    sed -e "s/^.\{41\}//" >output.end &&
+	test_cmp expect.end output.end &&
+	test "$(git rev-parse refs/remotes/tags/t_end~1)" = \
+		"$(git rev-parse refs/remotes/branches/b_start)" &&
+	test "$(git rev-parse refs/remotes/branches/b_start~2)" = \
+		"$(git rev-parse refs/remotes/trunk)" &&
+	test_must_fail git rev-parse refs/remotes/tags/t_end@3
+	'
+
+test_expect_success 'prepare test left-hand-side only prefixed globbing' '
+	echo try to try >expect.two &&
+	echo nothing to see here >>expect.two &&
+	cat expect.end >>expect.two
+	'
+
+test_expect_success 'test left-hand-side only prefixed globbing' '
+	git config --add svn-remote.two.url "$svnrepo" &&
+	git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&
+	git config --add svn-remote.two.branches \
+			 "branches/b_*:refs/remotes/two/branches/*" &&
+	git config --add svn-remote.two.tags \
+			 "tags/t_*:refs/remotes/two/tags/*" &&
+	(
+		cd tmp &&
+		echo "try try" >>tags/t_end/src/b/readme &&
+		poke tags/t_end/src/b/readme &&
+		svn_cmd commit -m "try to try"
+	) &&
+	git svn fetch two &&
+	test $(git rev-list refs/remotes/two/tags/t_end | wc -l) -eq 6 &&
+	test $(git rev-list refs/remotes/two/branches/b_start | wc -l) -eq 3 &&
+	test $(git rev-parse refs/remotes/two/branches/b_start~2) = \
+	     $(git rev-parse refs/remotes/two/trunk) &&
+	test $(git rev-parse refs/remotes/two/tags/t_end~3) = \
+	     $(git rev-parse refs/remotes/two/branches/b_start) &&
+	git log --pretty=oneline refs/remotes/two/tags/t_end | \
+	    sed -e "s/^.\{41\}//" >output.two &&
+	test_cmp expect.two output.two
+	'
+
+test_expect_success 'prepare test prefixed globs match just prefix' '
+	cat >expect.three <<EOF
+Tag commit to t_
+Branch commit to b_
+initial
+EOF
+	'
+
+test_expect_success 'test prefixed globs match just prefix' '
+	git config --add svn-remote.three.url "$svnrepo" &&
+	git config --add svn-remote.three.fetch \
+			 trunk:refs/remotes/three/trunk &&
+	git config --add svn-remote.three.branches \
+			 "branches/b_*:refs/remotes/three/branches/*" &&
+	git config --add svn-remote.three.tags \
+			 "tags/t_*:refs/remotes/three/tags/*" &&
+	(
+		cd tmp &&
+		svn_cmd cp trunk branches/b_ &&
+		echo "Branch commit to b_" >>branches/b_/src/a/readme &&
+		poke branches/b_/src/a/readme &&
+		svn_cmd commit -m "Branch commit to b_" &&
+		svn_cmd up && svn_cmd cp branches/b_ tags/t_ &&
+		echo "Tag commit to t_" >>tags/t_/src/a/readme &&
+		poke tags/t_/src/a/readme &&
+		svn_cmd commit -m "Tag commit to t_" &&
+		svn_cmd up
+	) &&
+	git svn fetch three &&
+	test $(git rev-list refs/remotes/three/branches/b_ | wc -l) -eq 2 &&
+	test $(git rev-list refs/remotes/three/tags/t_ | wc -l) -eq 3 &&
+	test $(git rev-parse refs/remotes/three/branches/b_~1) = \
+	     $(git rev-parse refs/remotes/three/trunk) &&
+	test $(git rev-parse refs/remotes/three/tags/t_~1) = \
+	     $(git rev-parse refs/remotes/three/branches/b_) &&
+	git log --pretty=oneline refs/remotes/three/tags/t_ | \
+	    sed -e "s/^.\{41\}//" >output.three &&
+	test_cmp expect.three output.three
+	'
+
+test_expect_success 'prepare test disallow prefixed multi-globs' "
+cat >expect.four <<EOF
+Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/b_*/t/*
+
+EOF
+	"
+
+test_expect_success 'test disallow prefixed multi-globs' '
+	git config --add svn-remote.four.url "$svnrepo" &&
+	git config --add svn-remote.four.fetch \
+			 trunk:refs/remotes/four/trunk &&
+	git config --add svn-remote.four.branches \
+			 "branches/b_*/t/*:refs/remotes/four/branches/*" &&
+	git config --add svn-remote.four.tags \
+			 "tags/t_*/*:refs/remotes/four/tags/*" &&
+	(
+		cd tmp &&
+		echo "try try" >>tags/t_end/src/b/readme &&
+		poke tags/t_end/src/b/readme &&
+		svn_cmd commit -m "try to try"
+	) &&
+	test_must_fail git svn fetch four 2>stderr.four &&
+	test_cmp expect.four stderr.four &&
+	git config --unset svn-remote.four.branches &&
+	git config --unset svn-remote.four.tags
+	'
+
+test_expect_success 'prepare test globbing in the middle of the word' '
+	cat >expect.five <<EOF
+Tag commit to fghij
+Branch commit to abcde
+initial
+EOF
+	'
+
+test_expect_success 'test globbing in the middle of the word' '
+	git config --add svn-remote.five.url "$svnrepo" &&
+	git config --add svn-remote.five.fetch \
+			 trunk:refs/remotes/five/trunk &&
+	git config --add svn-remote.five.branches \
+			 "branches/a*e:refs/remotes/five/branches/*" &&
+	git config --add svn-remote.five.tags \
+			 "tags/f*j:refs/remotes/five/tags/*" &&
+	(
+		cd tmp &&
+		svn_cmd cp trunk branches/abcde &&
+		echo "Branch commit to abcde" >>branches/abcde/src/a/readme &&
+		poke branches/b_/src/a/readme &&
+		svn_cmd commit -m "Branch commit to abcde" &&
+		svn_cmd up &&
+		svn_cmd cp branches/abcde tags/fghij &&
+		echo "Tag commit to fghij" >>tags/fghij/src/a/readme &&
+		poke tags/fghij/src/a/readme &&
+		svn_cmd commit -m "Tag commit to fghij" &&
+		svn_cmd up
+	) &&
+	git svn fetch five &&
+	test $(git rev-list refs/remotes/five/branches/abcde | wc -l) -eq 2 &&
+	test $(git rev-list refs/remotes/five/tags/fghij | wc -l) -eq 3 &&
+	test $(git rev-parse refs/remotes/five/branches/abcde~1) = \
+	     $(git rev-parse refs/remotes/five/trunk) &&
+	test $(git rev-parse refs/remotes/five/tags/fghij~1) = \
+	     $(git rev-parse refs/remotes/five/branches/abcde) &&
+	git log --pretty=oneline refs/remotes/five/tags/fghij | \
+	    sed -e "s/^.\{41\}//" >output.five &&
+	test_cmp expect.five output.five
+	'
+
+test_expect_success 'prepare test disallow multiple asterisks in one word' "
+	echo \"Only one '*' is allowed in a pattern: 'a*c*e'\" >expect.six &&
+	echo \"\" >>expect.six
+	"
+
+test_expect_success 'test disallow multiple asterisks in one word' '
+	git config --add svn-remote.six.url "$svnrepo" &&
+	git config --add svn-remote.six.fetch \
+			 trunk:refs/remotes/six/trunk &&
+	git config --add svn-remote.six.branches \
+			 "branches/a*c*e:refs/remotes/six/branches/*" &&
+	git config --add svn-remote.six.tags \
+			 "tags/f*h*j:refs/remotes/six/tags/*" &&
+	(
+		cd tmp &&
+		echo "try try" >>tags/fghij/src/b/readme &&
+		poke tags/fghij/src/b/readme &&
+		svn_cmd commit -m "try to try"
+	) &&
+	test_must_fail git svn fetch six 2>stderr.six &&
+	test_cmp expect.six stderr.six
+	'
+
+test_done
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 5cfb9cf..bb879a5 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -35,7 +35,7 @@
 
 check_entries () {
 	# $1 == directory, $2 == expected
-	grep '^/' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual
+	sed -ne '/^\//p' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual
 	if test -z "$2"
 	then
 		>expected
diff --git a/t/t9700/test.pl b/t/t9700/test.pl
index 7e8c40b..1b75c91 100755
--- a/t/t9700/test.pl
+++ b/t/t9700/test.pl
@@ -17,6 +17,12 @@
 use Cwd;
 use File::Basename;
 
+sub adjust_dirsep {
+	my $path = shift;
+	$path =~ s{\\}{/}g;
+	return $path;
+}
+
 BEGIN { use_ok('Git') }
 
 # set up
@@ -33,7 +39,7 @@
 is($r->config_int("test.nonexistent"), undef, "config_int: nonexistent");
 ok($r->config_bool("test.booltrue"), "config_bool: true");
 ok(!$r->config_bool("test.boolfalse"), "config_bool: false");
-is($r->config_path("test.path") =~ s/\\/\//gr, $r->config("test.pathexpanded"),
+is(adjust_dirsep($r->config_path("test.path")), $r->config("test.pathexpanded"),
    "config_path: ~/foo expansion");
 is_deeply([$r->config_path("test.pathmulti")], ["foo", "bar"],
    "config_path: multiple values");
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index c64e5a5..8d99eb3 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -617,7 +617,7 @@
 		return 0
 	elif test $exit_code -gt 129 && test $exit_code -le 192
 	then
-		echo >&2 "test_must_fail: died by signal: $*"
+		echo >&2 "test_must_fail: died by signal $(($exit_code - 128)): $*"
 		return 1
 	elif test $exit_code -eq 127
 	then
diff --git a/templates/hooks--update.sample b/templates/hooks--update.sample
index d847583..80ba941 100755
--- a/templates/hooks--update.sample
+++ b/templates/hooks--update.sample
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# An example hook script to blocks unannotated tags from entering.
+# An example hook script to block unannotated tags from entering.
 # Called by "git receive-pack" with arguments: refname sha1-old sha1-new
 #
 # To enable this hook, rename this file to "update".
diff --git a/test-path-utils.c b/test-path-utils.c
index 6232dfe..ba805b3 100644
--- a/test-path-utils.c
+++ b/test-path-utils.c
@@ -8,21 +8,14 @@
  */
 static int normalize_ceiling_entry(struct string_list_item *item, void *unused)
 {
-	const char *ceil = item->string;
-	int len = strlen(ceil);
-	char buf[PATH_MAX+1];
+	char *ceil = item->string;
 
-	if (len == 0)
+	if (!*ceil)
 		die("Empty path is not supported");
-	if (len > PATH_MAX)
-		die("Path \"%s\" is too long", ceil);
 	if (!is_absolute_path(ceil))
 		die("Path \"%s\" is not absolute", ceil);
-	if (normalize_path_copy(buf, ceil) < 0)
+	if (normalize_path_copy(ceil, ceil) < 0)
 		die("Path \"%s\" could not be normalized", ceil);
-	len = strlen(buf);
-	free(item->string);
-	item->string = xstrdup(buf);
 	return 1;
 }
 
@@ -166,7 +159,7 @@
 int main(int argc, char **argv)
 {
 	if (argc == 3 && !strcmp(argv[1], "normalize_path_copy")) {
-		char *buf = xmalloc(PATH_MAX + 1);
+		char *buf = xmallocz(strlen(argv[2]));
 		int rv = normalize_path_copy(buf, argv[2]);
 		if (rv)
 			buf = "++failed++";
diff --git a/test-run-command.c b/test-run-command.c
index fbe0a27..30a64a9 100644
--- a/test-run-command.c
+++ b/test-run-command.c
@@ -41,7 +41,6 @@
 }
 
 static int task_finished(int result,
-			 struct child_process *cp,
 			 struct strbuf *err,
 			 void *pp_cb,
 			 void *pp_task_cb)
diff --git a/trailer.c b/trailer.c
index 94b387b..8e48a5c 100644
--- a/trailer.c
+++ b/trailer.c
@@ -234,7 +234,7 @@
 	cp.use_shell = 1;
 
 	if (capture_command(&cp, &buf, 1024)) {
-		error("running trailer command '%s' failed", cmd.buf);
+		error(_("running trailer command '%s' failed"), cmd.buf);
 		strbuf_release(&buf);
 		result = xstrdup("");
 	} else {
diff --git a/transport-helper.c b/transport-helper.c
index a6bff8b..b934183 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -321,6 +321,21 @@
 	if (n >= sizeof(buf))
 		die("impossibly large verbosity value");
 	set_helper_option(t, "verbosity", buf);
+
+	switch (t->family) {
+	case TRANSPORT_FAMILY_ALL:
+		/*
+		 * this is already the default,
+		 * do not break old remote helpers by setting "all" here
+		 */
+		break;
+	case TRANSPORT_FAMILY_IPV4:
+		set_helper_option(t, "family", "ipv4");
+		break;
+	case TRANSPORT_FAMILY_IPV6:
+		set_helper_option(t, "family", "ipv6");
+		break;
+	}
 }
 
 static int release_helper(struct transport *transport)
diff --git a/transport.c b/transport.c
index c92f8ae..095e61f 100644
--- a/transport.c
+++ b/transport.c
@@ -163,6 +163,12 @@
 	if (data->conn)
 		return 0;
 
+	switch (transport->family) {
+	case TRANSPORT_FAMILY_ALL: break;
+	case TRANSPORT_FAMILY_IPV4: flags |= CONNECT_IPV4; break;
+	case TRANSPORT_FAMILY_IPV6: flags |= CONNECT_IPV6; break;
+	}
+
 	data->conn = git_connect(data->fd, transport->url,
 				 for_push ? data->options.receivepack :
 				 data->options.uploadpack,
@@ -672,8 +678,9 @@
 		|| starts_with(url, "file://")
 		|| starts_with(url, "git://")
 		|| starts_with(url, "ssh://")
-		|| starts_with(url, "git+ssh://")
-		|| starts_with(url, "ssh+git://")) {
+		|| starts_with(url, "git+ssh://") /* deprecated - do not use */
+		|| starts_with(url, "ssh+git://") /* deprecated - do not use */
+		) {
 		/*
 		 * These are builtin smart transports; "allowed" transports
 		 * will be checked individually in git_connect.
@@ -977,7 +984,7 @@
 		 * This condition shouldn't be met in a non-deepening fetch
 		 * (see builtin/fetch.c:quickfetch()).
 		 */
-		heads = xmalloc(nr_refs * sizeof(*heads));
+		ALLOC_ARRAY(heads, nr_refs);
 		for (rm = refs; rm; rm = rm->next)
 			heads[nr_heads++] = rm;
 	}
@@ -1021,7 +1028,7 @@
  */
 char *transport_anonymize_url(const char *url)
 {
-	char *anon_url, *scheme_prefix, *anon_part;
+	char *scheme_prefix, *anon_part;
 	size_t anon_len, prefix_len = 0;
 
 	anon_part = strchr(url, '@');
@@ -1055,10 +1062,8 @@
 			goto literal_copy;
 		prefix_len = scheme_prefix - url + 3;
 	}
-	anon_url = xcalloc(1, 1 + prefix_len + anon_len);
-	memcpy(anon_url, url, prefix_len);
-	memcpy(anon_url + prefix_len, anon_part, anon_len);
-	return anon_url;
+	return xstrfmt("%.*s%.*s", (int)prefix_len, url,
+		       (int)anon_len, anon_part);
 literal_copy:
 	return xstrdup(url);
 }
diff --git a/transport.h b/transport.h
index 8ebaaf2..c681408 100644
--- a/transport.h
+++ b/transport.h
@@ -18,6 +18,12 @@
 	struct push_cas_option *cas;
 };
 
+enum transport_family {
+	TRANSPORT_FAMILY_ALL = 0,
+	TRANSPORT_FAMILY_IPV4,
+	TRANSPORT_FAMILY_IPV6
+};
+
 struct transport {
 	struct remote *remote;
 	const char *url;
@@ -110,6 +116,8 @@
 	 * actually turns out to be smart.
 	 */
 	struct git_transport_options *smart_options;
+
+	enum transport_family family;
 };
 
 #define TRANSPORT_PUSH_ALL 1
diff --git a/tree-diff.c b/tree-diff.c
index 290a1da..4dda9a1 100644
--- a/tree-diff.c
+++ b/tree-diff.c
@@ -124,8 +124,8 @@
 	unsigned mode, const unsigned char *sha1)
 {
 	struct combine_diff_path *p;
-	int len = base->len + pathlen;
-	int alloclen = combine_diff_path_size(nparent, len);
+	size_t len = st_add(base->len, pathlen);
+	size_t alloclen = combine_diff_path_size(nparent, len);
 
 	/* if last->next is !NULL - it is a pre-allocated memory, we can reuse */
 	p = last->next;
diff --git a/userdiff.h b/userdiff.h
index 4a7e78f..2ef0ce5 100644
--- a/userdiff.h
+++ b/userdiff.h
@@ -23,6 +23,10 @@
 struct userdiff_driver *userdiff_find_by_name(const char *name);
 struct userdiff_driver *userdiff_find_by_path(const char *path);
 
+/*
+ * Initialize any textconv-related fields in the driver and return it, or NULL
+ * if it does not have textconv enabled at all.
+ */
 struct userdiff_driver *userdiff_get_textconv(struct userdiff_driver *driver);
 
 #endif /* USERDIFF */
diff --git a/wrapper.c b/wrapper.c
index 29a45d2..9afc1a0 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -152,6 +152,9 @@
 {
 	void *ret;
 
+	if (unsigned_mult_overflows(nmemb, size))
+		die("data too large to fit into virtual memory space");
+
 	memory_limit_check(size * nmemb, 0);
 	ret = calloc(nmemb, size);
 	if (!ret && (!nmemb || !size))
diff --git a/write_or_die.c b/write_or_die.c
index e7afe7a..49e80aa 100644
--- a/write_or_die.c
+++ b/write_or_die.c
@@ -1,8 +1,12 @@
 #include "cache.h"
+#include "run-command.h"
 
 static void check_pipe(int err)
 {
 	if (err == EPIPE) {
+		if (in_async())
+			async_exit(141);
+
 		signal(SIGPIPE, SIG_DFL);
 		raise(SIGPIPE);
 		/* Should never happen, but just in case... */
diff --git a/wt-status.c b/wt-status.c
index ab4f80d..ef74864 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1677,10 +1677,10 @@
 		color_fprintf(s->fp, header_color, LABEL(N_("behind ")));
 		color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);
 	} else if (!num_theirs) {
-		color_fprintf(s->fp, header_color, LABEL(N_(("ahead "))));
+		color_fprintf(s->fp, header_color, LABEL(N_("ahead ")));
 		color_fprintf(s->fp, branch_color_local, "%d", num_ours);
 	} else {
-		color_fprintf(s->fp, header_color, LABEL(N_(("ahead "))));
+		color_fprintf(s->fp, header_color, LABEL(N_("ahead ")));
 		color_fprintf(s->fp, branch_color_local, "%d", num_ours);
 		color_fprintf(s->fp, header_color, ", %s", LABEL(N_("behind ")));
 		color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);
diff --git a/xdiff-interface.c b/xdiff-interface.c
index cb67c1c..54236f2 100644
--- a/xdiff-interface.c
+++ b/xdiff-interface.c
@@ -265,7 +265,7 @@
 	for (i = 0, regs->nr = 1; value[i]; i++)
 		if (value[i] == '\n')
 			regs->nr++;
-	regs->array = xmalloc(regs->nr * sizeof(struct ff_reg));
+	ALLOC_ARRAY(regs->array, regs->nr);
 	for (i = 0; i < regs->nr; i++) {
 		struct ff_reg *reg = regs->array + i;
 		const char *ep = strchr(value, '\n'), *expression;
diff --git a/xdiff/xdiff.h b/xdiff/xdiff.h
index c033991..4fb7e79 100644
--- a/xdiff/xdiff.h
+++ b/xdiff/xdiff.h
@@ -42,7 +42,6 @@
 #define XDF_IGNORE_BLANK_LINES (1 << 7)
 
 #define XDL_EMIT_FUNCNAMES (1 << 0)
-#define XDL_EMIT_COMMON (1 << 1)
 #define XDL_EMIT_FUNCCONTEXT (1 << 2)
 
 #define XDL_MMB_READONLY (1 << 0)
diff --git a/xdiff/xemit.c b/xdiff/xemit.c
index 4266ada..993724b 100644
--- a/xdiff/xemit.c
+++ b/xdiff/xemit.c
@@ -120,21 +120,6 @@
 	return -1;
 }
 
-static int xdl_emit_common(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb,
-                           xdemitconf_t const *xecfg) {
-	xdfile_t *xdf = &xe->xdf2;
-	const char *rchg = xdf->rchg;
-	long ix;
-
-	for (ix = 0; ix < xdf->nrec; ix++) {
-		if (rchg[ix])
-			continue;
-		if (xdl_emit_record(xdf, ix, "", ecb))
-			return -1;
-	}
-	return 0;
-}
-
 struct func_line {
 	long len;
 	char buf[80];
@@ -170,9 +155,6 @@
 	long funclineprev = -1;
 	struct func_line func_line = { 0 };
 
-	if (xecfg->flags & XDL_EMIT_COMMON)
-		return xdl_emit_common(xe, xscr, ecb, xecfg);
-
 	for (xch = xscr; xch; xch = xche->next) {
 		xche = xdl_get_hunk(&xch, xecfg);
 		if (!xch)
diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c
index d98f430..f338ad6 100644
--- a/xdiff/xmerge.c
+++ b/xdiff/xmerge.c
@@ -641,8 +641,11 @@
 	result->ptr = NULL;
 	result->size = 0;
 
-	if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0 ||
-			xdl_do_diff(orig, mf2, xpp, &xe2) < 0) {
+	if (xdl_do_diff(orig, mf1, xpp, &xe1) < 0) {
+		return -1;
+	}
+	if (xdl_do_diff(orig, mf2, xpp, &xe2) < 0) {
+		xdl_free_env(&xe1);
 		return -1;
 	}
 	if (xdl_change_compact(&xe1.xdf1, &xe1.xdf2, xpp->flags) < 0 ||
@@ -654,6 +657,8 @@
 	if (xdl_change_compact(&xe2.xdf1, &xe2.xdf2, xpp->flags) < 0 ||
 	    xdl_change_compact(&xe2.xdf2, &xe2.xdf1, xpp->flags) < 0 ||
 	    xdl_build_script(&xe2, &xscr2) < 0) {
+		xdl_free_script(xscr1);
+		xdl_free_env(&xe1);
 		xdl_free_env(&xe2);
 		return -1;
 	}