Merge branch 'cc/pretty-contents-size' into master

Brown-paper-bag fix.

* cc/pretty-contents-size:
  t6300: fix issues related to %(contents:size)
diff --git a/Documentation/RelNotes/2.28.0.txt b/Documentation/RelNotes/2.28.0.txt
index 94ddbd9..6baf781 100644
--- a/Documentation/RelNotes/2.28.0.txt
+++ b/Documentation/RelNotes/2.28.0.txt
@@ -6,18 +6,8 @@
 
 Backward compatibility notes
 
- * "feature.experimental" configuration variable is to let volunteers
-   easily opt into a set of newer features, which use of the v2
-   transport protocol is now a part of.
-
- * It used to be that setting extensions.* configuration variables
-   alone, while leaving core.repositoryFormatVersion=0, made these
-   settings effective, which was a wrong thing to do.  In version 0,
-   there was no special meaning in extensions.* configuration
-   variables.  This has been corrected.  If you need these repository
-   extensions to be effective, the core.repositoryFormatVersion
-   variable needs to be updated to 1 after vetting these extensions.*
-   variables are set correctly.
+ * "fetch.writeCommitGraph" is deemed to be still a bit too risky and
+   is no longer part of the "feature.experimental" set.
 
 
 UI, Workflows & Features
@@ -49,6 +39,12 @@
  * "git fast-export --anonymize" learned to take customized mapping to
    allow its users to tweak its output more usable for debugging.
 
+ * The command line completion support (in contrib/) used to be
+   prepared to work with "set -u" but recent changes got a bit more
+   sloppy.  This has been corrected.
+
+ * "git gui" now allows opening work trees from the start-up dialog.
+
 
 Performance, Internal Implementation, Development Support etc.
 
@@ -115,6 +111,14 @@
 
  * The effort to avoid using test_must_fail on non-git command continues.
 
+ * In 2.28-rc0, we corrected a bug that some repository extensions are
+   honored by mistake even in a version 0 repositories (these
+   configuration variables in extensions.* namespace were supposed to
+   have special meaning in repositories whose version numbers are 1 or
+   higher), but this was a bit too big a change.  The behaviour in
+   recent versions of Git where certain extensions.* were honored by
+   mistake even in version 0 repositories has been restored.
+
 
 Fixes since v2.27
 -----------------
@@ -191,6 +195,33 @@
    object flag bits, which has been corrected.
    (merge 64472d15e9 bc/http-push-flagsfix later to maint).
 
+ * "git send-email --in-reply-to=<msg>" did not use the In-Reply-To:
+   header with the value given from the command line, and let it be
+   overridden by the value on In-Reply-To: header in the messages
+   being sent out (if exists).
+   (merge f9f60d7066 ra/send-email-in-reply-to-from-command-line-wins later to maint).
+
+ * "git log -Lx,y:path --before=date" lost track of where the range
+   should be because it didn't take the changes made by the youngest
+   commits that are omitted from the output into account.
+
+ * When "fetch.writeCommitGraph" configuration is set in a shallow
+   repository and a fetch moves the shallow boundary, we wrote out
+   broken commit-graph files that do not match the reality, which has
+   been corrected.
+
+ * "git checkout" failed to catch an error from fstat() after updating
+   a path in the working tree.
+   (merge 35e6e212fd mt/entry-fstat-fallback-fix later to maint).
+
+ * When an aliased command, whose output is piped to a pager by git,
+   gets killed by a signal, the pager got into a funny state, which
+   has been corrected (again).
+   (merge c0d73a59c9 ta/wait-on-aliased-commands-upon-signal later to maint).
+
+ * The code to produce progress output from "git commit-graph --write"
+   had a few breakages, which have been fixed.
+
  * Other code cleanup, docfix, build fix, etc.
    (merge 2c31a7aa44 jx/pkt-line-doc-count-fix later to maint).
    (merge d63ae31962 cb/t5608-cleanup later to maint).
@@ -201,3 +232,5 @@
    (merge d546fe2874 rs/commit-reach-leakfix later to maint).
    (merge 087bf5409c mk/pb-pretty-email-without-domain-part-fix later to maint).
    (merge 5f4ee57ad9 es/worktree-code-cleanup later to maint).
+   (merge 0172f7834a cc/cat-file-usage-update later to maint).
+   (merge 81de0c01cf ma/rebase-doc-typofix later to maint).
diff --git a/Documentation/RelNotes/2.29.0.txt b/Documentation/RelNotes/2.29.0.txt
new file mode 100644
index 0000000..7b189d0
--- /dev/null
+++ b/Documentation/RelNotes/2.29.0.txt
@@ -0,0 +1,73 @@
+Git 2.29 Release Notes
+======================
+
+Updates since v2.28
+-------------------
+
+UI, Workflows & Features
+
+ * "git help log" has been enhanced by sharing more material from the
+   documentation for the underlying "git rev-list" command.
+
+ * "git for-each-ref --format=<>" learned %(contents:size).
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * The changed-path Bloom filter is improved using ideas from an
+   independent implementation.
+
+ * Updates to the changed-paths bloom filter.
+
+ * The test framework has been updated so that most tests will run
+   with predictable (artificial) timestamps.
+
+ * Preliminary clean-up of the refs API in preparation for adding a
+   new refs backend "reftable".
+
+ * Dev support to limit the use of test_must_fail to only git commands.
+
+
+Fixes since v2.28
+-----------------
+
+ * "git clone --separate-git-dir=$elsewhere" used to stomp on the
+   contents of the existing directory $elsewhere, which has been
+   taught to fail when $elsewhere is not an empty directory.
+   (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint).
+
+
+ * With the base fix to 2.27 regresion, any new extensions in a v0
+   repository would still be silently honored, which is not quite
+   right.  Instead, complain and die loudly.
+   (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint).
+
+ * Fetching from a lazily cloned repository resulted at the server
+   side in attempts to lazy fetch objects that the client side has,
+   many of which will not be available from the third-party anyway.
+   (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint).
+
+ * Fix to an ancient bug caused by an over-eager attempt for
+   optimization.
+   (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint).
+
+ * Pushing a ref whose name contains non-ASCII character with the
+   "--force-with-lease" option did not work over smart HTTP protocol,
+   which has been corrected.
+   (merge cd85b447bf bc/push-cas-cquoted-refname later to maint).
+
+ * "git mv src dst", when src is an unmerged path, errored out
+   correctly but with an incorrect error message to claim that src is
+   not tracked, which has been clarified.
+   (merge 9b906af657 ct/mv-unmerged-path-error later to maint).
+
+ * Fix to a regression introduced during 2.27 cycle.
+   (merge cada7308ad en/fill-directory-exponential later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
+   (merge 84544f2ea3 sk/typofixes later to maint).
+   (merge b17f411ab5 ar/help-guides-doc later to maint).
+   (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint).
+   (merge 861c4ce141 en/typofixes later to maint).
+   (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint).
+   (merge e2bfa50ac3 jb/doc-packfile-name later to maint).
diff --git a/Documentation/config/feature.txt b/Documentation/config/feature.txt
index 28c3360..c0cbf2b 100644
--- a/Documentation/config/feature.txt
+++ b/Documentation/config/feature.txt
@@ -15,14 +15,6 @@
 * `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
 skipping more commits at a time, reducing the number of round trips.
 +
-* `fetch.writeCommitGraph=true` writes a commit-graph after every `git fetch`
-command that downloads a pack-file from a remote. Using the `--split` option,
-most executions will create a very small commit-graph file on top of the
-existing commit-graph file(s). Occasionally, these files will merge and the
-write may take longer. Having an updated commit-graph file helps performance
-of many Git commands, including `git merge-base`, `git push -f`, and
-`git log --graph`.
-+
 * `protocol.version=2` speeds up fetches from repositories with many refs by
 allowing the client to specify which refs to list before the server lists
 them.
diff --git a/Documentation/config/fetch.txt b/Documentation/config/fetch.txt
index b1a9b14..b203940 100644
--- a/Documentation/config/fetch.txt
+++ b/Documentation/config/fetch.txt
@@ -90,5 +90,4 @@
 	the existing commit-graph file(s). Occasionally, these files will
 	merge and the write may take longer. Having an updated commit-graph
 	file helps performance of many Git commands, including `git merge-base`,
-	`git push -f`, and `git log --graph`. Defaults to false, unless
-	`feature.experimental` is true.
+	`git push -f`, and `git log --graph`. Defaults to false.
diff --git a/Documentation/config/fmt-merge-msg.txt b/Documentation/config/fmt-merge-msg.txt
index c73cfa9..a8e8f74 100644
--- a/Documentation/config/fmt-merge-msg.txt
+++ b/Documentation/config/fmt-merge-msg.txt
@@ -8,3 +8,15 @@
 	most the specified number of one-line descriptions from the
 	actual commits that are being merged.  Defaults to false, and
 	true is a synonym for 20.
+
+merge.suppressDest::
+	By adding a glob that matches the names of integration
+	branches to this multi-valued configuration variable, the
+	default merge message computed for merges into these
+	integration branches will omit " into <branch name>" from
+	its title.
++
+An element with an empty value can be used to clear the list
+of globs accumulated from previous configuration entries.
+When there is no `merge.suppressDest` variable defined, the
+default value of `master` is used for backward compatibility.
diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
index 8eca671..8e192d8 100644
--- a/Documentation/git-cat-file.txt
+++ b/Documentation/git-cat-file.txt
@@ -10,7 +10,7 @@
 --------
 [verse]
 'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv | --filters ) [--path=<path>] <object>
-'git cat-file' (--batch | --batch-check) [ --textconv | --filters ] [--follow-symlinks]
+'git cat-file' (--batch[=<format>] | --batch-check[=<format>]) [ --textconv | --filters ] [--follow-symlinks]
 
 DESCRIPTION
 -----------
diff --git a/Documentation/git-commit-graph.txt b/Documentation/git-commit-graph.txt
index 8ca1764..17405c7 100644
--- a/Documentation/git-commit-graph.txt
+++ b/Documentation/git-commit-graph.txt
@@ -62,7 +62,10 @@
 With the `--changed-paths` option, compute and write information about the
 paths changed between a commit and its first parent. This operation can
 take a while on large repositories. It provides significant performance gains
-for getting history of a directory or a file with `git log -- <path>`.
+for getting history of a directory or a file with `git log -- <path>`. If
+this option is given, future commit-graph writes will automatically assume
+that this option was intended. Use `--no-changed-paths` to stop storing this
+data.
 +
 With the `--split[=<strategy>]` option, write the commit-graph as a
 chain of multiple commit-graph files stored in
diff --git a/Documentation/git-diff.txt b/Documentation/git-diff.txt
index 1018110..727f24d 100644
--- a/Documentation/git-diff.txt
+++ b/Documentation/git-diff.txt
@@ -63,13 +63,7 @@
 	This is to view the changes between two arbitrary
 	<commit>.
 
-'git diff' [<options>] <commit>..<commit> [--] [<path>...]::
-
-	This is synonymous to the previous form.  If <commit> on
-	one side is omitted, it will have the same effect as
-	using HEAD instead.
-
-'git diff' [<options>] <commit> [<commit>...] <commit> [--] [<path>...]::
+'git diff' [<options>] <commit> <commit>... <commit> [--] [<path>...]::
 
 	This form is to view the results of a merge commit.  The first
 	listed <commit> must be the merge itself; the remaining two or
@@ -78,6 +72,13 @@
 	For instance, if `master` names a merge commit, `git diff master
 	master^@` gives the same combined diff as `git show master`.
 
+'git diff' [<options>] <commit>..<commit> [--] [<path>...]::
+
+	This is synonymous to the earlier form (without the "..") for
+	viewing the changes between two arbitrary <commit>.  If <commit> on
+	one side is omitted, it will have the same effect as
+	using HEAD instead.
+
 'git diff' [<options>] <commit>\...<commit> [--] [<path>...]::
 
 	This form is to view the changes on the branch containing
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index f71db0d..69c0c5c 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -8,7 +8,7 @@
 SYNOPSIS
 --------
 [verse]
-'git help' [-a|--all [--[no-]verbose]] [-g|--guide]
+'git help' [-a|--all [--[no-]verbose]] [-g|--guides]
 	   [-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]
 
 DESCRIPTION
@@ -21,7 +21,7 @@
 If the option `--all` or `-a` is given, all available commands are
 printed on the standard output.
 
-If the option `--guide` or `-g` is given, a list of the useful
+If the option `--guides` or `-g` is given, a list of the useful
 Git guides is also printed on the standard output.
 
 If a command, or a guide, is given, a manual page for that command or
diff --git a/Documentation/git-index-pack.txt b/Documentation/git-index-pack.txt
index 9316d9a..ac74d05 100644
--- a/Documentation/git-index-pack.txt
+++ b/Documentation/git-index-pack.txt
@@ -104,8 +104,8 @@
 NOTES
 -----
 
-Once the index has been created, the list of object names is sorted
-and the SHA-1 hash of that list is printed to stdout. If --stdin was
+Once the index has been created, the hash that goes into the name of
+the pack/idx file is printed to stdout. If --stdin was
 also used then this is prefixed by either "pack\t", or "keep\t" if a
 new .keep file was successfully created. This is useful to remove a
 .keep file used as a lock to prevent the race with 'git repack'
diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index 20e6d21..3fd26d5 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -15,9 +15,12 @@
 -----------
 Shows the commit logs.
 
-The command takes options applicable to the `git rev-list`
+:git-log: 1
+include::rev-list-description.txt[]
+
+The command takes options applicable to the linkgit:git-rev-list[1]
 command to control what is shown and how, and options applicable to
-the `git diff-*` commands to control how the changes
+the linkgit:git-diff[1] command to control how the changes
 each commit introduces are shown.
 
 
diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 4624cfd..374d248 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -259,7 +259,7 @@
 	unchanged as a result. If a temporary stash entry was created
 	using --autostash, it will be saved to the stash list.
 
---apply:
+--apply::
 	Use applying strategies to rebase (calling `git-am`
 	internally).  This option may become a no-op in the future
 	once the merge backend handles everything the apply one does.
diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
index 025c911..5da6623 100644
--- a/Documentation/git-rev-list.txt
+++ b/Documentation/git-rev-list.txt
@@ -14,44 +14,8 @@
 DESCRIPTION
 -----------
 
-List commits that are reachable by following the `parent` links from the
-given commit(s), but exclude commits that are reachable from the one(s)
-given with a '{caret}' in front of them.  The output is given in reverse
-chronological order by default.
-
-You can think of this as a set operation.  Commits given on the command
-line form a set of commits that are reachable from any of them, and then
-commits reachable from any of the ones given with '{caret}' in front are
-subtracted from that set.  The remaining commits are what comes out in the
-command's output.  Various other options and paths parameters can be used
-to further limit the result.
-
-Thus, the following command:
-
------------------------------------------------------------------------
-	$ git rev-list foo bar ^baz
------------------------------------------------------------------------
-
-means "list all the commits which are reachable from 'foo' or 'bar', but
-not from 'baz'".
-
-A special notation "'<commit1>'..'<commit2>'" can be used as a
-short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
-the following may be used interchangeably:
-
------------------------------------------------------------------------
-	$ git rev-list origin..HEAD
-	$ git rev-list HEAD ^origin
------------------------------------------------------------------------
-
-Another special notation is "'<commit1>'...'<commit2>'" which is useful
-for merges.  The resulting set of commits is the symmetric difference
-between the two operands.  The following two commands are equivalent:
-
------------------------------------------------------------------------
-	$ git rev-list A B --not $(git merge-base --all A B)
-	$ git rev-list A...B
------------------------------------------------------------------------
+:git-rev-list: 1
+include::rev-list-description.txt[]
 
 'rev-list' is a very essential Git command, since it
 provides the ability to build and traverse commit ancestry graphs. For
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 6424711..31b601e 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -404,8 +404,8 @@
 `git send-pack` on the other end, so you can simply `echo` messages
 for the user.
 
-ref-transaction
-~~~~~~~~~~~~~~~
+reference-transaction
+~~~~~~~~~~~~~~~~~~~~~
 
 This hook is invoked by any Git command that performs reference
 updates. It executes whenever a reference transaction is prepared,
diff --git a/Documentation/gitworkflows.txt b/Documentation/gitworkflows.txt
index 2db7ba7..47cf97f 100644
--- a/Documentation/gitworkflows.txt
+++ b/Documentation/gitworkflows.txt
@@ -292,7 +292,7 @@
 
 
 Branch management for next and seen after a feature release
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 After a feature release, the integration branch 'next' may optionally be
 rewound and rebuilt from the tip of 'master' using the surviving
diff --git a/Documentation/rev-list-description.txt b/Documentation/rev-list-description.txt
new file mode 100644
index 0000000..a9efa7f
--- /dev/null
+++ b/Documentation/rev-list-description.txt
@@ -0,0 +1,61 @@
+List commits that are reachable by following the `parent` links from the
+given commit(s), but exclude commits that are reachable from the one(s)
+given with a '{caret}' in front of them.  The output is given in reverse
+chronological order by default.
+
+You can think of this as a set operation. Commits reachable from any of
+the commits given on the command line form a set, and then commits reachable
+from any of the ones given with '{caret}' in front are subtracted from that
+set.  The remaining commits are what comes out in the command's output.
+Various other options and paths parameters can be used to further limit the
+result.
+
+Thus, the following command:
+
+ifdef::git-rev-list[]
+-----------------------------------------------------------------------
+$ git rev-list foo bar ^baz
+-----------------------------------------------------------------------
+endif::git-rev-list[]
+ifdef::git-log[]
+-----------------------------------------------------------------------
+$ git log foo bar ^baz
+-----------------------------------------------------------------------
+endif::git-log[]
+
+means "list all the commits which are reachable from 'foo' or 'bar', but
+not from 'baz'".
+
+A special notation "'<commit1>'..'<commit2>'" can be used as a
+short-hand for "^'<commit1>' '<commit2>'". For example, either of
+the following may be used interchangeably:
+
+ifdef::git-rev-list[]
+-----------------------------------------------------------------------
+$ git rev-list origin..HEAD
+$ git rev-list HEAD ^origin
+-----------------------------------------------------------------------
+endif::git-rev-list[]
+ifdef::git-log[]
+-----------------------------------------------------------------------
+$ git log origin..HEAD
+$ git log HEAD ^origin
+-----------------------------------------------------------------------
+endif::git-log[]
+
+Another special notation is "'<commit1>'...'<commit2>'" which is useful
+for merges.  The resulting set of commits is the symmetric difference
+between the two operands.  The following two commands are equivalent:
+
+ifdef::git-rev-list[]
+-----------------------------------------------------------------------
+$ git rev-list A B --not $(git merge-base --all A B)
+$ git rev-list A...B
+-----------------------------------------------------------------------
+endif::git-rev-list[]
+ifdef::git-log[]
+-----------------------------------------------------------------------
+$ git log A B --not $(git merge-base --all A B)
+$ git log A...B
+-----------------------------------------------------------------------
+endif::git-log[]
diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
index 1ad9506..d9169c0 100644
--- a/Documentation/revisions.txt
+++ b/Documentation/revisions.txt
@@ -254,6 +254,9 @@
 previous section, means the set of commits `reachable` from the given
 commit.
 
+Specifying several revisions means the set of commits reachable from
+any of the given commits.
+
 A commit's reachable set is the commit itself and the commits in
 its ancestry chain.
 
diff --git a/Documentation/technical/commit-graph-format.txt b/Documentation/technical/commit-graph-format.txt
index 1beef17..4405410 100644
--- a/Documentation/technical/commit-graph-format.txt
+++ b/Documentation/technical/commit-graph-format.txt
@@ -32,7 +32,7 @@
 of the body. The header includes certain values, such as number of chunks
 and hash type.
 
-All 4-byte numbers are in network order.
+All multi-byte numbers are in network byte order.
 
 HEADER:
 
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 7b0cfeb..9db2f4f 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 GVF=GIT-VERSION-FILE
-DEF_VER=v2.27.GIT
+DEF_VER=v2.28.0
 
 LF='
 '
diff --git a/RelNotes b/RelNotes
index a7b4f6d..9143650 120000
--- a/RelNotes
+++ b/RelNotes
@@ -1 +1 @@
-Documentation/RelNotes/2.28.0.txt
\ No newline at end of file
+Documentation/RelNotes/2.29.0.txt
\ No newline at end of file
diff --git a/add-patch.c b/add-patch.c
index f899389..a1d66c1 100644
--- a/add-patch.c
+++ b/add-patch.c
@@ -1203,7 +1203,7 @@
 	for (;;) {
 		int res = edit_hunk_manually(s, hunk);
 		if (res == 0) {
-			/* abandonded */
+			/* abandoned */
 			*hunk = backup;
 			return -1;
 		}
diff --git a/bloom.c b/bloom.c
index 6a7f2f2..1a57322 100644
--- a/bloom.c
+++ b/bloom.c
@@ -187,7 +187,7 @@
 	struct diff_options diffopt;
 	int max_changes = 512;
 
-	if (bloom_filters.slab_size == 0)
+	if (!bloom_filters.slab_size)
 		return NULL;
 
 	filter = bloom_filter_slab_at(&bloom_filters, c);
@@ -195,16 +195,14 @@
 	if (!filter->data) {
 		load_commit_graph_info(r, c);
 		if (commit_graph_position(c) != COMMIT_NOT_FROM_GRAPH &&
-			r->objects->commit_graph->chunk_bloom_indexes) {
-			if (load_bloom_filter_from_graph(r->objects->commit_graph, filter, c))
-				return filter;
-			else
-				return NULL;
-		}
+			r->objects->commit_graph->chunk_bloom_indexes)
+			load_bloom_filter_from_graph(r->objects->commit_graph, filter, c);
 	}
 
-	if (filter->data || !compute_if_not_present)
+	if (filter->data)
 		return filter;
+	if (!compute_if_not_present)
+		return NULL;
 
 	repo_diff_setup(r, &diffopt);
 	diffopt.flags.recursive = 1;
diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
index ec49962..73f9324 100644
--- a/builtin/bisect--helper.c
+++ b/builtin/bisect--helper.c
@@ -13,7 +13,6 @@
 static GIT_PATH_FUNC(git_path_bisect_expected_rev, "BISECT_EXPECTED_REV")
 static GIT_PATH_FUNC(git_path_bisect_ancestors_ok, "BISECT_ANCESTORS_OK")
 static GIT_PATH_FUNC(git_path_bisect_start, "BISECT_START")
-static GIT_PATH_FUNC(git_path_bisect_head, "BISECT_HEAD")
 static GIT_PATH_FUNC(git_path_bisect_log, "BISECT_LOG")
 static GIT_PATH_FUNC(git_path_head_name, "head-name")
 static GIT_PATH_FUNC(git_path_bisect_names, "BISECT_NAMES")
@@ -164,7 +163,7 @@
 		strbuf_addstr(&branch, commit);
 	}
 
-	if (!file_exists(git_path_bisect_head())) {
+	if (!ref_exists("BISECT_HEAD")) {
 		struct argv_array argv = ARGV_ARRAY_INIT;
 
 		argv_array_pushl(&argv, "checkout", branch.buf, "--", NULL);
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index ae18e20..5ebf133 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -596,7 +596,7 @@
 
 static const char * const cat_file_usage[] = {
 	N_("git cat-file (-t [--allow-unknown-type] | -s [--allow-unknown-type] | -e | -p | <type> | --textconv | --filters) [--path=<path>] <object>"),
-	N_("git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --filters]"),
+	N_("git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-symlinks] [--textconv | --filters]"),
 	NULL
 };
 
diff --git a/builtin/clone.c b/builtin/clone.c
index bef7074..a9f3312 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -946,7 +946,7 @@
 	int is_bundle = 0, is_local;
 	const char *repo_name, *repo, *work_tree, *git_dir;
 	char *path, *dir, *display_repo = NULL;
-	int dest_exists;
+	int dest_exists, real_dest_exists = 0;
 	const struct ref *refs, *remote_head;
 	const struct ref *remote_head_points_at;
 	const struct ref *our_head_points_at;
@@ -1021,6 +1021,14 @@
 		die(_("destination path '%s' already exists and is not "
 			"an empty directory."), dir);
 
+	if (real_git_dir) {
+		real_dest_exists = path_exists(real_git_dir);
+		if (real_dest_exists && !is_empty_dir(real_git_dir))
+			die(_("repository path '%s' already exists and is not "
+				"an empty directory."), real_git_dir);
+	}
+
+
 	strbuf_addf(&reflog_msg, "clone: from %s",
 		    display_repo ? display_repo : repo);
 	free(display_repo);
@@ -1057,7 +1065,7 @@
 	}
 
 	if (real_git_dir) {
-		if (path_exists(real_git_dir))
+		if (real_dest_exists)
 			junk_git_dir_flags |= REMOVE_DIR_KEEP_TOPLEVEL;
 		junk_git_dir = real_git_dir;
 	} else {
diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c
index f6797e2..523501f 100644
--- a/builtin/commit-graph.c
+++ b/builtin/commit-graph.c
@@ -201,6 +201,7 @@
 	};
 
 	opts.progress = isatty(2);
+	opts.enable_changed_paths = -1;
 	split_opts.size_multiple = 2;
 	split_opts.max_commits = 0;
 	split_opts.expire_time = 0;
@@ -221,7 +222,9 @@
 		flags |= COMMIT_GRAPH_WRITE_SPLIT;
 	if (opts.progress)
 		flags |= COMMIT_GRAPH_WRITE_PROGRESS;
-	if (opts.enable_changed_paths ||
+	if (!opts.enable_changed_paths)
+		flags |= COMMIT_GRAPH_NO_WRITE_BLOOM_FILTERS;
+	if (opts.enable_changed_paths == 1 ||
 	    git_env_bool(GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS, 0))
 		flags |= COMMIT_GRAPH_WRITE_BLOOM_FILTERS;
 
@@ -251,7 +254,7 @@
 			}
 		}
 
-
+		stop_progress(&progress);
 	}
 
 	if (write_commit_graph(odb,
@@ -264,8 +267,6 @@
 cleanup:
 	string_list_clear(&pack_indexes, 0);
 	strbuf_release(&buf);
-	if (progress)
-		stop_progress(&progress);
 	return result;
 }
 
diff --git a/builtin/diff.c b/builtin/diff.c
index 8c36da0..cb98811 100644
--- a/builtin/diff.c
+++ b/builtin/diff.c
@@ -355,9 +355,9 @@
 
 	sym->left = rev->pending.objects[lpos].name;
 	sym->right = rev->pending.objects[rpos].name;
-	sym->base = rev->pending.objects[basepos].name;
 	if (basecount == 0)
 		die(_("%s...%s: no merge base"), sym->left, sym->right);
+	sym->base = rev->pending.objects[basepos].name;
 	bitmap_unset(map, basepos);	/* unmark the base we want */
 	sym->warn = basecount > 1;
 	sym->skip = map;
diff --git a/builtin/grep.c b/builtin/grep.c
index a5056f3..5975cf5 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -466,7 +466,7 @@
 		struct strbuf base = STRBUF_INIT;
 
 		obj_read_lock();
-		object = parse_object_or_die(oid, oid_to_hex(oid));
+		object = parse_object_or_die(oid, NULL);
 		obj_read_unlock();
 		data = read_object_with_reference(&subrepo,
 						  &object->oid, tree_type,
diff --git a/builtin/mv.c b/builtin/mv.c
index be15ba7..7dac714 100644
--- a/builtin/mv.c
+++ b/builtin/mv.c
@@ -132,6 +132,7 @@
 	struct stat st;
 	struct string_list src_for_dst = STRING_LIST_INIT_NODUP;
 	struct lock_file lock_file = LOCK_INIT;
+	struct cache_entry *ce;
 
 	git_config(git_default_config, NULL);
 
@@ -220,9 +221,11 @@
 				}
 				argc += last - first;
 			}
-		} else if (cache_name_pos(src, length) < 0)
+		} else if (!(ce = cache_file_exists(src, length, ignore_case))) {
 			bad = _("not under version control");
-		else if (lstat(dst, &st) == 0 &&
+		} else if (ce_stage(ce)) {
+			bad = _("conflicted");
+		} else if (lstat(dst, &st) == 0 &&
 			 (!ignore_case || strcasecmp(src, dst))) {
 			bad = _("destination exists");
 			if (force) {
diff --git a/cache.h b/cache.h
index 126ec56..0290849 100644
--- a/cache.h
+++ b/cache.h
@@ -1042,9 +1042,9 @@
 	int worktree_config;
 	int is_bare;
 	int hash_algo;
-	int has_extensions;
 	char *work_tree;
 	struct string_list unknown_extensions;
+	struct string_list v1_only_extensions;
 };
 
 /*
@@ -1058,6 +1058,7 @@
 	.is_bare = -1, \
 	.hash_algo = GIT_HASH_SHA1, \
 	.unknown_extensions = STRING_LIST_INIT_DUP, \
+	.v1_only_extensions = STRING_LIST_INIT_DUP, \
 }
 
 /*
diff --git a/ci/lib.sh b/ci/lib.sh
index ff24c54..3eefec5 100755
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -184,9 +184,9 @@
 	if [ "$jobname" = linux-gcc ]
 	then
 		export CC=gcc-8
-		MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python3)"
+		MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=/usr/bin/python3"
 	else
-		MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python2)"
+		MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=/usr/bin/python2"
 	fi
 
 	export GIT_TEST_HTTPD=true
diff --git a/column.c b/column.c
index 4a38eed..a58969b 100644
--- a/column.c
+++ b/column.c
@@ -107,7 +107,7 @@
 		printf("%s%s%s", indent, list->items[i].string, nl);
 }
 
-/* Print a cell to stdout with all necessary leading/traling space */
+/* Print a cell to stdout with all necessary leading/trailing space */
 static int display_cell(struct column_data *data, int initial_width,
 			const char *empty_cell, int x, int y)
 {
diff --git a/commit-graph.c b/commit-graph.c
index fdd1c4f..e51c91d 100644
--- a/commit-graph.c
+++ b/commit-graph.c
@@ -1,7 +1,5 @@
-#include "cache.h"
-#include "config.h"
-#include "dir.h"
 #include "git-compat-util.h"
+#include "config.h"
 #include "lockfile.h"
 #include "pack.h"
 #include "packfile.h"
@@ -19,6 +17,8 @@
 #include "bloom.h"
 #include "commit-slab.h"
 #include "shallow.h"
+#include "json-writer.h"
+#include "trace2.h"
 
 void git_test_write_commit_graph_or_die(void)
 {
@@ -203,7 +203,8 @@
 	}
 
 	prepare_commit_graft(r);
-	if (r->parsed_objects && r->parsed_objects->grafts_nr)
+	if (r->parsed_objects &&
+	    (r->parsed_objects->grafts_nr || r->parsed_objects->substituted_parent))
 		return 0;
 	if (is_repository_shallow(r))
 		return 0;
@@ -284,8 +285,7 @@
 	const unsigned char *data, *chunk_lookup;
 	uint32_t i;
 	struct commit_graph *graph;
-	uint64_t last_chunk_offset;
-	uint32_t last_chunk_id;
+	uint64_t next_chunk_offset;
 	uint32_t graph_signature;
 	unsigned char graph_version, hash_version;
 
@@ -325,24 +325,26 @@
 	graph->data = graph_map;
 	graph->data_len = graph_size;
 
-	last_chunk_id = 0;
-	last_chunk_offset = 8;
+	if (graph_size < GRAPH_HEADER_SIZE +
+			 (graph->num_chunks + 1) * GRAPH_CHUNKLOOKUP_WIDTH +
+			 GRAPH_FANOUT_SIZE + the_hash_algo->rawsz) {
+		error(_("commit-graph file is too small to hold %u chunks"),
+		      graph->num_chunks);
+		free(graph);
+		return NULL;
+	}
+
 	chunk_lookup = data + 8;
+	next_chunk_offset = get_be64(chunk_lookup + 4);
 	for (i = 0; i < graph->num_chunks; i++) {
 		uint32_t chunk_id;
-		uint64_t chunk_offset;
+		uint64_t chunk_offset = next_chunk_offset;
 		int chunk_repeated = 0;
 
-		if (data + graph_size - chunk_lookup <
-		    GRAPH_CHUNKLOOKUP_WIDTH) {
-			error(_("commit-graph chunk lookup table entry missing; file may be incomplete"));
-			goto free_and_return;
-		}
-
 		chunk_id = get_be32(chunk_lookup + 0);
-		chunk_offset = get_be64(chunk_lookup + 4);
 
 		chunk_lookup += GRAPH_CHUNKLOOKUP_WIDTH;
+		next_chunk_offset = get_be64(chunk_lookup + 4);
 
 		if (chunk_offset > graph_size - the_hash_algo->rawsz) {
 			error(_("commit-graph improper chunk offset %08x%08x"), (uint32_t)(chunk_offset >> 32),
@@ -361,8 +363,11 @@
 		case GRAPH_CHUNKID_OIDLOOKUP:
 			if (graph->chunk_oid_lookup)
 				chunk_repeated = 1;
-			else
+			else {
 				graph->chunk_oid_lookup = data + chunk_offset;
+				graph->num_commits = (next_chunk_offset - chunk_offset)
+						     / graph->hash_len;
+			}
 			break;
 
 		case GRAPH_CHUNKID_DATA:
@@ -416,15 +421,6 @@
 			error(_("commit-graph chunk id %08x appears multiple times"), chunk_id);
 			goto free_and_return;
 		}
-
-		if (last_chunk_id == GRAPH_CHUNKID_OIDLOOKUP)
-		{
-			graph->num_commits = (chunk_offset - last_chunk_offset)
-					     / graph->hash_len;
-		}
-
-		last_chunk_id = chunk_id;
-		last_chunk_offset = chunk_offset;
 	}
 
 	if (graph->chunk_bloom_indexes && graph->chunk_bloom_data) {
@@ -623,10 +619,6 @@
 		return !!r->objects->commit_graph;
 	r->objects->commit_graph_attempted = 1;
 
-	if (git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD, 0))
-		die("dying as requested by the '%s' variable on commit-graph load!",
-		    GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD);
-
 	prepare_repo_settings(r);
 
 	if (!git_env_bool(GIT_TEST_COMMIT_GRAPH, 0) &&
@@ -855,6 +847,14 @@
 
 int parse_commit_in_graph(struct repository *r, struct commit *item)
 {
+	static int checked_env = 0;
+
+	if (!checked_env &&
+	    git_env_bool(GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE, 0))
+		die("dying as requested by the '%s' variable on commit-graph parse!",
+		    GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE);
+	checked_env = 1;
+
 	if (!prepare_commit_graph(r))
 		return 0;
 	return parse_commit_in_graph_one(r, r->objects->commit_graph, item);
@@ -947,10 +947,11 @@
 
 	const struct split_commit_graph_opts *split_opts;
 	size_t total_bloom_filter_data_size;
+	const struct bloom_filter_settings *bloom_settings;
 };
 
-static void write_graph_chunk_fanout(struct hashfile *f,
-				     struct write_commit_graph_context *ctx)
+static int write_graph_chunk_fanout(struct hashfile *f,
+				    struct write_commit_graph_context *ctx)
 {
 	int i, count = 0;
 	struct commit **list = ctx->commits.list;
@@ -971,17 +972,21 @@
 
 		hashwrite_be32(f, count);
 	}
+
+	return 0;
 }
 
-static void write_graph_chunk_oids(struct hashfile *f, int hash_len,
-				   struct write_commit_graph_context *ctx)
+static int write_graph_chunk_oids(struct hashfile *f,
+				  struct write_commit_graph_context *ctx)
 {
 	struct commit **list = ctx->commits.list;
 	int count;
 	for (count = 0; count < ctx->commits.nr; count++, list++) {
 		display_progress(ctx->progress, ++ctx->progress_cnt);
-		hashwrite(f, (*list)->object.oid.hash, (int)hash_len);
+		hashwrite(f, (*list)->object.oid.hash, the_hash_algo->rawsz);
 	}
+
+	return 0;
 }
 
 static const unsigned char *commit_to_sha1(size_t index, void *table)
@@ -990,8 +995,8 @@
 	return commits[index]->object.oid.hash;
 }
 
-static void write_graph_chunk_data(struct hashfile *f, int hash_len,
-				   struct write_commit_graph_context *ctx)
+static int write_graph_chunk_data(struct hashfile *f,
+				  struct write_commit_graph_context *ctx)
 {
 	struct commit **list = ctx->commits.list;
 	struct commit **last = ctx->commits.list + ctx->commits.nr;
@@ -1008,7 +1013,7 @@
 			die(_("unable to parse commit %s"),
 				oid_to_hex(&(*list)->object.oid));
 		tree = get_commit_tree_oid(*list);
-		hashwrite(f, tree->hash, hash_len);
+		hashwrite(f, tree->hash, the_hash_algo->rawsz);
 
 		parent = (*list)->parents;
 
@@ -1088,10 +1093,12 @@
 
 		list++;
 	}
+
+	return 0;
 }
 
-static void write_graph_chunk_extra_edges(struct hashfile *f,
-					  struct write_commit_graph_context *ctx)
+static int write_graph_chunk_extra_edges(struct hashfile *f,
+					 struct write_commit_graph_context *ctx)
 {
 	struct commit **list = ctx->commits.list;
 	struct commit **last = ctx->commits.list + ctx->commits.nr;
@@ -1140,59 +1147,67 @@
 
 		list++;
 	}
+
+	return 0;
 }
 
-static void write_graph_chunk_bloom_indexes(struct hashfile *f,
-					    struct write_commit_graph_context *ctx)
+static int write_graph_chunk_bloom_indexes(struct hashfile *f,
+					   struct write_commit_graph_context *ctx)
 {
 	struct commit **list = ctx->commits.list;
 	struct commit **last = ctx->commits.list + ctx->commits.nr;
 	uint32_t cur_pos = 0;
-	struct progress *progress = NULL;
-	int i = 0;
-
-	if (ctx->report_progress)
-		progress = start_delayed_progress(
-			_("Writing changed paths Bloom filters index"),
-			ctx->commits.nr);
 
 	while (list < last) {
 		struct bloom_filter *filter = get_bloom_filter(ctx->r, *list, 0);
-		cur_pos += filter->len;
-		display_progress(progress, ++i);
+		size_t len = filter ? filter->len : 0;
+		cur_pos += len;
+		display_progress(ctx->progress, ++ctx->progress_cnt);
 		hashwrite_be32(f, cur_pos);
 		list++;
 	}
 
-	stop_progress(&progress);
+	return 0;
 }
 
-static void write_graph_chunk_bloom_data(struct hashfile *f,
-					 struct write_commit_graph_context *ctx,
-					 const struct bloom_filter_settings *settings)
+static void trace2_bloom_filter_settings(struct write_commit_graph_context *ctx)
+{
+	struct json_writer jw = JSON_WRITER_INIT;
+
+	jw_object_begin(&jw, 0);
+	jw_object_intmax(&jw, "hash_version", ctx->bloom_settings->hash_version);
+	jw_object_intmax(&jw, "num_hashes", ctx->bloom_settings->num_hashes);
+	jw_object_intmax(&jw, "bits_per_entry", ctx->bloom_settings->bits_per_entry);
+	jw_end(&jw);
+
+	trace2_data_json("bloom", ctx->r, "settings", &jw);
+
+	jw_release(&jw);
+}
+
+static int write_graph_chunk_bloom_data(struct hashfile *f,
+					struct write_commit_graph_context *ctx)
 {
 	struct commit **list = ctx->commits.list;
 	struct commit **last = ctx->commits.list + ctx->commits.nr;
-	struct progress *progress = NULL;
-	int i = 0;
 
-	if (ctx->report_progress)
-		progress = start_delayed_progress(
-			_("Writing changed paths Bloom filters data"),
-			ctx->commits.nr);
+	trace2_bloom_filter_settings(ctx);
 
-	hashwrite_be32(f, settings->hash_version);
-	hashwrite_be32(f, settings->num_hashes);
-	hashwrite_be32(f, settings->bits_per_entry);
+	hashwrite_be32(f, ctx->bloom_settings->hash_version);
+	hashwrite_be32(f, ctx->bloom_settings->num_hashes);
+	hashwrite_be32(f, ctx->bloom_settings->bits_per_entry);
 
 	while (list < last) {
 		struct bloom_filter *filter = get_bloom_filter(ctx->r, *list, 0);
-		display_progress(progress, ++i);
-		hashwrite(f, filter->data, filter->len * sizeof(unsigned char));
+		size_t len = filter ? filter->len : 0;
+
+		display_progress(ctx->progress, ++ctx->progress_cnt);
+		if (len)
+			hashwrite(f, filter->data, len * sizeof(unsigned char));
 		list++;
 	}
 
-	stop_progress(&progress);
+	return 0;
 }
 
 static int oid_compare(const void *_a, const void *_b)
@@ -1422,12 +1437,13 @@
 			_("Collecting referenced commits"), 0);
 
 	for_each_ref(add_ref_to_set, &data);
+
+	stop_progress(&data.progress);
+
 	result = write_commit_graph(odb, NULL, &commits,
 				    flags, split_opts);
 
 	oidset_clear(&commits);
-	if (data.progress)
-		stop_progress(&data.progress);
 	return result;
 }
 
@@ -1602,19 +1618,36 @@
 	return 0;
 }
 
+typedef int (*chunk_write_fn)(struct hashfile *f,
+			      struct write_commit_graph_context *ctx);
+
+struct chunk_info {
+	uint32_t id;
+	uint64_t size;
+	chunk_write_fn write_fn;
+};
+
 static int write_commit_graph_file(struct write_commit_graph_context *ctx)
 {
 	uint32_t i;
 	int fd;
 	struct hashfile *f;
 	struct lock_file lk = LOCK_INIT;
-	uint32_t chunk_ids[MAX_NUM_CHUNKS + 1];
-	uint64_t chunk_offsets[MAX_NUM_CHUNKS + 1];
+	struct chunk_info chunks[MAX_NUM_CHUNKS + 1];
 	const unsigned hashsz = the_hash_algo->rawsz;
 	struct strbuf progress_title = STRBUF_INIT;
 	int num_chunks = 3;
+	uint64_t chunk_offset;
 	struct object_id file_hash;
-	const struct bloom_filter_settings bloom_settings = DEFAULT_BLOOM_FILTER_SETTINGS;
+	struct bloom_filter_settings bloom_settings = DEFAULT_BLOOM_FILTER_SETTINGS;
+
+	if (!ctx->bloom_settings) {
+		bloom_settings.bits_per_entry = git_env_ulong("GIT_TEST_BLOOM_SETTINGS_BITS_PER_ENTRY",
+							      bloom_settings.bits_per_entry);
+		bloom_settings.num_hashes = git_env_ulong("GIT_TEST_BLOOM_SETTINGS_NUM_HASHES",
+							  bloom_settings.num_hashes);
+		ctx->bloom_settings = &bloom_settings;
+	}
 
 	if (ctx->split) {
 		struct strbuf tmp_file = STRBUF_INIT;
@@ -1660,51 +1693,41 @@
 		f = hashfd(lk.tempfile->fd, lk.tempfile->filename.buf);
 	}
 
-	chunk_ids[0] = GRAPH_CHUNKID_OIDFANOUT;
-	chunk_ids[1] = GRAPH_CHUNKID_OIDLOOKUP;
-	chunk_ids[2] = GRAPH_CHUNKID_DATA;
+	chunks[0].id = GRAPH_CHUNKID_OIDFANOUT;
+	chunks[0].size = GRAPH_FANOUT_SIZE;
+	chunks[0].write_fn = write_graph_chunk_fanout;
+	chunks[1].id = GRAPH_CHUNKID_OIDLOOKUP;
+	chunks[1].size = hashsz * ctx->commits.nr;
+	chunks[1].write_fn = write_graph_chunk_oids;
+	chunks[2].id = GRAPH_CHUNKID_DATA;
+	chunks[2].size = (hashsz + 16) * ctx->commits.nr;
+	chunks[2].write_fn = write_graph_chunk_data;
 	if (ctx->num_extra_edges) {
-		chunk_ids[num_chunks] = GRAPH_CHUNKID_EXTRAEDGES;
+		chunks[num_chunks].id = GRAPH_CHUNKID_EXTRAEDGES;
+		chunks[num_chunks].size = 4 * ctx->num_extra_edges;
+		chunks[num_chunks].write_fn = write_graph_chunk_extra_edges;
 		num_chunks++;
 	}
 	if (ctx->changed_paths) {
-		chunk_ids[num_chunks] = GRAPH_CHUNKID_BLOOMINDEXES;
+		chunks[num_chunks].id = GRAPH_CHUNKID_BLOOMINDEXES;
+		chunks[num_chunks].size = sizeof(uint32_t) * ctx->commits.nr;
+		chunks[num_chunks].write_fn = write_graph_chunk_bloom_indexes;
 		num_chunks++;
-		chunk_ids[num_chunks] = GRAPH_CHUNKID_BLOOMDATA;
+		chunks[num_chunks].id = GRAPH_CHUNKID_BLOOMDATA;
+		chunks[num_chunks].size = sizeof(uint32_t) * 3
+					  + ctx->total_bloom_filter_data_size;
+		chunks[num_chunks].write_fn = write_graph_chunk_bloom_data;
 		num_chunks++;
 	}
 	if (ctx->num_commit_graphs_after > 1) {
-		chunk_ids[num_chunks] = GRAPH_CHUNKID_BASE;
+		chunks[num_chunks].id = GRAPH_CHUNKID_BASE;
+		chunks[num_chunks].size = hashsz * (ctx->num_commit_graphs_after - 1);
+		chunks[num_chunks].write_fn = write_graph_chunk_base;
 		num_chunks++;
 	}
 
-	chunk_ids[num_chunks] = 0;
-
-	chunk_offsets[0] = 8 + (num_chunks + 1) * GRAPH_CHUNKLOOKUP_WIDTH;
-	chunk_offsets[1] = chunk_offsets[0] + GRAPH_FANOUT_SIZE;
-	chunk_offsets[2] = chunk_offsets[1] + hashsz * ctx->commits.nr;
-	chunk_offsets[3] = chunk_offsets[2] + (hashsz + 16) * ctx->commits.nr;
-
-	num_chunks = 3;
-	if (ctx->num_extra_edges) {
-		chunk_offsets[num_chunks + 1] = chunk_offsets[num_chunks] +
-						4 * ctx->num_extra_edges;
-		num_chunks++;
-	}
-	if (ctx->changed_paths) {
-		chunk_offsets[num_chunks + 1] = chunk_offsets[num_chunks] +
-						sizeof(uint32_t) * ctx->commits.nr;
-		num_chunks++;
-
-		chunk_offsets[num_chunks + 1] = chunk_offsets[num_chunks] +
-						sizeof(uint32_t) * 3 + ctx->total_bloom_filter_data_size;
-		num_chunks++;
-	}
-	if (ctx->num_commit_graphs_after > 1) {
-		chunk_offsets[num_chunks + 1] = chunk_offsets[num_chunks] +
-						hashsz * (ctx->num_commit_graphs_after - 1);
-		num_chunks++;
-	}
+	chunks[num_chunks].id = 0;
+	chunks[num_chunks].size = 0;
 
 	hashwrite_be32(f, GRAPH_SIGNATURE);
 
@@ -1713,13 +1736,16 @@
 	hashwrite_u8(f, num_chunks);
 	hashwrite_u8(f, ctx->num_commit_graphs_after - 1);
 
+	chunk_offset = 8 + (num_chunks + 1) * GRAPH_CHUNKLOOKUP_WIDTH;
 	for (i = 0; i <= num_chunks; i++) {
 		uint32_t chunk_write[3];
 
-		chunk_write[0] = htonl(chunk_ids[i]);
-		chunk_write[1] = htonl(chunk_offsets[i] >> 32);
-		chunk_write[2] = htonl(chunk_offsets[i] & 0xffffffff);
+		chunk_write[0] = htonl(chunks[i].id);
+		chunk_write[1] = htonl(chunk_offset >> 32);
+		chunk_write[2] = htonl(chunk_offset & 0xffffffff);
 		hashwrite(f, chunk_write, 12);
+
+		chunk_offset += chunks[i].size;
 	}
 
 	if (ctx->report_progress) {
@@ -1732,19 +1758,19 @@
 			progress_title.buf,
 			num_chunks * ctx->commits.nr);
 	}
-	write_graph_chunk_fanout(f, ctx);
-	write_graph_chunk_oids(f, hashsz, ctx);
-	write_graph_chunk_data(f, hashsz, ctx);
-	if (ctx->num_extra_edges)
-		write_graph_chunk_extra_edges(f, ctx);
-	if (ctx->changed_paths) {
-		write_graph_chunk_bloom_indexes(f, ctx);
-		write_graph_chunk_bloom_data(f, ctx, &bloom_settings);
+
+	for (i = 0; i < num_chunks; i++) {
+		uint64_t start_offset = f->total + f->offset;
+
+		if (chunks[i].write_fn(f, ctx))
+			return -1;
+
+		if (f->total + f->offset != start_offset + chunks[i].size)
+			BUG("expected to write %"PRId64" bytes to chunk %"PRIx32", but wrote %"PRId64" instead",
+			    chunks[i].size, chunks[i].id,
+			    f->total + f->offset - start_offset);
 	}
-	if (ctx->num_commit_graphs_after > 1 &&
-	    write_graph_chunk_base(f, ctx)) {
-		return -1;
-	}
+
 	stop_progress(&ctx->progress);
 	strbuf_release(&progress_title);
 
@@ -2078,9 +2104,23 @@
 	ctx->report_progress = flags & COMMIT_GRAPH_WRITE_PROGRESS ? 1 : 0;
 	ctx->split = flags & COMMIT_GRAPH_WRITE_SPLIT ? 1 : 0;
 	ctx->split_opts = split_opts;
-	ctx->changed_paths = flags & COMMIT_GRAPH_WRITE_BLOOM_FILTERS ? 1 : 0;
 	ctx->total_bloom_filter_data_size = 0;
 
+	if (flags & COMMIT_GRAPH_WRITE_BLOOM_FILTERS)
+		ctx->changed_paths = 1;
+	if (!(flags & COMMIT_GRAPH_NO_WRITE_BLOOM_FILTERS)) {
+		struct commit_graph *g;
+		prepare_commit_graph_one(ctx->r, ctx->odb);
+
+		g = ctx->r->objects->commit_graph;
+
+		/* We have changed-paths already. Keep them in the next graph */
+		if (g && g->chunk_bloom_data) {
+			ctx->changed_paths = 1;
+			ctx->bloom_settings = g->bloom_filter_settings;
+		}
+	}
+
 	if (ctx->split) {
 		struct commit_graph *g;
 		prepare_commit_graph(ctx->r);
diff --git a/commit-graph.h b/commit-graph.h
index 28f89cd..09a9703 100644
--- a/commit-graph.h
+++ b/commit-graph.h
@@ -2,14 +2,11 @@
 #define COMMIT_GRAPH_H
 
 #include "git-compat-util.h"
-#include "repository.h"
-#include "string-list.h"
-#include "cache.h"
 #include "object-store.h"
 #include "oidset.h"
 
 #define GIT_TEST_COMMIT_GRAPH "GIT_TEST_COMMIT_GRAPH"
-#define GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD "GIT_TEST_COMMIT_GRAPH_DIE_ON_LOAD"
+#define GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE "GIT_TEST_COMMIT_GRAPH_DIE_ON_PARSE"
 #define GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS "GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS"
 
 /*
@@ -23,6 +20,9 @@
 
 struct commit;
 struct bloom_filter_settings;
+struct repository;
+struct raw_object_store;
+struct string_list;
 
 char *get_commit_graph_filename(struct object_directory *odb);
 int open_commit_graph(const char *graph_file, int *fd, struct stat *st);
@@ -92,6 +92,7 @@
 	COMMIT_GRAPH_WRITE_PROGRESS   = (1 << 1),
 	COMMIT_GRAPH_WRITE_SPLIT      = (1 << 2),
 	COMMIT_GRAPH_WRITE_BLOOM_FILTERS = (1 << 3),
+	COMMIT_GRAPH_NO_WRITE_BLOOM_FILTERS = (1 << 4),
 };
 
 enum commit_graph_split_flags {
diff --git a/commit-slab-decl.h b/commit-slab-decl.h
index bfbed15..98de2c9 100644
--- a/commit-slab-decl.h
+++ b/commit-slab-decl.h
@@ -32,6 +32,7 @@
 void init_ ##slabname## _with_stride(struct slabname *s, unsigned stride); \
 void init_ ##slabname(struct slabname *s);				\
 void clear_ ##slabname(struct slabname *s);				\
+void deep_clear_ ##slabname(struct slabname *s, void (*free_fn)(elemtype *ptr)); \
 elemtype *slabname## _at_peek(struct slabname *s, const struct commit *c, int add_if_missing); \
 elemtype *slabname## _at(struct slabname *s, const struct commit *c);	\
 elemtype *slabname## _peek(struct slabname *s, const struct commit *c)
diff --git a/commit-slab-impl.h b/commit-slab-impl.h
index 5c0eb91..557738d 100644
--- a/commit-slab-impl.h
+++ b/commit-slab-impl.h
@@ -38,6 +38,19 @@
 	FREE_AND_NULL(s->slab);						\
 }									\
 									\
+scope void deep_clear_ ##slabname(struct slabname *s, void (*free_fn)(elemtype *)) \
+{									\
+	unsigned int i;							\
+	for (i = 0; i < s->slab_count; i++) {				\
+		unsigned int j;						\
+		if (!s->slab[i])					\
+			continue;					\
+		for (j = 0; j < s->slab_size; j++)			\
+			free_fn(&s->slab[i][j * s->stride]);		\
+	}								\
+	clear_ ##slabname(s);						\
+}									\
+									\
 scope elemtype *slabname## _at_peek(struct slabname *s,			\
 						  const struct commit *c, \
 						  int add_if_missing)   \
diff --git a/commit-slab.h b/commit-slab.h
index 05b3f28..8e72a30 100644
--- a/commit-slab.h
+++ b/commit-slab.h
@@ -47,6 +47,16 @@
  *
  *   Call this function before the slab falls out of scope to avoid
  *   leaking memory.
+ *
+ * - void deep_clear_indegree(struct indegree *, void (*free_fn)(int*))
+ *
+ *   Empties the slab, similar to clear_indegree(), but in addition it
+ *   calls the given 'free_fn' for each slab entry to release any
+ *   additional memory that might be owned by the entry (but not the
+ *   entry itself!).
+ *   Note that 'free_fn' might be called even for entries for which no
+ *   indegree_at() call has been made; in this case 'free_fn' is invoked
+ *   with a pointer to a zero-initialized location.
  */
 
 #define define_commit_slab(slabname, elemtype) \
diff --git a/commit.c b/commit.c
index 43d29a8..7128895 100644
--- a/commit.c
+++ b/commit.c
@@ -423,6 +423,8 @@
 	pptr = &item->parents;
 
 	graft = lookup_commit_graft(r, &item->object.oid);
+	if (graft)
+		r->parsed_objects->substituted_parent = 1;
 	while (bufptr + parent_entry_len < tail && !memcmp(bufptr, "parent ", 7)) {
 		struct commit *new_parent;
 
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index de5d0fb..ee468ea 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -50,7 +50,7 @@
 # variable.
 __git_find_repo_path ()
 {
-	if [ -n "$__git_repo_path" ]; then
+	if [ -n "${__git_repo_path-}" ]; then
 		# we already know where it is
 		return
 	fi
@@ -404,12 +404,12 @@
 	# spaces must be replaced with underscore for multi-word
 	# commands, e.g. "git remote add" becomes remote_add.
 	local cmd="$1"
-	local incl="$2"
-	local excl="$3"
+	local incl="${2-}"
+	local excl="${3-}"
 
 	local var=__gitcomp_builtin_"${cmd/-/_}"
 	local options
-	eval "options=\$$var"
+	eval "options=\${$var-}"
 
 	if [ -z "$options" ]; then
 		# leading and trailing spaces are significant to make
@@ -801,7 +801,7 @@
 #                --remote is only compatible with --mode=refs.
 __git_complete_refs ()
 {
-	local remote dwim pfx cur_="$cur" sfx=" " mode="refs"
+	local remote= dwim= pfx= cur_="$cur" sfx=" " mode="refs"
 
 	while test $# != 0; do
 		case "$1" in
@@ -1152,7 +1152,7 @@
 	while [ $c -lt $cword ]; do
 		for word in $wordlist; do
 			if [ "$word" = "${words[c]}" ]; then
-				if [ -n "$show_idx" ]; then
+				if [ -n "${show_idx-}" ]; then
 					echo "$c $word"
 				else
 					echo "$word"
@@ -1468,7 +1468,7 @@
 {
 	local last_option dwim_opt="--dwim"
 
-	if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ]; then
+	if [ "${GIT_COMPLETION_CHECKOUT_NO_GUESS-}" = "1" ]; then
 		dwim_opt=""
 	fi
 
@@ -3350,7 +3350,7 @@
 		((c++))
 	done
 
-	if [ -z "$command" ]; then
+	if [ -z "${command-}" ]; then
 		case "$prev" in
 		--git-dir|-C|--work-tree)
 			# these need a path argument, let's fall back to
@@ -3385,7 +3385,7 @@
 			"
 			;;
 		*)
-			if test -n "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
+			if test -n "${GIT_TESTING_PORCELAIN_COMMAND_LIST-}"
 			then
 				__gitcomp "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
 			else
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index e6cd546..16260ba 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -433,7 +433,7 @@
 	local sparse=""
 	if [ -z "${GIT_PS1_COMPRESSSPARSESTATE}" ] &&
 	   [ -z "${GIT_PS1_OMITSPARSESTATE}" ] &&
-	   [ "$(git config --bool core.sparseCheckout)" == "true" ]; then
+	   [ "$(git config --bool core.sparseCheckout)" = "true" ]; then
 		sparse="|SPARSE"
 	fi
 
@@ -542,7 +542,7 @@
 		fi
 
 		if [ -n "${GIT_PS1_COMPRESSSPARSESTATE}" ] &&
-		   [ "$(git config --bool core.sparseCheckout)" == "true" ]; then
+		   [ "$(git config --bool core.sparseCheckout)" = "true" ]; then
 			h="?"
 		fi
 
diff --git a/diff.h b/diff.h
index 9443dc1..e0c0af6 100644
--- a/diff.h
+++ b/diff.h
@@ -431,11 +431,11 @@
 	struct combine_diff_path *p, const struct object_id *oid,
 	const struct object_id **parents_oid, int nparent,
 	struct strbuf *base, struct diff_options *opt);
-int diff_tree_oid(const struct object_id *old_oid,
-		  const struct object_id *new_oid,
-		  const char *base, struct diff_options *opt);
-int diff_root_tree_oid(const struct object_id *new_oid, const char *base,
-		       struct diff_options *opt);
+void diff_tree_oid(const struct object_id *old_oid,
+		   const struct object_id *new_oid,
+		   const char *base, struct diff_options *opt);
+void diff_root_tree_oid(const struct object_id *new_oid, const char *base,
+			struct diff_options *opt);
 
 struct combine_diff_path {
 	struct combine_diff_path *next;
diff --git a/dir.c b/dir.c
index 1045cc9..fe64be3 100644
--- a/dir.c
+++ b/dir.c
@@ -2209,13 +2209,13 @@
 				       baselen, excluded, pathspec);
 	case DT_REG:
 	case DT_LNK:
-		if (excluded)
-			return path_excluded;
 		if (pathspec &&
 		    !match_pathspec(istate, pathspec, path->buf, path->len,
 				    0 /* prefix */, NULL /* seen */,
 				    0 /* is_dir */))
 			return path_none;
+		if (excluded)
+			return path_excluded;
 		return path_untracked;
 	}
 }
diff --git a/entry.c b/entry.c
index 00b4903..449bd32 100644
--- a/entry.c
+++ b/entry.c
@@ -113,8 +113,7 @@
 	/* use fstat() only when path == ce->name */
 	if (fstat_is_reliable() &&
 	    state->refresh_cache && !state->base_dir_len) {
-		fstat(fd, st);
-		return 1;
+		return !fstat(fd, st);
 	}
 	return 0;
 }
diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c
index cfb8ff2..bd22e1e 100644
--- a/fmt-merge-msg.c
+++ b/fmt-merge-msg.c
@@ -10,6 +10,8 @@
 #include "commit-reach.h"
 
 static int use_branch_desc;
+static int suppress_dest_pattern_seen;
+static struct string_list suppress_dest_patterns = STRING_LIST_INIT_DUP;
 
 int fmt_merge_msg_config(const char *key, const char *value, void *cb)
 {
@@ -22,6 +24,14 @@
 			merge_log_config = DEFAULT_MERGE_LOG_LEN;
 	} else if (!strcmp(key, "merge.branchdesc")) {
 		use_branch_desc = git_config_bool(key, value);
+	} else if (!strcmp(key, "merge.suppressdest")) {
+		if (!value)
+			return config_error_nonbool(key);
+		if (!*value)
+			string_list_clear(&suppress_dest_patterns, 0);
+		else
+			string_list_append(&suppress_dest_patterns, value);
+		suppress_dest_pattern_seen = 1;
 	} else {
 		return git_default_config(key, value, cb);
 	}
@@ -403,6 +413,24 @@
 	string_list_clear(&subjects, 0);
 }
 
+/*
+ * See if dest_branch matches with any glob pattern on the
+ * suppress_dest_patterns list.
+ *
+ * We may want to also allow negative matches e.g. ":!glob" like we do
+ * for pathspec, but for now, let's keep it simple and stupid.
+ */
+static int dest_suppressed(const char *dest_branch)
+{
+	struct string_list_item *item;
+
+	for_each_string_list_item(item, &suppress_dest_patterns) {
+		if (!wildmatch(item->string, dest_branch, WM_PATHNAME))
+			return 1;
+	}
+	return 0;
+}
+
 static void fmt_merge_msg_title(struct strbuf *out,
 				const char *current_branch)
 {
@@ -451,7 +479,9 @@
 			strbuf_addf(out, " of %s", srcs.items[i].string);
 	}
 
-	strbuf_addf(out, " into %s\n", current_branch);
+	if (!dest_suppressed(current_branch))
+		strbuf_addf(out, " into %s", current_branch);
+	strbuf_addch(out, '\n');
 }
 
 static void fmt_tag_signature(struct strbuf *tagbuf,
@@ -596,6 +626,9 @@
 	void *current_branch_to_free;
 	struct merge_parents merge_parents;
 
+	if (!suppress_dest_pattern_seen)
+		string_list_append(&suppress_dest_patterns, "master");
+
 	memset(&merge_parents, 0, sizeof(merge_parents));
 
 	/* get current branch */
diff --git a/fsmonitor.c b/fsmonitor.c
index 932bd90..ed796e3 100644
--- a/fsmonitor.c
+++ b/fsmonitor.c
@@ -217,7 +217,7 @@
 				 * Need to use a char * variable because static
 				 * analysis was suggesting to use strbuf_addbuf
 				 * but we don't want to copy the entire strbuf
-				 * only the the chars up to the first NUL
+				 * only the chars up to the first NUL
 				 */
 				buf = query_result.buf;
 				strbuf_addstr(&last_update_token, buf);
diff --git a/git-bisect.sh b/git-bisect.sh
index 08a6ed5..f03fbb1 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -41,7 +41,7 @@
 
 bisect_head()
 {
-	if test -f "$GIT_DIR/BISECT_HEAD"
+	if git rev-parse --verify -q BISECT_HEAD > /dev/null
 	then
 		echo BISECT_HEAD
 	else
@@ -153,7 +153,7 @@
 	git bisect--helper --bisect-next-check $TERM_GOOD $TERM_BAD $TERM_GOOD|| exit
 
 	# Perform all bisection computation, display and checkout
-	git bisect--helper --next-all $(test -f "$GIT_DIR/BISECT_HEAD" && echo --no-checkout)
+	git bisect--helper --next-all $(git rev-parse --verify -q BISECT_HEAD > /dev/null && echo --no-checkout)
 	res=$?
 
 	# Check if we should exit because bisection is finished
diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl
index e54f3e6..af1fee7 100644
--- a/git-gui/lib/choose_repository.tcl
+++ b/git-gui/lib/choose_repository.tcl
@@ -357,31 +357,10 @@
 	if {$outdir_var ne ""} {
 		upvar 1 $outdir_var outdir
 	}
-	if {[file isfile $path]} {
-		set fp [open $path r]
-		gets $fp line
-		close $fp
-		if {[regexp "^gitdir: (.+)$" $line line link_target]} {
-			set path [file join [file dirname $path] $link_target]
-			set path [file normalize $path]
-		}
+	if {[catch {set outdir [git rev-parse --resolve-git-dir $path]}]} {
+		return 0
 	}
-
-	if {[file exists [file join $path HEAD]]
-	 && [file exists [file join $path objects]]
-	 && [file exists [file join $path config]]} {
-		set outdir $path
-		return 1
-	}
-	if {[is_Cygwin]} {
-		if {[file exists [file join $path HEAD]]
-		 && [file exists [file join $path objects.lnk]]
-		 && [file exists [file join $path config.lnk]]} {
-			set outdir $path
-			return 1
-		}
-	}
-	return 0
+	return 1
 }
 
 proc _objdir {path} {
diff --git a/git-send-email.perl b/git-send-email.perl
index dc95656..36c47ba 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1699,10 +1699,14 @@
 				$xfer_encoding = $1 if not defined $xfer_encoding;
 			}
 			elsif (/^In-Reply-To: (.*)/i) {
-				$in_reply_to = $1;
+				if (!$initial_in_reply_to || $thread) {
+					$in_reply_to = $1;
+				}
 			}
 			elsif (/^References: (.*)/i) {
-				$references = $1;
+				if (!$initial_in_reply_to || $thread) {
+					$references = $1;
+				}
 			}
 			elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) {
 				push @xh, $_;
diff --git a/git.c b/git.c
index 2f021b9..6cd887b 100644
--- a/git.c
+++ b/git.c
@@ -346,6 +346,8 @@
 			commit_pager_choice();
 
 			child.use_shell = 1;
+			child.clean_on_exit = 1;
+			child.wait_after_clean = 1;
 			child.trace2_child_class = "shell_alias";
 			argv_array_push(&child.args, alias_string + 1);
 			argv_array_pushv(&child.args, (*argv) + 1);
@@ -767,7 +769,7 @@
 			 * OK to return. Otherwise, we just pass along the status code.
 			 */
 			i = run_command_v_opt_tr2(args.argv, RUN_SILENT_EXEC_FAILURE |
-						  RUN_CLEAN_ON_EXIT, "git_alias");
+						  RUN_CLEAN_ON_EXIT | RUN_WAIT_AFTER_CLEAN, "git_alias");
 			if (i >= 0 || errno != ENOENT)
 				exit(i);
 			die("could not execute builtin %s", **argv);
diff --git a/grep.c b/grep.c
index 13232a9..54af9f8 100644
--- a/grep.c
+++ b/grep.c
@@ -1817,7 +1817,7 @@
 		 * We might set up the shared textconv cache data here, which
 		 * is not thread-safe. Also, get_oid_with_context() and
 		 * parse_object() might be internally called. As they are not
-		 * currenty thread-safe and might be racy with object reading,
+		 * currently thread-safe and might be racy with object reading,
 		 * obj_read_lock() must be called.
 		 */
 		grep_attr_lock();
diff --git a/hashmap.h b/hashmap.h
index 79ae9f8..ef220de 100644
--- a/hashmap.h
+++ b/hashmap.h
@@ -168,7 +168,7 @@
  * argument `keydata`, respectively. Otherwise, `keydata` is NULL.
  *
  * When it is too expensive to allocate a user entry (either because it is
- * large or varialbe sized, such that it is not on the stack), then the
+ * large or variable sized, such that it is not on the stack), then the
  * relevant data to check for equality should be passed via `keydata`.
  * In this case `key` can be a stripped down version of the user key data
  * or even just a hashmap_entry having the correct hash.
diff --git a/object.h b/object.h
index 38dc2d5..96a2105 100644
--- a/object.h
+++ b/object.h
@@ -25,6 +25,7 @@
 	char *alternate_shallow_file;
 
 	int commit_graft_prepared;
+	int substituted_parent;
 
 	struct buffer_slab *buffer_slab;
 };
diff --git a/pack-write.c b/pack-write.c
index f0017be..685d327 100644
--- a/pack-write.c
+++ b/pack-write.c
@@ -38,9 +38,8 @@
 }
 
 /*
- * On entry *sha1 contains the pack content SHA1 hash, on exit it is
- * the SHA1 hash of sorted object names. The objects array passed in
- * will be sorted by SHA1 on exit.
+ * The *sha1 contains the pack content SHA1 hash.
+ * The objects array passed in will be sorted by SHA1 on exit.
  */
 const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects,
 			   int nr_objects, const struct pack_idx_option *opts,
diff --git a/po/ca.po b/po/ca.po
index 3a0246e..c43c21b 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -51,7 +51,7 @@
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
 "POT-Creation-Date: 2020-05-27 07:23+0800\n"
-"PO-Revision-Date: 2020-05-22 07:51+0200\n"
+"PO-Revision-Date: 2020-05-28 18:14+0200\n"
 "Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
 "Language-Team: Catalan\n"
 "Language: ca\n"
@@ -59,7 +59,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 2.3\n"
+"X-Generator: Poedit 2.3.1\n"
 
 #: add-interactive.c:368
 #, c-format
@@ -222,7 +222,7 @@
 
 #: add-interactive.c:1032
 msgid "choose all items"
-msgstr "escolliu tots els ítems"
+msgstr "trieu tots els ítems"
 
 #: add-interactive.c:1034
 msgid "(empty) finish selecting"
@@ -304,9 +304,9 @@
 msgstr ""
 "y - fes «stage» d'aquest tros\n"
 "n - no facis «stage» d'aquest tros\n"
-"q - surt; no facis «stage» d'aquest tros o de cap altre restant\n"
-"a - fes «stage» d'aquest tros i tota la resta de trossos del fitxer\n"
-"d - no facis «stage» d'aquest tros o de cap altre restant del fitxer\n"
+"q - surt; no facis «stage» d'aquest tros ni de cap altre restant\n"
+"a - fes «stage» d'aquest tros i de tota la resta de trossos del fitxer\n"
+"d - no facis «stage» d'aquest tros ni de cap altre restant del fitxer\n"
 
 #: add-patch.c:55 git-add--interactive.perl:1433
 #, c-format, perl-format
@@ -341,9 +341,9 @@
 msgstr ""
 "y - fes «stash» d'aquest tros\n"
 "n - no facis «stash» d'aquest tros\n"
-"q - surt; no facis «stash» d'aquest tros o de cap altre restant\n"
-"a - fes «stash» d'aquest tros i tota la resta de trossos del fitxer\n"
-"d - no facis «stash» d'aquest tros o de cap altre restant del fitxer\n"
+"q - surt; no facis «stash» d'aquest tros ni de cap altre restant\n"
+"a - fes «stash» d'aquest tros i de tota la resta de trossos del fitxer\n"
+"d - no facis «stash» d'aquest tros ni de cap altre restant del fitxer\n"
 
 #: add-patch.c:78 git-add--interactive.perl:1438
 #, c-format, perl-format
@@ -378,9 +378,9 @@
 msgstr ""
 "y - fes «unstage» d'aquest tros\n"
 "n - no facis «unstage» d'aquest tros\n"
-"q - surt; no facis «unstage» d'aquest tros o de cap altre restant\n"
-"a - fes «unstage» d'aquest tros i tota la resta de trossos del fitxer\n"
-"d - no facis «unstage» d'aquest tros o de cap altre restant del fitxer\n"
+"q - surt; no facis «unstage» d'aquest tros ni de cap altre restant\n"
+"a - fes «unstage» d'aquest tros i de tota la resta de trossos del fitxer\n"
+"d - no facis «unstage» d'aquest tros ni de cap altre restant del fitxer\n"
 
 #: add-patch.c:100 git-add--interactive.perl:1443
 #, c-format, perl-format
@@ -390,7 +390,7 @@
 #: add-patch.c:101 git-add--interactive.perl:1444
 #, c-format, perl-format
 msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
-msgstr "Aplica l'esborrat a l'índex [y,n,q,a,d%s,?]? "
+msgstr "Aplica la supressió a l'índex [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:102 git-add--interactive.perl:1445
 #, c-format, perl-format
@@ -423,19 +423,19 @@
 #: git-add--interactive.perl:1463
 #, c-format, perl-format
 msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descarta el canvi de mode des de l'arbre de treball [y,n,q,a,d%s,?]? "
+msgstr "Descarta el canvi de mode de l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:123 git-add--interactive.perl:1449
 #: git-add--interactive.perl:1464
 #, c-format, perl-format
 msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descarta l'esborrat des de l'arbre de treball [y,n,q,a,d%s,?]? "
+msgstr "Descarta suprimir de l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:124 git-add--interactive.perl:1450
 #: git-add--interactive.perl:1465
 #, c-format, perl-format
 msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
-msgstr "Descarta aquest tros des de l'arbre de treball  [y,n,q,a,d%s,?]? "
+msgstr "Descarta aquest tros de l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:126 add-patch.c:148 add-patch.c:191
 msgid ""
@@ -454,7 +454,7 @@
 "d - do not discard this hunk or any of the later hunks in the file\n"
 msgstr ""
 "y - descarta aquest tros de l'arbre de treball\n"
-"n - no descartis aquest tros des de l'arbre de treball\n"
+"n - no descartis aquest tros de l'arbre de treball\n"
 "q - surt; no apliquis aquest tros ni cap dels pendents\n"
 "a - descarta aquest tros i tots els trossos posteriors en el fitxer\n"
 "d - no descartis aquest tros ni cap dels trossos posteriors en el fitxer\n"
@@ -463,20 +463,19 @@
 #, c-format, perl-format
 msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
-"Descarta el canvi de mode des de l'índex i l'arbre de treball [y,n,q,a,d"
+"Descarta el canvi de mode de l'índex i de l'arbre de treball [y,n,q,a,d"
 "%s,?]? "
 
 #: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454
 #, c-format, perl-format
 msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
-msgstr ""
-"Descarta la supressió des de l'índex i l'arbre de treball [y,n,q,a,d%s,?]? "
+msgstr "Descarta suprimir de l'índex i de l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455
 #, c-format, perl-format
 msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
-"Descarta aquest tros des de l'índex i l'arbre de treball [y,n,q,a,d%s,?]? "
+"Descarta aquest tros de l'índex i de l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:151
 msgid ""
@@ -486,8 +485,8 @@
 "a - discard this hunk and all later hunks in the file\n"
 "d - do not discard this hunk or any of the later hunks in the file\n"
 msgstr ""
-"y - descarta aquest tros de l'arbre de treball\n"
-"n - no descartis aquest tros des de l'arbre de treball\n"
+"y - descarta aquest tros de l'índex i de l'arbre de treball\n"
+"n - no descartis aquest tros de l'índex ni de l'arbre de treball\n"
 "q - surt; no apliquis aquest tros ni cap dels pendents\n"
 "a - descarta aquest tros i tots els trossos posteriors en el fitxer\n"
 "d - no descartis aquest tros ni cap dels trossos posteriors en el fitxer\n"
@@ -496,17 +495,17 @@
 #, c-format, perl-format
 msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
-"Aplica el canvi de mode a l'índex i l'arbre de treball [y,n,q,a,d%s,?]? "
+"Aplica el canvi de mode a l'índex i a l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459
 #, c-format, perl-format
 msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplica la supressió a l'índex i l'arbre de treball [y,n,q,a,d%s,?]? "
+msgstr "Aplica la supressió a l'índex i a l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460
 #, c-format, perl-format
 msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
-msgstr "Aplica aquest tros a l'índex i l'arbre de treball [y,n,q,a,d%s,?]? "
+msgstr "Aplica aquest tros a l'índex i a l'arbre de treball [y,n,q,a,d%s,?]? "
 
 #: add-patch.c:172
 msgid ""
@@ -516,8 +515,8 @@
 "a - apply this hunk and all later hunks in the file\n"
 "d - do not apply this hunk or any of the later hunks in the file\n"
 msgstr ""
-"y - aplica aquest tros a l'índex i l'arbre de treball\n"
-"n - no apliquis aquest tros des de l'índex i de l'arbre de treball\n"
+"y - aplica aquest tros a l'índex i a l'arbre de treball\n"
+"n - no apliquis aquest tros a l'índex ni a l'arbre de treball\n"
 "q - surt; no apliquis aquest tros ni cap dels pendents\n"
 "a - aplica aquest tros i tots els trossos posteriors en el fitxer\n"
 "d - no apliquis aquest tros ni cap dels trossos posteriors en el fitxer\n"
@@ -607,9 +606,9 @@
 "Lines starting with %c will be removed.\n"
 msgstr ""
 "---\n"
-"Per suprimir «%c» línies, convertiu-les a ' ' (context).\n"
-"Per suprimir «%c» línies, suprimiu-les.\n"
-"Les línies que comencin per %c seran suprimides.\n"
+"Per a eliminar les línies «%c», convertiu-les en línies ' ' (context).\n"
+"Per a eliminar les línies «%c», suprimiu-les.\n"
+"Les línies que comencin per %c s'eliminaran.\n"
 
 #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
 #: add-patch.c:1071 git-add--interactive.perl:1126
@@ -619,8 +618,7 @@
 "aborted and the hunk is left unchanged.\n"
 msgstr ""
 "Si no s'aplica correctament, tindreu una oportunitat per editar-lo\n"
-"de nou. Si totes les línies del tros se suprimeixen, llavors l'edició "
-"s'avorta\n"
+"de nou. Si s'eliminen totes les línies del tros, llavors l'edició s'avorta\n"
 "i el tros es deixa sense cap canvi.\n"
 
 #: add-patch.c:1104
@@ -629,7 +627,7 @@
 
 #: add-patch.c:1149
 msgid "'git apply --cached' failed"
-msgstr "'git apply --cached' ha fallat"
+msgstr "«git apply --cached» ha fallat"
 
 #. TRANSLATORS: do not translate [y/n]
 #. The program will only accept that input at this point.
@@ -698,7 +696,7 @@
 
 #: add-patch.c:1479 git-add--interactive.perl:1577
 msgid "go to which hunk (<ret> to see more)? "
-msgstr "vés a quin tros (<ret> per veure'n més)? "
+msgstr "vés a quin tros (<ret> per a veure'n més)? "
 
 #: add-patch.c:1480 git-add--interactive.perl:1579
 msgid "go to which hunk? "
@@ -793,7 +791,7 @@
 "as appropriate to mark resolution and make a commit."
 msgstr ""
 "Arregleu-los en l'arbre de treball, i després useu\n"
-"'git add/rm <fitxer>' segons sigui apropiat per a marcar la\n"
+"«git add/rm <fitxer>» segons sigui apropiat per a marcar la\n"
 "resolució i feu una comissió."
 
 #: advice.c:273
@@ -843,7 +841,7 @@
 "Si voleu crear una branca nova per a conservar les comissions que creeu,\n"
 "poder fer-ho (ara o més tard) usant -c amb l'ordre switch. Exemple:\n"
 "\n"
-"  git switch -b <nom-de-branca-nova>\n"
+"  git switch -c <nom-de-branca-nova>\n"
 "\n"
 "O desfer aquesta operació amb:\n"
 "\n"
@@ -1411,7 +1409,7 @@
 
 #: apply.c:4991
 msgid "mark new files with `git add --intent-to-add`"
-msgstr "marca els fitxers nous amb «git add --inten-to-add»"
+msgstr "marca els fitxers nous amb «git add --intent-to-add»"
 
 #: apply.c:4993
 msgid "apply a patch without touching the working tree"
@@ -1584,7 +1582,7 @@
 
 #: archive.c:432
 msgid "current working directory is untracked"
-msgstr "no es segueix el directori de treball actual"
+msgstr "no se segueix el directori de treball actual"
 
 #: archive.c:464
 msgid "fmt"
@@ -1677,7 +1675,7 @@
 #: archive.c:529
 #, c-format
 msgid "Argument not supported for format '%s': -%d"
-msgstr "Paràmetre no admès per al format «%s»: -%d"
+msgstr "Argument no admès per al format «%s»: -%d"
 
 #: attr.c:212
 #, c-format
@@ -1695,7 +1693,7 @@
 "Use '\\!' for literal leading exclamation."
 msgstr ""
 "Els patrons negatius s'ignoren en els atributs de git\n"
-"Useu '\\!' per exclamació capdavantera literal."
+"Useu «\\!» per exclamació capdavantera literal."
 
 #: bisect.c:468
 #, c-format
@@ -1867,7 +1865,7 @@
 "\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\"."
+"invocant «git branch --set-upstream-to=%s%s%s»."
 
 #: branch.c:67
 #, c-format
@@ -2053,7 +2051,7 @@
 
 #: bundle.c:280
 msgid "Could not spawn pack-objects"
-msgstr "No s'ha pogut executar el pack-objects"
+msgstr "No s'ha pogut generar el pack-objects"
 
 #: bundle.c:291
 msgid "pack-objects died"
@@ -2071,7 +2069,7 @@
 #: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306
 #, c-format
 msgid "unrecognized argument: %s"
-msgstr "paràmetre no reconegut: %s"
+msgstr "argument no reconegut: %s"
 
 #: bundle.c:469
 msgid "Refusing to create empty bundle."
@@ -2124,9 +2122,9 @@
 msgstr "desplaçament %08x%08x del gràfic de comissions incorrecte"
 
 #: commit-graph.c:362
-#, fuzzy, c-format
+#, c-format
 msgid "commit-graph chunk id %08x appears multiple times"
-msgstr "id%08x del graf de comissions múltiples vegades"
+msgstr "id %08x del graf de comissions apareix múltiples vegades"
 
 #: commit-graph.c:436
 msgid "commit-graph has no base graphs chunk"
@@ -2140,7 +2138,7 @@
 #, c-format
 msgid "invalid commit-graph chain: line '%s' not a hash"
 msgstr ""
-"la cadena del graf de comissions no és vàlida: la línea «%s» no és un hash"
+"la cadena del graf de comissions no és vàlida: la línia «%s» no és un hash"
 
 #: commit-graph.c:518
 msgid "unable to find all commit-graph files"
@@ -2185,7 +2183,7 @@
 
 #: commit-graph.c:1233
 msgid "Clearing commit marks in commit graph"
-msgstr "S'estan netejant les marques de comissions al graf de comissions"
+msgstr "S'estan esborrant les marques de comissions al graf de comissions"
 
 #: commit-graph.c:1252
 msgid "Computing commit graph generation numbers"
@@ -2374,7 +2372,7 @@
 "commit-graph has non-zero generation number for commit %s, but zero elsewhere"
 msgstr ""
 "El graf de comissions té un nombre de generació diferent de zero per a "
-"commisió %s però té zero en altres llocs"
+"comissió %s però té zero en altres llocs"
 
 #: commit-graph.c:2322
 #, c-format
@@ -2493,7 +2491,7 @@
 #: config.c:414
 #, c-format
 msgid "invalid key (newline): %s"
-msgstr "clau no vàlida (línea nova): %s"
+msgstr "clau no vàlida (línia nova): %s"
 
 #: config.c:450 config.c:462
 #, c-format
@@ -2568,7 +2566,7 @@
 #, c-format
 msgid "bad numeric config value '%s' for '%s' in submodule-blob %s: %s"
 msgstr ""
-"valor de configuració numèric «%s» erroni' per «%s» en el blob de submòdul "
+"valor de configuració numèric «%s» erroni per «%s» en el blob de submòdul "
 "%s: %s"
 
 #: config.c:1025
@@ -2924,7 +2922,7 @@
 
 #: connected.c:119
 msgid "Could not run 'git rev-list'"
-msgstr "No s'ha pogut executar 'git rev-list'"
+msgstr "No s'ha pogut executar «git rev-list»"
 
 #: connected.c:139
 msgid "failed write to rev-list"
@@ -2937,7 +2935,7 @@
 #: convert.c:194
 #, c-format
 msgid "illegal crlf_action %d"
-msgstr "crlf_action %d  il·legal"
+msgstr "crlf_action %d il·legal"
 
 #: convert.c:207
 #, c-format
@@ -2957,7 +2955,7 @@
 #: convert.c:217
 #, c-format
 msgid "LF would be replaced by CRLF in %s"
-msgstr "LF es reemplaçà per LF en %s"
+msgstr "LF es reemplaçà per CRLF en %s"
 
 #: convert.c:219
 #, c-format
@@ -2994,7 +2992,7 @@
 "The file '%s' is missing a byte order mark (BOM). Please use UTF-%sBE or UTF-"
 "%sLE (depending on the byte order) as working-tree-encoding."
 msgstr ""
-"Falta una marca d'ordre de byte (BOM) al fitxer «%s» . Useu UTF-%sBE o UTF-"
+"Falta una marca d'ordre de byte (BOM) al fitxer «%s». Useu UTF-%sBE o UTF-"
 "%sLE (depenent de l'ordre de byte) com a codificacions d'arbre de treball."
 
 #: convert.c:419 convert.c:490
@@ -3038,7 +3036,7 @@
 
 #: convert.c:851
 msgid "path name too long for external filter"
-msgstr "el nom del camí és massa llarg per al filtre extern"
+msgstr "el nom del camí és massa gran per al filtre extern"
 
 #: convert.c:943
 #, c-format
@@ -3240,7 +3238,7 @@
 #, c-format
 msgid "Unknown value for 'diff.submodule' config variable: '%s'"
 msgstr ""
-"Valor desconegut de la variable de configuració de 'diff.submodule': «%s»"
+"Valor desconegut de la variable de configuració de «diff.submodule»: «%s»"
 
 #: diff.c:465
 #, c-format
@@ -3248,7 +3246,7 @@
 "Found errors in 'diff.dirstat' config variable:\n"
 "%s"
 msgstr ""
-"S'han trobat errors en la variable de configuració 'diff.dirstat':\n"
+"S'han trobat errors en la variable de configuració «diff.dirstat»:\n"
 "%s"
 
 #: diff.c:4238
@@ -3316,12 +3314,12 @@
 #: diff.c:4961
 #, c-format
 msgid "bad --color-moved argument: %s"
-msgstr "paràmetre --color-moved incorrecte: %s"
+msgstr "argument --color-moved incorrecte: %s"
 
 #: diff.c:4980
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
-msgstr "mode «%s» no vàlid en -color-moved-ws"
+msgstr "mode «%s» no vàlid en --color-moved-ws"
 
 #: diff.c:5020
 msgid ""
@@ -3344,7 +3342,7 @@
 #: diff.c:5270
 #, c-format
 msgid "bad --word-diff argument: %s"
-msgstr "paràmetre --word-diff incorrecte: %s"
+msgstr "argument --word-diff incorrecte: %s"
 
 #: diff.c:5293
 msgid "Diff output format options"
@@ -3372,11 +3370,11 @@
 
 #: diff.c:5312
 msgid "synonym for '-p --raw'"
-msgstr "sinònim de per a «-p --raw»"
+msgstr "sinònim de «-p --raw»"
 
 #: diff.c:5316
 msgid "synonym for '-p --stat'"
-msgstr "sinònim de per a «-p --stat»"
+msgstr "sinònim de «-p --stat»"
 
 #: diff.c:5320
 msgid "machine friendly --stat"
@@ -3399,11 +3397,11 @@
 
 #: diff.c:5330
 msgid "synonym for --dirstat=cumulative"
-msgstr "sinònim per -dirstat=cumulative"
+msgstr "sinònim de --dirstat=cumulative"
 
 #: diff.c:5334
 msgid "synonym for --dirstat=files,param1,param2..."
-msgstr "sinònim per --dirstat=files,param1,param2..."
+msgstr "sinònim de --dirstat=files,param1,param2..."
 
 #: diff.c:5338
 msgid "warn if changes introduce conflict markers or whitespace errors"
@@ -3425,7 +3423,7 @@
 
 #: diff.c:5349
 msgid "<width>[,<name-width>[,<count>]]"
-msgstr "<width>[<name-width>[<count>]]"
+msgstr "<amplada>[<amplada-nom>[,<recompte>]]"
 
 #: diff.c:5350
 msgid "generate diffstat"
@@ -3461,7 +3459,7 @@
 
 #: diff.c:5368
 msgid "output a binary diff that can be applied"
-msgstr "diff amb sortida binaria que pot ser aplicada"
+msgstr "diff amb sortida binària que pot ser aplicada"
 
 #: diff.c:5371
 #, fuzzy
@@ -3474,17 +3472,15 @@
 msgstr "mostra un diff amb colors"
 
 #: diff.c:5374
-#, fuzzy
 msgid "<kind>"
 msgstr "<kind>"
 
 #: diff.c:5375
-#, fuzzy
 msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
 msgstr ""
-"ressalta els errors d'espai en blanc a les línies «context» «old» o «new» al "
+"ressalta els errors d'espai en blanc a les línies «context», «old» o «new» al "
 "diff"
 
 #: diff.c:5378
@@ -3501,12 +3497,10 @@
 msgstr "<prefix>"
 
 #: diff.c:5382
-#, fuzzy
 msgid "show the given source prefix instead of \"a/\""
 msgstr "mostra el prefix d'origen donat en lloc de «a/»"
 
 #: diff.c:5385
-#, fuzzy
 msgid "show the given destination prefix instead of \"b/\""
 msgstr "mostra el prefix de destinació indicat en lloc de «b/»"
 
@@ -3519,7 +3513,6 @@
 msgstr "no mostris cap prefix d'origen o destí"
 
 #: diff.c:5394
-#, fuzzy
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr ""
 "mostra el context entre trossos de diferència fins al nombre especificat de "
@@ -3585,17 +3578,16 @@
 msgstr "continua llistant l'històric d'un fitxer més enllà dels canvis de nom"
 
 #: diff.c:5439
-#, fuzzy
 msgid ""
 "prevent rename/copy detection if the number of rename/copy targets exceeds "
 "given limit"
 msgstr ""
-"Evita la detecció de canvi de nom/còpia si el nombre d'objectius de canvi de "
-"nom supera el límit indicat"
+"Evita la detecció de canvi de nom/còpia si el nombre d'objectius de canvi de nom/còpia "
+"supera el límit indicat"
 
 #: diff.c:5441
 msgid "Diff algorithm options"
-msgstr "Opcions d'algorisme Diff"
+msgstr "Opcions de l'algorisme Diff"
 
 #: diff.c:5443
 msgid "produce the smallest possible diff"
@@ -3603,7 +3595,7 @@
 
 #: diff.c:5446
 msgid "ignore whitespace when comparing lines"
-msgstr "ignora els espai en blanc en comparar línies"
+msgstr "ignora els espais en blanc en comparar línies"
 
 #: diff.c:5449
 msgid "ignore changes in amount of whitespace"
@@ -3622,10 +3614,9 @@
 msgstr "ignora els canvis en línies que estan en blanc"
 
 #: diff.c:5461
-#, fuzzy
 msgid "heuristic to shift diff hunk boundaries for easy reading"
 msgstr ""
-"heurística per canviar els límits del tros de diferència per a lectura fàcil"
+"heurística per a desplaçar els límits del tros de diferència per a una lectura fàcil"
 
 #: diff.c:5464
 msgid "generate diff using the \"patience diff\" algorithm"
@@ -3641,7 +3632,7 @@
 
 #: diff.c:5471
 msgid "choose a diff algorithm"
-msgstr "escolliu un algorisme pel diff"
+msgstr "trieu un algorisme per al diff"
 
 #: diff.c:5473
 msgid "<text>"
@@ -4070,7 +4061,7 @@
 
 #: fetch-pack.c:1211
 msgid "Server does not support shallow requests"
-msgstr "El servidor no permet peticions superficials"
+msgstr "El servidor no permet sol·licituds superficials"
 
 #: fetch-pack.c:1218
 msgid "Server supports filter"
@@ -4078,7 +4069,7 @@
 
 #: fetch-pack.c:1242
 msgid "unable to write request to remote"
-msgstr "no s'ha pogut escriure la petició al remot"
+msgstr "no s'ha pogut escriure la sol·licitud al remot"
 
 #: fetch-pack.c:1260
 #, c-format
@@ -4102,11 +4093,11 @@
 
 #: fetch-pack.c:1342
 msgid "expected packfile to be sent after 'ready'"
-msgstr "s'espera l'enviament del fitxer de paquet després de «ready»"
+msgstr "s'esperava l'enviament del fitxer de paquet després de «ready»"
 
 #: fetch-pack.c:1344
 msgid "expected no other sections to be sent after no 'ready'"
-msgstr "s'espera que cap altra seccions s'enviï després de no «ready»"
+msgstr "s'esperava que no s'enviés cap altra secció després de no «ready»"
 
 #: fetch-pack.c:1386
 #, c-format
@@ -4209,17 +4200,14 @@
 msgstr "col·laborar (vegeu també: git help workflow)"
 
 #: help.c:31
-#, fuzzy
 msgid "Main Porcelain Commands"
 msgstr "Ordres principals de porcellana"
 
 #: help.c:32
-#, fuzzy
 msgid "Ancillary Commands / Manipulators"
-msgstr "Ordres Auxiliars / Manipuladors"
+msgstr "Ordres auxiliars / manipuladors"
 
 #: help.c:33
-#, fuzzy
 msgid "Ancillary Commands / Interrogators"
 msgstr "Ordres auxiliars / interrogadors"
 
@@ -4477,7 +4465,7 @@
 "may have crashed in this repository earlier:\n"
 "remove the file manually to continue."
 msgstr ""
-"No s'ha pogut crear '%s.lock': %s.\n"
+"No s'ha pogut crear «%s.lock»: %s.\n"
 "\n"
 "Sembla que un altre procés de git s'està executant en aquest\n"
 "dipòsit, per exemple, un editor obert per «git commit». \n"
@@ -4586,8 +4574,7 @@
 #, c-format
 msgid "Failed to merge submodule %s (merge following commits not found)"
 msgstr ""
-"Ha fallat en fusionar el submòdul  %s (no s'ha trobat les comissions "
-"següents)"
+"Ha fallat en fusionar el submòdul %s (no s'ha trobat les comissions següents)"
 
 #: merge-recursive.c:1255
 #, c-format
@@ -4611,7 +4598,7 @@
 msgstr ""
 "Si això és correcte simplement afegiu-ho a l'índex per exemple utilitzant "
 "git update-index --cacheinfo 160000 per cents \"%s\" que acceptaran aquest "
-"suggeriment."
+"suggeriment.\n"
 
 #: merge-recursive.c:1268
 #, c-format
@@ -5050,9 +5037,8 @@
 msgstr "no s'han vist caure els paquets del fitxer"
 
 #: midx.c:925
-#, fuzzy
 msgid "no pack files to index."
-msgstr "Afegint fitxers de paquets a multi-index"
+msgstr "no hi ha fitxers empaquetats a indexar."
 
 #: midx.c:977
 #, fuzzy
@@ -5066,7 +5052,7 @@
 
 #: midx.c:1112
 msgid "Looking for referenced packfiles"
-msgstr "S'estan cercant fitxers de paquets referenciats"
+msgstr "S'estan cercant fitxers empaquetats referenciats"
 
 #: midx.c:1127
 #, fuzzy, c-format
@@ -5124,7 +5110,7 @@
 
 #: midx.c:1433
 msgid "could not start pack-objects"
-msgstr "no s'ha pogut executar el pack-objects"
+msgstr "no s'ha pogut iniciar el pack-objects"
 
 #: midx.c:1452
 msgid "could not finish pack-objects"
@@ -5205,14 +5191,14 @@
 msgstr "no s'ha pogut analitzar l'objecte: %s"
 
 #: object.c:266 object.c:278
-#, fuzzy, c-format
+#, c-format
 msgid "hash mismatch %s"
-msgstr "els resums no coincideixen"
+msgstr "el resum no coincideix %s"
 
 #: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135
-#, fuzzy, c-format
+#, c-format
 msgid "unable to get size of %s"
-msgstr "no s'ha pogut obtenir la mida dels percentatges"
+msgstr "no s'ha pogut obtenir la mida de %s"
 
 #: packfile.c:629
 msgid "offset before end of packfile (broken .idx?)"
@@ -5325,7 +5311,7 @@
 #: parse-options.c:907
 #, c-format
 msgid "   or: %s"
-msgstr " o: %s"
+msgstr "   o: %s"
 
 #: parse-options.c:910
 #, c-format
@@ -5381,7 +5367,7 @@
 #: pathspec.c:327
 #, c-format
 msgid "Invalid pathspec magic '%.*s' in '%s'"
-msgstr "Màgia d'especificació de camí no vàlida '%.*s' en «%s»"
+msgstr "Màgia d'especificació de camí no vàlida «%.*s» en «%s»"
 
 #: pathspec.c:332
 #, c-format
@@ -5728,7 +5714,7 @@
 msgstr "no s'ha pogut desenllaçar: %s"
 
 #: read-cache.c:3179
-#, fuzzy, c-format
+#, c-format
 msgid "cannot fix permission bits on '%s'"
 msgstr "no s'han pogut corregir els bits de permisos en «%s»"
 
@@ -5743,8 +5729,9 @@
 "continue'.\n"
 "Or you can abort the rebase with 'git rebase --abort'.\n"
 msgstr ""
-"Podeu arreglar això amb 'git rebase --edit-todo' i després 'git rebase --"
-"continue'.\n"
+"Podeu arreglar-ho amb «git rebase --edit-todo» i després «git rebase --"
+"continue».\n"
+"O bé, podeu avortar el «rebase» amb «git rebase --abort».\n"
 
 #: rebase-interactive.c:33
 #, c-format
@@ -5776,9 +5763,26 @@
 "\n"
 "These lines can be re-ordered; they are executed from top to bottom.\n"
 msgstr ""
-"Les ordres p select <commit> = fa servir «commit» (commit) «commit» (commit) "
-"«commit» (commit) «commit» (commit) «commit» (commit)"
-
+"\n"
+"Ordres:\n"
+" p, pick <comissió> = usa la comissió\n"
+" r, reword <comissió> = usa la comissió, però edita el missatge de comissió\n"
+" e, edit <comissió> = usa la comissió, però atura't per a esmenar\n"
+" s, squash <comissió> = usa la comissió, però fusiona-la a la comissió prèvia\n"
+" f, fixup <comissió> = com a «squash», però descarta el missatge de registre d'aquesta "
+"comissió\n"
+"x, exec <comissió> = executa l'ordre (la resta de la línia) usant l'intèrpret "
+"d'ordres\n"
+"b, break = atura't aquí (continua fent «rebase» després amb «git rebase --continue»)\n"
+"d, drop <comissió> = elimina la comissió\n"
+"l, label <etiqueta> = etiqueta la HEAD actual amb un nom\n"
+"t, reset <etiqueta> = reinicia HEAD a una etiqueta    \n"
+"m, merge [-C <comissió> | -c <comissió>] <etiqueta> [# <oneline>]\n"
+".       crea una comissió de fusió usant el missatge de la comissió\n"
+".       de fusió original (o línia única, si no hi ha cap comissió de fusió original\n"
+".       especificada). Useu -c <comissió> per a reescriure el missatge de publicació.\n"
+"\n"
+"Es pot canviar l'ordre d'aquestes línies; s'executen de dalt a baix.\n"
 #: rebase-interactive.c:63
 #, c-format
 msgid "Rebase %s onto %s (%d command)"
@@ -5915,37 +5919,37 @@
 #: ref-filter.c:195
 #, c-format
 msgid "unrecognized %%(%s) argument: %s"
-msgstr "paràmetre %%(%s) desconegut: %s"
+msgstr "argument %%(%s) desconegut: %s"
 
 #: ref-filter.c:250
 #, c-format
 msgid "%%(objecttype) does not take arguments"
-msgstr "%%(subject) no accepta paràmetres"
+msgstr "%%(objecttype) no accepta arguments"
 
 #: ref-filter.c:272
 #, c-format
 msgid "unrecognized %%(objectsize) argument: %s"
-msgstr "paràmetre %%(objectsize) no reconegut: %s"
+msgstr "argument %%(objectsize) no reconegut: %s"
 
 #: ref-filter.c:280
 #, c-format
 msgid "%%(deltabase) does not take arguments"
-msgstr "%%(deltabase) no accepta paràmetres"
+msgstr "%%(deltabase) no accepta arguments"
 
 #: ref-filter.c:292
 #, c-format
 msgid "%%(body) does not take arguments"
-msgstr "%%(body) no accepta paràmetres"
+msgstr "%%(body) no accepta arguments"
 
 #: ref-filter.c:301
 #, c-format
 msgid "%%(subject) does not take arguments"
-msgstr "%%(subject) no accepta paràmetres"
+msgstr "%%(subject) no accepta arguments"
 
 #: ref-filter.c:323
 #, c-format
 msgid "unknown %%(trailers) argument: %s"
-msgstr "paràmetre %%(trailers) desconegut: %s"
+msgstr "argument %%(trailers) desconegut: %s"
 
 #: ref-filter.c:352
 #, c-format
@@ -5955,7 +5959,7 @@
 #: ref-filter.c:354
 #, c-format
 msgid "unrecognized %%(contents) argument: %s"
-msgstr "paràmetre %%(contents) no reconegut: %s"
+msgstr "argument %%(contents) no reconegut: %s"
 
 #: ref-filter.c:369
 #, c-format
@@ -5965,7 +5969,7 @@
 #: ref-filter.c:373
 #, c-format
 msgid "unrecognized %%(objectname) argument: %s"
-msgstr "paràmetre %%(objectname) no reconegut: %s"
+msgstr "argument %%(objectname) no reconegut: %s"
 
 #: ref-filter.c:403
 #, c-format
@@ -5985,7 +5989,7 @@
 #: ref-filter.c:431
 #, c-format
 msgid "unrecognized %%(align) argument: %s"
-msgstr "paràmetre %%(align) no reconegut: %s"
+msgstr "argument %%(align) no reconegut: %s"
 
 #: ref-filter.c:439
 #, c-format
@@ -5995,7 +5999,7 @@
 #: ref-filter.c:457
 #, c-format
 msgid "unrecognized %%(if) argument: %s"
-msgstr "paràmetre %%(if) no reconegut: %s"
+msgstr "argument %%(if) no reconegut: %s"
 
 #: ref-filter.c:559
 #, c-format
@@ -6450,7 +6454,7 @@
 #: remote.c:2016
 #, c-format
 msgid "  (use \"%s\" for details)\n"
-msgstr "  (useu  «%s» per detalls)\n"
+msgstr "  (useu «%s» per a detalls)\n"
 
 #: remote.c:2020
 #, c-format
@@ -6461,7 +6465,7 @@
 
 #: remote.c:2026
 msgid "  (use \"git push\" to publish your local commits)\n"
-msgstr "  (useu \"git push\" per a publicar les vostres comissions locals)\n"
+msgstr "  (useu «git push» per a publicar les vostres comissions locals)\n"
 
 #: remote.c:2029
 #, c-format
@@ -6713,7 +6717,7 @@
 #: sequencer.c:316 builtin/rebase.c:743 builtin/rebase.c:1582 builtin/rm.c:385
 #, c-format
 msgid "could not remove '%s'"
-msgstr "no s'ha pogut suprimir «%s»"
+msgstr "no s'ha pogut eliminar «%s»"
 
 #: sequencer.c:326
 msgid "revert"
@@ -6739,7 +6743,7 @@
 "with 'git add <paths>' or 'git rm <paths>'"
 msgstr ""
 "després de resoldre els conflictes, marqueu els camins\n"
-"corregits amb 'git add <camins>' o 'git rm <camins>'"
+"corregits amb «git add <camins>» o «git rm <camins>»"
 
 #: sequencer.c:393
 msgid ""
@@ -6748,8 +6752,8 @@
 "and commit the result with 'git commit'"
 msgstr ""
 "després de resoldre els conflictes, marqueu els camins\n"
-"corregits amb 'git add <camins>' o 'git rm <camins>'\n"
-"i cometeu el resultat amb 'git commit'"
+"corregits amb «git add <camins>» o «git rm <camins>»\n"
+"i cometeu el resultat amb «git commit»"
 
 #: sequencer.c:406 sequencer.c:2921
 #, c-format
@@ -6839,7 +6843,7 @@
 #: sequencer.c:809
 #, c-format
 msgid "unknown variable '%s'"
-msgstr "variable  «%s» desconeguda"
+msgstr "variable «%s» desconeguda"
 
 #: sequencer.c:814
 msgid "missing 'GIT_AUTHOR_NAME'"
@@ -6932,8 +6936,8 @@
 "Comproveu que siguin correctes. Podeu suprimir aquest\n"
 "missatge establint-los explícitament:\n"
 "\n"
-"    git config --global user.name \"El Vostre Nom\"\n"
-"    git config --global user.email tu@example.com\n"
+"    git config --global user.name \"El vostre nom\"\n"
+"    git config --global user.email usuari@example.com\n"
 "\n"
 "Després de fer això, podeu arreglar la identitat usada per a aquesta\n"
 "comissió amb:\n"
@@ -7116,12 +7120,12 @@
 #: sequencer.c:2114
 #, c-format
 msgid "%s does not accept arguments: '%s'"
-msgstr "%s no accepta paràmetres: «%s»"
+msgstr "%s no accepta arguments: «%s»"
 
 #: sequencer.c:2123
 #, c-format
 msgid "missing arguments for %s"
-msgstr "falten els arguments per %s"
+msgstr "falten els arguments per a %s"
 
 #: sequencer.c:2154
 #, c-format
@@ -7515,7 +7519,7 @@
 
 #: sequencer.c:4111
 msgid "could not read 'onto'"
-msgstr "no s'ha pogut llegir 'onto'"
+msgstr "no s'ha pogut llegir «onto»"
 
 #: sequencer.c:4125
 #, c-format
@@ -7624,15 +7628,15 @@
 "Use '--' to separate paths from revisions, like this:\n"
 "'git <command> [<revision>...] -- [<file>...]'"
 msgstr ""
-"paràmetre ambigu «%s»: revisió no coneguda o el camí no és en l'arbre de "
+"argument ambigu «%s»: revisió no coneguda o el camí no és en l'arbre de "
 "treball.\n"
 "Useu «--» per a separar els camins de les revisions:\n"
-"'git <ordre> [<revisió>...] -- [<fitxer>...]'"
+"«git <ordre> [<revisió>...] -- [<fitxer>...]»"
 
 #: setup.c:264
 #, c-format
 msgid "option '%s' must come before non-option arguments"
-msgstr "l'opció «%s» ha de venir abans dels arguments opcionals"
+msgstr "l'opció «%s» ha d'aparèixer abans que els arguments opcionals"
 
 #: setup.c:283
 #, c-format
@@ -7641,9 +7645,9 @@
 "Use '--' to separate paths from revisions, like this:\n"
 "'git <command> [<revision>...] -- [<file>...]'"
 msgstr ""
-"paràmetre ambigu «%s»: ambdós una revisió i un nom de fitxer\n"
-"Useu '--' per a separar els camins de les revisions:\n"
-"'git <ordre> [<revisió>...] -- [<fitxer>...]'"
+"argument ambigu «%s»: ambdós una revisió i un nom de fitxer\n"
+"Useu «--» per a separar els camins de les revisions:\n"
+"«git <ordre> [<revisió>...] -- [<fitxer>...]»"
 
 #: setup.c:419
 msgid "unable to set up work tree using invalid config"
@@ -7672,7 +7676,7 @@
 #: setup.c:598
 #, c-format
 msgid "too large to be a .git file: '%s'"
-msgstr "massa larg per a ser un fitxer .git: «%s»"
+msgstr "massa llarg per a ser un fitxer .git: «%s»"
 
 #: setup.c:600
 #, c-format
@@ -7763,7 +7767,7 @@
 
 #: setup.c:1324
 msgid "setsid failed"
-msgstr "l'«stash» ha fallat"
+msgstr "«setsid» ha fallat"
 
 #: sha1-file.c:470
 #, c-format
@@ -7810,7 +7814,7 @@
 #, 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."
+"encara no s'admet el dipòsit de referència «%s» com a agafament enllaçat."
 
 #: sha1-file.c:730
 #, c-format
@@ -8259,13 +8263,13 @@
 msgstr "l'entrada del submòdul «%s» (%s) és a %s, no és una comissió"
 
 #: submodule.c:995
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Could not run 'git rev-list <commits> --not --remotes -n 1' command in "
 "submodule %s"
 msgstr ""
 "No s'ha pogut executar l'ordre «git rev-list <commits> --not --remotes -n 1» "
-"en els submòdul %s"
+"en el submòdul %s"
 
 #: submodule.c:1118
 #, fuzzy, c-format
@@ -8287,9 +8291,9 @@
 msgstr "No s'ha pogut prémer el submòdul «%s»"
 
 #: submodule.c:1453
-#, fuzzy, c-format
+#, c-format
 msgid "Fetching submodule %s%s\n"
-msgstr "Obtenint submòdul %s%s\n"
+msgstr "S'està obtenint el submòdul %s%s\n"
 
 #: submodule.c:1483
 #, c-format
@@ -8313,12 +8317,12 @@
 #: submodule.c:1679
 #, c-format
 msgid "Could not run 'git status --porcelain=2' in submodule %s"
-msgstr "No s'ha pogut executar «git status --porcelain=2» en els submòdul %s"
+msgstr "No s'ha pogut executar «git status --porcelain=2» en el submòdul %s"
 
 #: submodule.c:1720
 #, c-format
 msgid "'git status --porcelain=2' failed in submodule %s"
-msgstr "«git status --porcelain=2» ha fallat en els submòdul %s"
+msgstr "«git status --porcelain=2» ha fallat en el submòdul %s"
 
 #: submodule.c:1800
 #, c-format
@@ -8328,7 +8332,7 @@
 #: submodule.c:1813
 #, c-format
 msgid "could not run 'git status' in submodule '%s'"
-msgstr "no s'ha pogut executar 'git status' al submòdul «%s»"
+msgstr "no s'ha pogut executar «git status» al submòdul «%s»"
 
 #: submodule.c:1828
 #, fuzzy, c-format
@@ -8358,7 +8362,7 @@
 #: submodule.c:2038
 #, c-format
 msgid "submodule git dir '%s' is inside git dir '%.*s'"
-msgstr "submodule git dir «%s» està dins git dir '%.*s'"
+msgstr "submodule git dir «%s» està dins git dir «%.*s»"
 
 #: submodule.c:2059
 #, c-format
@@ -8417,7 +8421,7 @@
 #: trailer.c:730
 #, c-format
 msgid "empty trailer token in trailer '%.*s'"
-msgstr "testimoni de remolc buit en el remolc '%.*s'"
+msgstr "testimoni de remolc buit en el remolc «%.*s»"
 
 #: trailer.c:750
 #, c-format
@@ -9014,7 +9018,7 @@
 
 #: urlmatch.c:163
 msgid "invalid URL scheme name or missing '://' suffix"
-msgstr "l'esquema d'URL no és vàlid o li manca el sufix '://'"
+msgstr "l'esquema d'URL no és vàlid o li manca el sufix «://»"
 
 #: urlmatch.c:187 urlmatch.c:346 urlmatch.c:405
 #, c-format
@@ -9023,11 +9027,11 @@
 
 #: urlmatch.c:215
 msgid "missing host and scheme is not 'file:'"
-msgstr "manca la màquina i l'esquema no és 'file:'"
+msgstr "manca la màquina i l'esquema no és «file:»"
 
 #: urlmatch.c:232
 msgid "a 'file:' URL may not have a port number"
-msgstr "un URL 'file:' no pot tenir número de port"
+msgstr "un URL «file:» no pot tenir número de port"
 
 #: urlmatch.c:247
 msgid "invalid characters in host name"
@@ -9039,7 +9043,7 @@
 
 #: urlmatch.c:371
 msgid "invalid '..' path segment"
-msgstr "segment de camí '..' no vàlid"
+msgstr "segment de camí «..» no vàlid"
 
 #: walker.c:170
 #, fuzzy
@@ -9107,21 +9111,21 @@
 
 #: wt-status.c:193 wt-status.c:225
 msgid "  (use \"git rm --cached <file>...\" to unstage)"
-msgstr "  (useu \"git rm --cached <fitxer>...\" per a fer «unstage»)"
+msgstr "  (useu «git rm --cached <fitxer>...» per a fer «unstage»)"
 
 #: wt-status.c:197
 msgid "  (use \"git add <file>...\" to mark resolution)"
-msgstr "  (useu \"git add <fitxer>...\" per a senyalar resolució)"
+msgstr "  (useu «git add <fitxer>...» per a senyalar resolució)"
 
 #: wt-status.c:199 wt-status.c:203
 msgid "  (use \"git add/rm <file>...\" as appropriate to mark resolution)"
 msgstr ""
-"  (useu \"git add/rm <fitxer>...\" segons sigui apropiat per a senyalar "
+"  (useu «git add/rm <fitxer>...» segons sigui apropiat per a senyalar "
 "resolució)"
 
 #: wt-status.c:201
 msgid "  (use \"git rm <file>...\" to mark resolution)"
-msgstr "  (useu \"git rm <fitxer>...\" per a senyalar resolució)"
+msgstr "  (useu «git rm <fitxer>...» per a senyalar resolució)"
 
 #: wt-status.c:211 wt-status.c:1072
 msgid "Changes to be committed:"
@@ -9133,11 +9137,11 @@
 
 #: wt-status.c:238
 msgid "  (use \"git add <file>...\" to update what will be committed)"
-msgstr "  (useu \"git add <fitxer>...\" per a actualitzar què es cometrà)"
+msgstr "  (useu «git add <fitxer>...» per a actualitzar què es cometrà)"
 
 #: wt-status.c:240
 msgid "  (use \"git add/rm <file>...\" to update what will be committed)"
-msgstr "  (useu \"git add/rm <fitxer>...\" per a actualitzar què es cometrà)"
+msgstr "  (useu «git add/rm <fitxer>...» per a actualitzar què es cometrà)"
 
 #: wt-status.c:241
 #, fuzzy
@@ -9155,7 +9159,7 @@
 #: wt-status.c:254
 #, c-format
 msgid "  (use \"git %s <file>...\" to include in what will be committed)"
-msgstr "  (useu «git %s <fitxer>...» per a incloure-ho en el que es cometrà)"
+msgstr "  (useu «git %s <fitxer>...» per a incloure-ho en la comissió)"
 
 #: wt-status.c:268
 msgid "both deleted:"
@@ -9249,7 +9253,7 @@
 "Do not modify or remove the line above.\n"
 "Everything below it will be ignored."
 msgstr ""
-"No modifiqueu o suprimiu la línia de dalt.\n"
+"No modifiqueu ni elimineu la línia de dalt.\n"
 "Tot el que hi ha a sota s'ignorarà."
 
 #: wt-status.c:1112
@@ -9268,11 +9272,11 @@
 
 #: wt-status.c:1145
 msgid "  (fix conflicts and run \"git commit\")"
-msgstr "  (arregleu els conflictes i executeu \"git commit\")"
+msgstr "  (arregleu els conflictes i executeu «git commit»)"
 
 #: wt-status.c:1147
 msgid "  (use \"git merge --abort\" to abort the merge)"
-msgstr "  (useu \"git merge --abort\" per a avortar la fusió)"
+msgstr "  (useu «git merge --abort» per a avortar la fusió)"
 
 #: wt-status.c:1151
 msgid "All conflicts fixed but you are still merging."
@@ -9280,7 +9284,7 @@
 
 #: wt-status.c:1154
 msgid "  (use \"git commit\" to conclude merge)"
-msgstr "  (useu \"git commit\" per a concloure la fusió)"
+msgstr "  (useu «git commit» per a concloure la fusió)"
 
 #: wt-status.c:1163
 msgid "You are in the middle of an am session."
@@ -9292,15 +9296,15 @@
 
 #: wt-status.c:1170
 msgid "  (fix conflicts and then run \"git am --continue\")"
-msgstr "  (arregleu els conflictes i després executeu \"git am --continue\")"
+msgstr "  (arregleu els conflictes i després executeu «git am --continue»)"
 
 #: wt-status.c:1172
 msgid "  (use \"git am --skip\" to skip this patch)"
-msgstr "  (useu \"git am --skip\" per a ometre aquest pedaç)"
+msgstr "  (useu «git am --skip» per a ometre aquest pedaç)"
 
 #: wt-status.c:1174
 msgid "  (use \"git am --abort\" to restore the original branch)"
-msgstr "  (useu \"git am --abort\" per a restaurar la branca original)"
+msgstr "  (useu «git am --abort» per a restaurar la branca original)"
 
 #: wt-status.c:1307
 msgid "git-rebase-todo is missing."
@@ -9335,7 +9339,7 @@
 
 #: wt-status.c:1339
 msgid "  (use \"git rebase --edit-todo\" to view and edit)"
-msgstr "  (useu \"git rebase --edit-todo\" per a veure i editar)"
+msgstr "  (useu «git rebase --edit-todo» per a veure i editar)"
 
 #: wt-status.c:1351
 #, c-format
@@ -9378,8 +9382,8 @@
 #: wt-status.c:1392
 msgid "  (Once your working directory is clean, run \"git rebase --continue\")"
 msgstr ""
-"  (Una vegada que el vostre directori de treball sigui net, executeu \"git "
-"rebase --continue\")"
+"  (Una vegada que el vostre directori de treball sigui net, executeu «git "
+"rebase --continue»)"
 
 #: wt-status.c:1396
 #, c-format
@@ -9394,13 +9398,13 @@
 
 #: wt-status.c:1404
 msgid "  (use \"git commit --amend\" to amend the current commit)"
-msgstr "  (useu \"git commit --amend\" per a esmenar la comissió actual)"
+msgstr "  (useu «git commit --amend» per a esmenar la comissió actual)"
 
 #: wt-status.c:1406
 msgid ""
 "  (use \"git rebase --continue\" once you are satisfied with your changes)"
 msgstr ""
-"  (useu \"git rebase --continue\" una vegada que estigueu satisfet amb els "
+"  (useu «git rebase --continue» una vegada que estigueu satisfet amb els "
 "vostres canvis)"
 
 #: wt-status.c:1417
@@ -9417,9 +9421,8 @@
 msgstr "  (arregleu els conflictes i executeu «git cherry-pick --continue»)"
 
 #: wt-status.c:1430
-#, fuzzy
 msgid "  (run \"git cherry-pick --continue\" to continue)"
-msgstr "(executa \"git cherry-pick --continue\" per continuar)"
+msgstr "  (executeu «git cherry-pick --continue» per a continuar)"
 
 #: wt-status.c:1433
 msgid "  (all conflicts fixed: run \"git cherry-pick --continue\")"
@@ -9434,7 +9437,7 @@
 #: wt-status.c:1437
 msgid "  (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
 msgstr ""
-"  (useu \"git cherry-pick --abort\" per a cancel·lar l'operació de «cherry "
+"  (useu «git cherry-pick --abort» per a cancel·lar l'operació de «cherry "
 "pick»)"
 
 #: wt-status.c:1447
@@ -9448,27 +9451,24 @@
 
 #: wt-status.c:1456
 msgid "  (fix conflicts and run \"git revert --continue\")"
-msgstr "  (arregleu els conflictes i executeu \"git revert --continue\")"
+msgstr "  (arregleu els conflictes i executeu «git revert --continue»)"
 
 #: wt-status.c:1459
-#, fuzzy
 msgid "  (run \"git revert --continue\" to continue)"
-msgstr "(executa \"git revert --continue\" per continuar)"
+msgstr "  (executeu «git revert --continue» per a continuar)"
 
 #: wt-status.c:1462
 msgid "  (all conflicts fixed: run \"git revert --continue\")"
 msgstr ""
-"  (tots els conflictes estan arreglats: executeu \"git revert --continue\")"
+"  (tots els conflictes estan arreglats: executeu «git revert --continue»)"
 
 #: wt-status.c:1464
-#, fuzzy
 msgid "  (use \"git revert --skip\" to skip this patch)"
-msgstr "(useu \"git revert --skip\" per ometre aquest pedaç)"
+msgstr "  (useu «git revert --skip» per a ometre aquest pedaç)"
 
 #: wt-status.c:1466
 msgid "  (use \"git revert --abort\" to cancel the revert operation)"
-msgstr ""
-"  (useu \"git revert --abort\" per a cancel·lar l'operació de reversió)"
+msgstr "  (useu «git revert --abort» per a cancel·lar l'operació de reversió)"
 
 #: wt-status.c:1476
 #, c-format
@@ -9481,7 +9481,7 @@
 
 #: wt-status.c:1483
 msgid "  (use \"git bisect reset\" to get back to the original branch)"
-msgstr "  (useu \"git bisect reset\" per a tornar a la branca original)"
+msgstr "  (useu «git bisect reset» per a tornar a la branca original)"
 
 #: wt-status.c:1692
 msgid "On branch "
@@ -9523,9 +9523,9 @@
 "new files yourself (see 'git help status')."
 msgstr ""
 "Ha trigat %.2f segons enumerar els fitxers no seguits.\n"
-"'status -uno' pot accelerar-ho, però heu d'anar amb compte de no\n"
+"«status -uno» pot accelerar-ho, però heu d'anar amb compte de no\n"
 "oblidar-vos d'afegir fitxers nous vosaltres mateixos (vegeu\n"
-"'git help status')."
+"«git help status»)."
 
 #: wt-status.c:1755
 #, c-format
@@ -9543,8 +9543,7 @@
 #: wt-status.c:1768
 #, c-format
 msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
-msgstr ""
-"no hi ha canvis afegits a cometre (useu \"git add\" o \"git commit -a\")\n"
+msgstr "no hi ha canvis afegits a cometre (useu «git add» o «git commit -a»)\n"
 
 #: wt-status.c:1771
 #, c-format
@@ -9780,12 +9779,12 @@
 "\n"
 "\tgit submodule add <url> %s\n"
 "\n"
-"Si heu afegit aquest camí per error, podeu suprimir-lo de\n"
+"Si heu afegit aquest camí per error, podeu eliminar-lo de\n"
 "l'índex amb:\n"
 "\n"
 "\tgit rm --cached %s\n"
 "\n"
-"Vegeu \"git help submodule\" per a més informació."
+"Vegeu «git help submodule» per a més informació."
 
 #: builtin/add.c:391
 #, c-format
@@ -9916,20 +9915,19 @@
 #: builtin/am.c:1089
 #, c-format
 msgid "When you have resolved this problem, run \"%s --continue\"."
-msgstr "Quan hàgiu resolt aquest problema, executeu \"%s --continue\"."
+msgstr "Quan hàgiu resolt aquest problema, executeu «%s --continue»."
 
 #: builtin/am.c:1090
 #, c-format
 msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
-msgstr ""
-"Si preferiu ometre aquest pedaç, executeu \"%s --skip\" en lloc d'això."
+msgstr "Si preferiu ometre aquest pedaç, executeu «%s --skip» en lloc d'això."
 
 #: builtin/am.c:1091
 #, 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"
-"\"."
+"Per a restaurar la branca original i deixar d'apedaçar, executeu «%s --"
+"abort»."
 
 #: builtin/am.c:1174
 #, fuzzy
@@ -10035,7 +10033,7 @@
 "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 ""
-"Cap canvi - heu oblidat d'usar 'git add'?\n"
+"Cap canvi - heu oblidat d'usar «git add»?\n"
 "Si no hi ha res per fer «stage», probablement alguna altra cosa ja ha\n"
 "introduït els mateixos canvis; potser voleu ometre aquest pedaç."
 
@@ -10047,9 +10045,9 @@
 "You might run `git rm` on a file to accept \"deleted by them\" for it."
 msgstr ""
 "Encara teniu camins sense fusionar a l'índex.\n"
-"Heu de fer 'git add' a cada fitxer amb conflictes resolts per marcar-los com "
-"a tal.\n"
-"Podeu executar `git rm` en un fitxer per acceptar \"suprimit per ells\" pel "
+"Heu de fer «git add» a cada fitxer amb conflictes resolts per a marcar-los "
+"com a tal.\n"
+"Podeu executar «git rm» en un fitxer per a acceptar «suprimit per ells» pel "
 "fitxer."
 
 #: builtin/am.c:1928 builtin/am.c:1932 builtin/am.c:1944 builtin/reset.c:347
@@ -10067,7 +10065,7 @@
 "You seem to have moved HEAD since the last 'am' failure.\n"
 "Not rewinding to ORIG_HEAD"
 msgstr ""
-"Sembla que heu mogut HEAD després de l'última fallada de 'am'.\n"
+"Sembla que heu mogut HEAD després de l'última fallada de «am».\n"
 "No s'està rebobinant a ORIG_HEAD"
 
 #: builtin/am.c:2131
@@ -10247,7 +10245,7 @@
 "Use \"git am --abort\" to remove it."
 msgstr ""
 "S'ha trobat un directori %s extraviat.\n"
-"Useu \"git am --abort\" per a eliminar-lo."
+"Useu «git am --abort» per a eliminar-lo."
 
 #: builtin/am.c:2370
 msgid "Resolve operation not in progress, we are not resuming."
@@ -10396,9 +10394,9 @@
 msgstr "Arguments de bisectriu incorrectes"
 
 #: builtin/bisect--helper.c:221
-#, fuzzy, c-format
+#, c-format
 msgid "couldn't get the oid of the rev '%s'"
-msgstr "no s'ha pogut obtenir l'oide de la revista '%s'"
+msgstr "no s'ha pogut obtenir l'oid de la revisió «%s»"
 
 #: builtin/bisect--helper.c:233
 #, fuzzy, c-format
@@ -10426,9 +10424,9 @@
 "You then need to give me at least one %s and %s revision.\n"
 "You can use \"git bisect %s\" and \"git bisect %s\" for that."
 msgstr ""
-"Heu de començar per \"git bisect start\". Després heu de donar-me com a "
-"mínim un per cents i per cents revisió. Podeu utilitzar \"git bisectrius\" i "
-"\"git bisectrius\" per a això."
+"Heu de començar per «git bisect start». \n"
+"Després heu de donar-me com a mínim un per cents i per cents revisió. Podeu "
+"utilitzar «git bisect %s» i «git bisect %s» per a això."
 
 #: builtin/bisect--helper.c:310
 #, c-format
@@ -10462,7 +10460,7 @@
 "invalid argument %s for 'git bisect terms'.\n"
 "Supported options are: --term-good|--term-old and --term-bad|--term-new."
 msgstr ""
-"paràmetre no vàlid %s per a 'git bisect terms'.\n"
+"argument no vàlid %s per a «git bisect terms».\n"
 "Les opcions admeses són: --term-good|--term-old i --term-bad|--term-new."
 
 #: builtin/bisect--helper.c:478
@@ -10483,7 +10481,7 @@
 #, c-format
 msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
 msgstr ""
-"l'agafament de «%s» ha fallat. Proveu «git  bisect start <branca-vàlida>»."
+"l'agafament de «%s» ha fallat. Proveu «git bisect start <branca-vàlida>»."
 
 #: builtin/bisect--helper.c:550
 msgid "won't bisect on cg-seek'ed tree"
@@ -10501,7 +10499,7 @@
 
 #: builtin/bisect--helper.c:633
 msgid "perform 'git bisect next'"
-msgstr "realitza 'git bisect next'"
+msgstr "realitza «git bisect next»"
 
 #: builtin/bisect--helper.c:635
 msgid "write the terms to .git/BISECT_TERMS"
@@ -10556,11 +10554,11 @@
 
 #: builtin/bisect--helper.c:673
 msgid "--write-terms requires two arguments"
-msgstr "--write-terms requereix dos paràmetres"
+msgstr "--write-terms requereix dos arguments"
 
 #: builtin/bisect--helper.c:677
 msgid "--bisect-clean-state requires no arguments"
-msgstr "--bisect-clean-state no accepta paràmetres"
+msgstr "--bisect-clean-state no requereix cap argument"
 
 #: builtin/bisect--helper.c:684
 #, fuzzy
@@ -10834,7 +10832,7 @@
 "If you are sure you want to delete it, run 'git branch -D %s'."
 msgstr ""
 "La branca «%s» no està totalment fusionada.\n"
-"Si esteu segur que la voleu suprimir, executeu 'git branch -D %s'."
+"Si esteu segur que la voleu suprimir, executeu «git branch -D %s»."
 
 #: builtin/branch.c:189
 msgid "Update of config-file failed"
@@ -11135,7 +11133,7 @@
 
 #: builtin/branch.c:790
 msgid "too many arguments for a rename operation"
-msgstr "hi ha massa arguments per a una operació remota"
+msgstr "hi ha massa arguments per a una operació de canvi de nom"
 
 #: builtin/branch.c:795
 msgid "too many arguments to set new upstream"
@@ -11186,8 +11184,8 @@
 "the '--set-upstream' option is no longer supported. Please use '--track' or "
 "'--set-upstream-to' instead."
 msgstr ""
-"L'opció --set-upstream ja no està suportada. Useu en comptes --track o --set-"
-"upstream-to."
+"L'opció --set-upstream ja no s'admet. En lloc seu, useu «--track» o «--set-"
+"upstream-to»."
 
 #: builtin/bundle.c:15 builtin/bundle.c:23
 #, fuzzy
@@ -11944,7 +11942,7 @@
 #: builtin/checkout.c:1697
 #, 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»"
+msgstr "git checkout: --detach no accepta un argument de camí «%s»"
 
 #: builtin/checkout.c:1706
 #, fuzzy
@@ -11990,7 +11988,7 @@
 #: builtin/checkout.c:1757
 #, fuzzy
 msgid "second guess 'git checkout <no-such-branch>' (default)"
-msgstr "segon conjectura 'git checkout <no-such-branch>' (per defecte)"
+msgstr "segon conjectura «git checkout <no-such-branch>» (per defecte)"
 
 #: builtin/checkout.c:1758
 #, fuzzy
@@ -12010,7 +12008,7 @@
 #: builtin/checkout.c:1807
 #, fuzzy
 msgid "second guess 'git switch <no-such-branch>'"
-msgstr "segon conjectura 'git switch <no-such-branch>'"
+msgstr "segon conjectura «git switch <no-such-branch>»"
 
 #: builtin/checkout.c:1809
 #, fuzzy
@@ -12149,9 +12147,9 @@
 "?                   - help for prompt selection"
 msgstr ""
 "clean               - comença a netejar\n"
-"filter by pattern   - exclou ítems de supressió\n"
+"filter by pattern   - exclou ítems de la supressió\n"
 "select by numbers   - selecciona ítems a suprimir per números\n"
-"ask each            - confirma cada supressió (com \"rm -i\")\n"
+"ask each            - confirma cada supressió (com «rm -i»)\n"
 "quit                - deixa de netejar\n"
 "help                - aquesta pantalla\n"
 "?                   - ajuda de selecció de l'avís"
@@ -12478,7 +12476,7 @@
 
 #: builtin/clone.c:971 builtin/receive-pack.c:1972
 msgid "Too many arguments."
-msgstr "Hi ha massa paràmetres."
+msgstr "Hi ha massa arguments."
 
 #: builtin/clone.c:975
 msgid "You must specify a repository to clone."
@@ -12607,7 +12605,7 @@
 
 #: builtin/column.c:51
 msgid "--command must be the first argument"
-msgstr "--command ha de ser el primer paràmetre"
+msgstr "--command ha de ser el primer argument"
 
 #: builtin/commit-graph.c:11 builtin/commit-graph.c:19
 #, fuzzy
@@ -12657,9 +12655,9 @@
 msgstr "No s'ha pogut obrir el graf de comissions «%s»"
 
 #: builtin/commit-graph.c:136
-#, fuzzy, c-format
+#, c-format
 msgid "unrecognized --split argument, %s"
-msgstr "paràmetre --type no reconegut, %s"
+msgstr "argument --split no reconegut, %s"
 
 #: builtin/commit-graph.c:155
 #, fuzzy
@@ -12807,7 +12805,7 @@
 msgstr ""
 "Heu demanat esmenar la comissió més recent, però fer això la\n"
 "deixaria buida. Podeu repetir la vostra ordre amb --allow-empty, o\n"
-"podeu eliminar la comissió per complet amb \"git reset HEAD^\".\n"
+"podeu eliminar la comissió per complet amb «git reset HEAD^».\n"
 
 #: builtin/commit.c:56
 msgid ""
@@ -12817,22 +12815,20 @@
 "    git commit --allow-empty\n"
 "\n"
 msgstr ""
-"El «cherry pick» previ ja està buit, possiblement a causa de resolució de "
-"conflicte.\n"
+"El «cherry pick» previ està ara buit, possiblement a causa de resolució de "
+"conflictes.\n"
 "Si el voleu cometre de totes maneres, useu:\n"
 "\n"
 "    git commit --allow-empty\n"
 "\n"
 
 #: builtin/commit.c:63
-#, fuzzy
 msgid "Otherwise, please use 'git rebase --skip'\n"
-msgstr "Altrament si us plau useu 'git cherry-pick --skip'"
+msgstr "Altrament si us plau useu «git rebase --skip»\n"
 
 #: builtin/commit.c:66
-#, fuzzy
 msgid "Otherwise, please use 'git cherry-pick --skip'\n"
-msgstr "Altrament si us plau useu 'git cherry-pick --skip'"
+msgstr "Altrament si us plau useu «git cherry-pick --skip»\n"
 
 #: builtin/commit.c:69
 #, fuzzy
@@ -12929,7 +12925,7 @@
 #: builtin/commit.c:717 builtin/commit.c:750 builtin/commit.c:1099
 #, c-format
 msgid "could not lookup commit %s"
-msgstr "no s'ha pogut trobar la comissió %s"
+msgstr "no s'ha pogut cercar la comissió %s"
 
 #: builtin/commit.c:729 builtin/shortlog.c:319
 #, c-format
@@ -13047,7 +13043,7 @@
 #: builtin/commit.c:1071
 #, c-format
 msgid "Invalid ignored mode '%s'"
-msgstr "mode ignorat no vàlid «%s»"
+msgstr "Mode ignorat no vàlid «%s»"
 
 #: builtin/commit.c:1089 builtin/commit.c:1333
 #, c-format
@@ -13354,7 +13350,7 @@
 #: builtin/config.c:104 builtin/env--helper.c:23
 #, c-format
 msgid "unrecognized --type argument, %s"
-msgstr "paràmetre --type no reconegut, %s"
+msgstr "argument --type no reconegut, %s"
 
 #: builtin/config.c:116
 msgid "only one type at a time"
@@ -13634,7 +13630,7 @@
 
 #: builtin/config.c:760
 msgid "error processing config file(s)"
-msgstr "s'ha produït un error processant els fitxers de configuració"
+msgstr "s'ha produït un error en processar els fitxers de configuració"
 
 #: builtin/config.c:770
 msgid "editing stdin is not supported"
@@ -13815,11 +13811,11 @@
 
 #: builtin/describe.c:572
 msgid "append <mark> on dirty working tree (default: \"-dirty\")"
-msgstr "annexa <marca> en l'arbre de treball brut (per defecte: \"-dirty\")"
+msgstr "annexa <marca> en l'arbre de treball brut (per defecte: «-dirty»)"
 
 #: builtin/describe.c:575
 msgid "append <mark> on broken working tree (default: \"-broken\")"
-msgstr "annexa <marca> en l'arbre de treball brut (per defecte: \"-broken\")"
+msgstr "annexa <marca> en l'arbre de treball brut (per defecte: «-broken»)"
 
 #: builtin/describe.c:593
 msgid "--long is incompatible with --abbrev=0"
@@ -13888,15 +13884,15 @@
 #: builtin/difftool.c:312
 #, c-format
 msgid "could not read object %s for symlink %s"
-msgstr "No es pot llegir l'objecte %s per l'enllaç simbòlic %s"
+msgstr "no es pot llegir l'objecte %s per l'enllaç simbòlic %s"
 
 #: builtin/difftool.c:413
 msgid ""
 "combined diff formats('-c' and '--cc') are not supported in\n"
 "directory diff mode('-d' and '--dir-diff')."
 msgstr ""
-"els formats de diff combinats ('-c' and '--cc') no són admesos \n"
-"en el mode diff per directoris ('-d' and '--dir-diff')."
+"els formats de diff combinats («-c» i «--cc») no s'admeten\n"
+"en el mode diff per directoris («-d» i «--dir-diff»)."
 
 #: builtin/difftool.c:634
 #, c-format
@@ -13918,7 +13914,7 @@
 
 #: builtin/difftool.c:697
 msgid "use `diff.guitool` instead of `diff.tool`"
-msgstr "utilitza `diff.guitool` en comptes de `diff.tool`"
+msgstr "usa «diff.guitool» en lloc de «diff.tool»"
 
 #: builtin/difftool.c:699
 msgid "perform a full-directory diff"
@@ -13943,14 +13939,14 @@
 #: builtin/difftool.c:710
 msgid "print a list of diff tools that may be used with `--tool`"
 msgstr ""
-"imprimeix una llista de totes les eines diff que podeu usar amb `--tool`"
+"imprimeix una llista de totes les eines diff que podeu usar amb «--tool»"
 
 #: builtin/difftool.c:713
 msgid ""
 "make 'git-difftool' exit when an invoked diff tool returns a non - zero exit "
 "code"
 msgstr ""
-"fes que 'git-difftool' surti quan l'eina de diff invocada torna un codi de "
+"fes que «git-difftool» surti quan l'eina de diff invocada torna un codi de "
 "sortida diferent de zero"
 
 #: builtin/difftool.c:716
@@ -13975,11 +13971,11 @@
 
 #: builtin/difftool.c:750
 msgid "no <tool> given for --tool=<tool>"
-msgstr "no s'ha proporcionat <tool> per --tool=<tool>"
+msgstr "no s'ha proporcionat l'<eina> per a --tool=<eina>"
 
 #: builtin/difftool.c:757
 msgid "no <cmd> given for --extcmd=<cmd>"
-msgstr "no s'ha proporcionat <cmd> per --extcmd=<cmd>"
+msgstr "no s'ha proporcionat l'<ordre> per a --extcmd=<ordre>"
 
 #: builtin/env--helper.c:6
 msgid "git env--helper --type=[bool|ulong] <options> <env-var>"
@@ -14352,7 +14348,7 @@
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr ""
 "algunes referències locals no s'han pogut actualitzar;\n"
-" intenteu executar 'git remote prune %s' per a eliminar\n"
+" intenteu executar «git remote prune %s» per a eliminar\n"
 " qualsevol branca antiga o conflictiva"
 
 #: builtin/fetch.c:1128
@@ -14462,7 +14458,7 @@
 
 #: builtin/fetch.c:1798
 msgid "fetch --all does not take a repository argument"
-msgstr "fetch --all no accepta un paràmetre de dipòsit"
+msgstr "fetch --all no accepta un argument de dipòsit"
 
 #: builtin/fetch.c:1800
 msgid "fetch --all does not make sense with refspecs"
@@ -14667,7 +14663,7 @@
 #: builtin/fsck.c:501
 #, c-format
 msgid "%s: invalid reflog entry %s"
-msgstr " %s: entrada de referència no vàlida %s"
+msgstr "%s: entrada de referència no vàlida %s"
 
 #: builtin/fsck.c:515
 #, fuzzy, c-format
@@ -14915,7 +14911,7 @@
 msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr ""
-"Hi ha massa objectes solts inabastables; executeu 'git prune' per a eliminar-"
+"Hi ha massa objectes solts inabastables; executeu «git prune» per a eliminar-"
 "los."
 
 #: builtin/grep.c:30
@@ -14940,7 +14936,7 @@
 #: builtin/pack-objects.c:2855
 #, c-format
 msgid "no threads support, ignoring %s"
-msgstr "no hi ha suport de fils, s'està ignorant %s"
+msgstr "no s'admeten fils, s'ignorarà %s"
 
 #: builtin/grep.c:475 builtin/grep.c:600 builtin/grep.c:640
 #, c-format
@@ -14971,7 +14967,7 @@
 
 #: builtin/grep.c:829
 msgid "ignore files specified via '.gitignore'"
-msgstr "ignora els fitxers especificats mitjançant '.gitignore'"
+msgstr "ignora els fitxers especificats mitjançant «.gitignore»"
 
 #: builtin/grep.c:831
 msgid "recursively search in each submodule"
@@ -15003,7 +14999,7 @@
 
 #: builtin/grep.c:847
 msgid "search in subdirectories (default)"
-msgstr "cerca als subdirectories (per defecte)"
+msgstr "cerca als subdirectoris (per defecte)"
 
 #: builtin/grep.c:849
 msgid "descend at most <depth> levels"
@@ -15163,9 +15159,8 @@
 msgstr "no s'ha pogut resoldre la revisió: %s"
 
 #: builtin/grep.c:1077
-#, fuzzy
 msgid "--untracked not supported with --recurse-submodules"
-msgstr "--untracked no està suportat amb --recurse-submodules"
+msgstr "--untracked no s'admet amb --recurse-submodules"
 
 #: builtin/grep.c:1081
 msgid "invalid option combination, ignoring --threads"
@@ -15173,7 +15168,7 @@
 
 #: builtin/grep.c:1084 builtin/pack-objects.c:3548
 msgid "no threads support, ignoring --threads"
-msgstr "no hi ha suport de fils, s'està ignorant --threads"
+msgstr "no s'admeten fils, s'ignorarà --threads"
 
 #: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852
 #, c-format
@@ -15305,7 +15300,7 @@
 "Please consider using 'man.<tool>.cmd' instead."
 msgstr ""
 "«%s»: camí a un visualitzador de manuals no compatible.\n"
-"Considereu usar 'man.<eina>.cmd' en lloc d'això."
+"Considereu usar «man.<eina>.cmd» en lloc d'això."
 
 #: builtin/help.c:319
 #, c-format
@@ -15314,7 +15309,7 @@
 "Please consider using 'man.<tool>.path' instead."
 msgstr ""
 "«%s»: ordre per a un visualitzador de manuals compatible.\n"
-"Considereu usar 'man.<eina>.path' en lloc d'això."
+"Considereu usar «man.<eina>.path» en lloc d'això."
 
 #: builtin/help.c:436
 #, c-format
@@ -15560,7 +15555,7 @@
 #: builtin/index-pack.c:1405
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
-msgstr "el nom del fitxer de paquet «%s» no acaba amb '.pack'"
+msgstr "el nom del fitxer de paquet «%s» no acaba amb «.pack»"
 
 #: builtin/index-pack.c:1430
 #, c-format
@@ -16023,7 +16018,7 @@
 
 #: builtin/log.c:1663
 msgid "use <sfx> instead of '.patch'"
-msgstr "usa <sufix> en lloc de '.patch'"
+msgstr "usa <sufix> en lloc de «.patch»"
 
 #: builtin/log.c:1665
 msgid "start numbering patches at <n> instead of 1"
@@ -16281,11 +16276,11 @@
 
 #: builtin/ls-files.c:529
 msgid "use lowercase letters for 'assume unchanged' files"
-msgstr "usa lletres minúscules per als fitxers 'assume unchanged'"
+msgstr "usa lletres minúscules per als fitxers «assume unchanged»"
 
 #: builtin/ls-files.c:531
 msgid "use lowercase letters for 'fsmonitor clean' files"
-msgstr "usa lletres minúscules per als fitxers 'fsmonitor clean'"
+msgstr "usa lletres minúscules per als fitxers «fsmonitor clean»"
 
 #: builtin/ls-files.c:533
 msgid "show cached files in the output (default)"
@@ -16422,7 +16417,7 @@
 
 #: builtin/ls-remote.c:75
 msgid "show underlying ref in addition to the object pointed by it"
-msgstr "mostra la referència subjacent a més de l'objecte que senyali"
+msgstr "mostra la referència subjacent a més de l'objecte que assenyali"
 
 #: builtin/ls-tree.c:30
 msgid "git ls-tree [<options>] <tree-ish> [<path>...]"
@@ -16763,7 +16758,7 @@
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
-"No s'està cometent la fusió; useu 'git commit' per a completar la fusió.\n"
+"No s'està cometent la fusió; useu «git commit» per a completar la fusió.\n"
 
 #: builtin/merge.c:812
 #, fuzzy
@@ -16839,20 +16834,19 @@
 
 #: builtin/merge.c:1295
 msgid "--abort expects no arguments"
-msgstr "--abort no accepta paràmetres"
+msgstr "--abort no espera cap argument"
 
 #: builtin/merge.c:1299
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "No hi ha fusió a avortar (manca MERGE_HEAD)."
 
 #: builtin/merge.c:1317
-#, fuzzy
 msgid "--quit expects no arguments"
 msgstr "--quit no espera cap argument"
 
 #: builtin/merge.c:1330
 msgid "--continue expects no arguments"
-msgstr "--continue no accepta paràmetres"
+msgstr "--continue no espera cap argument"
 
 #: builtin/merge.c:1334
 msgid "There is no merge in progress (MERGE_HEAD missing)."
@@ -17015,12 +17009,11 @@
 
 #: builtin/multi-pack-index.c:50 builtin/prune-packed.c:25
 msgid "too many arguments"
-msgstr "hi ha massa paràmetres"
+msgstr "hi ha massa arguments"
 
 #: builtin/multi-pack-index.c:60
-#, fuzzy
 msgid "--batch-size option is only for 'repack' subcommand"
-msgstr "--batch-size l'opció només és per la subordre 'repack'"
+msgstr "--batch-size l'opció només és per a la subordre «repack»"
 
 #: builtin/multi-pack-index.c:69
 #, fuzzy, c-format
@@ -17294,7 +17287,7 @@
 #: builtin/notes.c:162
 #, c-format
 msgid "failed to finish 'show' for object '%s'"
-msgstr "S'ha produït un error en finalitzar 'show' per a l'objecte «%s»"
+msgstr "S'ha produït un error en finalitzar «show» per a l'objecte «%s»"
 
 #: builtin/notes.c:197
 msgid "please supply the note contents using either -m or -F option"
@@ -17437,7 +17430,7 @@
 "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 ""
-"Es desaconsellen les opcions -m/-F/-c/-C en favor de la subordre 'edit'.\n"
+"Es desaconsellen les opcions -m/-F/-c/-C en favor de la subordre «edit».\n"
 "Useu «git notes add -f -m/-F/-c/-C» en lloc d'això.\n"
 
 #: builtin/notes.c:698
@@ -17451,7 +17444,7 @@
 #: builtin/notes.c:702
 msgid "failed to remove 'git notes merge' worktree"
 msgstr ""
-"s'ha produït un error en eliminar l'arbre de treball de 'git notes merge'"
+"s'ha produït un error en eliminar l'arbre de treball de «git notes merge»"
 
 #: builtin/notes.c:722
 msgid "failed to read ref NOTES_MERGE_PARTIAL"
@@ -17543,8 +17536,8 @@
 "abort'.\n"
 msgstr ""
 "La fusió de notes automàtica ha fallat. Arregleu els conflictes en %s i "
-"cometeu el resultat amb 'git notes merge --commit', o avorteu la fusió amb "
-"'git notes merge --abort'.\n"
+"cometeu el resultat amb «git notes merge --commit», o avorteu la fusió amb "
+"«git notes merge --abort».\n"
 
 #: builtin/notes.c:897 builtin/tag.c:546
 #, c-format
@@ -17818,7 +17811,7 @@
 
 #: builtin/pack-objects.c:3410
 msgid "read revision arguments from standard input"
-msgstr "llegeix els paràmetres de revisió des de l'entrada estàndard"
+msgstr "llegeix els arguments de revisió des de l'entrada estàndard"
 
 #: builtin/pack-objects.c:3412
 msgid "limit the objects to those that are not yet packed"
@@ -18117,7 +18110,7 @@
 
 #: builtin/pull.c:475 builtin/pull.c:490
 msgid "See git-pull(1) for details."
-msgstr "Vegeu git-pull(1) per detalls."
+msgstr "Vegeu git-pull(1) per a més informació."
 
 #: builtin/pull.c:477 builtin/pull.c:483 builtin/pull.c:492
 #: builtin/rebase.c:1240 git-parse-remote.sh:64
@@ -18232,8 +18225,8 @@
 "To choose either option permanently, see push.default in 'git help config'."
 msgstr ""
 "\n"
-"Per a triar qualsevol opció permanentment, vegeu push.default a 'git help "
-"config'."
+"Per a triar qualsevol opció permanentment, vegeu push.default a «git help "
+"config»."
 
 #: builtin/push.c:171
 #, c-format
@@ -18321,8 +18314,9 @@
 msgstr ""
 "S'han rebutjat les actualitzacions perquè el punt de la vostra branca\n"
 "actual està darrere de la seva branca remota corresponent. Integreu\n"
-"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."
+"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 a més "
+"informació."
 
 #: builtin/push.c:283
 msgid ""
@@ -18333,9 +18327,10 @@
 msgstr ""
 "S'han rebutjat les actualitzacions perquè un punt de branca pujada\n"
 "està darrere de la seva branca remota corresponent. Agafeu aquesta\n"
-"branca i integreu els canvis remots (per exemple, 'git pull ...')\n"
+"branca i integreu els canvis remots (per exemple, «git pull ...»)\n"
 "abans de pujar de nou.\n"
-"Vegeu la 'Nota sobre avanços ràpids' a 'git push --help' per detalls."
+"Vegeu la «Nota sobre avanços ràpids» a «git push --help» per a més "
+"informació."
 
 #: builtin/push.c:289
 msgid ""
@@ -18348,9 +18343,10 @@
 "S'han rebutjat les actualitzacions perquè el remot conté canvis\n"
 "que no teniu localment. Això acostuma a ser causat per un altre dipòsit\n"
 "que ha pujat a la mateixa referència. Pot ser que primer vulgueu\n"
-"integrar els canvis remots (per exemple, 'git pull ...') abans de\n"
+"integrar els canvis remots (per exemple, «git pull ...») abans de\n"
 "pujar de nou.\n"
-"Vegeu la 'Nota sobre avanços ràpids' a 'git push --help' per detalls."
+"Vegeu la «Nota sobre avanços ràpids» a «git push --help» per a més "
+"informació."
 
 #: builtin/push.c:296
 msgid "Updates were rejected because the tag already exists in the remote."
@@ -18366,7 +18362,7 @@
 "No podeu actualitzar una referència remota que assenyala un\n"
 "objecte no de comissió, ni actualitzar una referència remota per\n"
 "fer que assenyali un objecte no de comissió, sense usar l'opció\n"
-"'--force'.\n"
+"«--force».\n"
 
 #: builtin/push.c:361
 #, c-format
@@ -18916,8 +18912,8 @@
 "\n"
 msgstr ""
 "%s\n"
-"Especifiqueu sobre què branca voleu fer «rebase».\n"
-"Vegeu git-rebase(1) per detalls.\n"
+"Especifiqueu sobre quina branca voleu fer «rebase».\n"
+"Vegeu git-rebase(1) per a més informació.\n"
 "\n"
 "    git rebase '<branca>'\n"
 "\n"
@@ -18933,7 +18929,7 @@
 "Si voleu establir informació de seguiment per a aquesta branca, podeu fer-ho "
 "amb:\n"
 "\n"
-"    git branch --set-upstream-to=%s/<branch> %s\n"
+"    git branch --set-upstream-to=%s/<branca> %s\n"
 "\n"
 
 #: builtin/rebase.c:1272
@@ -19208,7 +19204,7 @@
 
 #: builtin/rebase.c:1824
 msgid "Could not create new root commit"
-msgstr "no s'ha pogut crear una comissió arrel nova"
+msgstr "No s'ha pogut crear una comissió arrel nova"
 
 #: builtin/rebase.c:1850
 #, fuzzy, c-format
@@ -19275,7 +19271,7 @@
 #: builtin/rebase.c:2001
 #, c-format
 msgid "Changes to %s:\n"
-msgstr "Canvis a  %s:\n"
+msgstr "Canvis a %s:\n"
 
 #: builtin/rebase.c:2004
 #, c-format
@@ -19319,18 +19315,18 @@
 "'receive.denyCurrentBranch' configuration variable to 'refuse'."
 msgstr ""
 "Per defecte, es denega actualitzar la branca actual en un dipòsit no\n"
-"nu, perquè faria l'índex i l'arbre de treball inconsistents amb el\n"
-"que hàgiu pujat, i requeriria 'git reset --hard' per a fer que\n"
-"l'arbre de treball coincideixi amb HEAD.\n"
+"nu, perquè faria l'índex i l'arbre de treball inconsistents amb allò\n"
+"que hàgiu pujat, i requeriria «git reset --hard» per a fer que\n"
+"l'arbre de treball coincidís amb HEAD.\n"
 "\n"
 "Podeu establir la variable de configuració\n"
 "«receive.denyCurrentBranch» a «ignore» o «warn» en el dipòsit remot\n"
-"per a permetre pujar a la seva branca actual; no obstant, no es\n"
-"recomana això a menys que hàgiu decidit actualitzar el seu arbre en\n"
-"alguna altra manera per a coincidir amb el que hàgiu pujat.\n"
+"per a permetre pujar a la seva branca actual; això no obstant, no es\n"
+"recomana a menys que hàgiu decidit actualitzar el seu arbre de treball\n"
+"per a coincidir amb allò que hàgiu pujat d'alguna altra manera.\n"
 "\n"
 "Per a silenciar aquest missatge i mantenir el comportament\n"
-"predeterminat, establiu la variable de configuració\n"
+"per defecte, establiu la variable de configuració\n"
 "«receive.denyCurrentBranch» a «refuse»."
 
 #: builtin/receive-pack.c:863
@@ -19345,7 +19341,7 @@
 "To squelch this message, you can set it to 'refuse'."
 msgstr ""
 "Per defecte, es denega suprimir la branca actual, perquè el\n"
-"'git clone' següent no resultarà en cap fitxer agafat, causant\n"
+"«git clone» següent no resultarà en cap fitxer agafat, causant\n"
 "confusió.\n"
 "\n"
 "Podeu establir la variable de configuració\n"
@@ -19369,20 +19365,21 @@
 "rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
 "<refs>..."
 msgstr ""
-"git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--"
+"git reflog expire [--expire=<hora>] [--expire-unreachable=<hora>] [--"
 "rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] "
+"<referències>..."
 
 #: builtin/reflog.c:22
 msgid ""
 "git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
 "<refs>..."
 msgstr ""
-"git reflog remove [--rewrite] [--updateref] [---dry-run | -n] [--verbose] "
-"<refs>"
+"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] "
+"<referències>..."
 
 #: builtin/reflog.c:25
 msgid "git reflog exists <ref>"
-msgstr "git reflog exists <ref>"
+msgstr "git reflog exists <referència>"
 
 #: builtin/reflog.c:568 builtin/reflog.c:573
 #, c-format
@@ -19420,9 +19417,8 @@
 msgstr "format de referència no vàlid: %s"
 
 #: builtin/reflog.c:765
-#, fuzzy
 msgid "git reflog [ show | expire | delete | exists ]"
-msgstr "git reflog [ mostra | expira | suprimeix | existeix ]"
+msgstr "git reflog [ show | expire | delete | exists ]"
 
 #: builtin/remote.c:17
 msgid "git remote [-v | --verbose]"
@@ -19523,7 +19519,7 @@
 #: builtin/remote.c:148
 #, c-format
 msgid "unknown mirror argument: %s"
-msgstr "paràmetre de reflexió desconegut: %s"
+msgstr "argument de «mirror» desconegut: %s"
 
 #: builtin/remote.c:164
 msgid "fetch the remote branches"
@@ -19665,7 +19661,7 @@
 
 #: builtin/remote.c:998
 msgid " stale (use 'git remote prune' to remove)"
-msgstr " estancat (useu 'git remote prune' per a eliminar)"
+msgstr " estancat (useu «git remote prune» per a eliminar)"
 
 #: builtin/remote.c:1000
 msgid " ???"
@@ -19823,11 +19819,11 @@
 
 #: builtin/remote.c:1318
 msgid "set refs/remotes/<name>/HEAD according to remote"
-msgstr "estableix refs/remotes/<name>/HEAD segons el remot"
+msgstr "estableix refs/remotes/<nom>/HEAD segons el remot"
 
 #: builtin/remote.c:1320
 msgid "delete refs/remotes/<name>/HEAD"
-msgstr "suprimeix refs/remotes/<name>/HEAD"
+msgstr "suprimeix refs/remotes/<nom>/HEAD"
 
 #: builtin/remote.c:1335
 msgid "Cannot determine remote HEAD"
@@ -19951,8 +19947,8 @@
 "Incremental repacks are incompatible with bitmap indexes.  Use\n"
 "--no-write-bitmap-index or disable the pack.writebitmaps configuration."
 msgstr ""
-"Els reempaquetaments incrementals són incompatibles amb els índexs de "
-"bitmaps.  Useu\n"
+"Els reempaquetaments incrementals són incompatibles amb els índexs de mapes "
+"de bits.  Useu\n"
 "--no-write-bitmap-index o inhabiliteu el paràmetre de configuració pack."
 "writebitmaps."
 
@@ -20075,7 +20071,7 @@
 msgstr "Res nou per empaquetar."
 
 #: builtin/repack.c:488
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "WARNING: Some packs in use have been renamed by\n"
 "WARNING: prefixing old- to their name, in order to\n"
@@ -20085,11 +20081,13 @@
 "WARNING: original names also failed.\n"
 "WARNING: Please rename them in %s manually:\n"
 msgstr ""
-"AVÍS Alguns paquets en ús s'han reanomenat ALERTA prefixant «old-» al seu "
-"nom per tal d' AVÍS reemplaçar-los per la nova versió del fitxer ALERTA. "
-"Però l'operació ha fallat i l'intent ALERTA de tornar-los a canviar el nom "
-"també ha fallat en el seu ALERTA els noms originals. AVÍS Els reanomeneu "
-"manualment en percentatges"
+"AVÍS: Alguns paquets en ús han canviat de nom\n"
+"AVÍS: prefixant «old-» al seu nom per tal de\n"
+"AVÍS: reemplaçar-los per la nova versió del fitxer.\n"
+"AVÍS: Però l'operació ha fallat i l'intent de\n"
+"AVÍS: tornar-los a canviar als seus noms originals\n"
+"AVÍS: també ha fallat. Canvieu-los de nom en %s\n"
+"AVÍS: manualment:\n"
 
 #: builtin/repack.c:536
 #, c-format
@@ -20479,7 +20477,7 @@
 #: builtin/reset.c:371
 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead."
 msgstr ""
-"--mixed amb camins està en desús; useu 'git reset -- <camins>' en lloc "
+"--mixed amb camins està en desús; useu «git reset -- <camins>» en lloc "
 "d'això."
 
 #: builtin/reset.c:373
@@ -20540,15 +20538,15 @@
 
 #: builtin/rev-parse.c:409
 msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
-msgstr "git rev-parse --parseopt [<opcions>] -- [<paràmetres>...]"
+msgstr "git rev-parse --parseopt [<opcions>] -- [<arguments>...]"
 
 #: builtin/rev-parse.c:414
 msgid "keep the `--` passed as an arg"
-msgstr "retén el «--» passat com a paràmetre"
+msgstr "retén el «--» passat com a argument"
 
 #: builtin/rev-parse.c:416
 msgid "stop parsing after the first non-option argument"
-msgstr "deixa d'analitzar després del primer paràmetre no d'opció"
+msgstr "deixa d'analitzar després del primer argument que no sigui d'opció"
 
 #: builtin/rev-parse.c:419
 msgid "output in stuck long form"
@@ -20562,12 +20560,12 @@
 "\n"
 "Run \"git rev-parse --parseopt -h\" for more information on the first usage."
 msgstr ""
-"git rev-parse --parseopt [<opcions>] -- [<paràmetres>...]\n"
-"   or: git rev-parse --sq-quote [<paràmetre>...]\n"
-"   or: git rev-parse [<opcions>] [<paràmetre>...]\n"
+"git rev-parse --parseopt [<opcions>] -- [<arguments>...]\n"
+"   o bé: git rev-parse --sq-quote [<argument>...]\n"
+"   o bé: git rev-parse [<opcions>] [<argument>...]\n"
 "\n"
-"Executeu \"git rev-parse --parseopt -h\" per més informació sobre l'ús "
-"inicial."
+"Executeu «git rev-parse --parseopt -h» per a més informació sobre el primer "
+"ús."
 
 #: builtin/revert.c:24
 msgid "git revert [<options>] <commit-ish>..."
@@ -20736,7 +20734,7 @@
 #: builtin/rm.c:323
 #, c-format
 msgid "not removing '%s' recursively without -r"
-msgstr "no s'ha suprimit «%s» recursivament sense -r"
+msgstr "no s'eliminarà «%s» recursivament sense -r"
 
 #: builtin/rm.c:362
 #, c-format
@@ -20846,7 +20844,7 @@
 
 #: builtin/show-branch.c:649
 msgid "color '*!+-' corresponding to the branch"
-msgstr "colora '*!+-' corresponent a la branca"
+msgstr "colora «*!+-» corresponent a la branca"
 
 #: builtin/show-branch.c:651
 msgid "show <n> more commits after the common ancestor"
@@ -21212,7 +21210,7 @@
 
 #: builtin/stash.c:828
 msgid "\"git stash store\" requires one <commit> argument"
-msgstr "«git stash store» requereix un paràmetre <comissió>"
+msgstr "«git stash store» requereix un argument <comissió>"
 
 #: builtin/stash.c:1046
 msgid "No changes selected"
@@ -21495,7 +21493,7 @@
 "really want to remove it including all of its history)"
 msgstr ""
 "L'arbre de treball de submòdul «%s» conté un directori .git\n"
-"(useu 'rm -rf' si realment voleu eliminar-lo, incloent tota la seva història)"
+"(useu «rm -rf» si realment voleu eliminar-lo, incloent tota la seva història)"
 
 #: builtin/submodule--helper.c:1134
 #, c-format
@@ -21509,7 +21507,7 @@
 #: builtin/submodule--helper.c:1142
 #, c-format
 msgid "Cleared directory '%s'\n"
-msgstr "S'ha netejat el directori «%s»\n"
+msgstr "S'ha esborrat el directori «%s»\n"
 
 #: builtin/submodule--helper.c:1144
 #, c-format
@@ -21529,7 +21527,7 @@
 #: builtin/submodule--helper.c:1200
 msgid "Remove submodule working trees even if they contain local changes"
 msgstr ""
-"Suprimeix els arbres de treball dels submòduls fins i tot si contenen canvis "
+"Elimina els arbres de treball dels submòduls fins i tot si contenen canvis "
 "locals"
 
 #: builtin/submodule--helper.c:1201
@@ -21544,7 +21542,7 @@
 
 #: builtin/submodule--helper.c:1220
 msgid "Use '--all' if you really want to deinitialize all submodules"
-msgstr "Useu '--all' si realment voleu desinicialitzar tots els submòduls"
+msgstr "Useu «--all» si realment voleu desinicialitzar tots els submòduls"
 
 #: builtin/submodule--helper.c:1289
 #, fuzzy
@@ -21647,7 +21645,7 @@
 
 #: builtin/submodule--helper.c:1621
 msgid "Maybe you want to use 'update --init'?"
-msgstr "Potser voleu usar 'update --init'?"
+msgstr "Potser voleu usar «update --init»?"
 
 #: builtin/submodule--helper.c:1651
 #, c-format
@@ -22056,33 +22054,34 @@
 #: builtin/update-index.c:154
 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"
+"la informació de stat de directori no canvia després d'afegir un fitxer nou"
 
 #: builtin/update-index.c:167
 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"
+"la informació de stat de directori no canvia després d'afegir un directori "
+"nou"
 
 #: builtin/update-index.c:180
 msgid "directory stat info changes after updating a file"
 msgstr ""
-"la informació d'stat de directori canvia després d'actualitzar un fitxer"
+"la informació de stat de directori canvia després d'actualitzar un fitxer"
 
 #: builtin/update-index.c:191
 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 "
+"la informació de stat de directori canvia després d'afegir un fitxer dins "
 "d'un subdirectori"
 
 #: builtin/update-index.c:202
 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"
+"la informació de stat de directori no canvia després de suprimir un fitxer"
 
 #: builtin/update-index.c:215
 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"
+"la informació de stat de directori no canvia després de suprimir un directori"
 
 #: builtin/update-index.c:222
 msgid " OK"
@@ -22135,19 +22134,19 @@
 
 #: builtin/update-index.c:1008
 msgid "mark files as \"not changing\""
-msgstr "marca els fitxers com a \"no canviant\""
+msgstr "marca els fitxers com a «no canviant»"
 
 #: builtin/update-index.c:1011
 msgid "clear assumed-unchanged bit"
-msgstr "neteja el bit assumed-unchanged"
+msgstr "esborra el bit assumed-unchanged"
 
 #: builtin/update-index.c:1014
 msgid "mark files as \"index-only\""
-msgstr "marca els fitxers com a \"només índex\""
+msgstr "marca els fitxers com a «només índex»"
 
 #: builtin/update-index.c:1017
 msgid "clear skip-worktree bit"
-msgstr "neteja el bit skip-worktree"
+msgstr "esborra el bit skip-worktree"
 
 #: builtin/update-index.c:1020
 #, fuzzy
@@ -22233,7 +22232,7 @@
 
 #: builtin/update-index.c:1070
 msgid "clear fsmonitor valid bit"
-msgstr "neteja el bit de validesa del fsmonitor"
+msgstr "esborra el bit de validesa del fsmonitor"
 
 #: builtin/update-index.c:1173
 msgid ""
@@ -22320,7 +22319,7 @@
 
 #: builtin/update-ref.c:490
 msgid "stdin has NUL-terminated arguments"
-msgstr "stdin té paràmetres acabats amb NUL"
+msgstr "stdin té arguments acabats amb NUL"
 
 #: builtin/update-ref.c:491
 msgid "read updates from stdin"
@@ -22389,7 +22388,7 @@
 
 #: builtin/worktree.c:17
 msgid "git worktree add [<options>] <path> [<commit-ish>]"
-msgstr "git worktree add [<opcions>] <camí> [<commit-ish>"
+msgstr "git worktree add [<opcions>] <camí> [<commit-ish>]"
 
 #: builtin/worktree.c:18
 msgid "git worktree list [<options>]"
@@ -22409,7 +22408,7 @@
 
 #: builtin/worktree.c:22
 msgid "git worktree remove [<options>] <worktree>"
-msgstr "git worktree lock [<opcions>] <arbre de treball>"
+msgstr "git worktree remove [<opcions>] <arbre de treball>"
 
 #: builtin/worktree.c:23
 msgid "git worktree unlock <path>"
@@ -22441,8 +22440,8 @@
 "Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
 "%<PRIuMAX>)"
 msgstr ""
-"S'estan suprimint els arbres de treball/%s: lectura curta (s'esperaven "
-"%<PRIuMAX> bytes, llegits %<PRIuMAX>)"
+"S'estan eliminant els arbres de treball/%s: lectura curta (s'esperaven "
+"%<PRIuMAX> bytes, se n'han llegit %<PRIuMAX>)"
 
 #: builtin/worktree.c:117
 #, c-format
@@ -22589,7 +22588,7 @@
 #: builtin/worktree.c:766
 msgid "working trees containing submodules cannot be moved or removed"
 msgstr ""
-"els arbres de treball que contenen submòduls no es poden moure o suprimir"
+"els arbres de treball que contenen submòduls no es poden moure ni eliminar"
 
 #: builtin/worktree.c:774
 msgid "force move even if worktree is dirty or locked"
@@ -22658,7 +22657,7 @@
 #: builtin/worktree.c:906
 msgid "force removal even if worktree is dirty or locked"
 msgstr ""
-"força la supressió encara que l'arbre de treball estigui brut o bloquejat"
+"força l'eliminació encara que l'arbre de treball estigui brut o bloquejat"
 
 #: builtin/worktree.c:929
 #, fuzzy, c-format
@@ -22834,7 +22833,7 @@
 
 #: t/helper/test-reach.c:162
 msgid "too many commits marked reachable"
-msgstr "masses comission marcades com abastable"
+msgstr "hi ha massa comissions marcades com abastables"
 
 #: t/helper/test-serve-v2.c:7
 msgid "test-tool serve-v2 [<options>]"
@@ -22911,12 +22910,12 @@
 msgstr "en expandir l'àlies '%s' '%s'"
 
 #: git.c:371
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "alias '%s' changes environment variables.\n"
 "You can use '!git' in the alias to do this"
 msgstr ""
-"àlies '%s' canvia variables d'entorn. Podeu utilitzar '!git' a l'àlies per "
+"àlies «%s» canvia variables d'entorn. Podeu utilitzar «!git» a l'àlies per a "
 "fer-ho"
 
 #: git.c:378
@@ -22981,7 +22980,7 @@
 
 #: http.c:429
 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"
+msgstr "No s'admet la fixació de clau pública amb cURL < 7.44.0"
 
 #: http.c:914
 #, fuzzy
@@ -23156,7 +23155,7 @@
 
 #: list-objects-filter-options.h:85
 msgid "args"
-msgstr "args"
+msgstr "arguments"
 
 #: list-objects-filter-options.h:86
 msgid "object filtering"
@@ -23210,7 +23209,7 @@
 #: rerere.h:44
 msgid "update the index with reused conflict resolution if possible"
 msgstr ""
-"actualitza l'índex amb la resolució de conflicte reusada si és possible"
+"actualitza l'índex amb la resolució de conflictes reusada si és possible"
 
 #: wt-status.h:80
 msgid "HEAD detached at "
@@ -23311,7 +23310,7 @@
 
 #: command-list.h:71
 msgid "Remove untracked files from the working tree"
-msgstr "Suprimeix els fitxers no seguits de l'arbre de treball"
+msgstr "Elimina els fitxers no seguits de l'arbre de treball"
 
 #: command-list.h:72
 msgid "Clone a repository into a new directory"
@@ -23561,7 +23560,7 @@
 #: command-list.h:127
 msgid "Run merge conflict resolution tools to resolve merge conflicts"
 msgstr ""
-"Executa eines de resolució de conflictes per a resoldre conflictes de fussió"
+"Executa eines de resolució de conflictes per a resoldre conflictes de fusió"
 
 #: command-list.h:128
 #, fuzzy
@@ -23620,16 +23619,15 @@
 
 #: command-list.h:140
 msgid "Compute unique ID for a patch"
-msgstr "Calcula un identificador única per a cada pedaç"
+msgstr "Calcula un identificador únic per a cada pedaç"
 
 #: command-list.h:141
 msgid "Prune all unreachable objects from the object database"
 msgstr "Poda tots els objectes no accessibles de la base de dades d'objectes"
 
 #: command-list.h:142
-#, fuzzy
 msgid "Remove extra objects that are already in pack files"
-msgstr "Elimina els objectes extres que ja estan en fitxers de paquet"
+msgstr "Elimina els objectes extres que ja estan en fitxers empaquetats"
 
 #: command-list.h:143
 msgid "Fetch from and integrate with another repository or a local branch"
@@ -23652,7 +23650,6 @@
 "Compara dos intervals de comissions (p. ex. dues versions d'una branca)"
 
 #: command-list.h:147
-#, fuzzy
 msgid "Reads tree information into the index"
 msgstr "Llegeix la informació de l'arbre a l'índex"
 
@@ -23666,19 +23663,16 @@
 msgstr "Rep el que s'envia al repositori"
 
 #: command-list.h:150
-#, fuzzy
 msgid "Manage reflog information"
 msgstr "Gestiona la informació del registre de referències"
 
 #: command-list.h:151
-#, fuzzy
 msgid "Manage set of tracked repositories"
-msgstr "Gestiona el conjunt de repositoris seguits"
+msgstr "Gestiona el conjunt de dipòsits seguits"
 
 #: command-list.h:152
-#, fuzzy
 msgid "Pack unpacked objects in a repository"
-msgstr "Empaqueta els objectes desempaquetats en un repositori"
+msgstr "Empaqueta els objectes desempaquetats en un dipòsit"
 
 #: command-list.h:153
 #, fuzzy
@@ -23686,14 +23680,12 @@
 msgstr "Crea una llista suprimeix les referències per substituir els objectes"
 
 #: command-list.h:154
-#, fuzzy
 msgid "Generates a summary of pending changes"
 msgstr "Genera un resum dels canvis pendents"
 
 #: command-list.h:155
-#, fuzzy
 msgid "Reuse recorded resolution of conflicted merges"
-msgstr "Reutilitza la resolució registrada dels fusionats en conflicte"
+msgstr "Reutilitza la resolució registrada dels conflictes de fusió"
 
 #: command-list.h:156
 msgid "Reset current HEAD to the specified state"
@@ -23713,7 +23705,7 @@
 
 #: command-list.h:160
 msgid "Pick out and massage parameters"
-msgstr "Escolliu i personalitzeu els paràmetres"
+msgstr "Trieu i personalitzeu els paràmetres"
 
 #: command-list.h:161
 msgid "Remove files from the working tree and from the index"
@@ -23728,9 +23720,8 @@
 msgstr "Puja objectes sobre el protocol Git a un altre dipòsit"
 
 #: command-list.h:164
-#, fuzzy
 msgid "Restricted login shell for Git-only SSH access"
-msgstr "Intèrpret d'ordres d'entrada restringit per a accés SSH només al Git"
+msgstr "Intèrpret d'ordres d'entrada restringit només per a accés SSH al Git"
 
 #: command-list.h:165
 msgid "Summarize 'git log' output"
@@ -23753,7 +23744,6 @@
 msgstr "Llista les referències en un dipòsit local"
 
 #: command-list.h:170
-#, fuzzy
 msgid "Git's i18n setup code for shell scripts"
 msgstr ""
 "Codi de configuració i18n del Git per als scripts de l'intèrpret d'ordres"
@@ -23773,9 +23763,8 @@
 msgstr "Desa els canvis en un directori de treball brut"
 
 #: command-list.h:174
-#, fuzzy
 msgid "Add file contents to the staging area"
-msgstr "Afegeix el contingut del fitxer a l'àrea de proves"
+msgstr "Afegeix el contingut del fitxer a l'àrea de «staging»"
 
 #: command-list.h:175
 msgid "Show the working tree status"
@@ -23783,7 +23772,7 @@
 
 #: command-list.h:176
 msgid "Remove unnecessary whitespace"
-msgstr "Suprimeix l'espai en blanc innecessari"
+msgstr "Elimina l'espai en blanc innecessari"
 
 #: command-list.h:177
 msgid "Initialize, update or inspect submodules"
@@ -23824,10 +23813,8 @@
 "Actualitza el nom de l'objecte emmagatzema en una referència de forma segura"
 
 #: command-list.h:186
-#, fuzzy
 msgid "Update auxiliary info file to help dumb servers"
-msgstr ""
-"Actualitza el fitxer d'informació auxiliar per ajudar als servidors ximples"
+msgstr "Actualitza el fitxer d'informació auxiliar per a ajudar als servidors ximples"
 
 #: command-list.h:187
 msgid "Send archive back to git-archive"
@@ -23886,7 +23873,6 @@
 msgstr "Git per a usuaris del CVS"
 
 #: command-list.h:201
-#, fuzzy
 msgid "Tweaking diff output"
 msgstr "Ajustament de la sortida de diferències"
 
@@ -23944,7 +23930,7 @@
 
 #: git-bisect.sh:54
 msgid "You need to start by \"git bisect start\""
-msgstr "Cal començar per \"git bisect start\""
+msgstr "Cal començar per «git bisect start»"
 
 #. TRANSLATORS: Make sure to include [Y] and [n] in your
 #. translation. The program will only accept English input
@@ -23971,7 +23957,7 @@
 #: git-bisect.sh:139
 #, sh-format
 msgid "'git bisect $TERM_BAD' can take only one argument."
-msgstr "'git bisect $TERM_BAD' pot acceptar només un paràmetre."
+msgstr "«git bisect $TERM_BAD» pot acceptar només un argument."
 
 #: git-bisect.sh:209
 msgid "No logfile given"
@@ -24002,7 +23988,7 @@
 "exit code $res from '$command' is < 0 or >= 128"
 msgstr ""
 "el pas de bisecció ha fallat:\n"
-"el codi de sortida $res de '$command' és < 0 o >= 128"
+"el codi de sortida $res de «$command» és < 0 o bé >= 128"
 
 #: git-bisect.sh:281
 msgid "bisect run cannot continue any more"
@@ -24015,7 +24001,7 @@
 "'bisect_state $state' exited with error code $res"
 msgstr ""
 "el pas de bisecció ha fallat:\n"
-"'bisect_state $state' ha sortit amb el codi d'error $res"
+"«bisect_state $state» ha sortit amb el codi d'error $res"
 
 #: git-bisect.sh:294
 msgid "bisect run success"
@@ -24088,25 +24074,25 @@
 msgstr "«$sm_path» ja existeix en l'índex i no és submòdul"
 
 #: git-submodule.sh:244
-#, fuzzy, sh-format
+#, sh-format
 msgid "'$sm_path' does not have a commit checked out"
-msgstr "«sm_path» no té una comissió marcada"
+msgstr "«$sm_path» no té una comissió agafada"
 
 #: git-submodule.sh:275
 #, sh-format
 msgid "Adding existing repo at '$sm_path' to the index"
-msgstr "S'està afegint el dipòsit existent a '$sm_path' a l'índex"
+msgstr "S'està afegint el dipòsit existent a «$sm_path» a l'índex"
 
 #: git-submodule.sh:277
 #, sh-format
 msgid "'$sm_path' already exists and is not a valid git repo"
-msgstr "'$sm_path' ja existeix i no és un dipòsit de git vàlid"
+msgstr "«$sm_path» ja existeix i no és un dipòsit de git vàlid"
 
 #: git-submodule.sh:285
 #, sh-format
 msgid "A git directory for '$sm_name' is found locally with remote(s):"
 msgstr ""
-"Es troba un directori de git per a '$sm_name' localment amb els remots:"
+"S'ha trobat un directori de git per a «$sm_name» localment amb els remots:"
 
 #: git-submodule.sh:287
 #, sh-format
@@ -24122,8 +24108,8 @@
 "  $realrepo\n"
 "useu l'opció «--force». Si el directori de git local no és el dipòsit "
 "correcte\n"
-"o no esteu segur de què vol dir això, trieu un altre nom amb l'opció '--"
-"name'."
+"o no esteu segur de què vol dir això, trieu un altre nom amb l'opció «--"
+"name»."
 
 #: git-submodule.sh:293
 #, sh-format
@@ -24164,7 +24150,7 @@
 "'$sm_path'"
 msgstr ""
 "No s'ha pogut trobar la revisió actual de ${remote_name}/${branch} en el "
-"camí de submòdul '$sm_path'"
+"camí de submòdul «$sm_path»"
 
 #: git-submodule.sh:625
 #, sh-format
@@ -24198,7 +24184,7 @@
 #, sh-format
 msgid "Unable to rebase '$sha1' in submodule path '$displaypath'"
 msgstr ""
-"No s'ha pogut fer «rebase» «$sha1»' en el camí de submòdul «$displaypath»"
+"No s'ha pogut fer «rebase» «$sha1» en el camí de submòdul «$displaypath»"
 
 #: git-submodule.sh:644
 #, sh-format
@@ -24261,7 +24247,7 @@
 #: git-parse-remote.sh:89
 #, sh-format
 msgid "See git-${cmd}(1) for details."
-msgstr "Vegeu git-${cmd}(1) per detalls."
+msgstr "Vegeu git-${cmd}(1) per a més informació."
 
 #: git-rebase--preserve-merges.sh:109
 msgid "Applied autostash."
@@ -24280,7 +24266,7 @@
 msgstr ""
 "L'aplicació del «stash» automàtic ha resultat en conflictes.\n"
 "Els vostres canvis estan segurs en el «stash».\n"
-"Podeu executar \"git stash pop\" o \"git stash drop\" en qualsevol moment.\n"
+"Podeu executar «git stash pop» o «git stash drop» en qualsevol moment.\n"
 
 #: git-rebase--preserve-merges.sh:191
 #, sh-format
@@ -24288,7 +24274,6 @@
 msgstr "S'està fent «rebase» ($new_count/$total)"
 
 #: git-rebase--preserve-merges.sh:207
-#, fuzzy
 msgid ""
 "\n"
 "Commands:\n"
@@ -24308,8 +24293,25 @@
 "\n"
 "These lines can be re-ordered; they are executed from top to bottom.\n"
 msgstr ""
-"Les ordres p select <commit> = fa servir «commit» o «commit» o "
-"«commit» (commit) o «commit» (commit)"
+"\n"
+"Ordres:\n"
+" p, pick <comissió> = usa la comissió\n"
+" r, reword <comissió> = usa la comissió, però edita el missatge de comissió\n"
+" e, edit <comissió> = usa la comissió, però atura't per a esmenar\n"
+" s, squash <comissió> = usa la comissió, però fusiona-la a la comissió prèvia\n"
+" f, fixup <comissió> = com a «squash», però descarta el missatge de registre d'aquesta "
+"comissió\n"
+"x, exec <comissió> = executa l'ordre (la resta de la línia) usant l'intèrpret "
+"d'ordres\n"
+"d, drop <comissió> = elimina la comissió\n"
+"l, label <etiqueta> = etiqueta la HEAD actual amb un nom\n"
+"t, reset <etiqueta> = reinicia HEAD a una etiqueta    \n"
+"m, merge [-C <comissió> | -c <comissió>] <etiqueta> [# <oneline>]\n"
+".       crea una comissió de fusió usant el missatge de la comissió\n"
+".       de fusió original (o línia única, si no hi ha cap comissió de fusió original\n"
+".       especificada). Useu -c <comissió> per a reescriure el missatge de publicació.\n"
+"\n"
+"Es pot canviar l'ordre d'aquestes línies; s'executen de dalt a baix.\n"
 
 #: git-rebase--preserve-merges.sh:270
 #, sh-format
@@ -24333,7 +24335,7 @@
 #: git-rebase--preserve-merges.sh:295
 #, sh-format
 msgid "$sha1: not a commit that can be picked"
-msgstr "$sha1: no és una comissió que es pugui escollir"
+msgstr "$sha1: no és una comissió que es pugui triar"
 
 #: git-rebase--preserve-merges.sh:334
 #, sh-format
@@ -24372,7 +24374,7 @@
 #: git-rebase--preserve-merges.sh:458
 #, sh-format
 msgid "Could not pick $sha1"
-msgstr "No s'ha pogut escollir $sha1"
+msgstr "No s'ha pogut triar $sha1"
 
 #: git-rebase--preserve-merges.sh:467
 #, sh-format
@@ -24388,7 +24390,7 @@
 #, sh-format
 msgid "This is a combination of $count commit."
 msgid_plural "This is a combination of $count commits."
-msgstr[0] "Això és una combinació de $count comissió."
+msgstr[0] "Això és una combinació d'$count comissió."
 msgstr[1] "Això és una combinació de $count comissions."
 
 #: git-rebase--preserve-merges.sh:492
@@ -24415,7 +24417,7 @@
 "before\n"
 "you are able to reword the commit."
 msgstr ""
-"No s'ha pogut esmenar la comissió després d'escollir amb èxit $sha1... "
+"No s'ha pogut esmenar la comissió després de triar correctament $sha1... "
 "$rest\n"
 "Això és probablement a causa d'un missatge de comissió buit, o el lligam de\n"
 "precomissió ha fallat. Si el lligam de precomissió ha fallat, pot ser que\n"
@@ -24430,7 +24432,7 @@
 #: git-rebase--preserve-merges.sh:641
 #, sh-format
 msgid "Cannot '$squash_style' without a previous commit"
-msgstr "No es pot '$squash_style' sense una comissió prèvia"
+msgstr "No es pot fer «$squash_style» sense una comissió prèvia"
 
 #: git-rebase--preserve-merges.sh:683
 #, sh-format
@@ -24706,9 +24708,9 @@
 "Lines starting with %s will be removed.\n"
 msgstr ""
 "---\n"
-"Per suprimir «%s» línies, feu-les línies ' ' (context).\n"
-"Per suprimir «%s» línies, suprimiu-les.\n"
-"Les línies que comencin per %s seran suprimides.\n"
+"Per a eliminar les línies «%s», convertiu-les en línies ' ' (context).\n"
+"Per a eliminar les línies «%s», suprimiu-les.\n"
+"Les línies que comencin per %s s'eliminaran.\n"
 
 #: git-add--interactive.perl:1140
 #, perl-format
@@ -24984,7 +24986,7 @@
 #: git-send-email.perl:315
 #, perl-format
 msgid "'%s.final' contains the composed email.\n"
-msgstr "'%s.final' conté el correu redactat.\n"
+msgstr "«%s.final» conté el correu redactat.\n"
 
 #: git-send-email.perl:408
 msgid "--dump-aliases incompatible with other options\n"
@@ -25011,22 +25013,22 @@
 #: git-send-email.perl:528
 #, perl-format
 msgid "Unknown --confirm setting: '%s'\n"
-msgstr "--confirm setting desconegut: «%s»\n"
+msgstr "Paràmetre --confirm desconegut: «%s»\n"
 
 #: git-send-email.perl:556
 #, perl-format
 msgid "warning: sendmail alias with quotes is not supported: %s\n"
-msgstr "avís: el sobrenom de sendmail amb cometes no està suportat: %s\n"
+msgstr "avís: no s'admet l'àlies de sendmail amb cometes: %s\n"
 
 #: git-send-email.perl:558
 #, perl-format
 msgid "warning: `:include:` not supported: %s\n"
-msgstr "avís: `:include:` no està suportat: %s\n"
+msgstr "avís: «:include:» no s'admet: %s\n"
 
 #: git-send-email.perl:560
 #, perl-format
 msgid "warning: `/file` or `|pipe` redirection not supported: %s\n"
-msgstr "avís: les redireccions `/file` or `|pipe no són admeses: %s\n"
+msgstr "avís: les redireccions «/file» ni «|pipe» no s'admeten: %s\n"
 
 #: git-send-email.perl:565
 #, perl-format
@@ -25042,11 +25044,11 @@
 "    * Saying \"./%s\" if you mean a file; or\n"
 "    * Giving --format-patch option if you mean a range.\n"
 msgstr ""
-"El fitxer «%s» existeix però també pot ser un rang de comissions\n"
-"per produir pedaços. Desambigüeu...\n"
+"El fitxer «%s» existeix, però també pot ser un rang de comissions\n"
+"per produir pedaços. Desambigüeu-ho...\n"
 "\n"
-"    * Dient \"./%s\" si volíeu especificar aquest fitxer; o\n"
-"    * Proporcionant l'opció --format-patch si volíeu especificar un rang.\n"
+"    * Dient «./%s» si volíeu especificar un fitxer; o\n"
+"    * Proporcionant l'opció «--format-patch» si volíeu especificar un rang.\n"
 
 #: git-send-email.perl:670
 #, perl-format
@@ -25090,11 +25092,11 @@
 "\n"
 "Clear the body content if you don't wish to send a summary.\n"
 msgstr ""
-"Se suprimiran les línies que comencen amb \"GIT:\".\n"
+"S'eliminaran les línies que comencen amb «GIT:».\n"
 "Considereu incloure un diffstat global o una taula de continguts\n"
-"per cada pedaç que esteu escrivint.\n"
+"per al pedaç que esteu escrivint.\n"
 "\n"
-"Netegeu el contingut del cos si no voleu enviar un resum.\n"
+"Esborreu el contingut del cos si no voleu enviar cap resum.\n"
 
 #: git-send-email.perl:763
 #, perl-format
@@ -25138,8 +25140,8 @@
 msgstr ""
 "S'ha refusat a enviar perquè el pedaç\n"
 "\t%s\n"
-"perquè la plantilla té l'assumpte '*** SUBJECT HERE ***'. Passeu --force si "
-"realment voleu enviar-lo.\n"
+"perquè la plantilla té l'assumpte «*** SUBJECT HERE ***». Passeu --force si "
+"realment voleu enviar-ho.\n"
 
 #: git-send-email.perl:945
 msgid "To whom should the emails be sent (if anyone)?"
@@ -25193,9 +25195,9 @@
 "    Aquest comportament està controlat pel paràmetre de configuració\n"
 "    sendemail.confirm.\n"
 "\n"
-"    Per a informació addicional, executeu 'git send-email --help'.\n"
+"    Per a informació addicional, executeu «git send-email --help».\n"
 "    Per mantenir el comportament actual, però silenciar aquest\n"
-"    missatge, executeu 'git config --global sendemail.confirm auto'.\n"
+"    missatge, executeu «git config --global sendemail.confirm auto».\n"
 "\n"
 
 #. TRANSLATORS: Make sure to include [y] [n] [e] [q] [a] in your
@@ -25298,7 +25300,7 @@
 
 #: git-send-email.perl:1875
 #, perl-format
-msgid "(%s) failed to close pipe to '%s'" 
+msgid "(%s) failed to close pipe to '%s'"
 msgstr "(%s) s'ha produït un error en tancar el conducte «%s»"
 
 #: git-send-email.perl:1905
diff --git a/po/de.po b/po/de.po
index 6356276..656de24 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,8 +8,8 @@
 msgstr ""
 "Project-Id-Version: Git\n"
 "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2020-05-27 07:23+0800\n"
-"PO-Revision-Date: 2020-05-24 15:57+0100\n"
+"POT-Creation-Date: 2020-07-10 09:53+0800\n"
+"PO-Revision-Date: 2020-07-12 13:20+0100\n"
 "Last-Translator: Matthias Rüster <matthias.ruester@gmail.com>\n"
 "Language-Team: Matthias Rüster <matthias.ruester@gmail.com>\n"
 "Language: de\n"
@@ -111,21 +111,21 @@
 msgid "ignoring unmerged: %s"
 msgstr "Ignoriere nicht zusammengeführte Datei: %s"
 
-#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366
+#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368
 #, c-format
 msgid "Only binary files changed.\n"
 msgstr "Nur Binärdateien geändert.\n"
 
-#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368
+#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370
 #, c-format
 msgid "No changes.\n"
 msgstr "Keine Änderungen.\n"
 
-#: add-interactive.c:935 git-add--interactive.perl:1376
+#: add-interactive.c:935 git-add--interactive.perl:1378
 msgid "Patch update"
 msgstr "Patch Aktualisierung"
 
-#: add-interactive.c:974 git-add--interactive.perl:1754
+#: add-interactive.c:974 git-add--interactive.perl:1771
 msgid "Review diff"
 msgstr "Diff überprüfen"
 
@@ -193,11 +193,11 @@
 msgid "(empty) select nothing"
 msgstr "(leer) nichts auswählen"
 
-#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851
+#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868
 msgid "*** Commands ***"
 msgstr "*** Befehle ***"
 
-#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848
+#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865
 msgid "What now"
 msgstr "Was nun"
 
@@ -214,7 +214,7 @@
 #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409
 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397
 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905
-#: builtin/submodule--helper.c:2148 bugreport.c:129
+#: builtin/submodule--helper.c:2148 bugreport.c:135
 #: git-add--interactive.perl:213
 msgid "path"
 msgstr "Pfad"
@@ -223,27 +223,32 @@
 msgid "could not refresh index"
 msgstr "Index konnte nicht aktualisiert werden"
 
-#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765
+#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782
 #, c-format
 msgid "Bye.\n"
 msgstr "Tschüss.\n"
 
-#: add-patch.c:34 git-add--interactive.perl:1428
+#: add-patch.c:34 git-add--interactive.perl:1430
 #, c-format, perl-format
 msgid "Stage mode change [y,n,q,a,d%s,?]? "
 msgstr "Modusänderung der Staging-Area hinzufügen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:35 git-add--interactive.perl:1429
+#: add-patch.c:35 git-add--interactive.perl:1431
 #, c-format, perl-format
 msgid "Stage deletion [y,n,q,a,d%s,?]? "
 msgstr "Löschung der Staging-Area hinzufügen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:36 git-add--interactive.perl:1430
+#: add-patch.c:36 git-add--interactive.perl:1432
+#, c-format, perl-format
+msgid "Stage addition [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung der Staging-Area hinzufügen [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:37 git-add--interactive.perl:1433
 #, c-format, perl-format
 msgid "Stage this hunk [y,n,q,a,d%s,?]? "
 msgstr "Diesen Patch-Block der Staging-Area hinzufügen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:38
+#: add-patch.c:39
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "staging."
@@ -251,7 +256,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-"
 "Block direkt für die Staging-Area markiert."
 
-#: add-patch.c:41
+#: add-patch.c:42
 msgid ""
 "y - stage this hunk\n"
 "n - do not stage this hunk\n"
@@ -267,22 +272,27 @@
 "d - diesen oder alle weiteren Patch-Blöcke in dieser Datei nicht zum Commit "
 "vormerken\n"
 
-#: add-patch.c:55 git-add--interactive.perl:1433
+#: add-patch.c:56 git-add--interactive.perl:1436
 #, c-format, perl-format
 msgid "Stash mode change [y,n,q,a,d%s,?]? "
 msgstr "Modusänderung stashen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:56 git-add--interactive.perl:1434
+#: add-patch.c:57 git-add--interactive.perl:1437
 #, c-format, perl-format
 msgid "Stash deletion [y,n,q,a,d%s,?]? "
 msgstr "Löschung stashen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:57 git-add--interactive.perl:1435
+#: add-patch.c:58 git-add--interactive.perl:1438
+#, c-format, perl-format
+msgid "Stash addition [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung stashen [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:59 git-add--interactive.perl:1439
 #, c-format, perl-format
 msgid "Stash this hunk [y,n,q,a,d%s,?]? "
 msgstr "Diesen Patch-Block stashen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:59
+#: add-patch.c:61
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "stashing."
@@ -290,7 +300,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-"
 "Block direkt zum Stashen markiert."
 
-#: add-patch.c:62
+#: add-patch.c:64
 msgid ""
 "y - stash this hunk\n"
 "n - do not stash this hunk\n"
@@ -304,22 +314,27 @@
 "a - diesen und alle weiteren Patch-Blöcke dieser Datei stashen\n"
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht stashen\n"
 
-#: add-patch.c:78 git-add--interactive.perl:1438
+#: add-patch.c:80 git-add--interactive.perl:1442
 #, c-format, perl-format
 msgid "Unstage mode change [y,n,q,a,d%s,?]? "
 msgstr "Modusänderung aus der Staging-Area entfernen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:79 git-add--interactive.perl:1439
+#: add-patch.c:81 git-add--interactive.perl:1443
 #, c-format, perl-format
 msgid "Unstage deletion [y,n,q,a,d%s,?]? "
 msgstr "Löschung aus der Staging-Area entfernen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:80 git-add--interactive.perl:1440
+#: add-patch.c:82 git-add--interactive.perl:1444
+#, c-format, perl-format
+msgid "Unstage addition [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung aus der Staging-Area entfernen [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:83 git-add--interactive.perl:1445
 #, c-format, perl-format
 msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
 msgstr "Diesen Patch-Block aus der Staging-Area entfernen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:82
+#: add-patch.c:85
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "unstaging."
@@ -327,7 +342,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-"
 "Block direkt zum Entfernen aus der Staging-Area markiert."
 
-#: add-patch.c:85
+#: add-patch.c:88
 msgid ""
 "y - unstage this hunk\n"
 "n - do not unstage this hunk\n"
@@ -344,22 +359,27 @@
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht aus Staging-"
 "Area entfernen\n"
 
-#: add-patch.c:100 git-add--interactive.perl:1443
+#: add-patch.c:103 git-add--interactive.perl:1448
 #, c-format, perl-format
 msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
 msgstr "Modusänderung auf Index anwenden [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:101 git-add--interactive.perl:1444
+#: add-patch.c:104 git-add--interactive.perl:1449
 #, c-format, perl-format
 msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
 msgstr "Löschung auf Index anwenden [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:102 git-add--interactive.perl:1445
+#: add-patch.c:105 git-add--interactive.perl:1450
+#, c-format, perl-format
+msgid "Apply addition to index [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung auf Index anwenden [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:106 git-add--interactive.perl:1451
 #, c-format, perl-format
 msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
 msgstr "Diesen Patch-Block auf Index anwenden [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:104 add-patch.c:169 add-patch.c:212
+#: add-patch.c:108 add-patch.c:176 add-patch.c:221
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "applying."
@@ -367,7 +387,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-"
 "Block direkt zum Anwenden markiert."
 
-#: add-patch.c:107
+#: add-patch.c:111
 msgid ""
 "y - apply this hunk to index\n"
 "n - do not apply this hunk to index\n"
@@ -384,25 +404,31 @@
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht auf den Index "
 "anwenden\n"
 
-#: add-patch.c:122 git-add--interactive.perl:1448
-#: git-add--interactive.perl:1463
+#: add-patch.c:126 git-add--interactive.perl:1454
+#: git-add--interactive.perl:1472
 #, c-format, perl-format
 msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
 msgstr "Modusänderung im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:123 git-add--interactive.perl:1449
-#: git-add--interactive.perl:1464
+#: add-patch.c:127 git-add--interactive.perl:1455
+#: git-add--interactive.perl:1473
 #, c-format, perl-format
 msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
 msgstr "Löschung im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:124 git-add--interactive.perl:1450
-#: git-add--interactive.perl:1465
+#: add-patch.c:128 git-add--interactive.perl:1456
+#: git-add--interactive.perl:1474
+#, c-format, perl-format
+msgid "Discard addition from worktree [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:129 git-add--interactive.perl:1457
+#: git-add--interactive.perl:1475
 #, c-format, perl-format
 msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
 msgstr "Diesen Patch-Block im Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:126 add-patch.c:148 add-patch.c:191
+#: add-patch.c:131 add-patch.c:154 add-patch.c:199
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "discarding."
@@ -410,7 +436,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete Patch-"
 "Block direkt zum Verwerfen markiert."
 
-#: add-patch.c:129 add-patch.c:194
+#: add-patch.c:134 add-patch.c:202
 msgid ""
 "y - discard this hunk from worktree\n"
 "n - do not discard this hunk from worktree\n"
@@ -427,25 +453,30 @@
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht im "
 "Arbeitsverzeichnis verwerfen\n"
 
-#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453
+#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460
 #, c-format, perl-format
 msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "Modusänderung vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454
+#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461
 #, c-format, perl-format
 msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
 msgstr "Löschung vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455
+#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462
+#,  c-format, perl-format
+msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung im Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463
 #, c-format, perl-format
 msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "Diesen Patch-Block vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d"
 "%s,?]? "
 
-#: add-patch.c:151
+#: add-patch.c:157
 msgid ""
 "y - discard this hunk from index and worktree\n"
 "n - do not discard this hunk from index and worktree\n"
@@ -459,25 +490,30 @@
 "a - diesen und alle weiteren Patch-Blöcke in der Datei verwerfen\n"
 "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht verwerfen\n"
 
-#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458
+#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466
 #, c-format, perl-format
 msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "Modusänderung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459
+#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467
 #, c-format, perl-format
 msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
 msgstr "Löschung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460
+#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468
+#, c-format, perl-format
+msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469
 #, c-format, perl-format
 msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "Diesen Patch-Block auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d"
 "%s,?]? "
 
-#: add-patch.c:172
+#: add-patch.c:179
 msgid ""
 "y - apply this hunk to index and worktree\n"
 "n - do not apply this hunk to index and worktree\n"
@@ -492,7 +528,7 @@
 "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n"
 "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht anwenden\n"
 
-#: add-patch.c:215
+#: add-patch.c:224
 msgid ""
 "y - apply this hunk to worktree\n"
 "n - do not apply this hunk to worktree\n"
@@ -506,34 +542,34 @@
 "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n"
 "d - diesen und alle weiteren Patch-Blöcke in der Datei nicht anwenden\n"
 
-#: add-patch.c:319
+#: add-patch.c:328
 #, c-format
 msgid "could not parse hunk header '%.*s'"
 msgstr "Konnte Block-Header '%.*s' nicht parsen."
 
-#: add-patch.c:338 add-patch.c:342
+#: add-patch.c:347 add-patch.c:351
 #, c-format
 msgid "could not parse colored hunk header '%.*s'"
 msgstr "Konnte farbigen Block-Header '%.*s' nicht parsen."
 
-#: add-patch.c:396
+#: add-patch.c:405
 msgid "could not parse diff"
 msgstr "Konnte Differenz nicht parsen."
 
-#: add-patch.c:415
+#: add-patch.c:424
 msgid "could not parse colored diff"
 msgstr "Konnte farbige Differenz nicht parsen."
 
-#: add-patch.c:429
+#: add-patch.c:438
 #, c-format
 msgid "failed to run '%s'"
 msgstr "'%s' konnte nicht ausgeführt werden"
 
-#: add-patch.c:588
+#: add-patch.c:602
 msgid "mismatched output from interactive.diffFilter"
 msgstr "nicht übereinstimmende Ausgabe von interactive.diffFilter"
 
-#: add-patch.c:589
+#: add-patch.c:603
 msgid ""
 "Your filter must maintain a one-to-one correspondence\n"
 "between its input and output lines."
@@ -541,7 +577,7 @@
 "Der Filter muss eine Eins-zu-Eins-Beziehung\n"
 "zwischen den Ein- und Ausgabe-Zeilen einhalten."
 
-#: add-patch.c:762
+#: add-patch.c:776
 #, c-format
 msgid ""
 "expected context line #%d in\n"
@@ -550,7 +586,7 @@
 "Erwartete Kontextzeile #%d in\n"
 "%.*s"
 
-#: add-patch.c:777
+#: add-patch.c:791
 #, c-format
 msgid ""
 "hunks do not overlap:\n"
@@ -563,13 +599,13 @@
 "\tendet nicht mit:\n"
 "%.*s"
 
-#: add-patch.c:1053 git-add--interactive.perl:1112
+#: add-patch.c:1067 git-add--interactive.perl:1114
 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
 msgstr ""
 "Manueller Editiermodus für Patch-Blöcke -- siehe nach unten für eine\n"
 "Kurzanleitung.\n"
 
-#: add-patch.c:1057
+#: add-patch.c:1071
 #, c-format
 msgid ""
 "---\n"
@@ -583,7 +619,7 @@
 "Zeilen, die mit %c beginnen, werden entfernt.\n"
 
 #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1071 git-add--interactive.perl:1126
+#: add-patch.c:1085 git-add--interactive.perl:1128
 msgid ""
 "If it does not apply cleanly, you will be given an opportunity to\n"
 "edit again.  If all lines of the hunk are removed, then the edit is\n"
@@ -594,11 +630,11 @@
 "werden,\n"
 "wird die Bearbeitung abgebrochen und der Patch-Block bleibt unverändert.\n"
 
-#: add-patch.c:1104
+#: add-patch.c:1118
 msgid "could not parse hunk header"
 msgstr "Konnte Block-Header nicht parsen."
 
-#: add-patch.c:1149
+#: add-patch.c:1163
 msgid "'git apply --cached' failed"
 msgstr "'git apply --cached' schlug fehl."
 
@@ -614,27 +650,27 @@
 #. Consider translating (saying "no" discards!) as
 #. (saying "n" for "no" discards!) if the translation
 #. of the word "no" does not start with n.
-#: add-patch.c:1218 git-add--interactive.perl:1239
+#: add-patch.c:1232 git-add--interactive.perl:1241
 msgid ""
 "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
 msgstr ""
 "Ihr bearbeiteter Patch-Block kann nicht angewendet werden.\n"
 "Erneut bearbeiten? (\"n\" verwirft Bearbeitung!) [y/n]?"
 
-#: add-patch.c:1261
+#: add-patch.c:1275
 msgid "The selected hunks do not apply to the index!"
 msgstr ""
 "Die ausgewählten Patch-Blöcke können nicht auf den Index angewendet werden!"
 
-#: add-patch.c:1262 git-add--interactive.perl:1343
+#: add-patch.c:1276 git-add--interactive.perl:1345
 msgid "Apply them to the worktree anyway? "
 msgstr "Trotzdem auf Arbeitsverzeichnis anwenden? "
 
-#: add-patch.c:1269 git-add--interactive.perl:1346
+#: add-patch.c:1283 git-add--interactive.perl:1348
 msgid "Nothing was applied.\n"
 msgstr "Nichts angewendet.\n"
 
-#: add-patch.c:1326
+#: add-patch.c:1340
 msgid ""
 "j - leave this hunk undecided, see next undecided hunk\n"
 "J - leave this hunk undecided, see next hunk\n"
@@ -658,69 +694,69 @@
 "e - aktuellen Patch-Block manuell editieren\n"
 "? - Hilfe anzeigen\n"
 
-#: add-patch.c:1447 add-patch.c:1457
+#: add-patch.c:1463 add-patch.c:1473
 msgid "No previous hunk"
 msgstr "Kein vorheriger Patch-Block"
 
-#: add-patch.c:1452 add-patch.c:1462
+#: add-patch.c:1468 add-patch.c:1478
 msgid "No next hunk"
 msgstr "Kein folgender Patch-Block"
 
-#: add-patch.c:1468
+#: add-patch.c:1484
 msgid "No other hunks to goto"
 msgstr "Keine anderen Patch-Blöcke verbleibend"
 
-#: add-patch.c:1479 git-add--interactive.perl:1577
+#: add-patch.c:1495 git-add--interactive.perl:1594
 msgid "go to which hunk (<ret> to see more)? "
 msgstr "zu welchem Patch-Block springen (<Enter> für mehr Informationen)? "
 
-#: add-patch.c:1480 git-add--interactive.perl:1579
+#: add-patch.c:1496 git-add--interactive.perl:1596
 msgid "go to which hunk? "
 msgstr "zu welchem Patch-Block springen? "
 
-#: add-patch.c:1491
+#: add-patch.c:1507
 #, c-format
 msgid "Invalid number: '%s'"
 msgstr "Ungültige Nummer: '%s'"
 
-#: add-patch.c:1496
+#: add-patch.c:1512
 #, c-format
 msgid "Sorry, only %d hunk available."
 msgid_plural "Sorry, only %d hunks available."
 msgstr[0] "Entschuldigung, nur %d Patch-Block verfügbar."
 msgstr[1] "Entschuldigung, nur %d Patch-Blöcke verfügbar."
 
-#: add-patch.c:1505
+#: add-patch.c:1521
 msgid "No other hunks to search"
 msgstr "Keine anderen Patch-Blöcke zum Durchsuchen"
 
-#: add-patch.c:1511 git-add--interactive.perl:1623
+#: add-patch.c:1527 git-add--interactive.perl:1640
 msgid "search for regex? "
 msgstr "Suche nach regulärem Ausdruck? "
 
-#: add-patch.c:1526
+#: add-patch.c:1542
 #, c-format
 msgid "Malformed search regexp %s: %s"
 msgstr "Fehlerhafter regulärer Ausdruck für Suche %s: %s"
 
-#: add-patch.c:1543
+#: add-patch.c:1559
 msgid "No hunk matches the given pattern"
 msgstr "Kein Patch-Block entspricht dem angegebenen Muster"
 
-#: add-patch.c:1550
+#: add-patch.c:1566
 msgid "Sorry, cannot split this hunk"
 msgstr "Entschuldigung, kann diesen Patch-Block nicht aufteilen"
 
-#: add-patch.c:1554
+#: add-patch.c:1570
 #, c-format
 msgid "Split into %d hunks."
 msgstr "In %d Patch-Block aufgeteilt."
 
-#: add-patch.c:1558
+#: add-patch.c:1574
 msgid "Sorry, cannot edit this hunk"
 msgstr "Entschuldigung, kann diesen Patch-Block nicht bearbeiten"
 
-#: add-patch.c:1609
+#: add-patch.c:1625
 msgid "'git apply' failed"
 msgstr "'git apply' schlug fehl"
 
@@ -1438,7 +1474,7 @@
 
 #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98
 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3458 builtin/rebase.c:1332
+#: builtin/pack-objects.c:3530 builtin/rebase.c:1332
 msgid "action"
 msgstr "Aktion"
 
@@ -1528,7 +1564,7 @@
 msgid "path too long (%d chars, SHA1: %s): %s"
 msgstr "Pfad zu lang (%d Zeichen, SHA1: %s): %s"
 
-#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235
+#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246
 #, c-format
 msgid "deflate error (%d)"
 msgstr "Fehler beim Komprimieren (%d)"
@@ -1598,8 +1634,8 @@
 msgstr "einen Präfix vor jeden Pfadnamen in dem Archiv stellen"
 
 #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866
-#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162
-#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907
+#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208
+#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907
 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564
 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
 #: parse-options.h:190
@@ -1828,10 +1864,10 @@
 "endgültigen\n"
 "Commits"
 
-#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018
+#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018
 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405
 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235
-#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291
+#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363
 #: builtin/shortlog.c:192
 msgid "revision walk setup failed"
 msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
@@ -1995,84 +2031,88 @@
 msgid "HEAD of working tree %s is not updated"
 msgstr "HEAD des Arbeitsverzeichnisses %s ist nicht aktualisiert."
 
-#: bundle.c:36
+#: bundle.c:47
 #, c-format
 msgid "'%s' does not look like a v2 bundle file"
 msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus"
 
-#: bundle.c:64
+#: bundle.c:69
+msgid "unknown hash algorithm length"
+msgstr "unbekannte Länge des Hash-Algorithmus"
+
+#: bundle.c:84
 #, c-format
 msgid "unrecognized header: %s%s (%d)"
 msgstr "nicht erkannter Kopfbereich: %s%s (%d)"
 
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034
+#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034
 #: builtin/commit.c:814
 #, c-format
 msgid "could not open '%s'"
 msgstr "Konnte '%s' nicht öffnen"
 
-#: bundle.c:143
+#: bundle.c:163
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:"
 
-#: bundle.c:146
+#: bundle.c:166
 msgid "need a repository to verify a bundle"
 msgstr "Um ein Paket zu überprüfen wird ein Repository benötigt."
 
-#: bundle.c:197
+#: bundle.c:217
 #, c-format
 msgid "The bundle contains this ref:"
 msgid_plural "The bundle contains these %d refs:"
 msgstr[0] "Das Paket enthält diese Referenz:"
 msgstr[1] "Das Paket enthält diese %d Referenzen:"
 
-#: bundle.c:204
+#: bundle.c:224
 msgid "The bundle records a complete history."
 msgstr "Das Paket speichert eine komplette Historie."
 
-#: bundle.c:206
+#: bundle.c:226
 #, c-format
 msgid "The bundle requires this ref:"
 msgid_plural "The bundle requires these %d refs:"
 msgstr[0] "Das Paket benötigt diese Referenz:"
 msgstr[1] "Das Paket benötigt diese %d Referenzen:"
 
-#: bundle.c:273
+#: bundle.c:293
 msgid "unable to dup bundle descriptor"
 msgstr "Konnte dup für Descriptor des Pakets nicht ausführen."
 
-#: bundle.c:280
+#: bundle.c:300
 msgid "Could not spawn pack-objects"
 msgstr "Konnte Paketobjekte nicht erstellen"
 
-#: bundle.c:291
+#: bundle.c:311
 msgid "pack-objects died"
 msgstr "Erstellung der Paketobjekte abgebrochen"
 
-#: bundle.c:333
+#: bundle.c:353
 msgid "rev-list died"
 msgstr "\"rev-list\" abgebrochen"
 
-#: bundle.c:382
+#: bundle.c:402
 #, c-format
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen"
 
-#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306
+#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "nicht erkanntes Argument: %s"
 
-#: bundle.c:469
+#: bundle.c:489
 msgid "Refusing to create empty bundle."
 msgstr "Erstellung eines leeren Pakets zurückgewiesen."
 
-#: bundle.c:479
+#: bundle.c:499
 #, c-format
 msgid "cannot create '%s'"
 msgstr "kann '%s' nicht erstellen"
 
-#: bundle.c:504
+#: bundle.c:524
 msgid "index-pack died"
 msgstr "Erstellung der Paketindexdatei abgebrochen"
 
@@ -2081,258 +2121,250 @@
 msgid "invalid color value: %.*s"
 msgstr "Ungültiger Farbwert: %.*s"
 
-#: commit-graph.c:183
+#: commit-graph.c:238
 msgid "commit-graph file is too small"
 msgstr "Commit-Graph-Datei ist zu klein."
 
-#: commit-graph.c:248
+#: commit-graph.c:303
 #, c-format
 msgid "commit-graph signature %X does not match signature %X"
 msgstr "Commit-Graph-Signatur %X stimmt nicht mit Signatur %X überein."
 
-#: commit-graph.c:255
+#: commit-graph.c:310
 #, c-format
 msgid "commit-graph version %X does not match version %X"
 msgstr "Commit-Graph-Version %X stimmt nicht mit Version %X überein."
 
-#: commit-graph.c:262
+#: commit-graph.c:317
 #, c-format
 msgid "commit-graph hash version %X does not match version %X"
 msgstr "Hash-Version des Commit-Graph %X stimmt nicht mit Version %X überein."
 
-#: commit-graph.c:284
+#: commit-graph.c:339
 msgid "commit-graph chunk lookup table entry missing; file may be incomplete"
 msgstr ""
 "fehlender Tabelleneintrag für Commit-Graph Chunk-Lookup; Datei "
 "möglicherweise unvollständig"
 
-#: commit-graph.c:294
+#: commit-graph.c:349
 #, c-format
 msgid "commit-graph improper chunk offset %08x%08x"
 msgstr "Unzulässiger Commit-Graph Chunk-Offset %08x%08x"
 
-#: commit-graph.c:362
+#: commit-graph.c:417
 #, c-format
 msgid "commit-graph chunk id %08x appears multiple times"
 msgstr "Commit-Graph Chunk-Id %08x kommt mehrfach vor."
 
-#: commit-graph.c:436
+#: commit-graph.c:491
 msgid "commit-graph has no base graphs chunk"
 msgstr "Commit-Graph hat keinen Basis-Graph-Chunk"
 
-#: commit-graph.c:446
+#: commit-graph.c:501
 msgid "commit-graph chain does not match"
 msgstr "Commit-Graph Verkettung stimmt nicht überein."
 
-#: commit-graph.c:494
+#: commit-graph.c:549
 #, c-format
 msgid "invalid commit-graph chain: line '%s' not a hash"
 msgstr "Ungültige Commit-Graph Verkettung: Zeile '%s' ist kein Hash"
 
-#: commit-graph.c:518
+#: commit-graph.c:573
 msgid "unable to find all commit-graph files"
 msgstr "Konnte nicht alle Commit-Graph-Dateien finden."
 
-#: commit-graph.c:651 commit-graph.c:711
+#: commit-graph.c:706 commit-graph.c:770
 msgid "invalid commit position. commit-graph is likely corrupt"
 msgstr "Ungültige Commit-Position. Commit-Graph ist wahrscheinlich beschädigt."
 
-#: commit-graph.c:672
+#: commit-graph.c:727
 #, c-format
 msgid "could not find commit %s"
 msgstr "Konnte Commit %s nicht finden."
 
-#: commit-graph.c:948 builtin/am.c:1292
+#: commit-graph.c:1009 builtin/am.c:1292
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "Konnte Commit '%s' nicht parsen."
 
-#: commit-graph.c:1096
+#: commit-graph.c:1157
 msgid "Writing changed paths Bloom filters index"
 msgstr "Schreibe Index für veränderte Pfade Bloom-Filter"
 
-#: commit-graph.c:1121
+#: commit-graph.c:1182
 msgid "Writing changed paths Bloom filters data"
 msgstr "Schreibe Daten für veränderte Pfade Bloom-Filter"
 
-#: commit-graph.c:1160 builtin/pack-objects.c:2783
+#: commit-graph.c:1221 builtin/pack-objects.c:2832
 #, c-format
 msgid "unable to get type of object %s"
 msgstr "Konnte Art von Objekt '%s' nicht bestimmen."
 
-#: commit-graph.c:1196
+#: commit-graph.c:1257
 msgid "Loading known commits in commit graph"
 msgstr "Lade bekannte Commits in Commit-Graph"
 
-#: commit-graph.c:1213
+#: commit-graph.c:1274
 msgid "Expanding reachable commits in commit graph"
 msgstr "Erweitere erreichbare Commits in Commit-Graph"
 
-#: commit-graph.c:1233
+#: commit-graph.c:1294
 msgid "Clearing commit marks in commit graph"
 msgstr "Lösche Commit-Markierungen in Commit-Graph"
 
-#: commit-graph.c:1252
+#: commit-graph.c:1313
 msgid "Computing commit graph generation numbers"
 msgstr "Commit-Graph Generationsnummern berechnen"
 
-#: commit-graph.c:1300
+#: commit-graph.c:1367
 msgid "Computing commit changed paths Bloom filters"
 msgstr "Berechnung der Bloom-Filter für veränderte Pfade des Commits"
 
-#: commit-graph.c:1359
+#: commit-graph.c:1423
+msgid "Collecting referenced commits"
+msgstr "Sammle referenzierte Commits"
+
+#: commit-graph.c:1447
 #, c-format
 msgid "Finding commits for commit graph in %d pack"
 msgid_plural "Finding commits for commit graph in %d packs"
 msgstr[0] "Suche Commits für Commit-Graph in %d Paket"
 msgstr[1] "Suche Commits für Commit-Graph in %d Paketen"
 
-#: commit-graph.c:1372
+#: commit-graph.c:1460
 #, c-format
 msgid "error adding pack %s"
 msgstr "Fehler beim Hinzufügen von Paket %s."
 
-#: commit-graph.c:1376
+#: commit-graph.c:1464
 #, c-format
 msgid "error opening index for %s"
 msgstr "Fehler beim Öffnen des Index für %s."
 
-#: commit-graph.c:1405
-#, c-format
-msgid "Finding commits for commit graph from %d ref"
-msgid_plural "Finding commits for commit graph from %d refs"
-msgstr[0] "Suche Commits für Commit-Graph in %d Referenz"
-msgstr[1] "Suche Commits für Commit-Graph in %d Referenzen"
-
-#: commit-graph.c:1426
-#, c-format
-msgid "invalid commit object id: %s"
-msgstr "ungültige Commit-Objekt-ID: %s"
-
-#: commit-graph.c:1442
+#: commit-graph.c:1503
 msgid "Finding commits for commit graph among packed objects"
 msgstr "Suche Commits für Commit-Graph in gepackten Objekten"
 
-#: commit-graph.c:1457
+#: commit-graph.c:1518
 msgid "Counting distinct commits in commit graph"
 msgstr "Zähle Commits in Commit-Graph"
 
-#: commit-graph.c:1489
+#: commit-graph.c:1550
 msgid "Finding extra edges in commit graph"
 msgstr "Suche zusätzliche Ränder in Commit-Graph"
 
-#: commit-graph.c:1538
+#: commit-graph.c:1599
 msgid "failed to write correct number of base graph ids"
 msgstr "Fehler beim Schreiben der korrekten Anzahl von Basis-Graph-IDs."
 
-#: commit-graph.c:1572 midx.c:812
+#: commit-graph.c:1633 midx.c:812
 #, c-format
 msgid "unable to create leading directories of %s"
 msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
 
-#: commit-graph.c:1585
+#: commit-graph.c:1646
 msgid "unable to create temporary graph layer"
 msgstr "konnte temporäre Graphen-Schicht nicht erstellen"
 
-#: commit-graph.c:1590
+#: commit-graph.c:1651
 #, c-format
 msgid "unable to adjust shared permissions for '%s'"
 msgstr "konnte geteilte Zugriffsberechtigungen für '%s' nicht ändern"
 
-#: commit-graph.c:1667
+#: commit-graph.c:1728
 #, c-format
 msgid "Writing out commit graph in %d pass"
 msgid_plural "Writing out commit graph in %d passes"
 msgstr[0] "Schreibe Commit-Graph in %d Durchgang"
 msgstr[1] "Schreibe Commit-Graph in %d Durchgängen"
 
-#: commit-graph.c:1712
+#: commit-graph.c:1773
 msgid "unable to open commit-graph chain file"
 msgstr "Konnte Commit-Graph Chain-Datei nicht öffnen."
 
-#: commit-graph.c:1728
+#: commit-graph.c:1789
 msgid "failed to rename base commit-graph file"
 msgstr "Konnte Basis-Commit-Graph-Datei nicht umbenennen."
 
-#: commit-graph.c:1748
+#: commit-graph.c:1809
 msgid "failed to rename temporary commit-graph file"
 msgstr "Konnte temporäre Commit-Graph-Datei nicht umbenennen."
 
-#: commit-graph.c:1874
+#: commit-graph.c:1935
 msgid "Scanning merged commits"
 msgstr "Durchsuche zusammengeführte Commits"
 
-#: commit-graph.c:1885
+#: commit-graph.c:1946
 #, c-format
 msgid "unexpected duplicate commit id %s"
 msgstr "Unerwartete doppelte Commit-ID %s"
 
-#: commit-graph.c:1908
+#: commit-graph.c:1969
 msgid "Merging commit-graph"
 msgstr "Zusammenführen von Commit-Graph"
 
-#: commit-graph.c:2096
+#: commit-graph.c:2156
 #, c-format
 msgid "the commit graph format cannot write %d commits"
 msgstr "Das Commit-Graph Format kann nicht %d Commits schreiben."
 
-#: commit-graph.c:2107
+#: commit-graph.c:2167
 msgid "too many commits to write graph"
 msgstr "Zu viele Commits zum Schreiben des Graphen."
 
-#: commit-graph.c:2200
+#: commit-graph.c:2260
 msgid "the commit-graph file has incorrect checksum and is likely corrupt"
 msgstr ""
 "Die Commit-Graph-Datei hat eine falsche Prüfsumme und ist wahrscheinlich "
 "beschädigt."
 
-#: commit-graph.c:2210
+#: commit-graph.c:2270
 #, c-format
 msgid "commit-graph has incorrect OID order: %s then %s"
 msgstr "Commit-Graph hat fehlerhafte OID-Reihenfolge: %s dann %s"
 
-#: commit-graph.c:2220 commit-graph.c:2235
+#: commit-graph.c:2280 commit-graph.c:2295
 #, c-format
 msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
 msgstr "Commit-Graph hat fehlerhaften Fanout-Wert: fanout[%d] = %u != %u"
 
-#: commit-graph.c:2227
+#: commit-graph.c:2287
 #, c-format
 msgid "failed to parse commit %s from commit-graph"
 msgstr "Konnte Commit %s von Commit-Graph nicht parsen."
 
-#: commit-graph.c:2245
+#: commit-graph.c:2305
 msgid "Verifying commits in commit graph"
 msgstr "Commit in Commit-Graph überprüfen"
 
-#: commit-graph.c:2259
+#: commit-graph.c:2320
 #, c-format
 msgid "failed to parse commit %s from object database for commit-graph"
 msgstr ""
 "Fehler beim Parsen des Commits %s von Objekt-Datenbank für Commit-Graph"
 
-#: commit-graph.c:2266
+#: commit-graph.c:2327
 #, c-format
 msgid "root tree OID for commit %s in commit-graph is %s != %s"
 msgstr ""
 "OID des Wurzelverzeichnisses für Commit %s in Commit-Graph ist %s != %s"
 
-#: commit-graph.c:2276
+#: commit-graph.c:2337
 #, c-format
 msgid "commit-graph parent list for commit %s is too long"
 msgstr "Commit-Graph Vorgänger-Liste für Commit %s ist zu lang"
 
-#: commit-graph.c:2285
+#: commit-graph.c:2346
 #, c-format
 msgid "commit-graph parent for %s is %s != %s"
 msgstr "Commit-Graph-Vorgänger für %s ist %s != %s"
 
-#: commit-graph.c:2298
+#: commit-graph.c:2360
 #, c-format
 msgid "commit-graph parent list for commit %s terminates early"
 msgstr "Commit-Graph Vorgänger-Liste für Commit %s endet zu früh"
 
-#: commit-graph.c:2303
+#: commit-graph.c:2365
 #, c-format
 msgid ""
 "commit-graph has generation number zero for commit %s, but non-zero elsewhere"
@@ -2340,7 +2372,7 @@
 "Commit-Graph hat Generationsnummer null für Commit %s, aber sonst ungleich "
 "null"
 
-#: commit-graph.c:2307
+#: commit-graph.c:2369
 #, c-format
 msgid ""
 "commit-graph has non-zero generation number for commit %s, but zero elsewhere"
@@ -2348,12 +2380,12 @@
 "Commit-Graph hat Generationsnummer ungleich null für Commit %s, aber sonst "
 "null"
 
-#: commit-graph.c:2322
+#: commit-graph.c:2385
 #, c-format
 msgid "commit-graph generation for commit %s is %u != %u"
 msgstr "Commit-Graph Erstellung für Commit %s ist %u != %u"
 
-#: commit-graph.c:2328
+#: commit-graph.c:2391
 #, c-format
 msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
 msgstr ""
@@ -2391,28 +2423,28 @@
 "Sie können diese Meldung unterdrücken, indem Sie\n"
 "\"git config advice.graftFileDeprecated false\" ausführen."
 
-#: commit.c:1168
+#: commit.c:1172
 #, 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."
 
-#: commit.c:1172
+#: commit.c:1176
 #, 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."
 
-#: commit.c:1175
+#: commit.c:1179
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "Commit %s hat keine GPG-Signatur."
 
-#: commit.c:1178
+#: commit.c:1182
 #, 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"
 
-#: commit.c:1432
+#: commit.c:1436
 msgid ""
 "Warning: commit message did not conform to UTF-8.\n"
 "You may want to amend it after fixing the message, or set the config\n"
@@ -2614,7 +2646,7 @@
 msgstr ""
 "Muss einer von diesen sein: nothing, matching, simple, upstream, current"
 
-#: config.c:1533 builtin/pack-objects.c:3542
+#: config.c:1533 builtin/pack-objects.c:3617
 #, c-format
 msgid "bad pack compression level %d"
 msgstr "ungültiger Komprimierungsgrad (%d) für Paketierung"
@@ -2770,74 +2802,83 @@
 msgid "server doesn't support '%s'"
 msgstr "Der Server unterstützt kein '%s'."
 
-#: connect.c:103
+#: connect.c:118
 #, c-format
 msgid "server doesn't support feature '%s'"
 msgstr "Der Server unterstützt das Feature '%s' nicht."
 
-#: connect.c:114
+#: connect.c:129
 msgid "expected flush after capabilities"
 msgstr "Erwartete Flush nach Fähigkeiten."
 
-#: connect.c:233
+#: connect.c:263
 #, c-format
 msgid "ignoring capabilities after first line '%s'"
 msgstr "Ignoriere Fähigkeiten nach der ersten Zeile '%s'."
 
-#: connect.c:252
+#: connect.c:284
 msgid "protocol error: unexpected capabilities^{}"
 msgstr "Protokollfehler: unerwartetes capabilities^{}"
 
-#: connect.c:273
+#: connect.c:306
 #, c-format
 msgid "protocol error: expected shallow sha-1, got '%s'"
 msgstr "Protokollfehler: shallow SHA-1 erwartet, '%s' bekommen"
 
-#: connect.c:275
+#: connect.c:308
 msgid "repository on the other end cannot be shallow"
 msgstr ""
 "Repository auf der Gegenseite kann keine unvollständige Historie (shallow) "
 "enthalten"
 
-#: connect.c:313
+#: connect.c:347
 msgid "invalid packet"
-msgstr "Ungültiges Paket."
+msgstr "ungültiges Paket"
 
-#: connect.c:333
+#: connect.c:367
 #, c-format
 msgid "protocol error: unexpected '%s'"
 msgstr "Protokollfehler: unerwartetes '%s'"
 
-#: connect.c:441
+#: connect.c:473
+#, c-format
+msgid "unknown object format '%s' specified by server"
+msgstr "unbekanntes Objekt-Format '%s' vom Server angegeben"
+
+#: connect.c:500
 #, c-format
 msgid "invalid ls-refs response: %s"
-msgstr "Ungültige ls-refs Antwort: %s"
+msgstr "ungültige ls-refs Antwort: %s"
 
-#: connect.c:445
+#: connect.c:504
 msgid "expected flush after ref listing"
-msgstr "Erwartete Flush nach Auflistung der Referenzen."
+msgstr "Flush nach Auflistung der Referenzen erwartet"
 
-#: connect.c:544
+#: connect.c:507
+msgid "expected response end packet after ref listing"
+msgstr "Antwort-Endpaket nach Auflistung der Referenzen erwartet"
+
+#: connect.c:640
 #, c-format
 msgid "protocol '%s' is not supported"
-msgstr "Protokoll '%s' wird nicht unterstützt."
+msgstr "Protokoll '%s' wird nicht unterstützt"
 
-#: connect.c:595
+#: connect.c:691
 msgid "unable to set SO_KEEPALIVE on socket"
-msgstr "Kann SO_KEEPALIVE bei Socket nicht setzen."
+msgstr "kann SO_KEEPALIVE bei Socket nicht setzen"
 
-#: connect.c:635 connect.c:698
+#: connect.c:731 connect.c:794
 #, c-format
 msgid "Looking up %s ... "
 msgstr "Suche nach %s ..."
 
-#: connect.c:639
+#: connect.c:735
 #, c-format
 msgid "unable to look up %s (port %s) (%s)"
 msgstr "Fehler bei Suche nach %s (Port %s) (%s)."
 
 #. TRANSLATORS: this is the end of "Looking up %s ... "
-#: connect.c:643 connect.c:714
+#: connect.c:739 connect.c:810
 #, c-format
 msgid ""
 "done.\n"
@@ -2846,7 +2887,7 @@
 "Fertig.\n"
 "Verbinde nach %s (Port %s) ... "
 
-#: connect.c:665 connect.c:742
+#: connect.c:761 connect.c:838
 #, c-format
 msgid ""
 "unable to connect to %s:\n"
@@ -2856,76 +2897,76 @@
 "%s"
 
 #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... "
-#: connect.c:671 connect.c:748
+#: connect.c:767 connect.c:844
 msgid "done."
 msgstr "Fertig."
 
-#: connect.c:702
+#: connect.c:798
 #, c-format
 msgid "unable to look up %s (%s)"
 msgstr "Fehler bei der Suche nach %s (%s)"
 
-#: connect.c:708
+#: connect.c:804
 #, c-format
 msgid "unknown port %s"
 msgstr "Unbekannter Port %s"
 
-#: connect.c:845 connect.c:1175
+#: connect.c:941 connect.c:1271
 #, c-format
 msgid "strange hostname '%s' blocked"
 msgstr "Merkwürdigen Hostnamen '%s' blockiert."
 
-#: connect.c:847
+#: connect.c:943
 #, c-format
 msgid "strange port '%s' blocked"
 msgstr "Merkwürdigen Port '%s' blockiert."
 
-#: connect.c:857
+#: connect.c:953
 #, c-format
 msgid "cannot start proxy %s"
 msgstr "Kann Proxy %s nicht starten."
 
-#: connect.c:928
+#: connect.c:1024
 msgid "no path specified; see 'git help pull' for valid url syntax"
 msgstr ""
 "Kein Pfad angegeben; siehe 'git help pull' für eine gültige URL-Syntax."
 
-#: connect.c:1123
+#: connect.c:1219
 msgid "ssh variant 'simple' does not support -4"
 msgstr "SSH-Variante 'simple' unterstützt kein -4."
 
-#: connect.c:1135
+#: connect.c:1231
 msgid "ssh variant 'simple' does not support -6"
 msgstr "SSH-Variante 'simple' unterstützt kein -6."
 
-#: connect.c:1152
+#: connect.c:1248
 msgid "ssh variant 'simple' does not support setting port"
 msgstr "SSH-Variante 'simple' unterstützt nicht das Setzen eines Ports."
 
-#: connect.c:1264
+#: connect.c:1360
 #, c-format
 msgid "strange pathname '%s' blocked"
 msgstr "Merkwürdigen Pfadnamen '%s' blockiert."
 
-#: connect.c:1311
+#: connect.c:1407
 msgid "unable to fork"
 msgstr "Kann Prozess nicht starten."
 
-#: connected.c:107 builtin/fsck.c:209 builtin/prune.c:45
+#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45
 msgid "Checking connectivity"
 msgstr "Prüfe Konnektivität"
 
-#: connected.c:119
+#: connected.c:121
 msgid "Could not run 'git rev-list'"
 msgstr "Konnte 'git rev-list' nicht ausführen"
 
-#: connected.c:139
+#: connected.c:141
 msgid "failed write to rev-list"
 msgstr "Fehler beim Schreiben nach rev-list"
 
-#: connected.c:146
+#: connected.c:148
 msgid "failed to close rev-list's stdin"
-msgstr "Fehler beim Schließen von rev-list's Standard-Eingabe"
+msgstr "Fehler beim Schließen von rev-lists Standard-Eingabe"
 
 #: convert.c:194
 #, c-format
@@ -3191,18 +3232,18 @@
 "Kein Git-Repository. Nutzen Sie --no-index, um zwei Pfade außerhalb des "
 "Arbeitsverzeichnisses zu vergleichen."
 
-#: diff.c:155
+#: diff.c:156
 #, c-format
 msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
 msgstr ""
 "  Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n"
 
-#: diff.c:160
+#: diff.c:161
 #, c-format
 msgid "  Unknown dirstat parameter '%s'\n"
 msgstr "  Unbekannter \"dirstat\" Parameter '%s'\n"
 
-#: diff.c:296
+#: diff.c:297
 msgid ""
 "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
 "'dimmed-zebra', 'plain'"
@@ -3210,7 +3251,7 @@
 "\"color moved\"-Einstellung muss eines von diesen sein: 'no', 'default', "
 "'blocks', 'zebra', 'dimmed_zebra', 'plain'"
 
-#: diff.c:324
+#: diff.c:325
 #, c-format
 msgid ""
 "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3219,7 +3260,7 @@
 "Unbekannter color-moved-ws Modus '%s', mögliche Werte sind 'ignore-space-"
 "change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-identation-change'"
 
-#: diff.c:332
+#: diff.c:333
 msgid ""
 "color-moved-ws: allow-indentation-change cannot be combined with other "
 "whitespace modes"
@@ -3227,12 +3268,12 @@
 "color-moved-ws: allow-indentation-change kann nicht mit anderen\n"
 "Whitespace-Modi kombiniert werden."
 
-#: diff.c:405
+#: diff.c:410
 #, c-format
 msgid "Unknown value for 'diff.submodule' config variable: '%s'"
 msgstr "Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'"
 
-#: diff.c:465
+#: diff.c:470
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
@@ -3241,36 +3282,36 @@
 "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
 "%s"
 
-#: diff.c:4238
+#: diff.c:4243
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s"
 
-#: diff.c:4583
+#: diff.c:4589
 msgid "--name-only, --name-status, --check and -s are mutually exclusive"
 msgstr ""
 "--name-only, --name-status, --check und -s schließen sich gegenseitig aus"
 
-#: diff.c:4586
+#: diff.c:4592
 msgid "-G, -S and --find-object are mutually exclusive"
 msgstr "-G, -S und --find-object schließen sich gegenseitig aus"
 
-#: diff.c:4664
+#: diff.c:4670
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow erfordert genau eine Pfadspezifikation"
 
-#: diff.c:4712
+#: diff.c:4718
 #, c-format
 msgid "invalid --stat value: %s"
 msgstr "Ungültiger --stat Wert: %s"
 
-#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245
+#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250
 #: parse-options.c:197 parse-options.c:201
 #, c-format
 msgid "%s expects a numerical value"
 msgstr "%s erwartet einen numerischen Wert."
 
-#: diff.c:4749
+#: diff.c:4755
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -3279,42 +3320,42 @@
 "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
 "%s"
 
-#: diff.c:4834
+#: diff.c:4840
 #, c-format
 msgid "unknown change class '%c' in --diff-filter=%s"
 msgstr "Unbekannte Änderungsklasse '%c' in --diff-filter=%s"
 
-#: diff.c:4858
+#: diff.c:4864
 #, c-format
 msgid "unknown value after ws-error-highlight=%.*s"
 msgstr "Unbekannter Wert nach ws-error-highlight=%.*s"
 
-#: diff.c:4872
+#: diff.c:4878
 #, c-format
 msgid "unable to resolve '%s'"
 msgstr "konnte '%s' nicht auflösen"
 
-#: diff.c:4922 diff.c:4928
+#: diff.c:4928 diff.c:4934
 #, c-format
 msgid "%s expects <n>/<m> form"
 msgstr "%s erwartet die Form <n>/<m>"
 
-#: diff.c:4940
+#: diff.c:4946
 #, c-format
 msgid "%s expects a character, got '%s'"
 msgstr "%s erwartet ein Zeichen, '%s' bekommen"
 
-#: diff.c:4961
+#: diff.c:4967
 #, c-format
 msgid "bad --color-moved argument: %s"
 msgstr "Ungültiges --color-moved Argument: %s"
 
-#: diff.c:4980
+#: diff.c:4986
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
 msgstr "Ungültiger Modus '%s' in --color-moved-ws"
 
-#: diff.c:5020
+#: diff.c:5026
 msgid ""
 "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
 "\"histogram\""
@@ -3322,152 +3363,152 @@
 "Option diff-algorithm akzeptiert: \"myers\", \"minimal\", \"patience\" and "
 "\"histogram\""
 
-#: diff.c:5056 diff.c:5076
+#: diff.c:5062 diff.c:5082
 #, c-format
 msgid "invalid argument to %s"
 msgstr "Ungültiges Argument für %s"
 
-#: diff.c:5214
+#: diff.c:5219
 #, c-format
 msgid "failed to parse --submodule option parameter: '%s'"
 msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'"
 
-#: diff.c:5270
+#: diff.c:5275
 #, c-format
 msgid "bad --word-diff argument: %s"
 msgstr "Ungültiges --word-diff Argument: %s"
 
-#: diff.c:5293
+#: diff.c:5298
 msgid "Diff output format options"
 msgstr "Diff-Optionen zu Ausgabeformaten"
 
-#: diff.c:5295 diff.c:5301
+#: diff.c:5300 diff.c:5306
 msgid "generate patch"
 msgstr "Erzeuge Patch"
 
-#: diff.c:5298 builtin/log.c:177
+#: diff.c:5303 builtin/log.c:177
 msgid "suppress diff output"
 msgstr "Ausgabe der Unterschiede unterdrücken"
 
-#: diff.c:5303 diff.c:5417 diff.c:5424
+#: diff.c:5308 diff.c:5422 diff.c:5429
 msgid "<n>"
 msgstr "<n>"
 
-#: diff.c:5304 diff.c:5307
+#: diff.c:5309 diff.c:5312
 msgid "generate diffs with <n> lines context"
 msgstr "Erstelle Unterschiede mit <n> Zeilen des Kontextes"
 
-#: diff.c:5309
+#: diff.c:5314
 msgid "generate the diff in raw format"
 msgstr "Erstelle Unterschiede im Rohformat"
 
-#: diff.c:5312
+#: diff.c:5317
 msgid "synonym for '-p --raw'"
 msgstr "Synonym für '-p --raw'"
 
-#: diff.c:5316
+#: diff.c:5321
 msgid "synonym for '-p --stat'"
 msgstr "Synonym für '-p --stat'"
 
-#: diff.c:5320
+#: diff.c:5325
 msgid "machine friendly --stat"
 msgstr "maschinenlesbare Ausgabe von --stat"
 
-#: diff.c:5323
+#: diff.c:5328
 msgid "output only the last line of --stat"
 msgstr "nur die letzte Zeile von --stat ausgeben"
 
-#: diff.c:5325 diff.c:5333
+#: diff.c:5330 diff.c:5338
 msgid "<param1,param2>..."
 msgstr "<Parameter1,Parameter2>..."
 
-#: diff.c:5326
+#: diff.c:5331
 msgid ""
 "output the distribution of relative amount of changes for each sub-directory"
 msgstr ""
 "Gebe die Verteilung des relativen Umfangs der Änderungen für jedes "
 "Unterverzeichnis aus"
 
-#: diff.c:5330
+#: diff.c:5335
 msgid "synonym for --dirstat=cumulative"
 msgstr "Synonym für --dirstat=cumulative"
 
-#: diff.c:5334
+#: diff.c:5339
 msgid "synonym for --dirstat=files,param1,param2..."
 msgstr "Synonym für --dirstat=files,Parameter1,Parameter2..."
 
-#: diff.c:5338
+#: diff.c:5343
 msgid "warn if changes introduce conflict markers or whitespace errors"
 msgstr ""
 "Warnen, wenn Änderungen Konfliktmarker oder Whitespace-Fehler einbringen"
 
-#: diff.c:5341
+#: diff.c:5346
 msgid "condensed summary such as creations, renames and mode changes"
 msgstr ""
 "Gekürzte Zusammenfassung, wie z.B. Erstellungen, Umbenennungen und "
 "Änderungen der Datei-Rechte"
 
-#: diff.c:5344
+#: diff.c:5349
 msgid "show only names of changed files"
 msgstr "nur Dateinamen der geänderten Dateien anzeigen"
 
-#: diff.c:5347
+#: diff.c:5352
 msgid "show only names and status of changed files"
 msgstr "nur Dateinamen und Status der geänderten Dateien anzeigen"
 
-#: diff.c:5349
+#: diff.c:5354
 msgid "<width>[,<name-width>[,<count>]]"
 msgstr "<Breite>[,<Namens-Breite>[,<Anzahl>]]"
 
-#: diff.c:5350
+#: diff.c:5355
 msgid "generate diffstat"
 msgstr "Generiere Zusammenfassung der Unterschiede"
 
-#: diff.c:5352 diff.c:5355 diff.c:5358
+#: diff.c:5357 diff.c:5360 diff.c:5363
 msgid "<width>"
 msgstr "<Breite>"
 
-#: diff.c:5353
+#: diff.c:5358
 msgid "generate diffstat with a given width"
 msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Breite"
 
-#: diff.c:5356
+#: diff.c:5361
 msgid "generate diffstat with a given name width"
 msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Namens-Breite"
 
-#: diff.c:5359
+#: diff.c:5364
 msgid "generate diffstat with a given graph width"
 msgstr "Erzeuge Zusammenfassung der Unterschiede mit gegebener Graph-Breite"
 
-#: diff.c:5361
+#: diff.c:5366
 msgid "<count>"
 msgstr "<Anzahl>"
 
-#: diff.c:5362
+#: diff.c:5367
 msgid "generate diffstat with limited lines"
 msgstr "Erzeuge Zusammenfassung der Unterschiede mit begrenzten Zeilen"
 
-#: diff.c:5365
+#: diff.c:5370
 msgid "generate compact summary in diffstat"
 msgstr "Erzeuge kompakte Zusammenstellung in Zusammenfassung der Unterschiede"
 
-#: diff.c:5368
+#: diff.c:5373
 msgid "output a binary diff that can be applied"
 msgstr "Gebe eine binäre Differenz aus, dass angewendet werden kann"
 
-#: diff.c:5371
+#: diff.c:5376
 msgid "show full pre- and post-image object names on the \"index\" lines"
 msgstr "Zeige vollständige Objekt-Namen in den \"index\"-Zeilen"
 
-#: diff.c:5373
+#: diff.c:5378
 msgid "show colored diff"
 msgstr "Zeige farbige Unterschiede"
 
-#: diff.c:5374
+#: diff.c:5379
 msgid "<kind>"
 msgstr "<Art>"
 
-#: diff.c:5375
+#: diff.c:5380
 msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
@@ -3475,7 +3516,7 @@
 "Hebe Whitespace-Fehler in den Zeilen 'context', 'old' oder 'new' bei den "
 "Unterschieden hervor"
 
-#: diff.c:5378
+#: diff.c:5383
 msgid ""
 "do not munge pathnames and use NULs as output field terminators in --raw or "
 "--numstat"
@@ -3483,91 +3524,91 @@
 "Verschleiere nicht die Pfadnamen und nutze NUL-Zeichen als Schlusszeichen in "
 "Ausgabefeldern bei --raw oder --numstat"
 
-#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493
+#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498
 msgid "<prefix>"
 msgstr "<Präfix>"
 
-#: diff.c:5382
+#: diff.c:5387
 msgid "show the given source prefix instead of \"a/\""
 msgstr "Zeige den gegebenen Quell-Präfix statt \"a/\""
 
-#: diff.c:5385
+#: diff.c:5390
 msgid "show the given destination prefix instead of \"b/\""
 msgstr "Zeige den gegebenen Ziel-Präfix statt \"b/\""
 
-#: diff.c:5388
+#: diff.c:5393
 msgid "prepend an additional prefix to every line of output"
 msgstr "Stelle einen zusätzlichen Präfix bei jeder Ausgabezeile voran"
 
-#: diff.c:5391
+#: diff.c:5396
 msgid "do not show any source or destination prefix"
 msgstr "Zeige keine Quell- oder Ziel-Präfixe an"
 
-#: diff.c:5394
+#: diff.c:5399
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr ""
 "Zeige Kontext zwischen Unterschied-Blöcken bis zur angegebenen Anzahl von "
 "Zeilen."
 
-#: diff.c:5398 diff.c:5403 diff.c:5408
+#: diff.c:5403 diff.c:5408 diff.c:5413
 msgid "<char>"
 msgstr "<Zeichen>"
 
-#: diff.c:5399
+#: diff.c:5404
 msgid "specify the character to indicate a new line instead of '+'"
 msgstr "Das Zeichen festlegen, das eine neue Zeile kennzeichnet (statt '+')"
 
-#: diff.c:5404
+#: diff.c:5409
 msgid "specify the character to indicate an old line instead of '-'"
 msgstr "Das Zeichen festlegen, das eine alte Zeile kennzeichnet (statt '-')"
 
-#: diff.c:5409
+#: diff.c:5414
 msgid "specify the character to indicate a context instead of ' '"
 msgstr "Das Zeichen festlegen, das den Kontext kennzeichnet (statt ' ')"
 
-#: diff.c:5412
+#: diff.c:5417
 msgid "Diff rename options"
 msgstr "Diff-Optionen zur Umbenennung"
 
-#: diff.c:5413
+#: diff.c:5418
 msgid "<n>[/<m>]"
 msgstr "<n>[/<m>]"
 
-#: diff.c:5414
+#: diff.c:5419
 msgid "break complete rewrite changes into pairs of delete and create"
 msgstr ""
 "Teile komplette Rewrite-Änderungen in Änderungen mit \"löschen\" und "
 "\"erstellen\""
 
-#: diff.c:5418
+#: diff.c:5423
 msgid "detect renames"
 msgstr "Umbenennungen erkennen"
 
-#: diff.c:5422
+#: diff.c:5427
 msgid "omit the preimage for deletes"
 msgstr "Preimage für Löschungen weglassen."
 
-#: diff.c:5425
+#: diff.c:5430
 msgid "detect copies"
 msgstr "Kopien erkennen"
 
-#: diff.c:5429
+#: diff.c:5434
 msgid "use unmodified files as source to find copies"
 msgstr "Nutze ungeänderte Dateien als Quelle zum Finden von Kopien"
 
-#: diff.c:5431
+#: diff.c:5436
 msgid "disable rename detection"
 msgstr "Erkennung von Umbenennungen deaktivieren"
 
-#: diff.c:5434
+#: diff.c:5439
 msgid "use empty blobs as rename source"
 msgstr "Nutze leere Blobs als Quelle von Umbennungen"
 
-#: diff.c:5436
+#: diff.c:5441
 msgid "continue listing the history of a file beyond renames"
 msgstr "Fortführen der Auflistung der Historie einer Datei nach Umbennung"
 
-#: diff.c:5439
+#: diff.c:5444
 msgid ""
 "prevent rename/copy detection if the number of rename/copy targets exceeds "
 "given limit"
@@ -3575,159 +3616,159 @@
 "Verhindere die Erkennung von Umbennungen und Kopien, wenn die Anzahl der "
 "Ziele für Umbennungen und Kopien das gegebene Limit überschreitet"
 
-#: diff.c:5441
+#: diff.c:5446
 msgid "Diff algorithm options"
 msgstr "Diff Algorithmus-Optionen"
 
-#: diff.c:5443
+#: diff.c:5448
 msgid "produce the smallest possible diff"
 msgstr "Erzeuge die kleinstmöglichen Änderungen"
 
-#: diff.c:5446
+#: diff.c:5451
 msgid "ignore whitespace when comparing lines"
 msgstr "Whitespace-Änderungen beim Vergleich von Zeilen ignorieren"
 
-#: diff.c:5449
+#: diff.c:5454
 msgid "ignore changes in amount of whitespace"
 msgstr "Änderungen bei der Anzahl von Whitespace ignorieren"
 
-#: diff.c:5452
+#: diff.c:5457
 msgid "ignore changes in whitespace at EOL"
 msgstr "Whitespace-Änderungen am Zeilenende ignorieren"
 
-#: diff.c:5455
+#: diff.c:5460
 msgid "ignore carrier-return at the end of line"
 msgstr "Ignoriere den Zeilenumbruch am Ende der Zeile"
 
-#: diff.c:5458
+#: diff.c:5463
 msgid "ignore changes whose lines are all blank"
 msgstr "Ignoriere Änderungen in leeren Zeilen"
 
-#: diff.c:5461
+#: diff.c:5466
 msgid "heuristic to shift diff hunk boundaries for easy reading"
 msgstr ""
 "Heuristik, um Grenzen der Änderungsblöcke für bessere Lesbarkeit zu "
 "verschieben"
 
-#: diff.c:5464
+#: diff.c:5469
 msgid "generate diff using the \"patience diff\" algorithm"
 msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Patience Diff\""
 
-#: diff.c:5468
+#: diff.c:5473
 msgid "generate diff using the \"histogram diff\" algorithm"
 msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Histogram Diff\""
 
-#: diff.c:5470
+#: diff.c:5475
 msgid "<algorithm>"
 msgstr "<Algorithmus>"
 
-#: diff.c:5471
+#: diff.c:5476
 msgid "choose a diff algorithm"
 msgstr "Ein Algorithmus für Änderungen wählen"
 
-#: diff.c:5473
+#: diff.c:5478
 msgid "<text>"
 msgstr "<Text>"
 
-#: diff.c:5474
+#: diff.c:5479
 msgid "generate diff using the \"anchored diff\" algorithm"
 msgstr "Erzeuge Änderungen durch Nutzung des Algorithmus \"Anchored Diff\""
 
-#: diff.c:5476 diff.c:5485 diff.c:5488
+#: diff.c:5481 diff.c:5490 diff.c:5493
 msgid "<mode>"
 msgstr "<Modus>"
 
-#: diff.c:5477
+#: diff.c:5482
 msgid "show word diff, using <mode> to delimit changed words"
 msgstr "Zeige Wort-Änderungen, nutze <Modus>, um Wörter abzugrenzen"
 
-#: diff.c:5479 diff.c:5482 diff.c:5527
+#: diff.c:5484 diff.c:5487 diff.c:5532
 msgid "<regex>"
 msgstr "<Regex>"
 
-#: diff.c:5480
+#: diff.c:5485
 msgid "use <regex> to decide what a word is"
 msgstr "Nutze <Regex>, um zu entscheiden, was ein Wort ist"
 
-#: diff.c:5483
+#: diff.c:5488
 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
 msgstr "Entsprechend wie --word-diff=color --word-diff-regex=<Regex>"
 
-#: diff.c:5486
+#: diff.c:5491
 msgid "moved lines of code are colored differently"
 msgstr "Verschobene Codezeilen sind andersfarbig"
 
-#: diff.c:5489
+#: diff.c:5494
 msgid "how white spaces are ignored in --color-moved"
 msgstr "Wie Whitespaces in --color-moved ignoriert werden"
 
-#: diff.c:5492
+#: diff.c:5497
 msgid "Other diff options"
 msgstr "Andere Diff-Optionen"
 
-#: diff.c:5494
+#: diff.c:5499
 msgid "when run from subdir, exclude changes outside and show relative paths"
 msgstr ""
 "Wenn vom Unterverzeichnis aufgerufen, schließe Änderungen außerhalb aus und "
 "zeige relative Pfade an"
 
-#: diff.c:5498
+#: diff.c:5503
 msgid "treat all files as text"
 msgstr "alle Dateien als Text behandeln"
 
-#: diff.c:5500
+#: diff.c:5505
 msgid "swap two inputs, reverse the diff"
 msgstr "Vertausche die beiden Eingaben und drehe die Änderungen um"
 
-#: diff.c:5502
+#: diff.c:5507
 msgid "exit with 1 if there were differences, 0 otherwise"
 msgstr ""
 "Beende mit Exit-Status 1, wenn Änderungen vorhanden sind, andernfalls mit 0"
 
-#: diff.c:5504
+#: diff.c:5509
 msgid "disable all output of the program"
 msgstr "Keine Ausgaben vom Programm"
 
-#: diff.c:5506
+#: diff.c:5511
 msgid "allow an external diff helper to be executed"
 msgstr "Erlaube die Ausführung eines externes Programms für Änderungen"
 
-#: diff.c:5508
+#: diff.c:5513
 msgid "run external text conversion filters when comparing binary files"
 msgstr ""
 "Führe externe Text-Konvertierungsfilter aus, wenn binäre Dateien vergleicht "
 "werden"
 
-#: diff.c:5510
+#: diff.c:5515
 msgid "<when>"
 msgstr "<wann>"
 
-#: diff.c:5511
+#: diff.c:5516
 msgid "ignore changes to submodules in the diff generation"
 msgstr ""
 "Änderungen in Submodulen während der Erstellung der Unterschiede ignorieren"
 
-#: diff.c:5514
+#: diff.c:5519
 msgid "<format>"
 msgstr "<Format>"
 
-#: diff.c:5515
+#: diff.c:5520
 msgid "specify how differences in submodules are shown"
 msgstr "Angeben, wie Unterschiede in Submodulen gezeigt werden"
 
-#: diff.c:5519
+#: diff.c:5524
 msgid "hide 'git add -N' entries from the index"
 msgstr "verstecke 'git add -N' Einträge vom Index"
 
-#: diff.c:5522
+#: diff.c:5527
 msgid "treat 'git add -N' entries as real in the index"
 msgstr "Behandle 'git add -N' Einträge im Index als echt"
 
-#: diff.c:5524
+#: diff.c:5529
 msgid "<string>"
 msgstr "<Zeichenkette>"
 
-#: diff.c:5525
+#: diff.c:5530
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "string"
@@ -3735,7 +3776,7 @@
 "Suche nach Unterschieden, welche die Anzahl des Vorkommens der angegebenen "
 "Zeichenkette verändern"
 
-#: diff.c:5528
+#: diff.c:5533
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "regex"
@@ -3743,25 +3784,25 @@
 "Suche nach Unterschieden, welche die Anzahl des Vorkommens des angegebenen "
 "regulären Ausdrucks verändern"
 
-#: diff.c:5531
+#: diff.c:5536
 msgid "show all changes in the changeset with -S or -G"
 msgstr "zeige alle Änderungen im Changeset mit -S oder -G"
 
-#: diff.c:5534
+#: diff.c:5539
 msgid "treat <string> in -S as extended POSIX regular expression"
 msgstr ""
 "behandle <Zeichenkette> bei -S als erweiterten POSIX regulären Ausdruck"
 
-#: diff.c:5537
+#: diff.c:5542
 msgid "control the order in which files appear in the output"
 msgstr ""
 "kontrolliere die Reihenfolge, in der die Dateien in der Ausgabe erscheinen"
 
-#: diff.c:5538
+#: diff.c:5543
 msgid "<object-id>"
 msgstr "<Objekt-ID>"
 
-#: diff.c:5539
+#: diff.c:5544
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "object"
@@ -3769,33 +3810,33 @@
 "Suche nach Unterschieden, welche die Anzahl des Vorkommens des angegebenen "
 "Objektes verändern"
 
-#: diff.c:5541
+#: diff.c:5546
 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
 msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
 
-#: diff.c:5542
+#: diff.c:5547
 msgid "select files by diff type"
 msgstr "Wähle Dateien anhand der Art der Änderung"
 
-#: diff.c:5544
+#: diff.c:5549
 msgid "<file>"
 msgstr "<Datei>"
 
-#: diff.c:5545
+#: diff.c:5550
 msgid "Output to a specific file"
 msgstr "Ausgabe zu einer bestimmten Datei"
 
-#: diff.c:6200
+#: diff.c:6205
 msgid "inexact rename detection was skipped due to too many files."
 msgstr ""
 "Ungenaue Erkennung für Umbenennungen wurde aufgrund zu vieler Dateien\n"
 "übersprungen."
 
-#: diff.c:6203
+#: diff.c:6208
 msgid "only found copies from modified paths due to too many files."
 msgstr "nur Kopien von geänderten Pfaden, aufgrund zu vieler Dateien, gefunden"
 
-#: diff.c:6206
+#: diff.c:6211
 #, c-format
 msgid ""
 "you may want to set your %s variable to at least %d and retry the command."
@@ -3812,64 +3853,64 @@
 msgid "Performing inexact rename detection"
 msgstr "Führe Erkennung für ungenaue Umbenennung aus"
 
-#: dir.c:555
+#: dir.c:573
 #, c-format
 msgid "pathspec '%s' did not match any file(s) known to git"
 msgstr ""
 "Pfadspezifikation '%s' stimmt mit keinen git-bekannten Dateien überein."
 
-#: dir.c:695 dir.c:724 dir.c:737
+#: dir.c:713 dir.c:742 dir.c:755
 #, c-format
 msgid "unrecognized pattern: '%s'"
 msgstr "Unbekanntes Muster: '%s'"
 
-#: dir.c:754 dir.c:768
+#: dir.c:772 dir.c:786
 #, c-format
 msgid "unrecognized negative pattern: '%s'"
 msgstr "Unbekanntes verneinendes Muster: '%s'"
 
-#: dir.c:786
+#: dir.c:804
 #, c-format
 msgid "your sparse-checkout file may have issues: pattern '%s' is repeated"
 msgstr ""
 "Ihre Datei für den partiellen Checkout hat eventuell Probleme:\n"
 "Muster '%s' wiederholt sich."
 
-#: dir.c:796
+#: dir.c:814
 msgid "disabling cone pattern matching"
 msgstr "Deaktiviere Cone-Muster-Übereinstimmung"
 
-#: dir.c:1173
+#: dir.c:1191
 #, c-format
 msgid "cannot use %s as an exclude file"
 msgstr "Kann %s nicht als exclude-Filter benutzen."
 
-#: dir.c:2275
+#: dir.c:2296
 #, c-format
 msgid "could not open directory '%s'"
 msgstr "Konnte Verzeichnis '%s' nicht öffnen."
 
-#: dir.c:2575
+#: dir.c:2596
 msgid "failed to get kernel name and information"
 msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel"
 
-#: dir.c:2699
+#: dir.c:2720
 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."
 
-#: dir.c:3481
+#: dir.c:3502
 #, c-format
 msgid "index file corrupt in repo %s"
 msgstr "Index-Datei in Repository %s beschädigt."
 
-#: dir.c:3526 dir.c:3531
+#: dir.c:3547 dir.c:3552
 #, c-format
 msgid "could not create directories for %s"
 msgstr "Konnte Verzeichnisse für '%s' nicht erstellen."
 
-#: dir.c:3560
+#: dir.c:3581
 #, c-format
 msgid "could not migrate git directory from '%s' to '%s'"
 msgstr "Konnte Git-Verzeichnis nicht von '%s' nach '%s' migrieren."
@@ -3879,11 +3920,11 @@
 msgid "hint: Waiting for your editor to close the file...%c"
 msgstr "Hinweis: Warte auf das Schließen der Datei durch Ihren Editor...%c"
 
-#: entry.c:178
+#: entry.c:177
 msgid "Filtering content"
 msgstr "Filtere Inhalt"
 
-#: entry.c:479
+#: entry.c:478
 #, c-format
 msgid "could not stat file '%s'"
 msgstr "Konnte Datei '%s' nicht lesen."
@@ -3903,227 +3944,245 @@
 msgid "too many args to run %s"
 msgstr "Zu viele Argumente angegeben, um %s auszuführen."
 
-#: fetch-pack.c:151
+#: fetch-pack.c:152
 msgid "git fetch-pack: expected shallow list"
 msgstr "git fetch-pack: erwartete shallow-Liste"
 
-#: fetch-pack.c:154
+#: fetch-pack.c:155
 msgid "git fetch-pack: expected a flush packet after shallow list"
 msgstr "git fetch-pack: erwartete ein Flush-Paket nach der shallow-Liste"
 
-#: fetch-pack.c:165
+#: fetch-pack.c:166
 msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
 msgstr "git fetch-pack: ACK/NAK erwartet, Flush-Paket bekommen"
 
-#: fetch-pack.c:185
+#: fetch-pack.c:186
 #, c-format
 msgid "git fetch-pack: expected ACK/NAK, got '%s'"
 msgstr "git fetch-pack: ACK/NAK erwartet, '%s' bekommen"
 
-#: fetch-pack.c:196
+#: fetch-pack.c:197
 msgid "unable to write to remote"
 msgstr "konnte nicht zum Remote schreiben"
 
-#: fetch-pack.c:258
+#: fetch-pack.c:259
 msgid "--stateless-rpc requires multi_ack_detailed"
 msgstr "--stateless-rpc benötigt multi_ack_detailed"
 
-#: fetch-pack.c:357 fetch-pack.c:1364
+#: fetch-pack.c:358 fetch-pack.c:1408
 #, c-format
 msgid "invalid shallow line: %s"
 msgstr "Ungültige shallow-Zeile: %s"
 
-#: fetch-pack.c:363 fetch-pack.c:1370
+#: fetch-pack.c:364 fetch-pack.c:1414
 #, c-format
 msgid "invalid unshallow line: %s"
 msgstr "Ungültige unshallow-Zeile: %s"
 
-#: fetch-pack.c:365 fetch-pack.c:1372
+#: fetch-pack.c:366 fetch-pack.c:1416
 #, c-format
 msgid "object not found: %s"
 msgstr "Objekt nicht gefunden: %s"
 
-#: fetch-pack.c:368 fetch-pack.c:1375
+#: fetch-pack.c:369 fetch-pack.c:1419
 #, c-format
 msgid "error in object: %s"
 msgstr "Fehler in Objekt: %s"
 
-#: fetch-pack.c:370 fetch-pack.c:1377
+#: fetch-pack.c:371 fetch-pack.c:1421
 #, c-format
 msgid "no shallow found: %s"
 msgstr "Kein shallow-Objekt gefunden: %s"
 
-#: fetch-pack.c:373 fetch-pack.c:1381
+#: fetch-pack.c:374 fetch-pack.c:1425
 #, c-format
 msgid "expected shallow/unshallow, got %s"
 msgstr "shallow/unshallow erwartet, %s bekommen"
 
-#: fetch-pack.c:415
+#: fetch-pack.c:416
 #, c-format
 msgid "got %s %d %s"
 msgstr "%s %d %s bekommen"
 
-#: fetch-pack.c:432
+#: fetch-pack.c:433
 #, c-format
 msgid "invalid commit %s"
 msgstr "Ungültiger Commit %s"
 
-#: fetch-pack.c:463
+#: fetch-pack.c:464
 msgid "giving up"
 msgstr "Gebe auf"
 
-#: fetch-pack.c:476 progress.c:336
+#: fetch-pack.c:477 progress.c:336
 msgid "done"
 msgstr "Fertig"
 
-#: fetch-pack.c:488
+#: fetch-pack.c:489
 #, c-format
 msgid "got %s (%d) %s"
 msgstr "%s (%d) %s bekommen"
 
-#: fetch-pack.c:534
+#: fetch-pack.c:535
 #, c-format
 msgid "Marking %s as complete"
 msgstr "Markiere %s als vollständig"
 
-#: fetch-pack.c:755
+#: fetch-pack.c:756
 #, c-format
 msgid "already have %s (%s)"
 msgstr "habe %s (%s) bereits"
 
-#: fetch-pack.c:819
+#: fetch-pack.c:821
 msgid "fetch-pack: unable to fork off sideband demultiplexer"
 msgstr "fetch-pack: Fehler beim Starten des sideband demultiplexer"
 
-#: fetch-pack.c:827
+#: fetch-pack.c:829
 msgid "protocol error: bad pack header"
 msgstr "Protokollfehler: ungültiger Pack-Header"
 
-#: fetch-pack.c:901
+#: fetch-pack.c:910
 #, c-format
 msgid "fetch-pack: unable to fork off %s"
 msgstr "fetch-pack: konnte %s nicht starten"
 
-#: fetch-pack.c:917
+#: fetch-pack.c:927
 #, c-format
 msgid "%s failed"
 msgstr "%s fehlgeschlagen"
 
-#: fetch-pack.c:919
+#: fetch-pack.c:929
 msgid "error in sideband demultiplexer"
 msgstr "Fehler in sideband demultiplexer"
 
-#: fetch-pack.c:966
+#: fetch-pack.c:976
 #, c-format
 msgid "Server version is %.*s"
 msgstr "Server-Version ist %.*s"
 
-#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986
-#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002
-#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018
-#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040
+#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996
+#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012
+#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028
+#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050
 #, c-format
 msgid "Server supports %s"
 msgstr "Server unterstützt %s"
 
-#: fetch-pack.c:973
+#: fetch-pack.c:983
 msgid "Server does not support shallow clients"
 msgstr "Server unterstützt keine shallow-Clients"
 
-#: fetch-pack.c:1033
+#: fetch-pack.c:1043
 msgid "Server does not support --shallow-since"
 msgstr "Server unterstützt kein --shallow-since"
 
-#: fetch-pack.c:1038
+#: fetch-pack.c:1048
 msgid "Server does not support --shallow-exclude"
 msgstr "Server unterstützt kein --shallow-exclude"
 
-#: fetch-pack.c:1042
+#: fetch-pack.c:1052
 msgid "Server does not support --deepen"
 msgstr "Server unterstützt kein --deepen"
 
-#: fetch-pack.c:1059
+#: fetch-pack.c:1054
+msgid "Server does not support this repository's object format"
+msgstr "Server unterstützt das Objekt-Format dieses Repositories nicht"
+
+#: fetch-pack.c:1071
 msgid "no common commits"
 msgstr "keine gemeinsamen Commits"
 
-#: fetch-pack.c:1071 fetch-pack.c:1563
+#: fetch-pack.c:1083 fetch-pack.c:1639
 msgid "git fetch-pack: fetch failed."
 msgstr "git fetch-pack: Abholen fehlgeschlagen."
 
 #: fetch-pack.c:1211
-msgid "Server does not support shallow requests"
-msgstr "Server unterstützt keine shallow-Anfragen."
+#, c-format
+msgid "mismatched algorithms: client %s; server %s"
+msgstr "Algorithmen stimmen nicht überein: Client %s; Server %s"
 
-#: fetch-pack.c:1218
+#: fetch-pack.c:1215
+#, c-format
+msgid "the server does not support algorithm '%s'"
+msgstr "der Server unterstützt Algorithmus '%s' nicht"
+
+#: fetch-pack.c:1235
+msgid "Server does not support shallow requests"
+msgstr "Server unterstützt keine shallow-Anfragen"
+
+#: fetch-pack.c:1242
 msgid "Server supports filter"
 msgstr "Server unterstützt Filter"
 
-#: fetch-pack.c:1242
+#: fetch-pack.c:1286
 msgid "unable to write request to remote"
 msgstr "konnte Anfrage nicht zum Remote schreiben"
 
-#: fetch-pack.c:1260
+#: fetch-pack.c:1304
 #, c-format
 msgid "error reading section header '%s'"
 msgstr "Fehler beim Lesen von Sektionskopf '%s'."
 
-#: fetch-pack.c:1266
+#: fetch-pack.c:1310
 #, c-format
 msgid "expected '%s', received '%s'"
 msgstr "'%s' erwartet, '%s' empfangen"
 
-#: fetch-pack.c:1327
+#: fetch-pack.c:1371
 #, c-format
 msgid "unexpected acknowledgment line: '%s'"
 msgstr "Unerwartete Acknowledgment-Zeile: '%s'"
 
-#: fetch-pack.c:1332
+#: fetch-pack.c:1376
 #, c-format
 msgid "error processing acks: %d"
 msgstr "Fehler beim Verarbeiten von ACKS: %d"
 
-#: fetch-pack.c:1342
+#: fetch-pack.c:1386
 msgid "expected packfile to be sent after 'ready'"
 msgstr "Erwartete Versand einer Packdatei nach 'ready'."
 
-#: fetch-pack.c:1344
+#: fetch-pack.c:1388
 msgid "expected no other sections to be sent after no 'ready'"
 msgstr "Erwartete keinen Versand einer anderen Sektion ohne 'ready'."
 
-#: fetch-pack.c:1386
+#: fetch-pack.c:1430
 #, c-format
 msgid "error processing shallow info: %d"
 msgstr "Fehler beim Verarbeiten von Shallow-Informationen: %d"
 
-#: fetch-pack.c:1433
+#: fetch-pack.c:1477
 #, c-format
 msgid "expected wanted-ref, got '%s'"
 msgstr "wanted-ref erwartet, '%s' bekommen"
 
-#: fetch-pack.c:1438
+#: fetch-pack.c:1482
 #, c-format
 msgid "unexpected wanted-ref: '%s'"
-msgstr "Unerwartetes wanted-ref: '%s'"
+msgstr "unerwartetes wanted-ref: '%s'"
 
-#: fetch-pack.c:1443
+#: fetch-pack.c:1487
 #, c-format
 msgid "error processing wanted refs: %d"
 msgstr "Fehler beim Verarbeiten von wanted-refs: %d"
 
-#: fetch-pack.c:1789
+#: fetch-pack.c:1517
+msgid "git fetch-pack: expected response end packet"
+msgstr "git fetch-pack: Antwort-Endpaket erwartet"
+
+#: fetch-pack.c:1921
 msgid "no matching remote head"
 msgstr "kein übereinstimmender Remote-Branch"
 
-#: fetch-pack.c:1812 builtin/clone.c:692
+#: fetch-pack.c:1944 builtin/clone.c:692
 msgid "remote did not send all necessary objects"
-msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet."
+msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet"
 
-#: fetch-pack.c:1839
+#: fetch-pack.c:1971
 #, c-format
 msgid "no such remote ref %s"
 msgstr "keine solche Remote-Referenz %s"
 
-#: fetch-pack.c:1842
+#: fetch-pack.c:1974
 #, c-format
 msgid "Server does not allow request for unadvertised object %s"
 msgstr "Der Server lehnt Anfrage nach nicht angebotenem Objekt %s ab."
@@ -4159,7 +4218,7 @@
 msgid "'%s': unable to read %s"
 msgstr "'%s': konnte %s nicht lesen"
 
-#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82
+#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89
 #: builtin/rm.c:135
 #, c-format
 msgid "failed to stat '%s'"
@@ -4306,16 +4365,16 @@
 "\n"
 "Die ähnlichsten Befehle sind"
 
-#: help.c:653
+#: help.c:654
 msgid "git version [<options>]"
 msgstr "git version [<Optionen>]"
 
-#: help.c:708
+#: help.c:709
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
 
-#: help.c:712
+#: help.c:713
 msgid ""
 "\n"
 "Did you mean this?"
@@ -4412,7 +4471,13 @@
 
 #: list-objects-filter-options.c:226
 msgid "multiple filter-specs cannot be combined"
-msgstr "Mehrere filter-specs können nicht kombiniert werden."
+msgstr "mehrere filter-specs können nicht kombiniert werden"
+
+#: list-objects-filter-options.c:330
+msgid "unable to upgrade repository format to support partial clone"
+msgstr ""
+"Repository-Format konnte nicht erweitert werden, um partielles Klonen zu "
+"unterstützen"
 
 #: list-objects-filter.c:492
 #, c-format
@@ -4422,7 +4487,7 @@
 #: list-objects-filter.c:495
 #, c-format
 msgid "unable to parse sparse filter data in %s"
-msgstr "Konnte partielle Filter-Daten in %s nicht parsen."
+msgstr "konnte partielle Filter-Daten in %s nicht parsen"
 
 #: list-objects.c:127
 #, c-format
@@ -4792,7 +4857,7 @@
 msgid "Skipped %s (merged same as existing)"
 msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)"
 
-#: merge-recursive.c:3101 git-submodule.sh:985
+#: merge-recursive.c:3101 git-submodule.sh:959
 msgid "submodule"
 msgstr "Submodul"
 
@@ -4921,7 +4986,7 @@
 msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
 
 #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912
-#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816
+#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816
 #: builtin/stash.c:265
 msgid "unable to write new index file"
 msgstr "Konnte neue Index-Datei nicht schreiben."
@@ -5176,21 +5241,21 @@
 msgid "hash mismatch %s"
 msgstr "Hash stimmt nicht mit %s überein."
 
-#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135
+#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184
 #, c-format
 msgid "unable to get size of %s"
 msgstr "Konnte Größe von %s nicht bestimmen."
 
-#: packfile.c:629
+#: packfile.c:630
 msgid "offset before end of packfile (broken .idx?)"
 msgstr "Offset vor Ende der Packdatei (fehlerhafte Indexdatei?)"
 
-#: packfile.c:1899
+#: packfile.c:1900
 #, 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?)"
 
-#: packfile.c:1903
+#: packfile.c:1904
 #, 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?)"
@@ -5391,52 +5456,56 @@
 
 #: pkt-line.c:92
 msgid "unable to write flush packet"
-msgstr "Konnte Flush-Paket nicht schreiben."
+msgstr "konnte Flush-Paket nicht schreiben"
 
 #: pkt-line.c:99
 msgid "unable to write delim packet"
-msgstr "Konnte Delim-Paket nicht schreiben."
+msgstr "konnte Delim-Paket nicht schreiben"
 
 #: pkt-line.c:106
+msgid "unable to write stateless separator packet"
+msgstr "konnte zustandsloses Separator-Paket nicht schreiben"
+
+#: pkt-line.c:113
 msgid "flush packet write failed"
 msgstr "Flush beim Schreiben des Pakets fehlgeschlagen."
 
-#: pkt-line.c:146 pkt-line.c:232
+#: pkt-line.c:153 pkt-line.c:239
 msgid "protocol error: impossibly long line"
 msgstr "Protokollfehler: unmöglich lange Zeile"
 
-#: pkt-line.c:162 pkt-line.c:164
+#: pkt-line.c:169 pkt-line.c:171
 msgid "packet write with format failed"
 msgstr "Schreiben des Pakets mit Format fehlgeschlagen."
 
-#: pkt-line.c:196
+#: pkt-line.c:203
 msgid "packet write failed - data exceeds max packet size"
 msgstr ""
 "Schreiben des Pakets fehlgeschlagen - Daten überschreiten maximale Paketgröße"
 
-#: pkt-line.c:203 pkt-line.c:210
+#: pkt-line.c:210 pkt-line.c:217
 msgid "packet write failed"
 msgstr "Schreiben des Pakets fehlgeschlagen."
 
-#: pkt-line.c:295
+#: pkt-line.c:302
 msgid "read error"
 msgstr "Lesefehler"
 
-#: pkt-line.c:303
+#: pkt-line.c:310
 msgid "the remote end hung up unexpectedly"
 msgstr "Die Gegenseite hat unerwartet abgebrochen."
 
-#: pkt-line.c:331
+#: pkt-line.c:338
 #, c-format
 msgid "protocol error: bad line length character: %.4s"
 msgstr "Protokollfehler: ungültiges Zeichen für Zeilenlänge: %.4s"
 
-#: pkt-line.c:341 pkt-line.c:346
+#: pkt-line.c:352 pkt-line.c:357
 #, c-format
 msgid "protocol error: bad line length %d"
 msgstr "Protokollfehler: ungültige Zeilenlänge %d"
 
-#: pkt-line.c:362
+#: pkt-line.c:373
 #, c-format
 msgid "remote error: %s"
 msgstr "Fehler am anderen Ende: %s"
@@ -5617,7 +5686,7 @@
 
 #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111
 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181
-#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961
+#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991
 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507
 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290
 #: builtin/submodule--helper.c:332
@@ -5674,7 +5743,7 @@
 msgid "broken index, expect %s in %s, got %s"
 msgstr "Fehlerhafter Index. Erwartete %s in %s, erhielt %s."
 
-#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130
+#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130
 #, c-format
 msgid "could not close '%s'"
 msgstr "Konnte '%s' nicht schließen."
@@ -5860,7 +5929,7 @@
 msgid "could not read '%s'."
 msgstr "Konnte '%s' nicht lesen."
 
-#: ref-filter.c:42 wt-status.c:1936
+#: ref-filter.c:42 wt-status.c:1977
 msgid "gone"
 msgstr "entfernt"
 
@@ -6085,7 +6154,7 @@
 msgid "ignoring ref with broken name %s"
 msgstr "Ignoriere Referenz mit fehlerhaftem Namen %s"
 
-#: ref-filter.c:2095 refs.c:625
+#: ref-filter.c:2095 refs.c:657
 #, c-format
 msgid "ignoring broken ref %s"
 msgstr "Ignoriere fehlerhafte Referenz %s"
@@ -6098,137 +6167,151 @@
 #: ref-filter.c:2495
 #, c-format
 msgid "option `%s' is incompatible with --merged"
-msgstr "Die Option `%s' ist inkompatibel mit --merged."
+msgstr "die Option `%s' ist inkompatibel mit --merged"
 
 #: ref-filter.c:2498
 #, c-format
 msgid "option `%s' is incompatible with --no-merged"
-msgstr "Die Option `%s' ist inkompatibel mit --no-merged."
+msgstr "die Option `%s' ist inkompatibel mit --no-merged"
 
 #: ref-filter.c:2508
 #, c-format
 msgid "malformed object name %s"
-msgstr "Missgebildeter Objektname %s"
+msgstr "missgebildeter Objektname %s"
 
 #: ref-filter.c:2513
 #, c-format
 msgid "option `%s' must point to a commit"
-msgstr "Die Option `%s' muss auf einen Commit zeigen."
+msgstr "die Option `%s' muss auf einen Commit zeigen"
 
-#: refs.c:262
+#: refs.c:264
 #, c-format
 msgid "%s does not point to a valid object!"
 msgstr "%s zeigt auf kein gültiges Objekt!"
 
-#: refs.c:623
+#: refs.c:572
+#, c-format
+msgid "could not retrieve `%s`"
+msgstr "konnte `%s` nicht abrufen"
+
+#: refs.c:579
+#, c-format
+msgid "invalid branch name: %s = %s"
+msgstr "ungültiger Branchname: %s = %s"
+
+#: refs.c:655
 #, c-format
 msgid "ignoring dangling symref %s"
 msgstr "Ignoriere unreferenzierte symbolische Referenz %s"
 
-#: refs.c:760
+#: refs.c:792
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen: %s"
 
-#: refs.c:770 refs.c:821
+#: refs.c:802 refs.c:853
 #, c-format
 msgid "could not read ref '%s'"
 msgstr "Konnte Referenz '%s' nicht lesen."
 
-#: refs.c:776
+#: refs.c:808
 #, c-format
 msgid "ref '%s' already exists"
 msgstr "Referenz '%s' existiert bereits."
 
-#: refs.c:781
+#: refs.c:813
 #, c-format
 msgid "unexpected object ID when writing '%s'"
 msgstr "Unerwartete Objekt-ID beim Schreiben von '%s'."
 
-#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925
-#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173
-#: wrapper.c:620
+#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925
+#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168
+#: wrapper.c:628
 #, c-format
 msgid "could not write to '%s'"
 msgstr "Konnte nicht nach '%s' schreiben."
 
-#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719
+#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719
 #: builtin/rebase.c:852
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen."
 
-#: refs.c:823
+#: refs.c:855
 #, c-format
 msgid "unexpected object ID when deleting '%s'"
 msgstr "Unerwartete Objekt-ID beim Löschen von '%s'."
 
-#: refs.c:954
+#: refs.c:986
 #, c-format
 msgid "log for ref %s has gap after %s"
 msgstr "Log für Referenz %s hat eine Lücke nach %s."
 
-#: refs.c:960
+#: refs.c:992
 #, c-format
 msgid "log for ref %s unexpectedly ended on %s"
 msgstr "Log für Referenz %s unerwartet bei %s beendet."
 
-#: refs.c:1019
+#: refs.c:1051
 #, c-format
 msgid "log for %s is empty"
 msgstr "Log für %s ist leer."
 
-#: refs.c:1111
+#: refs.c:1143
 #, c-format
 msgid "refusing to update ref with bad name '%s'"
-msgstr "Verweigere Aktualisierung einer Referenz mit fehlerhaftem Namen '%s'."
+msgstr "verweigere Aktualisierung einer Referenz mit fehlerhaftem Namen '%s'"
 
-#: refs.c:1187
+#: refs.c:1219
 #, c-format
 msgid "update_ref failed for ref '%s': %s"
 msgstr "update_ref für Referenz '%s' fehlgeschlagen: %s"
 
-#: refs.c:1979
+#: refs.c:2011
 #, c-format
 msgid "multiple updates for ref '%s' not allowed"
-msgstr "Mehrere Aktualisierungen für Referenz '%s' nicht erlaubt."
+msgstr "mehrere Aktualisierungen für Referenz '%s' nicht erlaubt"
 
-#: refs.c:2011
+#: refs.c:2098
 msgid "ref updates forbidden inside quarantine environment"
 msgstr ""
 "Aktualisierungen von Referenzen ist innerhalb der Quarantäne-Umgebung "
-"verboten."
+"verboten"
 
-#: refs.c:2107 refs.c:2137
+#: refs.c:2109
+msgid "ref updates aborted by hook"
+msgstr "Aktualisierungen von Referenzen durch Hook abgebrochen"
+
+#: refs.c:2209 refs.c:2239
 #, c-format
 msgid "'%s' exists; cannot create '%s'"
 msgstr "'%s' existiert; kann '%s' nicht erstellen"
 
-#: refs.c:2113 refs.c:2148
+#: refs.c:2215 refs.c:2250
 #, c-format
 msgid "cannot process '%s' and '%s' at the same time"
-msgstr "Kann '%s' und '%s' nicht zur selben Zeit verarbeiten."
+msgstr "kann '%s' und '%s' nicht zur selben Zeit verarbeiten"
 
 #: refs/files-backend.c:1233
 #, c-format
 msgid "could not remove reference %s"
-msgstr "Konnte Referenz %s nicht löschen"
+msgstr "konnte Referenz %s nicht löschen"
 
 #: refs/files-backend.c:1247 refs/packed-backend.c:1541
 #: refs/packed-backend.c:1551
 #, c-format
 msgid "could not delete reference %s: %s"
-msgstr "Konnte Referenz %s nicht entfernen: %s"
+msgstr "konnte Referenz %s nicht entfernen: %s"
 
 #: refs/files-backend.c:1250 refs/packed-backend.c:1554
 #, c-format
 msgid "could not delete references: %s"
-msgstr "Konnte Referenzen nicht entfernen: %s"
+msgstr "konnte Referenzen nicht entfernen: %s"
 
 #: refspec.c:137
 #, c-format
 msgid "invalid refspec '%s'"
-msgstr "Ungültige Refspec '%s'"
+msgstr "ungültige Refspec '%s'"
 
 #: remote.c:355
 #, c-format
@@ -6501,7 +6584,7 @@
 "  (benutzen Sie \"git pull\", um Ihren Branch mit dem Remote-Branch "
 "zusammenzuführen)\n"
 
-#: remote.c:2233
+#: remote.c:2241
 #, c-format
 msgid "cannot parse expected object name '%s'"
 msgstr "Kann erwarteten Objektnamen '%s' nicht parsen."
@@ -6628,20 +6711,20 @@
 msgid "failed to find tree of %s"
 msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s."
 
-#: revision.c:2655
+#: revision.c:2661
 msgid "your current branch appears to be broken"
 msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein."
 
-#: revision.c:2658
+#: revision.c:2664
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "Ihr aktueller Branch '%s' hat noch keine Commits."
 
-#: revision.c:2866
+#: revision.c:2873
 msgid "--first-parent is incompatible with --bisect"
 msgstr "Die Optionen --first-parent und --bisect sind inkompatibel."
 
-#: revision.c:2870
+#: revision.c:2877
 msgid "-L does not yet support diff formats besides -p and -s"
 msgstr "-L unterstützt noch keine anderen Diff-Formate außer -p und -s"
 
@@ -6682,12 +6765,17 @@
 msgid "failed to sign the push certificate"
 msgstr "Fehler beim Signieren des \"push\"-Zertifikates"
 
-#: send-pack.c:399
+#: send-pack.c:394
+msgid "the receiving end does not support this repository's hash algorithm"
+msgstr ""
+"die Gegenseite unterstützt nicht den Hash-Algorithmus dieses Repositories"
+
+#: send-pack.c:403
 msgid "the receiving end does not support --signed push"
 msgstr ""
 "die Gegenseite unterstützt keinen signierten Versand (\"--signed push\")"
 
-#: send-pack.c:401
+#: send-pack.c:405
 msgid ""
 "not sending a push certificate since the receiving end does not support --"
 "signed push"
@@ -6695,11 +6783,11 @@
 "kein Versand des \"push\"-Zertifikates, da die Gegenseite keinen signierten\n"
 "Versand (\"--signed push\") unterstützt"
 
-#: send-pack.c:413
+#: send-pack.c:417
 msgid "the receiving end does not support --atomic push"
 msgstr "die Gegenseite unterstützt keinen atomaren Versand (\"--atomic push\")"
 
-#: send-pack.c:418
+#: send-pack.c:422
 msgid "the receiving end does not support push options"
 msgstr "die Gegenseite unterstützt keine Push-Optionen"
 
@@ -6821,7 +6909,7 @@
 msgid "unable to dequote value of '%s'"
 msgstr "Konnte Anführungszeichen von '%s' nicht entfernen."
 
-#: sequencer.c:785 wrapper.c:190 wrapper.c:360 builtin/am.c:710
+#: sequencer.c:785 wrapper.c:198 wrapper.c:368 builtin/am.c:710
 #: builtin/am.c:802 builtin/merge.c:1125 builtin/rebase.c:896
 #, c-format
 msgid "could not open '%s' for reading"
@@ -7672,84 +7760,84 @@
 msgid "this operation must be run in a work tree"
 msgstr "Diese Operation muss in einem Arbeitsverzeichnis ausgeführt werden."
 
-#: setup.c:569
+#: setup.c:604
 #, c-format
 msgid "Expected git repo version <= %d, found %d"
 msgstr "Erwartete Git-Repository-Version <= %d, %d gefunden"
 
-#: setup.c:577
+#: setup.c:612
 msgid "unknown repository extensions found:"
 msgstr "Unbekannte Repository-Erweiterungen gefunden:"
 
-#: setup.c:596
+#: setup.c:631
 #, c-format
 msgid "error opening '%s'"
 msgstr "Fehler beim Öffnen von '%s'."
 
-#: setup.c:598
+#: setup.c:633
 #, c-format
 msgid "too large to be a .git file: '%s'"
 msgstr "Zu groß, um eine .git-Datei zu sein: '%s'"
 
-#: setup.c:600
+#: setup.c:635
 #, c-format
 msgid "error reading %s"
 msgstr "Fehler beim Lesen von '%s'."
 
-#: setup.c:602
+#: setup.c:637
 #, c-format
 msgid "invalid gitfile format: %s"
 msgstr "Ungültiges gitfile-Format: %s"
 
-#: setup.c:604
+#: setup.c:639
 #, c-format
 msgid "no path in gitfile: %s"
 msgstr "Kein Pfad in gitfile: %s"
 
-#: setup.c:606
+#: setup.c:641
 #, c-format
 msgid "not a git repository: %s"
 msgstr "Kein Git-Repository: %s"
 
-#: setup.c:708
+#: setup.c:743
 #, c-format
 msgid "'$%s' too big"
 msgstr "'$%s' zu groß"
 
-#: setup.c:722
+#: setup.c:757
 #, c-format
 msgid "not a git repository: '%s'"
 msgstr "Kein Git-Repository: '%s'"
 
-#: setup.c:751 setup.c:753 setup.c:784
+#: setup.c:786 setup.c:788 setup.c:819
 #, c-format
 msgid "cannot chdir to '%s'"
 msgstr "Kann nicht in Verzeichnis '%s' wechseln."
 
-#: setup.c:756 setup.c:812 setup.c:822 setup.c:861 setup.c:869
+#: setup.c:791 setup.c:847 setup.c:857 setup.c:896 setup.c:904
 msgid "cannot come back to cwd"
 msgstr "Kann nicht zum aktuellen Arbeitsverzeichnis zurückwechseln."
 
-#: setup.c:883
+#: setup.c:918
 #, c-format
 msgid "failed to stat '%*s%s%s'"
 msgstr "Konnte '%*s%s%s' nicht lesen."
 
-#: setup.c:1121
+#: setup.c:1156
 msgid "Unable to read current working directory"
 msgstr "Konnte aktuelles Arbeitsverzeichnis nicht lesen."
 
-#: setup.c:1130 setup.c:1136
+#: setup.c:1165 setup.c:1171
 #, c-format
 msgid "cannot change to '%s'"
 msgstr "Kann nicht nach '%s' wechseln."
 
-#: setup.c:1141
+#: setup.c:1176
 #, c-format
 msgid "not a git repository (or any of the parent directories): %s"
 msgstr "Kein Git-Repository (oder irgendeines der Elternverzeichnisse): %s"
 
-#: setup.c:1147
+#: setup.c:1182
 #, c-format
 msgid ""
 "not a git repository (or any parent up to mount point %s)\n"
@@ -7759,7 +7847,7 @@
 "%s)\n"
 "Stoppe bei Dateisystemgrenze (GIT_DISCOVERY_ACROSS_FILESYSTEM nicht gesetzt)."
 
-#: setup.c:1258
+#: setup.c:1293
 #, c-format
 msgid ""
 "problem with core.sharedRepository filemode value (0%.3o).\n"
@@ -7768,15 +7856,15 @@
 "Problem mit Wert für Dateimodus (0%.3o) von core.sharedRepository.\n"
 "Der Besitzer der Dateien muss immer Lese- und Schreibrechte haben."
 
-#: setup.c:1304
+#: setup.c:1340
 msgid "open /dev/null or dup failed"
 msgstr "Öffnen von /dev/null oder dup fehlgeschlagen."
 
-#: setup.c:1319
+#: setup.c:1355
 msgid "fork failed"
 msgstr "fork fehlgeschlagen"
 
-#: setup.c:1324
+#: setup.c:1360
 msgid "setsid failed"
 msgstr "setsid fehlgeschlagen"
 
@@ -7964,7 +8052,7 @@
 msgid "confused by unstable object source data for %s"
 msgstr "Fehler wegen instabilen Objektquelldaten für %s"
 
-#: sha1-file.c:1906 builtin/pack-objects.c:1055
+#: sha1-file.c:1906 builtin/pack-objects.c:1085
 #, c-format
 msgid "failed utime() on %s"
 msgstr "Fehler beim Aufruf von utime() auf '%s'."
@@ -8145,43 +8233,43 @@
 msgstr "ungültiger Objektname '%.*s'."
 
 #. TRANSLATORS: IEC 80000-13:2008 gibibyte
-#: strbuf.c:853
+#: strbuf.c:848
 #, c-format
 msgid "%u.%2.2u GiB"
 msgstr "%u.%2.2u GiB"
 
 #. TRANSLATORS: IEC 80000-13:2008 gibibyte/second
-#: strbuf.c:855
+#: strbuf.c:850
 #, c-format
 msgid "%u.%2.2u GiB/s"
 msgstr "%u.%2.2u GiB/s"
 
 #. TRANSLATORS: IEC 80000-13:2008 mebibyte
-#: strbuf.c:863
+#: strbuf.c:858
 #, c-format
 msgid "%u.%2.2u MiB"
 msgstr "%u.%2.2u MiB"
 
 #. TRANSLATORS: IEC 80000-13:2008 mebibyte/second
-#: strbuf.c:865
+#: strbuf.c:860
 #, c-format
 msgid "%u.%2.2u MiB/s"
 msgstr "%u.%2.2u MiB/s"
 
 #. TRANSLATORS: IEC 80000-13:2008 kibibyte
-#: strbuf.c:872
+#: strbuf.c:867
 #, c-format
 msgid "%u.%2.2u KiB"
 msgstr "%u.%2.2u KiB"
 
 #. TRANSLATORS: IEC 80000-13:2008 kibibyte/second
-#: strbuf.c:874
+#: strbuf.c:869
 #, c-format
 msgid "%u.%2.2u KiB/s"
 msgstr "%u.%2.2u KiB/s"
 
 #. TRANSLATORS: IEC 80000-13:2008 byte
-#: strbuf.c:880
+#: strbuf.c:875
 #, c-format
 msgid "%u byte"
 msgid_plural "%u bytes"
@@ -8189,14 +8277,14 @@
 msgstr[1] "%u Bytes"
 
 #. TRANSLATORS: IEC 80000-13:2008 byte/second
-#: strbuf.c:882
+#: strbuf.c:877
 #, c-format
 msgid "%u byte/s"
 msgid_plural "%u bytes/s"
 msgstr[0] "%u Byte/s"
 msgstr[1] "%u Bytes/s"
 
-#: strbuf.c:1180
+#: strbuf.c:1175
 #, c-format
 msgid "could not edit '%s'"
 msgstr "Konnte '%s' nicht editieren."
@@ -8446,7 +8534,7 @@
 msgid "could not read from stdin"
 msgstr "konnte nicht von der Standard-Eingabe lesen"
 
-#: trailer.c:1011 wrapper.c:665
+#: trailer.c:1011 wrapper.c:673
 #, c-format
 msgid "could not stat %s"
 msgstr "Konnte '%s' nicht lesen"
@@ -8470,22 +8558,22 @@
 msgid "could not rename temporary file to %s"
 msgstr "konnte temporäre Datei nicht zu %s umbenennen"
 
-#: transport-helper.c:61 transport-helper.c:90
+#: transport-helper.c:62 transport-helper.c:91
 msgid "full write to remote helper failed"
 msgstr "Vollständiges Schreiben zu Remote-Helper fehlgeschlagen."
 
-#: transport-helper.c:144
+#: transport-helper.c:145
 #, c-format
 msgid "unable to find remote helper for '%s'"
 msgstr "Konnte Remote-Helper für '%s' nicht finden."
 
-#: transport-helper.c:160 transport-helper.c:571
+#: transport-helper.c:161 transport-helper.c:575
 msgid "can't dup helper output fd"
 msgstr ""
 "Konnte dup() auf Dateideskriptor für Ausgaben des Remote-Helpers nicht "
 "ausführen."
 
-#: transport-helper.c:211
+#: transport-helper.c:214
 #, c-format
 msgid ""
 "unknown mandatory capability %s; this remote helper probably needs newer "
@@ -8494,158 +8582,163 @@
 "Unbekannte erforderliche Fähigkeit %s; dieser Remote-Helper benötigt\n"
 "wahrscheinlich eine neuere Version von Git."
 
-#: transport-helper.c:217
+#: transport-helper.c:220
 msgid "this remote helper should implement refspec capability"
 msgstr "Dieser Remote-Helper sollte die \"refspec\"-Fähigkeit implementieren."
 
-#: transport-helper.c:284 transport-helper.c:425
+#: transport-helper.c:287 transport-helper.c:429
 #, c-format
 msgid "%s unexpectedly said: '%s'"
 msgstr "unerwartete Ausgabe von %s: '%s'"
 
-#: transport-helper.c:414
+#: transport-helper.c:417
 #, c-format
 msgid "%s also locked %s"
 msgstr "%s sperrte auch %s"
 
-#: transport-helper.c:493
+#: transport-helper.c:497
 msgid "couldn't run fast-import"
 msgstr "Konnte \"fast-import\" nicht ausführen."
 
-#: transport-helper.c:516
+#: transport-helper.c:520
 msgid "error while running fast-import"
 msgstr "Fehler beim Ausführen von 'fast-import'."
 
-#: transport-helper.c:545 transport-helper.c:1135
+#: transport-helper.c:549 transport-helper.c:1156
 #, c-format
 msgid "could not read ref %s"
 msgstr "Konnte Referenz %s nicht lesen."
 
-#: transport-helper.c:590
+#: transport-helper.c:594
 #, c-format
 msgid "unknown response to connect: %s"
 msgstr "Unbekannte Antwort auf 'connect': %s"
 
-#: transport-helper.c:612
+#: transport-helper.c:616
 msgid "setting remote service path not supported by protocol"
 msgstr ""
 "Setzen des Remote-Service Pfads wird von dem Protokoll nicht unterstützt."
 
-#: transport-helper.c:614
+#: transport-helper.c:618
 msgid "invalid remote service path"
 msgstr "Ungültiger Remote-Service Pfad."
 
-#: transport-helper.c:657 transport.c:1339
+#: transport-helper.c:661 transport.c:1347
 msgid "operation not supported by protocol"
 msgstr "Die Operation wird von dem Protokoll nicht unterstützt."
 
-#: transport-helper.c:660
+#: transport-helper.c:664
 #, c-format
 msgid "can't connect to subservice %s"
 msgstr "Kann keine Verbindung zu Subservice %s herstellen."
 
-#: transport-helper.c:736
+#: transport-helper.c:740
 #, c-format
 msgid "expected ok/error, helper said '%s'"
 msgstr "Erwartete ok/error, Remote-Helper gab '%s' aus."
 
-#: transport-helper.c:789
+#: transport-helper.c:793
 #, c-format
 msgid "helper reported unexpected status of %s"
 msgstr "Remote-Helper meldete unerwarteten Status von %s."
 
-#: transport-helper.c:850
+#: transport-helper.c:854
 #, c-format
 msgid "helper %s does not support dry-run"
 msgstr "Remote-Helper %s unterstützt kein Trockenlauf."
 
-#: transport-helper.c:853
+#: transport-helper.c:857
 #, c-format
 msgid "helper %s does not support --signed"
 msgstr "Remote-Helper %s unterstützt kein --signed."
 
-#: transport-helper.c:856
+#: transport-helper.c:860
 #, c-format
 msgid "helper %s does not support --signed=if-asked"
 msgstr "Remote-Helper %s unterstützt kein --signed=if-asked."
 
-#: transport-helper.c:861
+#: transport-helper.c:865
 #, c-format
 msgid "helper %s does not support --atomic"
 msgstr "Remote-Helper %s unterstützt kein --atomic."
 
-#: transport-helper.c:867
+#: transport-helper.c:871
 #, c-format
 msgid "helper %s does not support 'push-option'"
 msgstr "Remote-Helper %s unterstützt nicht 'push-option'."
 
-#: transport-helper.c:966
+#: transport-helper.c:970
 msgid "remote-helper doesn't support push; refspec needed"
 msgstr "Remote-Helper unterstützt kein Push; Refspec benötigt"
 
-#: transport-helper.c:971
+#: transport-helper.c:975
 #, c-format
 msgid "helper %s does not support 'force'"
 msgstr "Remote-Helper %s unterstützt kein 'force'."
 
-#: transport-helper.c:1018
+#: transport-helper.c:1022
 msgid "couldn't run fast-export"
 msgstr "Konnte \"fast-export\" nicht ausführen."
 
-#: transport-helper.c:1023
+#: transport-helper.c:1027
 msgid "error while running fast-export"
 msgstr "Fehler beim Ausführen von \"fast-export\"."
 
-#: transport-helper.c:1048
+#: transport-helper.c:1052
 #, c-format
 msgid ""
 "No refs in common and none specified; doing nothing.\n"
-"Perhaps you should specify a branch such as 'master'.\n"
+"Perhaps you should specify a branch.\n"
 msgstr ""
 "Keine gemeinsamen Referenzen und nichts spezifiziert; keine Ausführung.\n"
-"Vielleicht sollten Sie einen Branch wie 'master' angeben.\n"
+"Vielleicht sollten Sie einen Branch angeben.\n"
 
-#: transport-helper.c:1121
+#: transport-helper.c:1133
+#, c-format
+msgid "unsupported object format '%s'"
+msgstr "nicht unterstütztes Objekt-Format '%s'"
+
+#: transport-helper.c:1142
 #, c-format
 msgid "malformed response in ref list: %s"
 msgstr "Ungültige Antwort in Referenzliste: %s"
 
-#: transport-helper.c:1273
+#: transport-helper.c:1294
 #, c-format
 msgid "read(%s) failed"
 msgstr "Lesen von %s fehlgeschlagen."
 
-#: transport-helper.c:1300
+#: transport-helper.c:1321
 #, c-format
 msgid "write(%s) failed"
 msgstr "Schreiben von %s fehlgeschlagen."
 
-#: transport-helper.c:1349
+#: transport-helper.c:1370
 #, c-format
 msgid "%s thread failed"
 msgstr "Thread %s fehlgeschlagen."
 
-#: transport-helper.c:1353
+#: transport-helper.c:1374
 #, c-format
 msgid "%s thread failed to join: %s"
 msgstr "Fehler beim Beitreten zu Thread %s: %s"
 
-#: transport-helper.c:1372 transport-helper.c:1376
+#: transport-helper.c:1393 transport-helper.c:1397
 #, c-format
 msgid "can't start thread for copying data: %s"
 msgstr "Kann Thread zum Kopieren von Daten nicht starten: %s"
 
-#: transport-helper.c:1413
+#: transport-helper.c:1434
 #, c-format
 msgid "%s process failed to wait"
 msgstr "Fehler beim Warten von Prozess %s."
 
-#: transport-helper.c:1417
+#: transport-helper.c:1438
 #, c-format
 msgid "%s process failed"
 msgstr "Prozess %s fehlgeschlagen"
 
-#: transport-helper.c:1435 transport-helper.c:1444
+#: transport-helper.c:1456 transport-helper.c:1465
 msgid "can't start thread for copying data"
 msgstr "Kann Thread zum Kopieren von Daten nicht starten."
 
@@ -8659,33 +8752,33 @@
 msgid "could not read bundle '%s'"
 msgstr "Konnte Paket '%s' nicht lesen."
 
-#: transport.c:214
+#: transport.c:220
 #, c-format
 msgid "transport: invalid depth option '%s'"
 msgstr "transport: ungültige --depth Option '%s'"
 
-#: transport.c:266
+#: transport.c:272
 msgid "see protocol.version in 'git help config' for more details"
 msgstr "Siehe protocol.version in 'git help config' für weitere Informationen"
 
-#: transport.c:267
+#: transport.c:273
 msgid "server options require protocol version 2 or later"
 msgstr "Server-Optionen benötigen Protokoll-Version 2 oder höher"
 
-#: transport.c:632
+#: transport.c:631
 msgid "could not parse transport.color.* config"
 msgstr "Konnte transport.color.* Konfiguration nicht parsen."
 
-#: transport.c:705
+#: transport.c:704
 msgid "support for protocol v2 not implemented yet"
 msgstr "Unterstützung für Protokoll v2 noch nicht implementiert."
 
-#: transport.c:839
+#: transport.c:838
 #, c-format
 msgid "unknown value for config '%s': %s"
 msgstr "Unbekannter Wert für Konfiguration '%s': %s"
 
-#: transport.c:905
+#: transport.c:904
 #, c-format
 msgid "transport '%s' not allowed"
 msgstr "Übertragungsart '%s' nicht erlaubt."
@@ -8694,7 +8787,7 @@
 msgid "git-over-rsync is no longer supported"
 msgstr "git-over-rsync wird nicht länger unterstützt."
 
-#: transport.c:1052
+#: transport.c:1059
 #, c-format
 msgid ""
 "The following submodule paths contain changes that can\n"
@@ -8703,7 +8796,7 @@
 "Die folgenden Submodul-Pfade enthalten Änderungen, die in keinem\n"
 "Remote-Repository gefunden wurden:\n"
 
-#: transport.c:1056
+#: transport.c:1063
 #, c-format
 msgid ""
 "\n"
@@ -8730,11 +8823,11 @@
 "zum Versenden zu einem Remote-Repository.\n"
 "\n"
 
-#: transport.c:1064
+#: transport.c:1071
 msgid "Aborting."
 msgstr "Abbruch."
 
-#: transport.c:1209
+#: transport.c:1216
 msgid "failed to push all needed submodules"
 msgstr "Fehler beim Versand aller erforderlichen Submodule."
 
@@ -9028,7 +9121,7 @@
 msgid "Updating index flags"
 msgstr "Aktualisiere Index-Markierungen"
 
-#: upload-pack.c:1337
+#: upload-pack.c:1415
 msgid "expected flush after fetch arguments"
 msgstr "erwartete Flush nach Abrufen der Argumente"
 
@@ -9065,47 +9158,47 @@
 msgid "Fetching objects"
 msgstr "Anfordern der Objekte"
 
-#: worktree.c:262 builtin/am.c:2098
+#: worktree.c:248 builtin/am.c:2098
 #, c-format
 msgid "failed to read '%s'"
 msgstr "Fehler beim Lesen von '%s'"
 
-#: worktree.c:309
+#: worktree.c:295
 #, c-format
 msgid "'%s' at main working tree is not the repository directory"
 msgstr "'%s' im Hauptarbeitsverzeichnis ist nicht das Repository-Verzeichnis."
 
-#: worktree.c:320
+#: worktree.c:306
 #, c-format
 msgid "'%s' file does not contain absolute path to the working tree location"
 msgstr "'%s' Datei enthält nicht den absoluten Pfad zum Arbeitsverzeichnis."
 
-#: worktree.c:332
+#: worktree.c:318
 #, c-format
 msgid "'%s' does not exist"
 msgstr "'%s' existiert nicht."
 
-#: worktree.c:338
+#: worktree.c:324
 #, c-format
 msgid "'%s' is not a .git file, error code %d"
 msgstr "'%s' ist keine .git-Datei, Fehlercode %d"
 
-#: worktree.c:347
+#: worktree.c:333
 #, c-format
 msgid "'%s' does not point back to '%s'"
 msgstr "'%s' zeigt nicht zurück auf '%s'"
 
-#: wrapper.c:186 wrapper.c:356
+#: wrapper.c:194 wrapper.c:364
 #, c-format
 msgid "could not open '%s' for reading and writing"
 msgstr "Konnte '%s' nicht zum Lesen und Schreiben öffnen."
 
-#: wrapper.c:387 wrapper.c:588
+#: wrapper.c:395 wrapper.c:596
 #, c-format
 msgid "unable to access '%s'"
 msgstr "konnte nicht auf '%s' zugreifen"
 
-#: wrapper.c:596
+#: wrapper.c:604
 msgid "unable to get current working directory"
 msgstr "Konnte aktuelles Arbeitsverzeichnis nicht bekommen."
 
@@ -9526,39 +9619,46 @@
 "  (benutzen Sie \"git bisect reset\", um zum ursprünglichen Branch "
 "zurückzukehren)"
 
-#: wt-status.c:1692
+#: wt-status.c:1494
+#, c-format
+msgid "You are in a sparse checkout with %d%% of tracked files present."
+msgstr ""
+"Sie sind in einem partiellen Checkout mit %d%% vorhandenen versionierten "
+"Dateien."
+
+#: wt-status.c:1733
 msgid "On branch "
 msgstr "Auf Branch "
 
-#: wt-status.c:1699
+#: wt-status.c:1740
 msgid "interactive rebase in progress; onto "
 msgstr "interaktives Rebase im Gange; auf "
 
-#: wt-status.c:1701
+#: wt-status.c:1742
 msgid "rebase in progress; onto "
 msgstr "Rebase im Gange; auf "
 
-#: wt-status.c:1711
+#: wt-status.c:1752
 msgid "Not currently on any branch."
 msgstr "Im Moment auf keinem Branch."
 
-#: wt-status.c:1728
+#: wt-status.c:1769
 msgid "Initial commit"
 msgstr "Initialer Commit"
 
-#: wt-status.c:1729
+#: wt-status.c:1770
 msgid "No commits yet"
 msgstr "Noch keine Commits"
 
-#: wt-status.c:1743
+#: wt-status.c:1784
 msgid "Untracked files"
 msgstr "Unversionierte Dateien"
 
-#: wt-status.c:1745
+#: wt-status.c:1786
 msgid "Ignored files"
 msgstr "Ignorierte Dateien"
 
-#: wt-status.c:1749
+#: wt-status.c:1790
 #, c-format
 msgid ""
 "It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -9569,32 +9669,32 @@
 "'status -uno' könnte das beschleunigen, aber Sie müssen darauf achten,\n"
 "neue Dateien selbstständig hinzuzufügen (siehe 'git help status')."
 
-#: wt-status.c:1755
+#: wt-status.c:1796
 #, c-format
 msgid "Untracked files not listed%s"
 msgstr "Unversionierte Dateien nicht aufgelistet%s"
 
-#: wt-status.c:1757
+#: wt-status.c:1798
 msgid " (use -u option to show untracked files)"
 msgstr " (benutzen Sie die Option -u, um unversionierte Dateien anzuzeigen)"
 
-#: wt-status.c:1763
+#: wt-status.c:1804
 msgid "No changes"
 msgstr "Keine Änderungen"
 
-#: wt-status.c:1768
+#: wt-status.c:1809
 #, c-format
 msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
 msgstr ""
 "keine Änderungen zum Commit vorgemerkt (benutzen Sie \"git add\" und/oder "
 "\"git commit -a\")\n"
 
-#: wt-status.c:1771
+#: wt-status.c:1812
 #, c-format
 msgid "no changes added to commit\n"
 msgstr "keine Änderungen zum Commit vorgemerkt\n"
 
-#: wt-status.c:1774
+#: wt-status.c:1815
 #, c-format
 msgid ""
 "nothing added to commit but untracked files present (use \"git add\" to "
@@ -9603,67 +9703,67 @@
 "nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien\n"
 "(benutzen Sie \"git add\" zum Versionieren)\n"
 
-#: wt-status.c:1777
+#: wt-status.c:1818
 #, c-format
 msgid "nothing added to commit but untracked files present\n"
 msgstr "nichts zum Commit vorgemerkt, aber es gibt unversionierte Dateien\n"
 
-#: wt-status.c:1780
+#: wt-status.c:1821
 #, c-format
 msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
 msgstr ""
 "nichts zu committen (erstellen/kopieren Sie Dateien und benutzen\n"
 "Sie \"git add\" zum Versionieren)\n"
 
-#: wt-status.c:1783 wt-status.c:1788
+#: wt-status.c:1824 wt-status.c:1829
 #, c-format
 msgid "nothing to commit\n"
 msgstr "nichts zu committen\n"
 
-#: wt-status.c:1786
+#: wt-status.c:1827
 #, c-format
 msgid "nothing to commit (use -u to show untracked files)\n"
 msgstr ""
 "nichts zu committen (benutzen Sie die Option -u, um unversionierte Dateien "
 "anzuzeigen)\n"
 
-#: wt-status.c:1790
+#: wt-status.c:1831
 #, c-format
 msgid "nothing to commit, working tree clean\n"
 msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n"
 
-#: wt-status.c:1903
+#: wt-status.c:1944
 msgid "No commits yet on "
 msgstr "Noch keine Commits in "
 
-#: wt-status.c:1907
+#: wt-status.c:1948
 msgid "HEAD (no branch)"
 msgstr "HEAD (kein Branch)"
 
-#: wt-status.c:1938
+#: wt-status.c:1979
 msgid "different"
 msgstr "unterschiedlich"
 
-#: wt-status.c:1940 wt-status.c:1948
+#: wt-status.c:1981 wt-status.c:1989
 msgid "behind "
 msgstr "hinterher "
 
-#: wt-status.c:1943 wt-status.c:1946
+#: wt-status.c:1984 wt-status.c:1987
 msgid "ahead "
 msgstr "voraus "
 
 #. TRANSLATORS: the action is e.g. "pull with rebase"
-#: wt-status.c:2468
+#: wt-status.c:2509
 #, c-format
 msgid "cannot %s: You have unstaged changes."
 msgstr ""
 "%s nicht möglich: Sie haben Änderungen, die nicht zum Commit vorgemerkt sind."
 
-#: wt-status.c:2474
+#: wt-status.c:2515
 msgid "additionally, your index contains uncommitted changes."
 msgstr "Zusätzlich enthält die Staging-Area nicht committete Änderungen."
 
-#: wt-status.c:2476
+#: wt-status.c:2517
 #, c-format
 msgid "cannot %s: Your index contains uncommitted changes."
 msgstr ""
@@ -9744,7 +9844,7 @@
 msgid "interactive picking"
 msgstr "interaktives Auswählen"
 
-#: builtin/add.c:326 builtin/checkout.c:1535 builtin/reset.c:308
+#: builtin/add.c:326 builtin/checkout.c:1533 builtin/reset.c:308
 msgid "select hunks interactively"
 msgstr "Blöcke interaktiv auswählen"
 
@@ -9882,14 +9982,14 @@
 msgid "--chmod param '%s' must be either -x or +x"
 msgstr "--chmod Parameter '%s' muss entweder -x oder +x sein"
 
-#: builtin/add.c:501 builtin/checkout.c:1703 builtin/commit.c:351
+#: builtin/add.c:501 builtin/checkout.c:1701 builtin/commit.c:351
 #: builtin/reset.c:328 builtin/rm.c:272 builtin/stash.c:1506
 msgid "--pathspec-from-file is incompatible with pathspec arguments"
 msgstr ""
 "Die Option --pathspec-from-file ist inkompatibel mit\n"
 "Pfadspezifikation-Argumenten."
 
-#: builtin/add.c:508 builtin/checkout.c:1715 builtin/commit.c:357
+#: builtin/add.c:508 builtin/checkout.c:1713 builtin/commit.c:357
 #: builtin/reset.c:334 builtin/rm.c:278 builtin/stash.c:1512
 msgid "--pathspec-file-nul requires --pathspec-from-file"
 msgstr "Die Option --pathspec-file-nul benötigt --pathspec-from-file"
@@ -10162,7 +10262,7 @@
 msgid "allow fall back on 3way merging if needed"
 msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge"
 
-#: builtin/am.c:2218 builtin/init-db.c:541 builtin/prune-packed.c:16
+#: builtin/am.c:2218 builtin/init-db.c:559 builtin/prune-packed.c:16
 #: builtin/repack.c:306 builtin/stash.c:816
 msgid "be quiet"
 msgstr "weniger Ausgaben"
@@ -10217,7 +10317,7 @@
 
 #: builtin/am.c:2262 builtin/branch.c:659 builtin/for-each-ref.c:38
 #: builtin/replace.c:556 builtin/tag.c:438 builtin/verify-tag.c:38
-#: bugreport.c:131
+#: bugreport.c:137
 msgid "format"
 msgstr "Format"
 
@@ -10514,114 +10614,118 @@
 "Ungültiges Argument %s für 'git bisect terms'.\n"
 "Unterstützte Optionen sind: --term-good|--term-old und --term-bad|--term-new."
 
-#: builtin/bisect--helper.c:478
+#: builtin/bisect--helper.c:460 builtin/bisect--helper.c:473
+msgid "'' is not a valid term"
+msgstr "'' ist kein gültiger Begriff"
+
+#: builtin/bisect--helper.c:483
 #, c-format
 msgid "unrecognized option: '%s'"
 msgstr "Nicht erkannte Position: '%s'"
 
-#: builtin/bisect--helper.c:482
+#: builtin/bisect--helper.c:487
 #, c-format
 msgid "'%s' does not appear to be a valid revision"
 msgstr "'%s' scheint kein gültiger Commit zu sein."
 
-#: builtin/bisect--helper.c:514
+#: builtin/bisect--helper.c:519
 msgid "bad HEAD - I need a HEAD"
 msgstr "Ungültiger HEAD - HEAD wird benötigt."
 
-#: builtin/bisect--helper.c:529
+#: builtin/bisect--helper.c:534
 #, c-format
 msgid "checking out '%s' failed. Try 'git bisect start <valid-branch>'."
 msgstr ""
 "Auschecken von '%s' fehlgeschlagen. Versuchen Sie 'git bisect start "
 "<gültiger-Branch>'."
 
-#: builtin/bisect--helper.c:550
+#: builtin/bisect--helper.c:555
 msgid "won't bisect on cg-seek'ed tree"
 msgstr ""
 "binäre Suche auf einem durch 'cg-seek' geändertem Verzeichnis nicht möglich"
 
-#: builtin/bisect--helper.c:553
+#: builtin/bisect--helper.c:558
 msgid "bad HEAD - strange symbolic ref"
 msgstr "Ungültiger HEAD - merkwürdige symbolische Referenz."
 
-#: builtin/bisect--helper.c:577
+#: builtin/bisect--helper.c:582
 #, c-format
 msgid "invalid ref: '%s'"
 msgstr "Ungültige Referenz: '%s'"
 
-#: builtin/bisect--helper.c:633
+#: builtin/bisect--helper.c:638
 msgid "perform 'git bisect next'"
 msgstr "'git bisect next' ausführen"
 
-#: builtin/bisect--helper.c:635
+#: builtin/bisect--helper.c:640
 msgid "write the terms to .git/BISECT_TERMS"
 msgstr "die Begriffe nach .git/BISECT_TERMS schreiben"
 
-#: builtin/bisect--helper.c:637
+#: builtin/bisect--helper.c:642
 msgid "cleanup the bisection state"
 msgstr "den Zustand der binären Suche aufräumen"
 
-#: builtin/bisect--helper.c:639
+#: builtin/bisect--helper.c:644
 msgid "check for expected revs"
 msgstr "auf erwartete Commits prüfen"
 
-#: builtin/bisect--helper.c:641
+#: builtin/bisect--helper.c:646
 msgid "reset the bisection state"
 msgstr "den Zustand der binären Suche zurücksetzen"
 
-#: builtin/bisect--helper.c:643
+#: builtin/bisect--helper.c:648
 msgid "write out the bisection state in BISECT_LOG"
 msgstr "den Zustand der binären Suche nach BISECT_LOG schreiben"
 
-#: builtin/bisect--helper.c:645
+#: builtin/bisect--helper.c:650
 msgid "check and set terms in a bisection state"
 msgstr "Begriffe innerhalb einer binären Suche prüfen und setzen"
 
-#: builtin/bisect--helper.c:647
+#: builtin/bisect--helper.c:652
 msgid "check whether bad or good terms exist"
 msgstr "prüfen, ob Begriffe für gute und schlechte Commits existieren"
 
-#: builtin/bisect--helper.c:649
+#: builtin/bisect--helper.c:654
 msgid "print out the bisect terms"
 msgstr "die Begriffe für die binäre Suche ausgeben"
 
-#: builtin/bisect--helper.c:651
+#: builtin/bisect--helper.c:656
 msgid "start the bisect session"
 msgstr "Sitzung für binäre Suche starten"
 
-#: builtin/bisect--helper.c:653
+#: builtin/bisect--helper.c:658
 msgid "update BISECT_HEAD instead of checking out the current commit"
 msgstr "BISECT_HEAD aktualisieren, anstatt den aktuellen Commit auszuchecken"
 
-#: builtin/bisect--helper.c:655
+#: builtin/bisect--helper.c:660
 msgid "no log for BISECT_WRITE"
 msgstr "kein Log für BISECT_WRITE"
 
-#: builtin/bisect--helper.c:673
+#: builtin/bisect--helper.c:678
 msgid "--write-terms requires two arguments"
 msgstr "--write-terms benötigt zwei Argumente."
 
-#: builtin/bisect--helper.c:677
+#: builtin/bisect--helper.c:682
 msgid "--bisect-clean-state requires no arguments"
 msgstr "--bisect-clean-state erwartet keine Argumente."
 
-#: builtin/bisect--helper.c:684
+#: builtin/bisect--helper.c:689
 msgid "--bisect-reset requires either no argument or a commit"
 msgstr "--bisect-reset benötigt entweder kein Argument oder ein Commit."
 
-#: builtin/bisect--helper.c:688
+#: builtin/bisect--helper.c:693
 msgid "--bisect-write requires either 4 or 5 arguments"
 msgstr "--bisect-write benötigt entweder 4 oder 5 Argumente."
 
-#: builtin/bisect--helper.c:694
+#: builtin/bisect--helper.c:699
 msgid "--check-and-set-terms requires 3 arguments"
 msgstr "--check-and-set-terms benötigt 3 Argumente."
 
-#: builtin/bisect--helper.c:700
+#: builtin/bisect--helper.c:705
 msgid "--bisect-next-check requires 2 or 3 arguments"
 msgstr "--bisect-next-check benötigt 2 oder 3 Argumente."
 
-#: builtin/bisect--helper.c:706
+#: builtin/bisect--helper.c:711
 msgid "--bisect-terms requires 0 or 1 argument"
 msgstr "--bisect-terms benötigt 0 oder 1 Argument."
 
@@ -11239,19 +11343,19 @@
 msgid "git bundle unbundle <file> [<refname>...]"
 msgstr "git bundle unbundle <Datei> [<Referenzname>...]"
 
-#: builtin/bundle.c:66 builtin/pack-objects.c:3376
+#: builtin/bundle.c:66 builtin/pack-objects.c:3448
 msgid "do not show progress meter"
 msgstr "keine Fortschrittsanzeige anzeigen"
 
-#: builtin/bundle.c:68 builtin/pack-objects.c:3378
+#: builtin/bundle.c:68 builtin/pack-objects.c:3450
 msgid "show progress meter"
 msgstr "Fortschrittsanzeige anzeigen"
 
-#: builtin/bundle.c:70 builtin/pack-objects.c:3380
+#: builtin/bundle.c:70 builtin/pack-objects.c:3452
 msgid "show progress meter during object writing phase"
 msgstr "Forschrittsanzeige während des Schreibens von Objekten anzeigen"
 
-#: builtin/bundle.c:73 builtin/pack-objects.c:3383
+#: builtin/bundle.c:73 builtin/pack-objects.c:3455
 msgid "similar to --all-progress when progress meter is shown"
 msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
 
@@ -11291,11 +11395,11 @@
 
 #: builtin/cat-file.c:599
 msgid ""
-"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
-"filters]"
+"git cat-file (--batch[=<format>] | --batch-check[=<format>]) [--follow-"
+"symlinks] [--textconv | --filters]"
 msgstr ""
-"git cat-file (--batch | --batch-check) [--follow-symlinks] [--textconv | --"
-"filters]"
+"git cat-file (--batch[=<Format>] | --batch-check[=<Format>]) [--follow-"
+"symlinks] [--textconv | --filters]"
 
 #: builtin/cat-file.c:620
 msgid "only one batch option may be specified"
@@ -11329,7 +11433,7 @@
 msgid "for blob objects, run filters on object's content"
 msgstr "für Blob-Objekte, Filter auf Objekt-Inhalte ausführen"
 
-#: builtin/cat-file.c:648 git-submodule.sh:984
+#: builtin/cat-file.c:648 git-submodule.sh:958
 msgid "blob"
 msgstr "Blob"
 
@@ -11394,8 +11498,8 @@
 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:21 builtin/checkout.c:1488 builtin/gc.c:537
-#: builtin/worktree.c:502
+#: builtin/check-ignore.c:21 builtin/checkout.c:1486 builtin/gc.c:537
+#: builtin/worktree.c:561
 msgid "suppress progress reporting"
 msgstr "Fortschrittsanzeige unterdrücken"
 
@@ -11490,7 +11594,7 @@
 #: builtin/checkout-index.c:178 builtin/column.c:31
 #: builtin/submodule--helper.c:1400 builtin/submodule--helper.c:1403
 #: builtin/submodule--helper.c:1411 builtin/submodule--helper.c:1909
-#: builtin/worktree.c:675
+#: builtin/worktree.c:754
 msgid "string"
 msgstr "Zeichenkette"
 
@@ -11607,11 +11711,11 @@
 msgid "path '%s' is unmerged"
 msgstr "Pfad '%s' ist nicht zusammengeführt."
 
-#: builtin/checkout.c:704
+#: builtin/checkout.c:702
 msgid "you need to resolve your current index first"
 msgstr "Sie müssen zuerst die Konflikte in Ihrem aktuellen Index auflösen."
 
-#: builtin/checkout.c:758
+#: builtin/checkout.c:756
 #, c-format
 msgid ""
 "cannot continue with staged changes in the following files:\n"
@@ -11620,50 +11724,50 @@
 "Kann nicht mit vorgemerkten Änderungen in folgenden Dateien fortsetzen:\n"
 "%s"
 
-#: builtin/checkout.c:861
+#: builtin/checkout.c:859
 #, c-format
 msgid "Can not do reflog for '%s': %s\n"
 msgstr "Kann \"reflog\" für '%s' nicht durchführen: %s\n"
 
-#: builtin/checkout.c:903
+#: builtin/checkout.c:901
 msgid "HEAD is now at"
 msgstr "HEAD ist jetzt bei"
 
-#: builtin/checkout.c:907 builtin/clone.c:720
+#: builtin/checkout.c:905 builtin/clone.c:720
 msgid "unable to update HEAD"
 msgstr "Konnte HEAD nicht aktualisieren."
 
-#: builtin/checkout.c:911
+#: builtin/checkout.c:909
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Setze Branch '%s' neu\n"
 
-#: builtin/checkout.c:914
+#: builtin/checkout.c:912
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Bereits auf '%s'\n"
 
-#: builtin/checkout.c:918
+#: builtin/checkout.c:916
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Zu umgesetztem Branch '%s' gewechselt\n"
 
-#: builtin/checkout.c:920 builtin/checkout.c:1344
+#: builtin/checkout.c:918 builtin/checkout.c:1342
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Zu neuem Branch '%s' gewechselt\n"
 
-#: builtin/checkout.c:922
+#: builtin/checkout.c:920
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Zu Branch '%s' gewechselt\n"
 
-#: builtin/checkout.c:973
+#: builtin/checkout.c:971
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... und %d weitere.\n"
 
-#: builtin/checkout.c:979
+#: builtin/checkout.c:977
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -11686,7 +11790,7 @@
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:998
+#: builtin/checkout.c:996
 #, c-format
 msgid ""
 "If you want to keep it by creating a new branch, this may be a good time\n"
@@ -11713,19 +11817,19 @@
 " git branch <neuer-Branchname> %s\n"
 "\n"
 
-#: builtin/checkout.c:1033
+#: builtin/checkout.c:1031
 msgid "internal error in revision walk"
 msgstr "interner Fehler im Revisionsgang"
 
-#: builtin/checkout.c:1037
+#: builtin/checkout.c:1035
 msgid "Previous HEAD position was"
 msgstr "Vorherige Position von HEAD war"
 
-#: builtin/checkout.c:1077 builtin/checkout.c:1339
+#: builtin/checkout.c:1075 builtin/checkout.c:1337
 msgid "You are on a branch yet to be born"
 msgstr "Sie sind auf einem Branch, der noch nicht geboren ist"
 
-#: builtin/checkout.c:1152
+#: builtin/checkout.c:1150
 #, c-format
 msgid ""
 "'%s' could be both a local file and a tracking branch.\n"
@@ -11735,7 +11839,7 @@
 "Bitte benutzen Sie -- (und optional --no-guess), um diese\n"
 "eindeutig voneinander zu unterscheiden."
 
-#: builtin/checkout.c:1159
+#: builtin/checkout.c:1157
 msgid ""
 "If you meant to check out a remote tracking branch on, e.g. 'origin',\n"
 "you can do so by fully qualifying the name with the --track option:\n"
@@ -11758,51 +11862,51 @@
 "bevorzugen möchten, z.B. 'origin', können Sie die Einstellung\n"
 "checkout.defaultRemote=origin in Ihrer Konfiguration setzen."
 
-#: builtin/checkout.c:1169
+#: builtin/checkout.c:1167
 #, c-format
 msgid "'%s' matched multiple (%d) remote tracking branches"
 msgstr "'%s' entspricht mehreren (%d) Remote-Tracking-Branches"
 
-#: builtin/checkout.c:1235
+#: builtin/checkout.c:1233
 msgid "only one reference expected"
 msgstr "nur eine Referenz erwartet"
 
-#: builtin/checkout.c:1252
+#: builtin/checkout.c:1250
 #, c-format
 msgid "only one reference expected, %d given."
 msgstr "nur eine Referenz erwartet, %d gegeben."
 
-#: builtin/checkout.c:1298 builtin/worktree.c:283 builtin/worktree.c:451
+#: builtin/checkout.c:1296 builtin/worktree.c:342 builtin/worktree.c:510
 #, c-format
 msgid "invalid reference: %s"
 msgstr "Ungültige Referenz: %s"
 
-#: builtin/checkout.c:1311 builtin/checkout.c:1677
+#: builtin/checkout.c:1309 builtin/checkout.c:1675
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "Referenz ist kein \"Tree\"-Objekt: %s"
 
-#: builtin/checkout.c:1358
+#: builtin/checkout.c:1356
 #, c-format
 msgid "a branch is expected, got tag '%s'"
 msgstr "Ein Branch wird erwartet, Tag '%s' bekommen"
 
-#: builtin/checkout.c:1360
+#: builtin/checkout.c:1358
 #, c-format
 msgid "a branch is expected, got remote branch '%s'"
 msgstr "Ein Branch wird erwartet, Remote-Branch '%s' bekommen"
 
-#: builtin/checkout.c:1361 builtin/checkout.c:1369
+#: builtin/checkout.c:1359 builtin/checkout.c:1367
 #, c-format
 msgid "a branch is expected, got '%s'"
 msgstr "Ein Branch wird erwartet, '%s' bekommen"
 
-#: builtin/checkout.c:1364
+#: builtin/checkout.c:1362
 #, c-format
 msgid "a branch is expected, got commit '%s'"
 msgstr "Ein Branch wird erwartet, Commit '%s' bekommen"
 
-#: builtin/checkout.c:1380
+#: builtin/checkout.c:1378
 msgid ""
 "cannot switch branch while merging\n"
 "Consider \"git merge --quit\" or \"git worktree add\"."
@@ -11810,7 +11914,7 @@
 "Der Branch kann nicht während eines Merges gewechselt werden.\n"
 "Ziehen Sie \"git merge --quit\" oder \"git worktree add\" in Betracht."
 
-#: builtin/checkout.c:1384
+#: builtin/checkout.c:1382
 msgid ""
 "cannot switch branch in the middle of an am session\n"
 "Consider \"git am --quit\" or \"git worktree add\"."
@@ -11819,7 +11923,7 @@
 "werden.\n"
 "Ziehen Sie \"git am --quit\" oder \"git worktree add\" in Betracht."
 
-#: builtin/checkout.c:1388
+#: builtin/checkout.c:1386
 msgid ""
 "cannot switch branch while rebasing\n"
 "Consider \"git rebase --quit\" or \"git worktree add\"."
@@ -11828,7 +11932,7 @@
 "werden.\n"
 "Ziehen Sie \"git rebase --quit\" oder \"git worktree add\" in Betracht."
 
-#: builtin/checkout.c:1392
+#: builtin/checkout.c:1390
 msgid ""
 "cannot switch branch while cherry-picking\n"
 "Consider \"git cherry-pick --quit\" or \"git worktree add\"."
@@ -11837,7 +11941,7 @@
 "gewechselt werden.\n"
 "Ziehen Sie \"git cherry-pick --quit\" oder \"git worktree add\" in Betracht."
 
-#: builtin/checkout.c:1396
+#: builtin/checkout.c:1394
 msgid ""
 "cannot switch branch while reverting\n"
 "Consider \"git revert --quit\" or \"git worktree add\"."
@@ -11846,147 +11950,147 @@
 "werden.\n"
 "Ziehen Sie \"git revert --quit\" oder \"git worktree add\" in Betracht."
 
-#: builtin/checkout.c:1400
+#: builtin/checkout.c:1398
 msgid "you are switching branch while bisecting"
 msgstr "Sie wechseln den Branch während einer binären Suche"
 
-#: builtin/checkout.c:1407
+#: builtin/checkout.c:1405
 msgid "paths cannot be used with switching branches"
 msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden"
 
-#: builtin/checkout.c:1410 builtin/checkout.c:1414 builtin/checkout.c:1418
+#: builtin/checkout.c:1408 builtin/checkout.c:1412 builtin/checkout.c:1416
 #, c-format
 msgid "'%s' cannot be used with switching branches"
 msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden"
 
-#: builtin/checkout.c:1422 builtin/checkout.c:1425 builtin/checkout.c:1428
-#: builtin/checkout.c:1433 builtin/checkout.c:1438
+#: builtin/checkout.c:1420 builtin/checkout.c:1423 builtin/checkout.c:1426
+#: builtin/checkout.c:1431 builtin/checkout.c:1436
 #, c-format
 msgid "'%s' cannot be used with '%s'"
 msgstr "'%s' kann nicht mit '%s' verwendet werden"
 
-#: builtin/checkout.c:1435
+#: builtin/checkout.c:1433
 #, c-format
 msgid "'%s' cannot take <start-point>"
 msgstr "'%s' kann nicht <Startpunkt> bekommen"
 
-#: builtin/checkout.c:1443
+#: builtin/checkout.c:1441
 #, c-format
 msgid "Cannot switch branch to a non-commit '%s'"
 msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln"
 
-#: builtin/checkout.c:1450
+#: builtin/checkout.c:1448
 msgid "missing branch or commit argument"
 msgstr "Branch- oder Commit-Argument fehlt"
 
-#: builtin/checkout.c:1492 builtin/clone.c:91 builtin/commit-graph.c:80
-#: builtin/commit-graph.c:164 builtin/fetch.c:168 builtin/merge.c:288
+#: builtin/checkout.c:1490 builtin/clone.c:91 builtin/commit-graph.c:82
+#: builtin/commit-graph.c:189 builtin/fetch.c:168 builtin/merge.c:288
 #: builtin/multi-pack-index.c:27 builtin/pull.c:119 builtin/push.c:561
 #: builtin/send-pack.c:173
 msgid "force progress reporting"
 msgstr "Fortschrittsanzeige erzwingen"
 
-#: builtin/checkout.c:1493
+#: builtin/checkout.c:1491
 msgid "perform a 3-way merge with the new branch"
 msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen"
 
-#: builtin/checkout.c:1494 builtin/log.c:1709 parse-options.h:322
+#: builtin/checkout.c:1492 builtin/log.c:1709 parse-options.h:322
 msgid "style"
 msgstr "Stil"
 
-#: builtin/checkout.c:1495
+#: builtin/checkout.c:1493
 msgid "conflict style (merge or diff3)"
 msgstr "Konfliktstil (merge oder diff3)"
 
-#: builtin/checkout.c:1507 builtin/worktree.c:499
+#: builtin/checkout.c:1505 builtin/worktree.c:558
 msgid "detach HEAD at named commit"
 msgstr "HEAD bei benanntem Commit loslösen"
 
-#: builtin/checkout.c:1508
+#: builtin/checkout.c:1506
 msgid "set upstream info for new branch"
 msgstr "Informationen zum Upstream-Branch für den neuen Branch setzen"
 
-#: builtin/checkout.c:1510
+#: builtin/checkout.c:1508
 msgid "force checkout (throw away local modifications)"
 msgstr "Auschecken erzwingen (verwirft lokale Änderungen)"
 
-#: builtin/checkout.c:1512
+#: builtin/checkout.c:1510
 msgid "new-branch"
 msgstr "neuer Branch"
 
-#: builtin/checkout.c:1512
+#: builtin/checkout.c:1510
 msgid "new unparented branch"
 msgstr "neuer Branch ohne Eltern-Commit"
 
-#: builtin/checkout.c:1514 builtin/merge.c:292
+#: builtin/checkout.c:1512 builtin/merge.c:292
 msgid "update ignored files (default)"
 msgstr "ignorierte Dateien aktualisieren (Standard)"
 
-#: builtin/checkout.c:1517
+#: builtin/checkout.c:1515
 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:1530
+#: builtin/checkout.c:1528
 msgid "checkout our version for unmerged files"
 msgstr "unsere Variante für nicht zusammengeführte Dateien auschecken"
 
-#: builtin/checkout.c:1533
+#: builtin/checkout.c:1531
 msgid "checkout their version for unmerged files"
 msgstr "ihre Variante für nicht zusammengeführte Dateien auschecken"
 
-#: builtin/checkout.c:1537
+#: builtin/checkout.c:1535
 msgid "do not limit pathspecs to sparse entries only"
 msgstr "keine Einschränkung bei Pfadspezifikationen zum partiellen Auschecken"
 
-#: builtin/checkout.c:1592
+#: builtin/checkout.c:1590
 #, c-format
 msgid "-%c, -%c and --orphan are mutually exclusive"
 msgstr "die Optionen -%c, -%c und --orphan schließen sich gegenseitig aus"
 
-#: builtin/checkout.c:1596
+#: builtin/checkout.c:1594
 msgid "-p and --overlay are mutually exclusive"
 msgstr "-p und --overlay schließen sich gegenseitig aus."
 
-#: builtin/checkout.c:1633
+#: builtin/checkout.c:1631
 msgid "--track needs a branch name"
 msgstr "Bei der Option --track muss ein Branchname angegeben werden."
 
-#: builtin/checkout.c:1638
+#: builtin/checkout.c:1636
 #, c-format
 msgid "missing branch name; try -%c"
 msgstr "kein Branchname; versuchen Sie -%c"
 
-#: builtin/checkout.c:1670
+#: builtin/checkout.c:1668
 #, c-format
 msgid "could not resolve %s"
 msgstr "Konnte %s nicht auflösen."
 
-#: builtin/checkout.c:1686
+#: builtin/checkout.c:1684
 msgid "invalid path specification"
 msgstr "ungültige Pfadspezifikation"
 
-#: builtin/checkout.c:1693
+#: builtin/checkout.c:1691
 #, c-format
 msgid "'%s' is not a commit and a branch '%s' cannot be created from it"
 msgstr ""
 "'%s' ist kein Commit und es kann kein Branch '%s' aus diesem erstellt werden."
 
-#: builtin/checkout.c:1697
+#: builtin/checkout.c:1695
 #, 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:1706
+#: builtin/checkout.c:1704
 msgid "--pathspec-from-file is incompatible with --detach"
 msgstr "Die Optionen --pathspec-from-file und --detach sind inkompatibel."
 
-#: builtin/checkout.c:1709 builtin/reset.c:325 builtin/stash.c:1503
+#: builtin/checkout.c:1707 builtin/reset.c:325 builtin/stash.c:1503
 msgid "--pathspec-from-file is incompatible with --patch"
 msgstr "Die Optionen --pathspec-from-file und --patch sind inkompatibel."
 
-#: builtin/checkout.c:1720
+#: builtin/checkout.c:1718
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -11994,69 +12098,70 @@
 "git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n"
 "Sie aus dem Index auschecken."
 
-#: builtin/checkout.c:1725
+#: builtin/checkout.c:1723
 msgid "you must specify path(s) to restore"
 msgstr "Sie müssen Pfad(e) zur Wiederherstellung angeben."
 
-#: builtin/checkout.c:1751 builtin/checkout.c:1753 builtin/checkout.c:1802
-#: builtin/checkout.c:1804 builtin/clone.c:121 builtin/remote.c:170
-#: builtin/remote.c:172 builtin/worktree.c:495 builtin/worktree.c:497
+#: builtin/checkout.c:1749 builtin/checkout.c:1751 builtin/checkout.c:1800
+#: builtin/checkout.c:1802 builtin/clone.c:121 builtin/remote.c:170
+#: builtin/remote.c:172 builtin/submodule--helper.c:2295 builtin/worktree.c:554
+#: builtin/worktree.c:556
 msgid "branch"
 msgstr "Branch"
 
-#: builtin/checkout.c:1752
+#: builtin/checkout.c:1750
 msgid "create and checkout a new branch"
 msgstr "einen neuen Branch erzeugen und auschecken"
 
-#: builtin/checkout.c:1754
+#: builtin/checkout.c:1752
 msgid "create/reset and checkout a branch"
 msgstr "einen Branch erstellen/umsetzen und auschecken"
 
-#: builtin/checkout.c:1755
+#: builtin/checkout.c:1753
 msgid "create reflog for new branch"
 msgstr "das Reflog für den neuen Branch erzeugen"
 
-#: builtin/checkout.c:1757
+#: builtin/checkout.c:1755
 msgid "second guess 'git checkout <no-such-branch>' (default)"
 msgstr "Zweite Vermutung 'git checkout <kein-solcher-Branch>' (Standard)"
 
-#: builtin/checkout.c:1758
+#: builtin/checkout.c:1756
 msgid "use overlay mode (default)"
 msgstr "benutze Overlay-Modus (Standard)"
 
-#: builtin/checkout.c:1803
+#: builtin/checkout.c:1801
 msgid "create and switch to a new branch"
 msgstr "einen neuen Branch erzeugen und dahin wechseln"
 
-#: builtin/checkout.c:1805
+#: builtin/checkout.c:1803
 msgid "create/reset and switch to a branch"
 msgstr "einen Branch erstellen/umsetzen und dahin wechseln"
 
-#: builtin/checkout.c:1807
+#: builtin/checkout.c:1805
 msgid "second guess 'git switch <no-such-branch>'"
 msgstr "Zweite Vermutung 'git switch <kein-solcher-Branch>'"
 
-#: builtin/checkout.c:1809
+#: builtin/checkout.c:1807
 msgid "throw away local modifications"
 msgstr "lokale Änderungen verwerfen"
 
-#: builtin/checkout.c:1843
+#: builtin/checkout.c:1841
 msgid "which tree-ish to checkout from"
 msgstr "Von welcher Commit-Referenz ausgecheckt werden soll"
 
-#: builtin/checkout.c:1845
+#: builtin/checkout.c:1843
 msgid "restore the index"
 msgstr "Index wiederherstellen"
 
-#: builtin/checkout.c:1847
+#: builtin/checkout.c:1845
 msgid "restore the working tree (default)"
 msgstr "das Arbeitsverzeichnis wiederherstellen (Standard)"
 
-#: builtin/checkout.c:1849
+#: builtin/checkout.c:1847
 msgid "ignore unmerged entries"
 msgstr "ignoriere nicht zusammengeführte Einträge"
 
-#: builtin/checkout.c:1850
+#: builtin/checkout.c:1848
 msgid "use overlay mode"
 msgstr "benutze Overlay-Modus"
 
@@ -12219,11 +12324,7 @@
 msgid "remove only ignored files"
 msgstr "nur ignorierte Dateien löschen"
 
-#: builtin/clean.c:931
-msgid "-x and -X cannot be used together"
-msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden."
-
-#: builtin/clean.c:935
+#: builtin/clean.c:929
 msgid ""
 "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to "
 "clean"
@@ -12231,7 +12332,7 @@
 "clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; "
 "\"clean\" verweigert"
 
-#: builtin/clean.c:938
+#: builtin/clean.c:932
 msgid ""
 "clean.requireForce defaults to true and neither -i, -n, nor -f given; "
 "refusing to clean"
@@ -12239,6 +12340,10 @@
 "clean.requireForce standardmäßig auf \"true\" gesetzt und weder -i, -n noch -"
 "f gegeben; \"clean\" verweigert"
 
+#: builtin/clean.c:944
+msgid "-x and -X cannot be used together"
+msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden."
+
 #: builtin/clone.c:45
 msgid "git clone [<options>] [--] <repo> [<dir>]"
 msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]"
@@ -12247,7 +12352,7 @@
 msgid "don't create a checkout"
 msgstr "kein Auschecken"
 
-#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:536
+#: builtin/clone.c:94 builtin/clone.c:96 builtin/init-db.c:554
 msgid "create a bare repository"
 msgstr "ein Bare-Repository erstellen"
 
@@ -12279,11 +12384,11 @@
 msgid "number of submodules cloned in parallel"
 msgstr "Anzahl der parallel zu klonenden Submodule"
 
-#: builtin/clone.c:111 builtin/init-db.c:533
+#: builtin/clone.c:111 builtin/init-db.c:551
 msgid "template-directory"
 msgstr "Vorlagenverzeichnis"
 
-#: builtin/clone.c:112 builtin/init-db.c:534
+#: builtin/clone.c:112 builtin/init-db.c:552
 msgid "directory from which templates will be used"
 msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
 
@@ -12297,8 +12402,8 @@
 msgid "use --reference only while cloning"
 msgstr "--reference nur während des Klonens benutzen"
 
-#: builtin/clone.c:119 builtin/column.c:27 builtin/merge-file.c:46
-#: builtin/pack-objects.c:3442 builtin/repack.c:329
+#: builtin/clone.c:119 builtin/column.c:27 builtin/init-db.c:562
+#: builtin/merge-file.c:46 builtin/pack-objects.c:3514 builtin/repack.c:329
 msgid "name"
 msgstr "Name"
 
@@ -12324,7 +12429,7 @@
 msgstr ""
 "einen Klon mit unvollständiger Historie (shallow) in dieser Tiefe erstellen"
 
-#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3431
+#: builtin/clone.c:127 builtin/fetch.c:171 builtin/pack-objects.c:3503
 #: builtin/pull.c:211
 msgid "time"
 msgstr "Zeit"
@@ -12360,11 +12465,11 @@
 msgid "any cloned submodules will be shallow"
 msgstr "jedes geklonte Submodul mit unvollständiger Historie (shallow)"
 
-#: builtin/clone.c:137 builtin/init-db.c:542
+#: builtin/clone.c:137 builtin/init-db.c:560
 msgid "gitdir"
 msgstr ".git-Verzeichnis"
 
-#: builtin/clone.c:138 builtin/init-db.c:543
+#: builtin/clone.c:138 builtin/init-db.c:561
 msgid "separate git dir from working tree"
 msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren"
 
@@ -12495,7 +12600,7 @@
 msgid "cannot unlink temporary alternates file"
 msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen"
 
-#: builtin/clone.c:971 builtin/receive-pack.c:1972
+#: builtin/clone.c:971 builtin/receive-pack.c:1982
 msgid "Too many arguments."
 msgstr "Zu viele Argumente."
 
@@ -12512,48 +12617,48 @@
 msgid "--bare and --separate-git-dir are incompatible."
 msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel."
 
-#: builtin/clone.c:1004
+#: builtin/clone.c:1007
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "Repository '%s' existiert nicht."
 
-#: builtin/clone.c:1010 builtin/fetch.c:1789
+#: builtin/clone.c:1011 builtin/fetch.c:1794
 #, c-format
 msgid "depth %s is not a positive number"
 msgstr "Tiefe %s ist keine positive Zahl"
 
-#: builtin/clone.c:1020
+#: builtin/clone.c:1021
 #, 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:1030
+#: builtin/clone.c:1033
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "Arbeitsverzeichnis '%s' existiert bereits."
 
-#: builtin/clone.c:1045 builtin/clone.c:1066 builtin/difftool.c:271
-#: builtin/log.c:1886 builtin/worktree.c:295 builtin/worktree.c:327
+#: builtin/clone.c:1048 builtin/clone.c:1069 builtin/difftool.c:271
+#: builtin/log.c:1886 builtin/worktree.c:354 builtin/worktree.c:386
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
 
-#: builtin/clone.c:1050
+#: builtin/clone.c:1053
 #, c-format
 msgid "could not create work tree dir '%s'"
 msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen"
 
-#: builtin/clone.c:1070
+#: builtin/clone.c:1073
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Klone in Bare-Repository '%s' ...\n"
 
-#: builtin/clone.c:1072
+#: builtin/clone.c:1075
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Klone nach '%s' ...\n"
 
-#: builtin/clone.c:1096
+#: builtin/clone.c:1099
 msgid ""
 "clone --recursive is not compatible with both --reference and --reference-if-"
 "able"
@@ -12561,45 +12666,45 @@
 "'clone --recursive' ist nicht kompatibel mit --reference und --reference-if-"
 "able"
 
-#: builtin/clone.c:1160
+#: builtin/clone.c:1164
 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:1162
+#: builtin/clone.c:1166
 msgid "--shallow-since is ignored in local clones; use file:// instead."
 msgstr ""
 "--shallow-since wird in lokalen Klonen ignoriert; benutzen Sie stattdessen "
 "file://"
 
-#: builtin/clone.c:1164
+#: builtin/clone.c:1168
 msgid "--shallow-exclude is ignored in local clones; use file:// instead."
 msgstr ""
 "--shallow-exclude wird in lokalen Klonen ignoriert; benutzen Sie stattdessen "
 "file://"
 
-#: builtin/clone.c:1166
+#: builtin/clone.c:1170
 msgid "--filter is ignored in local clones; use file:// instead."
 msgstr ""
 "--filter wird in lokalen Klonen ignoriert; benutzen Sie stattdessen file://"
 
-#: builtin/clone.c:1169
+#: builtin/clone.c:1173
 msgid "source repository is shallow, ignoring --local"
 msgstr ""
 "Quelle ist ein Repository mit unvollständiger Historie (shallow),\n"
 "ignoriere --local"
 
-#: builtin/clone.c:1174
+#: builtin/clone.c:1178
 msgid "--local is ignored"
 msgstr "--local wird ignoriert"
 
-#: builtin/clone.c:1249 builtin/clone.c:1257
+#: builtin/clone.c:1262 builtin/clone.c:1270
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden"
 
-#: builtin/clone.c:1260
+#: builtin/clone.c:1273
 msgid "You appear to have cloned an empty repository."
 msgstr "Sie scheinen ein leeres Repository geklont zu haben."
 
@@ -12635,14 +12740,14 @@
 msgid "--command must be the first argument"
 msgstr "Die Option --command muss an erster Stelle stehen."
 
-#: builtin/commit-graph.c:11 builtin/commit-graph.c:19
+#: builtin/commit-graph.c:13 builtin/commit-graph.c:21
 msgid ""
 "git commit-graph verify [--object-dir <objdir>] [--shallow] [--[no-]progress]"
 msgstr ""
 "git commit-graph verify [--object-dir <Objektverzeichnis>] [--shallow] [--"
 "[no-]progress]"
 
-#: builtin/commit-graph.c:12 builtin/commit-graph.c:24
+#: builtin/commit-graph.c:14 builtin/commit-graph.c:26
 msgid ""
 "git commit-graph write [--object-dir <objdir>] [--append] [--"
 "split[=<strategy>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
@@ -12652,86 +12757,95 @@
 "split[=<Strategie>]] [--reachable|--stdin-packs|--stdin-commits] [--changed-"
 "paths] [--[no-]progress] <Split-Optionen>"
 
-#: builtin/commit-graph.c:60
+#: builtin/commit-graph.c:62
 #, c-format
 msgid "could not find object directory matching %s"
 msgstr "konnte Objekt-Verzeichnis nicht finden, dass '%s' entsprechen soll"
 
-#: builtin/commit-graph.c:76 builtin/commit-graph.c:152
-#: builtin/commit-graph.c:257 builtin/fetch.c:180 builtin/log.c:1678
+#: builtin/commit-graph.c:78 builtin/commit-graph.c:177
+#: builtin/commit-graph.c:276 builtin/fetch.c:180 builtin/log.c:1678
 msgid "dir"
 msgstr "Verzeichnis"
 
-#: builtin/commit-graph.c:77 builtin/commit-graph.c:153
-#: builtin/commit-graph.c:258
+#: builtin/commit-graph.c:79 builtin/commit-graph.c:178
+#: builtin/commit-graph.c:277
 msgid "The object directory to store the graph"
 msgstr "Das Objektverzeichnis zum Speichern des Graphen."
 
-#: builtin/commit-graph.c:79
+#: builtin/commit-graph.c:81
 msgid "if the commit-graph is split, only verify the tip file"
 msgstr ""
 "Wenn der Commit-Graph aufgeteilt ist, nur die Datei an der Spitze überprüfen"
 
-#: builtin/commit-graph.c:102
+#: builtin/commit-graph.c:104
 #, c-format
 msgid "Could not open commit-graph '%s'"
 msgstr "Konnte Commit-Graph '%s' nicht öffnen."
 
-#: builtin/commit-graph.c:136
+#: builtin/commit-graph.c:138
 #, c-format
 msgid "unrecognized --split argument, %s"
 msgstr "nicht erkanntes --split Argument, %s"
 
-#: builtin/commit-graph.c:155
+#: builtin/commit-graph.c:151
+#, c-format
+msgid "unexpected non-hex object ID: %s"
+msgstr "unerwartete nicht-hexadezimale Objekt-ID: %s"
+
+#: builtin/commit-graph.c:156
+#, c-format
+msgid "invalid object: %s"
+msgstr "ungültiges Objekt: %s"
+
+#: builtin/commit-graph.c:180
 msgid "start walk at all refs"
 msgstr "Durchlauf auf allen Referenzen beginnen"
 
-#: builtin/commit-graph.c:157
+#: builtin/commit-graph.c:182
 msgid "scan pack-indexes listed by stdin for commits"
 msgstr "durch Standard-Eingabe gelistete Pack-Indexe nach Commits scannen"
 
-#: builtin/commit-graph.c:159
+#: builtin/commit-graph.c:184
 msgid "start walk at commits listed by stdin"
 msgstr "Lauf bei Commits beginnen, die über die Standard-Eingabe gelistet sind"
 
-#: builtin/commit-graph.c:161
+#: builtin/commit-graph.c:186
 msgid "include all commits already in the commit-graph file"
 msgstr ""
 "alle Commits einschließen, die sich bereits in der Commit-Graph-Datei "
 "befinden"
 
-#: builtin/commit-graph.c:163
+#: builtin/commit-graph.c:188
 msgid "enable computation for changed paths"
 msgstr "Berechnung für veränderte Pfade aktivieren"
 
-#: builtin/commit-graph.c:166
+#: builtin/commit-graph.c:191
 msgid "allow writing an incremental commit-graph file"
 msgstr "Erlaube das Schreiben einer inkrementellen Commit-Graph-Datei"
 
-#: builtin/commit-graph.c:170
+#: builtin/commit-graph.c:195
 msgid "maximum number of commits in a non-base split commit-graph"
 msgstr ""
 "Maximale Anzahl von Commits in einem aufgeteilten Commit-Graph ohne Basis"
 
-#: builtin/commit-graph.c:172
+#: builtin/commit-graph.c:197
 msgid "maximum ratio between two levels of a split commit-graph"
 msgstr ""
 "Maximales Verhältnis zwischen zwei Ebenen eines aufgeteilten Commit-Graph"
 
-#: builtin/commit-graph.c:174
+#: builtin/commit-graph.c:199
 msgid "only expire files older than a given date-time"
 msgstr "nur Objekte älter als angegebene Zeit verfallen lassen"
 
-#: builtin/commit-graph.c:190
+#: builtin/commit-graph.c:215
 msgid "use at most one of --reachable, --stdin-commits, or --stdin-packs"
 msgstr ""
 "Benutzen Sie mindestens eins von --reachable, --stdin-commits, oder --stdin-"
 "packs."
 
-#: builtin/commit-graph.c:229
-#, c-format
-msgid "unexpected non-hex object ID: %s"
-msgstr "unerwartete nicht-hexadezimale Objekt-ID: %s"
+#: builtin/commit-graph.c:245
+msgid "Collecting commits from input"
+msgstr "Sammle Commits von der Standard-Eingabe"
 
 #: builtin/commit-tree.c:18
 msgid ""
@@ -13145,7 +13259,7 @@
 msgstr "Version"
 
 #: builtin/commit.c:1376 builtin/commit.c:1535 builtin/push.c:549
-#: builtin/worktree.c:646
+#: builtin/worktree.c:722
 msgid "machine-readable output"
 msgstr "maschinenlesbare Ausgabe"
 
@@ -13158,8 +13272,8 @@
 msgstr "Einträge mit NUL-Zeichen abschließen"
 
 #: builtin/commit.c:1384 builtin/commit.c:1388 builtin/commit.c:1543
-#: builtin/fast-export.c:1153 builtin/fast-export.c:1156
-#: builtin/fast-export.c:1159 builtin/rebase.c:1392 parse-options.h:336
+#: builtin/fast-export.c:1199 builtin/fast-export.c:1202
+#: builtin/fast-export.c:1205 builtin/rebase.c:1392 parse-options.h:336
 msgid "mode"
 msgstr "Modus"
 
@@ -13587,7 +13701,7 @@
 "#\tname = %s\n"
 "#\temail = %s\n"
 msgstr ""
-"# Das ist Git's benutzerspezifische Konfigurationsdatei.\n"
+"# Das ist Gits benutzerspezifische Konfigurationsdatei.\n"
 "[user]\n"
 "# Bitte passen Sie die folgenden Zeilen an und kommentieren Sie diese aus:\n"
 "#\tname = %s\n"
@@ -13857,35 +13971,45 @@
 msgid "--broken is incompatible with commit-ishes"
 msgstr "Die Option --broken kann nicht mit Commits verwendet werden."
 
-#: builtin/diff.c:84
+#: builtin/diff.c:91
 #, c-format
 msgid "'%s': not a regular file or symlink"
 msgstr "'%s': keine reguläre Datei oder symbolische Verknüpfung"
 
-#: builtin/diff.c:235
+#: builtin/diff.c:242
 #, c-format
 msgid "invalid option: %s"
 msgstr "Ungültige Option: %s"
 
-#: builtin/diff.c:350
+#: builtin/diff.c:359
+#, c-format
+msgid "%s...%s: no merge base"
+msgstr "%s...%s: keine Merge-Basis"
+
+#: builtin/diff.c:469
 msgid "Not a git repository"
 msgstr "Kein Git-Repository"
 
-#: builtin/diff.c:394
+#: builtin/diff.c:514
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "Objekt '%s' ist ungültig."
 
-#: builtin/diff.c:403
+#: builtin/diff.c:525
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "Mehr als zwei Blobs angegeben: '%s'"
 
-#: builtin/diff.c:408
+#: builtin/diff.c:530
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "unbehandeltes Objekt '%s' angegeben"
 
+#: builtin/diff.c:564
+#, c-format
+msgid "%s...%s: multiple merge bases, using %s"
+msgstr "%s...%s: mehrere Merge-Basen, nutze %s"
+
 #: builtin/difftool.c:30
 msgid "git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]"
 msgstr "git difftool [<Optionen>] [<Commit> [<Commit>]] [--] [<Pfad>...]"
@@ -14038,89 +14162,110 @@
 msgid "git fast-export [rev-list-opts]"
 msgstr "git fast-export [rev-list-opts]"
 
-#: builtin/fast-export.c:853
+#: builtin/fast-export.c:868
 msgid "Error: Cannot export nested tags unless --mark-tags is specified."
 msgstr ""
 "Fehler: Verschachtelte Tags können nicht exportiert werden, außer --mark-"
 "tags wurde angegeben."
 
-#: builtin/fast-export.c:1152
+#: builtin/fast-export.c:1178
+msgid "--anonymize-map token cannot be empty"
+msgstr "Token für --anonymize-map kann nicht leer sein"
+
+#: builtin/fast-export.c:1198
 msgid "show progress after <n> objects"
 msgstr "Fortschritt nach <n> Objekten anzeigen"
 
-#: builtin/fast-export.c:1154
+#: builtin/fast-export.c:1200
 msgid "select handling of signed tags"
 msgstr "Behandlung von signierten Tags wählen"
 
-#: builtin/fast-export.c:1157
+#: builtin/fast-export.c:1203
 msgid "select handling of tags that tag filtered objects"
 msgstr "Behandlung von Tags wählen, die gefilterte Objekte markieren"
 
-#: builtin/fast-export.c:1160
+#: builtin/fast-export.c:1206
 msgid "select handling of commit messages in an alternate encoding"
 msgstr ""
 "Auswählen der Behandlung von Commit-Beschreibungen bei wechselndem Encoding"
 
-#: builtin/fast-export.c:1163
+#: builtin/fast-export.c:1209
 msgid "Dump marks to this file"
 msgstr "Markierungen in diese Datei schreiben"
 
-#: builtin/fast-export.c:1165
+#: builtin/fast-export.c:1211
 msgid "Import marks from this file"
 msgstr "Markierungen von dieser Datei importieren"
 
-#: builtin/fast-export.c:1169
+#: builtin/fast-export.c:1215
 msgid "Import marks from this file if it exists"
 msgstr "Markierungen von dieser Datei importieren, wenn diese existiert"
 
-#: builtin/fast-export.c:1171
+#: builtin/fast-export.c:1217
 msgid "Fake a tagger when tags lack one"
 msgstr "künstlich einen Tag-Ersteller erzeugen, wenn das Tag keinen hat"
 
-#: builtin/fast-export.c:1173
+#: builtin/fast-export.c:1219
 msgid "Output full tree for each commit"
 msgstr "für jeden Commit das gesamte Verzeichnis ausgeben"
 
-#: builtin/fast-export.c:1175
+#: builtin/fast-export.c:1221
 msgid "Use the done feature to terminate the stream"
 msgstr "die \"done\"-Funktion benutzen, um den Datenstrom abzuschließen"
 
-#: builtin/fast-export.c:1176
+#: builtin/fast-export.c:1222
 msgid "Skip output of blob data"
 msgstr "Ausgabe von Blob-Daten überspringen"
 
-#: builtin/fast-export.c:1177 builtin/log.c:1724
+#: builtin/fast-export.c:1223 builtin/log.c:1724
 msgid "refspec"
 msgstr "Refspec"
 
-#: builtin/fast-export.c:1178
+#: builtin/fast-export.c:1224
 msgid "Apply refspec to exported refs"
 msgstr "Refspec auf exportierte Referenzen anwenden"
 
-#: builtin/fast-export.c:1179
+#: builtin/fast-export.c:1225
 msgid "anonymize output"
 msgstr "Ausgabe anonymisieren"
 
-#: builtin/fast-export.c:1181
+#: builtin/fast-export.c:1226
+msgid "from:to"
+msgstr "von:nach"
+
+#: builtin/fast-export.c:1227
+msgid "convert <from> to <to> in anonymized output"
+msgstr "konvertiere <von> zu <nach> in anonymisierter Ausgabe"
+
+#: builtin/fast-export.c:1230
 msgid "Reference parents which are not in fast-export stream by object id"
 msgstr ""
 "Eltern, die nicht im Fast-Export-Stream sind, anhand ihrer Objekt-ID "
 "referenzieren"
 
-#: builtin/fast-export.c:1183
+#: builtin/fast-export.c:1232
 msgid "Show original object ids of blobs/commits"
 msgstr "originale Objekt-IDs von Blobs/Commits anzeigen"
 
-#: builtin/fast-export.c:1185
+#: builtin/fast-export.c:1234
 msgid "Label tags with mark ids"
 msgstr "Tags mit Markierungs-IDs beschriften"
 
-#: builtin/fast-export.c:1220
+#: builtin/fast-export.c:1257
+msgid "--anonymize-map without --anonymize does not make sense"
+msgstr "--anonymize-map ohne --anonymize ist nicht sinnvoll"
+
+#: builtin/fast-export.c:1272
 msgid "Cannot pass both --import-marks and --import-marks-if-exists"
 msgstr ""
 "--import-marks und --import-marks-if-exists können nicht zusammen "
 "weitergegeben werden"
 
+#: builtin/fetch-pack.c:245
+#, c-format
+msgid "Lockfile created but not reported: %s"
+msgstr "Lock-Datei erstellt, aber nicht gemeldet: %s"
+
 #: builtin/fetch.c:35
 msgid "git fetch [<options>] [<repository> [<refspec>...]]"
 msgstr "git fetch [<Optionen>] [<Repository> [<Refspec>...]]"
@@ -14461,45 +14606,45 @@
 msgid "You need to specify a tag name."
 msgstr "Sie müssen den Namen des Tags angeben."
 
-#: builtin/fetch.c:1773
+#: builtin/fetch.c:1778
 msgid "Negative depth in --deepen is not supported"
 msgstr "Negative Tiefe wird von --deepen nicht unterstützt."
 
-#: builtin/fetch.c:1775
+#: builtin/fetch.c:1780
 msgid "--deepen and --depth are mutually exclusive"
 msgstr "--deepen und --depth schließen sich gegenseitig aus"
 
-#: builtin/fetch.c:1780
+#: builtin/fetch.c:1785
 msgid "--depth and --unshallow cannot be used together"
 msgstr ""
 "Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden."
 
-#: builtin/fetch.c:1782
+#: builtin/fetch.c:1787
 msgid "--unshallow on a complete repository does not make sense"
 msgstr ""
 "Die Option --unshallow kann nicht in einem Repository mit vollständiger "
 "Historie verwendet werden."
 
-#: builtin/fetch.c:1798
+#: builtin/fetch.c:1800
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all akzeptiert kein Repository als Argument"
 
-#: builtin/fetch.c:1800
+#: builtin/fetch.c:1802
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all kann nicht mit Refspecs verwendet werden."
 
-#: builtin/fetch.c:1809
+#: builtin/fetch.c:1811
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s"
 
-#: builtin/fetch.c:1816
+#: builtin/fetch.c:1818
 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"
 "von Refspecs verwendet werden."
 
-#: builtin/fetch.c:1834
+#: builtin/fetch.c:1836
 msgid ""
 "--filter can only be used with the remote configured in extensions."
 "partialclone"
@@ -14961,8 +15106,8 @@
 #. variable for tweaking threads, currently
 #. grep.threads
 #.
-#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1730
-#: builtin/pack-objects.c:2855
+#: builtin/grep.c:287 builtin/index-pack.c:1537 builtin/index-pack.c:1727
+#: builtin/pack-objects.c:2904
 #, c-format
 msgid "no threads support, ignoring %s"
 msgstr "keine Unterstützung von Threads, '%s' wird ignoriert"
@@ -15195,11 +15340,11 @@
 msgid "invalid option combination, ignoring --threads"
 msgstr "Ungültige Kombination von Optionen, --threads wird ignoriert."
 
-#: builtin/grep.c:1084 builtin/pack-objects.c:3548
+#: builtin/grep.c:1084 builtin/pack-objects.c:3623
 msgid "no threads support, ignoring --threads"
 msgstr "Keine Unterstützung für Threads, --threads wird ignoriert."
 
-#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2852
+#: builtin/grep.c:1087 builtin/index-pack.c:1534 builtin/pack-objects.c:2901
 #, c-format
 msgid "invalid number of threads specified (%d)"
 msgstr "ungültige Anzahl von Threads angegeben (%d)"
@@ -15406,7 +15551,7 @@
 msgid "used more bytes than were available"
 msgstr "verwendete mehr Bytes als verfügbar waren"
 
-#: builtin/index-pack.c:288 builtin/pack-objects.c:607
+#: builtin/index-pack.c:288 builtin/pack-objects.c:618
 msgid "pack too large for current definition of off_t"
 msgstr "Paket ist zu groß für die aktuelle Definition von off_t"
 
@@ -15478,8 +15623,8 @@
 msgid "SHA1 COLLISION FOUND WITH %s !"
 msgstr "SHA1 KOLLISION MIT %s GEFUNDEN !"
 
-#: builtin/index-pack.c:738 builtin/pack-objects.c:159
-#: builtin/pack-objects.c:219 builtin/pack-objects.c:314
+#: builtin/index-pack.c:738 builtin/pack-objects.c:170
+#: builtin/pack-objects.c:230 builtin/pack-objects.c:325
 #, c-format
 msgid "unable to read %s"
 msgstr "kann %s nicht lesen"
@@ -15540,7 +15685,7 @@
 msgid "Resolving deltas"
 msgstr "Löse Unterschiede auf"
 
-#: builtin/index-pack.c:1208 builtin/pack-objects.c:2616
+#: builtin/index-pack.c:1208 builtin/pack-objects.c:2665
 #, c-format
 msgid "unable to create thread: %s"
 msgstr "kann Thread nicht erzeugen: %s"
@@ -15605,58 +15750,67 @@
 msgid "cannot store index file"
 msgstr "Kann Indexdatei nicht speichern"
 
-#: builtin/index-pack.c:1528 builtin/pack-objects.c:2863
+#: builtin/index-pack.c:1528 builtin/pack-objects.c:2912
 #, c-format
 msgid "bad pack.indexversion=%<PRIu32>"
 msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig"
 
-#: builtin/index-pack.c:1596
+#: builtin/index-pack.c:1592
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Kann existierende Paketdatei '%s' nicht öffnen"
 
-#: builtin/index-pack.c:1598
+#: builtin/index-pack.c:1594
 #, 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:1646
+#: builtin/index-pack.c:1642
 #, 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:1653
+#: builtin/index-pack.c:1649
 #, 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:1692
+#: builtin/index-pack.c:1689
 msgid "Cannot come back to cwd"
 msgstr "Kann nicht zurück zum Arbeitsverzeichnis wechseln"
 
-#: builtin/index-pack.c:1741 builtin/index-pack.c:1744
-#: builtin/index-pack.c:1760 builtin/index-pack.c:1764
+#: builtin/index-pack.c:1738 builtin/index-pack.c:1741
+#: builtin/index-pack.c:1757 builtin/index-pack.c:1761
 #, c-format
 msgid "bad %s"
 msgstr "%s ist ungültig"
 
-#: builtin/index-pack.c:1780
+#: builtin/index-pack.c:1767 builtin/init-db.c:392 builtin/init-db.c:621
+#, c-format
+msgid "unknown hash algorithm '%s'"
+msgstr "unbekannter Hash-Algorithmus '%s'"
+
+#: builtin/index-pack.c:1782
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "Die Option --fix-thin kann nicht ohne --stdin verwendet werden."
 
-#: builtin/index-pack.c:1782
+#: builtin/index-pack.c:1784
 msgid "--stdin requires a git repository"
 msgstr "--stdin erfordert ein Git-Repository"
 
-#: builtin/index-pack.c:1788
+#: builtin/index-pack.c:1786
+msgid "--object-format cannot be used with --stdin"
+msgstr "Die Option --object-format kann nicht mit --stdin verwendet werden."
+
+#: builtin/index-pack.c:1792
 msgid "--verify with no packfile name given"
 msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben."
 
-#: builtin/index-pack.c:1836 builtin/unpack-objects.c:582
+#: builtin/index-pack.c:1840 builtin/unpack-objects.c:582
 msgid "fsck error in pack objects"
 msgstr "fsck Fehler beim Packen von Objekten"
 
@@ -15700,51 +15854,56 @@
 msgid "not copying templates from '%s': %s"
 msgstr "kopiere keine Vorlagen von '%s': %s"
 
-#: builtin/init-db.c:356
+#: builtin/init-db.c:276
+#, c-format
+msgid "invalid initial branch name: '%s'"
+msgstr "ungültiger initialer Branchname: '%s'"
+
+#: builtin/init-db.c:368
 #, c-format
 msgid "unable to handle file type %d"
 msgstr "kann nicht mit Dateityp %d umgehen"
 
-#: builtin/init-db.c:359
+#: builtin/init-db.c:371
 #, c-format
 msgid "unable to move %s to %s"
 msgstr "Konnte %s nicht nach %s verschieben"
 
-#: builtin/init-db.c:374
+#: builtin/init-db.c:386
 msgid "attempt to reinitialize repository with different hash"
 msgstr "Versuch, das Repository mit einem anderen Hash zu reinitialisieren"
 
-#: builtin/init-db.c:380 builtin/init-db.c:601
-#, c-format
-msgid "unknown hash algorithm '%s'"
-msgstr "unbekannter Hash-Algorithmus '%s'"
-
-#: builtin/init-db.c:397 builtin/init-db.c:400
+#: builtin/init-db.c:410 builtin/init-db.c:413
 #, c-format
 msgid "%s already exists"
 msgstr "%s existiert bereits"
 
-#: builtin/init-db.c:458
+#: builtin/init-db.c:444
+#, c-format
+msgid "re-init: ignored --initial-branch=%s"
+msgstr "Neu-Initialisierung: --initial-branch=%s ignoriert"
+
+#: builtin/init-db.c:475
 #, c-format
 msgid "Reinitialized existing shared Git repository in %s%s\n"
 msgstr "Bestehendes verteiltes Git-Repository in %s%s neuinitialisiert\n"
 
-#: builtin/init-db.c:459
+#: builtin/init-db.c:476
 #, c-format
 msgid "Reinitialized existing Git repository in %s%s\n"
 msgstr "Bestehendes Git-Repository in %s%s neuinitialisiert\n"
 
-#: builtin/init-db.c:463
+#: builtin/init-db.c:480
 #, c-format
 msgid "Initialized empty shared Git repository in %s%s\n"
 msgstr "Leeres verteiltes Git-Repository in %s%s initialisiert\n"
 
-#: builtin/init-db.c:464
+#: builtin/init-db.c:481
 #, c-format
 msgid "Initialized empty Git repository in %s%s\n"
 msgstr "Leeres Git-Repository in %s%s initialisiert\n"
 
-#: builtin/init-db.c:513
+#: builtin/init-db.c:530
 msgid ""
 "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--"
 "shared[=<permissions>]] [<directory>]"
@@ -15752,33 +15911,37 @@
 "git init [-q | --quiet] [--bare] [--template=<Vorlagenverzeichnis>] [--"
 "shared[=<Berechtigungen>]] [<Verzeichnis>]"
 
-#: builtin/init-db.c:538
+#: builtin/init-db.c:556
 msgid "permissions"
 msgstr "Berechtigungen"
 
-#: builtin/init-db.c:539
+#: builtin/init-db.c:557
 msgid "specify that the git repository is to be shared amongst several users"
 msgstr "angeben, dass das Git-Repository mit mehreren Benutzern geteilt wird"
 
-#: builtin/init-db.c:544
+#: builtin/init-db.c:563
+msgid "override the name of the initial branch"
+msgstr "den Namen des initialen Branches überschreiben"
+
+#: builtin/init-db.c:564
 msgid "hash"
 msgstr "Hash"
 
-#: builtin/init-db.c:545
+#: builtin/init-db.c:565 builtin/show-index.c:22
 msgid "specify the hash algorithm to use"
 msgstr "den zu verwendenen Hash-Algorithmus angeben"
 
-#: builtin/init-db.c:578 builtin/init-db.c:583
+#: builtin/init-db.c:598 builtin/init-db.c:603
 #, c-format
 msgid "cannot mkdir %s"
 msgstr "kann Verzeichnis %s nicht erstellen"
 
-#: builtin/init-db.c:587
+#: builtin/init-db.c:607
 #, c-format
 msgid "cannot chdir to %s"
 msgstr "kann nicht in Verzeichnis %s wechseln"
 
-#: builtin/init-db.c:614
+#: builtin/init-db.c:634
 #, c-format
 msgid ""
 "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
@@ -15787,7 +15950,7 @@
 "%s (oder --work-tree=<Verzeichnis>) nicht erlaubt ohne Spezifizierung von %s "
 "(oder --git-dir=<Verzeichnis>)"
 
-#: builtin/init-db.c:642
+#: builtin/init-db.c:662
 #, c-format
 msgid "Cannot access work tree '%s'"
 msgstr "Kann nicht auf Arbeitsverzeichnis '%s' zugreifen."
@@ -17567,7 +17730,7 @@
 msgid "read object names from the standard input"
 msgstr "Objektnamen von der Standard-Eingabe lesen"
 
-#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:164
+#: builtin/notes.c:954 builtin/prune.c:132 builtin/worktree.c:220
 msgid "do not remove, show only"
 msgstr "nicht löschen, nur anzeigen"
 
@@ -17602,357 +17765,384 @@
 "git pack-objects [<Optionen>...] <Basis-Name> [< <Referenzliste> | < "
 "<Objektliste>]"
 
-#: builtin/pack-objects.c:431
+#: builtin/pack-objects.c:442
 #, c-format
 msgid "bad packed object CRC for %s"
 msgstr "Ungültiges CRC für gepacktes Objekt %s."
 
-#: builtin/pack-objects.c:442
+#: builtin/pack-objects.c:453
 #, c-format
 msgid "corrupt packed object for %s"
 msgstr "Fehlerhaftes gepacktes Objekt für %s."
 
-#: builtin/pack-objects.c:573
+#: builtin/pack-objects.c:584
 #, c-format
 msgid "recursive delta detected for object %s"
 msgstr "Rekursiver Unterschied für Objekt %s festgestellt."
 
-#: builtin/pack-objects.c:784
+#: builtin/pack-objects.c:795
 #, c-format
 msgid "ordered %u objects, expected %<PRIu32>"
 msgstr "%u Objekte geordnet, %<PRIu32> erwartet."
 
-#: builtin/pack-objects.c:973
+#: builtin/pack-objects.c:1003
 msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
 msgstr ""
 "Deaktiviere Schreiben der Bitmap, Pakete wurden durch pack.packSizeLimit\n"
 "aufgetrennt."
 
-#: builtin/pack-objects.c:986
+#: builtin/pack-objects.c:1016
 msgid "Writing objects"
 msgstr "Schreibe Objekte"
 
-#: builtin/pack-objects.c:1047 builtin/update-index.c:90
+#: builtin/pack-objects.c:1077 builtin/update-index.c:90
 #, c-format
 msgid "failed to stat %s"
 msgstr "Konnte '%s' nicht lesen"
 
-#: builtin/pack-objects.c:1100
+#: builtin/pack-objects.c:1130
 #, c-format
 msgid "wrote %<PRIu32> objects while expecting %<PRIu32>"
 msgstr "Schrieb %<PRIu32> Objekte während %<PRIu32> erwartet waren."
 
-#: builtin/pack-objects.c:1298
+#: builtin/pack-objects.c:1347
 msgid "disabling bitmap writing, as some objects are not being packed"
 msgstr ""
 "Deaktiviere Schreiben der Bitmap, da einige Objekte nicht in eine Pack-"
 "Datei\n"
 "geschrieben wurden."
 
-#: builtin/pack-objects.c:1725
+#: builtin/pack-objects.c:1774
 #, c-format
 msgid "delta base offset overflow in pack for %s"
 msgstr "\"delta base offset\" Überlauf in Paket für %s"
 
-#: builtin/pack-objects.c:1734
+#: builtin/pack-objects.c:1783
 #, c-format
 msgid "delta base offset out of bound for %s"
 msgstr "\"delta base offset\" liegt außerhalb des gültigen Bereichs für %s"
 
-#: builtin/pack-objects.c:2005
+#: builtin/pack-objects.c:2054
 msgid "Counting objects"
 msgstr "Zähle Objekte"
 
-#: builtin/pack-objects.c:2150
+#: builtin/pack-objects.c:2199
 #, c-format
 msgid "unable to parse object header of %s"
 msgstr "Konnte Kopfbereich von Objekt '%s' nicht parsen."
 
-#: builtin/pack-objects.c:2220 builtin/pack-objects.c:2236
-#: builtin/pack-objects.c:2246
+#: builtin/pack-objects.c:2269 builtin/pack-objects.c:2285
+#: builtin/pack-objects.c:2295
 #, c-format
 msgid "object %s cannot be read"
 msgstr "Objekt %s kann nicht gelesen werden."
 
-#: builtin/pack-objects.c:2223 builtin/pack-objects.c:2250
+#: builtin/pack-objects.c:2272 builtin/pack-objects.c:2299
 #, c-format
 msgid "object %s inconsistent object length (%<PRIuMAX> vs %<PRIuMAX>)"
 msgstr "Inkonsistente Objektlänge bei Objekt %s (%<PRIuMAX> vs %<PRIuMAX>)"
 
-#: builtin/pack-objects.c:2260
+#: builtin/pack-objects.c:2309
 msgid "suboptimal pack - out of memory"
 msgstr "ungünstiges Packet - Speicher voll"
 
-#: builtin/pack-objects.c:2575
+#: builtin/pack-objects.c:2624
 #, c-format
 msgid "Delta compression using up to %d threads"
 msgstr "Delta-Kompression verwendet bis zu %d Threads."
 
-#: builtin/pack-objects.c:2714
+#: builtin/pack-objects.c:2763
 #, c-format
 msgid "unable to pack objects reachable from tag %s"
 msgstr "Konnte keine Objekte packen, die von Tag %s erreichbar sind."
 
-#: builtin/pack-objects.c:2802
+#: builtin/pack-objects.c:2851
 msgid "Compressing objects"
 msgstr "Komprimiere Objekte"
 
-#: builtin/pack-objects.c:2808
+#: builtin/pack-objects.c:2857
 msgid "inconsistency with delta count"
 msgstr "Inkonsistenz mit der Anzahl von Deltas"
 
-#: builtin/pack-objects.c:2889
+#: builtin/pack-objects.c:2929
+#, c-format
+msgid ""
+"value of uploadpack.blobpackfileuri must be of the form '<object-hash> <pack-"
+"hash> <uri>' (got '%s')"
+msgstr ""
+"Wert für uploadpack.blobpackfileuri muss in der Form '<Objekt-Hash> <Pack-"
+"Hash> <URI>' vorliegen ('%s' erhalten)"
+
+#: builtin/pack-objects.c:2932
+#, c-format
+msgid ""
+"object already configured in another uploadpack.blobpackfileuri (got '%s')"
+msgstr ""
+"Objekt bereits in einem anderen uploadpack.blobpackfileuri konfiguriert "
+"('%s' erhalten)"
+
+#: builtin/pack-objects.c:2961
 #, c-format
 msgid ""
 "expected edge object ID, got garbage:\n"
 " %s"
 msgstr ""
-"Erwartete Randobjekt-ID, erhielt nutzlose Daten:\n"
+"erwartete Randobjekt-ID, erhielt nutzlose Daten:\n"
 " %s"
 
-#: builtin/pack-objects.c:2895
+#: builtin/pack-objects.c:2967
 #, c-format
 msgid ""
 "expected object ID, got garbage:\n"
 " %s"
 msgstr ""
-"Erwartete Objekt-ID, erhielt nutzlose Daten:\n"
+"erwartete Objekt-ID, erhielt nutzlose Daten:\n"
 " %s"
 
-#: builtin/pack-objects.c:2993
+#: builtin/pack-objects.c:3065
 msgid "invalid value for --missing"
-msgstr "Ungültiger Wert für --missing."
+msgstr "ungültiger Wert für --missing"
 
-#: builtin/pack-objects.c:3052 builtin/pack-objects.c:3160
+#: builtin/pack-objects.c:3124 builtin/pack-objects.c:3232
 msgid "cannot open pack index"
-msgstr "Kann Paketindex nicht öffnen."
+msgstr "kann Paketindex nicht öffnen"
 
-#: builtin/pack-objects.c:3083
+#: builtin/pack-objects.c:3155
 #, c-format
 msgid "loose object at %s could not be examined"
-msgstr "Loses Objekt bei %s konnte nicht untersucht werden."
+msgstr "loses Objekt bei %s konnte nicht untersucht werden"
 
-#: builtin/pack-objects.c:3168
+#: builtin/pack-objects.c:3240
 msgid "unable to force loose object"
-msgstr "Konnte loses Objekt nicht erzwingen."
+msgstr "konnte loses Objekt nicht erzwingen"
 
-#: builtin/pack-objects.c:3261
+#: builtin/pack-objects.c:3333
 #, c-format
 msgid "not a rev '%s'"
-msgstr "'%s' ist kein Commit."
+msgstr "'%s' ist kein Commit"
 
-#: builtin/pack-objects.c:3264
+#: builtin/pack-objects.c:3336
 #, c-format
 msgid "bad revision '%s'"
-msgstr "Ungültiger Commit '%s'."
+msgstr "ungültiger Commit '%s'"
 
-#: builtin/pack-objects.c:3289
+#: builtin/pack-objects.c:3361
 msgid "unable to add recent objects"
-msgstr "Konnte jüngste Objekte nicht hinzufügen."
+msgstr "konnte neuere Objekte nicht hinzufügen"
 
-#: builtin/pack-objects.c:3342
+#: builtin/pack-objects.c:3414
 #, c-format
 msgid "unsupported index version %s"
-msgstr "Nicht unterstützte Index-Version %s"
+msgstr "nicht unterstützte Index-Version %s"
 
-#: builtin/pack-objects.c:3346
+#: builtin/pack-objects.c:3418
 #, c-format
 msgid "bad index version '%s'"
-msgstr "Ungültige Index-Version '%s'"
+msgstr "ungültige Index-Version '%s'"
 
-#: builtin/pack-objects.c:3384
+#: builtin/pack-objects.c:3456
 msgid "<version>[,<offset>]"
 msgstr "<Version>[,<Offset>]"
 
-#: builtin/pack-objects.c:3385
+#: builtin/pack-objects.c:3457
 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:3388
+#: builtin/pack-objects.c:3460
 msgid "maximum size of each output pack file"
 msgstr "maximale Größe für jede ausgegebene Paketdatei"
 
-#: builtin/pack-objects.c:3390
+#: builtin/pack-objects.c:3462
 msgid "ignore borrowed objects from alternate object store"
 msgstr "geliehene Objekte von alternativem Objektspeicher ignorieren"
 
-#: builtin/pack-objects.c:3392
+#: builtin/pack-objects.c:3464
 msgid "ignore packed objects"
 msgstr "gepackte Objekte ignorieren"
 
-#: builtin/pack-objects.c:3394
+#: builtin/pack-objects.c:3466
 msgid "limit pack window by objects"
 msgstr "Paketfenster durch Objekte begrenzen"
 
-#: builtin/pack-objects.c:3396
+#: builtin/pack-objects.c:3468
 msgid "limit pack window by memory in addition to object limit"
 msgstr ""
 "Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher begrenzen"
 
-#: builtin/pack-objects.c:3398
+#: builtin/pack-objects.c:3470
 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:3400
+#: builtin/pack-objects.c:3472
 msgid "reuse existing deltas"
 msgstr "existierende Unterschiede wiederverwenden"
 
-#: builtin/pack-objects.c:3402
+#: builtin/pack-objects.c:3474
 msgid "reuse existing objects"
 msgstr "existierende Objekte wiederverwenden"
 
-#: builtin/pack-objects.c:3404
+#: builtin/pack-objects.c:3476
 msgid "use OFS_DELTA objects"
 msgstr "OFS_DELTA Objekte verwenden"
 
-#: builtin/pack-objects.c:3406
+#: builtin/pack-objects.c:3478
 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:3408
+#: builtin/pack-objects.c:3480
 msgid "do not create an empty pack output"
 msgstr "keine leeren Pakete erzeugen"
 
-#: builtin/pack-objects.c:3410
+#: builtin/pack-objects.c:3482
 msgid "read revision arguments from standard input"
 msgstr "Argumente bezüglich Commits von der Standard-Eingabe lesen"
 
-#: builtin/pack-objects.c:3412
+#: builtin/pack-objects.c:3484
 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:3415
+#: builtin/pack-objects.c:3487
 msgid "include objects reachable from any reference"
 msgstr "Objekte einschließen, die von jeder Referenz erreichbar sind"
 
-#: builtin/pack-objects.c:3418
+#: builtin/pack-objects.c:3490
 msgid "include objects referred by reflog entries"
 msgstr ""
 "Objekte einschließen, die von Einträgen des Reflogs referenziert werden"
 
-#: builtin/pack-objects.c:3421
+#: builtin/pack-objects.c:3493
 msgid "include objects referred to by the index"
 msgstr "Objekte einschließen, die vom Index referenziert werden"
 
-#: builtin/pack-objects.c:3424
+#: builtin/pack-objects.c:3496
 msgid "output pack to stdout"
 msgstr "Paket in die Standard-Ausgabe schreiben"
 
-#: builtin/pack-objects.c:3426
+#: builtin/pack-objects.c:3498
 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:3428
+#: builtin/pack-objects.c:3500
 msgid "keep unreachable objects"
 msgstr "nicht erreichbare Objekte behalten"
 
-#: builtin/pack-objects.c:3430
+#: builtin/pack-objects.c:3502
 msgid "pack loose unreachable objects"
 msgstr "nicht erreichbare lose Objekte packen"
 
-#: builtin/pack-objects.c:3432
+#: builtin/pack-objects.c:3504
 msgid "unpack unreachable objects newer than <time>"
 msgstr "nicht erreichbare Objekte entpacken, die neuer als <Zeit> sind"
 
-#: builtin/pack-objects.c:3435
+#: builtin/pack-objects.c:3507
 msgid "use the sparse reachability algorithm"
 msgstr "den \"sparse\" Algorithmus zur Bestimmung der Erreichbarkeit benutzen"
 
-#: builtin/pack-objects.c:3437
+#: builtin/pack-objects.c:3509
 msgid "create thin packs"
 msgstr "dünnere Pakete erzeugen"
 
-#: builtin/pack-objects.c:3439
+#: builtin/pack-objects.c:3511
 msgid "create packs suitable for shallow fetches"
 msgstr ""
 "Pakete geeignet für Abholung mit unvollständiger Historie (shallow) erzeugen"
 
-#: builtin/pack-objects.c:3441
+#: builtin/pack-objects.c:3513
 msgid "ignore packs that have companion .keep file"
 msgstr "Pakete ignorieren, die .keep Dateien haben"
 
-#: builtin/pack-objects.c:3443
+#: builtin/pack-objects.c:3515
 msgid "ignore this pack"
 msgstr "dieses Paket ignorieren"
 
-#: builtin/pack-objects.c:3445
+#: builtin/pack-objects.c:3517
 msgid "pack compression level"
 msgstr "Komprimierungsgrad für Paketierung"
 
-#: builtin/pack-objects.c:3447
+#: builtin/pack-objects.c:3519
 msgid "do not hide commits by grafts"
 msgstr "keine künstlichen Vorgänger-Commits (\"grafts\") verbergen"
 
-#: builtin/pack-objects.c:3449
+#: builtin/pack-objects.c:3521
 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:3451
+#: builtin/pack-objects.c:3523
 msgid "write a bitmap index together with the pack index"
 msgstr "Bitmap-Index zusammen mit Pack-Index schreiben"
 
-#: builtin/pack-objects.c:3455
+#: builtin/pack-objects.c:3527
 msgid "write a bitmap index if possible"
 msgstr "Bitmap-Index schreiben, wenn möglich"
 
-#: builtin/pack-objects.c:3459
+#: builtin/pack-objects.c:3531
 msgid "handling for missing objects"
 msgstr "Behandlung für fehlende Objekte"
 
-#: builtin/pack-objects.c:3462
+#: builtin/pack-objects.c:3534
 msgid "do not pack objects in promisor packfiles"
 msgstr ""
 "keine Objekte aus Packdateien von partiell geklonten Remote-Repositories "
 "packen"
 
-#: builtin/pack-objects.c:3464
+#: builtin/pack-objects.c:3536
 msgid "respect islands during delta compression"
 msgstr "Delta-Islands bei Delta-Kompression beachten"
 
-#: builtin/pack-objects.c:3493
+#: builtin/pack-objects.c:3538
+msgid "protocol"
+msgstr "Protokoll"
+
+#: builtin/pack-objects.c:3539
+msgid "exclude any configured uploadpack.blobpackfileuri with this protocol"
+msgstr ""
+"jegliche konfigurierte uploadpack.blobpackfileuri für dieses Protkoll "
+"ausschließen"
+
+#: builtin/pack-objects.c:3568
 #, c-format
 msgid "delta chain depth %d is too deep, forcing %d"
 msgstr "Tiefe für Verkettung von Unterschieden %d ist zu tief, erzwinge %d"
 
-#: builtin/pack-objects.c:3498
+#: builtin/pack-objects.c:3573
 #, c-format
 msgid "pack.deltaCacheLimit is too high, forcing %d"
 msgstr "pack.deltaCacheLimit ist zu hoch, erzwinge %d"
 
-#: builtin/pack-objects.c:3552
+#: builtin/pack-objects.c:3627
 msgid "--max-pack-size cannot be used to build a pack for transfer"
 msgstr ""
 "--max-pack-size kann nicht für die Erstellung eines Pakets für eine "
 "Übertragung\n"
 "benutzt werden."
 
-#: builtin/pack-objects.c:3554
+#: builtin/pack-objects.c:3629
 msgid "minimum pack size limit is 1 MiB"
 msgstr "Minimales Limit für die Paketgröße ist 1 MiB."
 
-#: builtin/pack-objects.c:3559
+#: builtin/pack-objects.c:3634
 msgid "--thin cannot be used to build an indexable pack"
 msgstr ""
 "--thin kann nicht benutzt werden, um ein indizierbares Paket zu erstellen."
 
-#: builtin/pack-objects.c:3562
+#: builtin/pack-objects.c:3637
 msgid "--keep-unreachable and --unpack-unreachable are incompatible"
 msgstr "--keep-unreachable und --unpack-unreachable sind inkompatibel"
 
-#: builtin/pack-objects.c:3568
+#: builtin/pack-objects.c:3643
 msgid "cannot use --filter without --stdout"
 msgstr "Kann --filter nicht ohne --stdout benutzen."
 
-#: builtin/pack-objects.c:3628
+#: builtin/pack-objects.c:3703
 msgid "Enumerating objects"
 msgstr "Objekte aufzählen"
 
-#: builtin/pack-objects.c:3658
+#: builtin/pack-objects.c:3734
 #, c-format
 msgid ""
 "Total %<PRIu32> (delta %<PRIu32>), reused %<PRIu32> (delta %<PRIu32>), pack-"
@@ -19292,7 +19482,7 @@
 msgid "git receive-pack <git-dir>"
 msgstr "git receive-pack <Git-Verzeichnis>"
 
-#: builtin/receive-pack.c:843
+#: builtin/receive-pack.c:844
 msgid ""
 "By default, updating the current branch in a non-bare repository\n"
 "is denied, because it will make the index and work tree inconsistent\n"
@@ -19324,7 +19514,7 @@
 "setzen Sie die Konfigurationsvariable 'receive.denyCurrentBranch' auf\n"
 "'refuse'."
 
-#: builtin/receive-pack.c:863
+#: builtin/receive-pack.c:864
 msgid ""
 "By default, deleting the current branch is denied, because the next\n"
 "'git clone' won't result in any file checked out, causing confusion.\n"
@@ -19345,11 +19535,11 @@
 "\n"
 "Um diese Meldung zu unterdrücken, setzen Sie die Variable auf 'refuse'."
 
-#: builtin/receive-pack.c:1960
+#: builtin/receive-pack.c:1970
 msgid "quiet"
 msgstr "weniger Ausgaben"
 
-#: builtin/receive-pack.c:1974
+#: builtin/receive-pack.c:1984
 msgid "You must specify a directory."
 msgstr "Sie müssen ein Repository angeben."
 
@@ -20931,6 +21121,14 @@
 msgid "cannot find commit %s (%s)"
 msgstr "kann Commit %s (%s) nicht finden"
 
+#: builtin/show-index.c:21
+msgid "hash-algorithm"
+msgstr "Hash-Algorithmus"
+
+#: builtin/show-index.c:31
+msgid "Unknown hash algorithm"
+msgstr "Unbekannter Hash-Algorithmus"
+
 #: builtin/show-ref.c:12
 msgid ""
 "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --"
@@ -20986,55 +21184,61 @@
 #: builtin/sparse-checkout.c:64
 msgid "this worktree is not sparse (sparse-checkout file may not exist)"
 msgstr ""
-"Dieses Arbeitsverzeichnis ist nicht partiell (Datei für partieller Checkout "
-"existiert eventuell nicht)."
+"dieses Arbeitsverzeichnis ist nicht partiell (Datei für partieller Checkout "
+"existiert eventuell nicht)"
 
-#: builtin/sparse-checkout.c:212
+#: builtin/sparse-checkout.c:216
 msgid "failed to create directory for sparse-checkout file"
 msgstr ""
 "Fehler beim Erstellen eines Verzeichnisses für Datei eines partiellen "
 "Checkouts"
 
-#: builtin/sparse-checkout.c:253
+#: builtin/sparse-checkout.c:257
+msgid "unable to upgrade repository format to enable worktreeConfig"
+msgstr ""
+"Repository-Format konnte nicht erweitert werden, um worktreeConfig zu "
+"aktivieren"
+
+#: builtin/sparse-checkout.c:259
 msgid "failed to set extensions.worktreeConfig setting"
 msgstr "Einstellung für extensions.worktreeConfig konnte nicht gesetzt werden"
 
-#: builtin/sparse-checkout.c:270
+#: builtin/sparse-checkout.c:276
 msgid "git sparse-checkout init [--cone]"
 msgstr "git sparse-checkout init [--cone]"
 
-#: builtin/sparse-checkout.c:289
+#: builtin/sparse-checkout.c:295
 msgid "initialize the sparse-checkout in cone mode"
-msgstr "Initialisiere den partiellen Checkout im Cone-Modus"
+msgstr "initialisiere den partiellen Checkout im Cone-Modus"
 
-#: builtin/sparse-checkout.c:326
+#: builtin/sparse-checkout.c:332
 #, c-format
 msgid "failed to open '%s'"
 msgstr "Fehler beim Öffnen von '%s'"
 
-#: builtin/sparse-checkout.c:383
+#: builtin/sparse-checkout.c:389
 #, c-format
 msgid "could not normalize path %s"
 msgstr "konnte Pfad '%s' nicht normalisieren"
 
-#: builtin/sparse-checkout.c:395
+#: builtin/sparse-checkout.c:401
 msgid "git sparse-checkout (set|add) (--stdin | <patterns>)"
 msgstr "git sparse-checkout (set|add) (--stdin | <Muster>)"
 
-#: builtin/sparse-checkout.c:420
+#: builtin/sparse-checkout.c:426
 #, c-format
 msgid "unable to unquote C-style string '%s'"
 msgstr "konnte Anführungszeichen von C-Style Zeichenkette '%s' nicht entfernen"
 
-#: builtin/sparse-checkout.c:474 builtin/sparse-checkout.c:498
+#: builtin/sparse-checkout.c:480 builtin/sparse-checkout.c:504
 msgid "unable to load existing sparse-checkout patterns"
 msgstr "konnte die existierenden Muster des partiellen Checkouts nicht laden"
 
-#: builtin/sparse-checkout.c:543
+#: builtin/sparse-checkout.c:549
 msgid "read patterns from standard in"
 msgstr "Muster von der Standard-Eingabe lesen"
 
-#: builtin/sparse-checkout.c:580
+#: builtin/sparse-checkout.c:586
 msgid "error while refreshing working directory"
 msgstr "Fehler während der Aktualisierung des Arbeitsverzeichnisses."
 
@@ -21757,12 +21961,38 @@
 msgid "git submodule--helper set-url [--quiet] <path> <newurl>"
 msgstr "git submodule--helper set-url [--quiet] <Pfad> <neue URL>"
 
-#: builtin/submodule--helper.c:2323 git.c:436 git.c:683
+#: builtin/submodule--helper.c:2294
+msgid "set the default tracking branch to master"
+msgstr "Standard-Tracking-Branch auf master setzen"
+
+#: builtin/submodule--helper.c:2296
+msgid "set the default tracking branch"
+msgstr "Standard-Tracking-Branch setzen"
+
+#: builtin/submodule--helper.c:2300
+msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>"
+msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) [<Pfad>]"
+
+#: builtin/submodule--helper.c:2301
+msgid ""
+"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>"
+msgstr ""
+"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <Branch> <Pfad>"
+
+#: builtin/submodule--helper.c:2308
+msgid "--branch or --default required"
+msgstr "Option --branch oder --default erforderlich"
+
+#: builtin/submodule--helper.c:2311
+msgid "--branch and --default are mutually exclusive"
+msgstr "--branch und --default schließen sich gegenseitig aus"
+
+#: builtin/submodule--helper.c:2367 git.c:436 git.c:683
 #, c-format
 msgid "%s doesn't support --super-prefix"
 msgstr "%s unterstützt kein --super-prefix"
 
-#: builtin/submodule--helper.c:2329
+#: builtin/submodule--helper.c:2373
 #, c-format
 msgid "'%s' is not a valid submodule--helper subcommand"
 msgstr "'%s' ist kein gültiger Unterbefehl von submodule--helper"
@@ -22418,206 +22648,198 @@
 msgid "git worktree unlock <path>"
 msgstr "git worktree unlock <Pfad>"
 
-#: builtin/worktree.c:60 builtin/worktree.c:894
+#: builtin/worktree.c:60 builtin/worktree.c:972
 #, c-format
 msgid "failed to delete '%s'"
 msgstr "Fehler beim Löschen von '%s'"
 
-#: builtin/worktree.c:79
-#, c-format
-msgid "Removing worktrees/%s: not a valid directory"
-msgstr "Lösche worktrees/%s: kein gültiges Verzeichnis"
-
 #: builtin/worktree.c:85
-#, c-format
-msgid "Removing worktrees/%s: gitdir file does not exist"
-msgstr "Lösche worktrees/%s: gitdir-Datei existiert nicht"
+msgid "not a valid directory"
+msgstr "kein gültiges Verzeichnis"
 
-#: builtin/worktree.c:90 builtin/worktree.c:99
-#, c-format
-msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
-msgstr "Lösche worktrees/%s: konnte gitdir-Datei (%s) nicht lesen"
+#: builtin/worktree.c:91
+msgid "gitdir file does not exist"
+msgstr "gitdir-Datei existiert nicht"
 
-#: builtin/worktree.c:109
+#: builtin/worktree.c:96 builtin/worktree.c:105
 #, c-format
-msgid ""
-"Removing worktrees/%s: short read (expected %<PRIuMAX> bytes, read "
-"%<PRIuMAX>)"
-msgstr ""
-"Lösche worktrees/%s: read() zu kurz (%<PRIuMAX> Bytes erwartet, %<PRIuMAX> "
-"gelesen)"
+msgid "unable to read gitdir file (%s)"
+msgstr "konnte gitdir-Datei nicht lesen (%s)"
 
-#: builtin/worktree.c:117
+#: builtin/worktree.c:115
 #, c-format
-msgid "Removing worktrees/%s: invalid gitdir file"
-msgstr "Lösche worktrees/%s: ungültige gitdir-Datei"
+msgid "short read (expected %<PRIuMAX> bytes, read %<PRIuMAX>)"
+msgstr "read() zu kurz (%<PRIuMAX> Bytes erwartet, %<PRIuMAX> gelesen)"
 
-#: builtin/worktree.c:126
+#: builtin/worktree.c:123
+msgid "invalid gitdir file"
+msgstr "ungültige gitdir-Datei"
+
+#: builtin/worktree.c:131
+msgid "gitdir file points to non-existent location"
+msgstr "gitdir-Datei verweist auf nicht existierenden Ort"
+
+#: builtin/worktree.c:146
 #, c-format
-msgid "Removing worktrees/%s: gitdir file points to non-existent location"
-msgstr "Lösche worktrees/%s: gitdir-Datei verweist auf nicht existierenden Ort"
+msgid "Removing %s/%s: %s"
+msgstr "Entferne %s/%s: %s"
 
-#: builtin/worktree.c:165
+#: builtin/worktree.c:221
 msgid "report pruned working trees"
 msgstr "entfernte Arbeitsverzeichnisse ausgeben"
 
-#: builtin/worktree.c:167
+#: builtin/worktree.c:223
 msgid "expire working trees older than <time>"
 msgstr "Arbeitsverzeichnisse älter als <Zeit> verfallen lassen"
 
-#: builtin/worktree.c:234
+#: builtin/worktree.c:293
 #, c-format
 msgid "'%s' already exists"
 msgstr "'%s' existiert bereits"
 
-#: builtin/worktree.c:244
+#: builtin/worktree.c:302
 #, c-format
-msgid "unable to re-add worktree '%s'"
-msgstr "Konnte Arbeitsverzeichnis '%s' nicht neu hinzufügen."
+msgid "unusable worktree destination '%s'"
+msgstr "nicht nutzbares Ziel des Arbeitsverzeichnisses '%s'"
 
-#: builtin/worktree.c:249
+#: builtin/worktree.c:307
 #, c-format
 msgid ""
 "'%s' is a missing but locked worktree;\n"
-"use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
+"use '%s -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear"
 msgstr ""
 "'%s' ist ein fehlendes, aber gesperrtes Arbeitsverzeichnis;\n"
-"Benutzen Sie 'add -f -f' zum Überschrieben, oder 'unlock' und 'prune'\n"
+"Benutzen Sie '%s -f -f' zum Überschreiben, oder 'unlock' und 'prune'\n"
 "oder 'remove' zum Löschen."
 
-#: builtin/worktree.c:251
+#: builtin/worktree.c:309
 #, c-format
 msgid ""
 "'%s' is a missing but already registered worktree;\n"
-"use 'add -f' to override, or 'prune' or 'remove' to clear"
+"use '%s -f' to override, or 'prune' or 'remove' to clear"
 msgstr ""
 "'%s' ist ein fehlendes, aber bereits registriertes Arbeitsverzeichnis;\n"
-"Benutzen Sie 'add -f' zum Überschreiben, oder 'prune' oder 'remove' zum\n"
+"Benutzen Sie '%s -f' zum Überschreiben, oder 'prune' oder 'remove' zum\n"
 "Löschen."
 
-#: builtin/worktree.c:301
+#: builtin/worktree.c:360
 #, c-format
 msgid "could not create directory of '%s'"
 msgstr "Konnte Verzeichnis '%s' nicht erstellen."
 
-#: builtin/worktree.c:435 builtin/worktree.c:441
+#: builtin/worktree.c:494 builtin/worktree.c:500
 #, c-format
 msgid "Preparing worktree (new branch '%s')"
 msgstr "Bereite Arbeitsverzeichnis vor (neuer Branch '%s')"
 
-#: builtin/worktree.c:437
+#: builtin/worktree.c:496
 #, c-format
 msgid "Preparing worktree (resetting branch '%s'; was at %s)"
 msgstr "Bereite Arbeitsverzeichnis vor (setze Branch '%s' um; war bei %s)"
 
-#: builtin/worktree.c:446
+#: builtin/worktree.c:505
 #, c-format
 msgid "Preparing worktree (checking out '%s')"
 msgstr "Bereite Arbeitsverzeichnis vor (checke '%s' aus)"
 
-#: builtin/worktree.c:452
+#: builtin/worktree.c:511
 #, c-format
 msgid "Preparing worktree (detached HEAD %s)"
 msgstr "Bereite Arbeitsverzeichnis vor (losgelöster HEAD %s)"
 
-#: builtin/worktree.c:493
+#: builtin/worktree.c:552
 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:496
+#: builtin/worktree.c:555
 msgid "create a new branch"
 msgstr "neuen Branch erstellen"
 
-#: builtin/worktree.c:498
+#: builtin/worktree.c:557
 msgid "create or reset a branch"
 msgstr "Branch erstellen oder umsetzen"
 
-#: builtin/worktree.c:500
+#: builtin/worktree.c:559
 msgid "populate the new working tree"
 msgstr "das neue Arbeitsverzeichnis auschecken"
 
-#: builtin/worktree.c:501
+#: builtin/worktree.c:560
 msgid "keep the new working tree locked"
 msgstr "das neue Arbeitsverzeichnis gesperrt lassen"
 
-#: builtin/worktree.c:504
+#: builtin/worktree.c:563
 msgid "set up tracking mode (see git-branch(1))"
 msgstr "Modus zum Folgen von Branches einstellen (siehe git-branch(1))"
 
-#: builtin/worktree.c:507
+#: builtin/worktree.c:566
 msgid "try to match the new branch name with a remote-tracking branch"
 msgstr ""
 "versuchen, eine Übereinstimmung des Branch-Namens mit einem\n"
 "Remote-Tracking-Branch herzustellen"
 
-#: builtin/worktree.c:515
+#: builtin/worktree.c:574
 msgid "-b, -B, and --detach are mutually exclusive"
 msgstr "-b, -B und --detach schließen sich gegenseitig aus"
 
-#: builtin/worktree.c:576
+#: builtin/worktree.c:635
 msgid "--[no-]track can only be used if a new branch is created"
 msgstr ""
 "--[no]-track kann nur verwendet werden, wenn ein neuer Branch erstellt wird."
 
-#: builtin/worktree.c:676
+#: builtin/worktree.c:755
 msgid "reason for locking"
 msgstr "Sperrgrund"
 
-#: builtin/worktree.c:688 builtin/worktree.c:721 builtin/worktree.c:795
-#: builtin/worktree.c:922
+#: builtin/worktree.c:767 builtin/worktree.c:800 builtin/worktree.c:874
+#: builtin/worktree.c:1000
 #, c-format
 msgid "'%s' is not a working tree"
 msgstr "'%s' ist kein Arbeitsverzeichnis"
 
-#: builtin/worktree.c:690 builtin/worktree.c:723
+#: builtin/worktree.c:769 builtin/worktree.c:802
 msgid "The main working tree cannot be locked or unlocked"
 msgstr "Das Hauptarbeitsverzeichnis kann nicht gesperrt oder entsperrt werden."
 
-#: builtin/worktree.c:695
+#: builtin/worktree.c:774
 #, c-format
 msgid "'%s' is already locked, reason: %s"
 msgstr "'%s' ist bereits gesperrt, Grund: %s"
 
-#: builtin/worktree.c:697
+#: builtin/worktree.c:776
 #, c-format
 msgid "'%s' is already locked"
 msgstr "'%s' ist bereits gesperrt"
 
-#: builtin/worktree.c:725
+#: builtin/worktree.c:804
 #, c-format
 msgid "'%s' is not locked"
 msgstr "'%s' ist nicht gesperrt"
 
-#: builtin/worktree.c:766
+#: builtin/worktree.c:845
 msgid "working trees containing submodules cannot be moved or removed"
 msgstr ""
 "Arbeitsverzeichnisse, die Submodule enthalten, können nicht verschoben oder\n"
 "entfernt werden."
 
-#: builtin/worktree.c:774
+#: builtin/worktree.c:853
 msgid "force move even if worktree is dirty or locked"
 msgstr ""
 "Verschieben erzwingen, auch wenn das Arbeitsverzeichnis geändert oder "
 "gesperrt ist"
 
-#: builtin/worktree.c:797 builtin/worktree.c:924
+#: builtin/worktree.c:876 builtin/worktree.c:1002
 #, c-format
 msgid "'%s' is a main working tree"
 msgstr "'%s' ist ein Hauptarbeitsverzeichnis"
 
-#: builtin/worktree.c:802
+#: builtin/worktree.c:881
 #, c-format
 msgid "could not figure out destination name from '%s'"
 msgstr "Konnte Zielname aus '%s' nicht bestimmen."
 
-#: builtin/worktree.c:808
-#, c-format
-msgid "target '%s' already exists"
-msgstr "Ziel '%s' existiert bereits."
-
-#: builtin/worktree.c:816
+#: builtin/worktree.c:894
 #, c-format
 msgid ""
 "cannot move a locked working tree, lock reason: %s\n"
@@ -22627,7 +22849,7 @@
 "Benutzen Sie 'move -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
 "das Arbeitsverzeichnis."
 
-#: builtin/worktree.c:818
+#: builtin/worktree.c:896
 msgid ""
 "cannot move a locked working tree;\n"
 "use 'move -f -f' to override or unlock first"
@@ -22636,40 +22858,40 @@
 "Benutzen Sie 'move -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
 "das Arbeitsverzeichnis."
 
-#: builtin/worktree.c:821
+#: builtin/worktree.c:899
 #, c-format
 msgid "validation failed, cannot move working tree: %s"
 msgstr "Validierung fehlgeschlagen, kann Arbeitszeichnis nicht verschieben: %s"
 
-#: builtin/worktree.c:826
+#: builtin/worktree.c:904
 #, c-format
 msgid "failed to move '%s' to '%s'"
 msgstr "Fehler beim Verschieben von '%s' nach '%s'"
 
-#: builtin/worktree.c:874
+#: builtin/worktree.c:952
 #, c-format
 msgid "failed to run 'git status' on '%s'"
 msgstr "Fehler beim Ausführen von 'git status' auf '%s'"
 
-#: builtin/worktree.c:878
+#: builtin/worktree.c:956
 #, c-format
 msgid "'%s' contains modified or untracked files, use --force to delete it"
 msgstr ""
 "'%s' enthält geänderte oder nicht versionierte Dateien, benutzen Sie --force "
 "zum Löschen"
 
-#: builtin/worktree.c:883
+#: builtin/worktree.c:961
 #, c-format
 msgid "failed to run 'git status' on '%s', code %d"
 msgstr "Fehler beim Ausführen von 'git status' auf '%s'. Code: %d"
 
-#: builtin/worktree.c:906
+#: builtin/worktree.c:984
 msgid "force removal even if worktree is dirty or locked"
 msgstr ""
 "Löschen erzwingen, auch wenn das Arbeitsverzeichnis geändert oder gesperrt "
 "ist"
 
-#: builtin/worktree.c:929
+#: builtin/worktree.c:1007
 #, c-format
 msgid ""
 "cannot remove a locked working tree, lock reason: %s\n"
@@ -22679,7 +22901,7 @@
 "Benutzen Sie 'remove -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
 "das Arbeitsverzeichnis."
 
-#: builtin/worktree.c:931
+#: builtin/worktree.c:1009
 msgid ""
 "cannot remove a locked working tree;\n"
 "use 'remove -f -f' to override or unlock first"
@@ -22688,7 +22910,7 @@
 "Benutzen Sie 'remove -f -f' zum Überschreiben oder entsperren Sie zuerst\n"
 "das Arbeitsverzeichnis."
 
-#: builtin/worktree.c:934
+#: builtin/worktree.c:1012
 #, c-format
 msgid "validation failed, cannot remove working tree: %s"
 msgstr "Validierung fehlgeschlagen, kann Arbeitsverzeichnis nicht löschen: %s"
@@ -22709,32 +22931,32 @@
 msgid "only useful for debugging"
 msgstr "nur nützlich für Fehlersuche"
 
-#: bugreport.c:14
+#: bugreport.c:15
 msgid "git version:\n"
 msgstr "git Version:\n"
 
-#: bugreport.c:20
+#: bugreport.c:21
 #, c-format
 msgid "uname() failed with error '%s' (%d)\n"
 msgstr "uname() ist fehlgeschlagen mit Fehler '%s' (%d)\n"
 
-#: bugreport.c:30
+#: bugreport.c:31
 msgid "compiler info: "
 msgstr "Compiler Info: "
 
-#: bugreport.c:32
+#: bugreport.c:34
 msgid "libc info: "
 msgstr "libc Info: "
 
-#: bugreport.c:74
+#: bugreport.c:80
 msgid "not run from a git repository - no hooks to show\n"
 msgstr "nicht in einem Git-Repository ausgeführt - keine Hooks zum Anzeigen\n"
 
-#: bugreport.c:84
+#: bugreport.c:90
 msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]"
 msgstr "git bugreport [-o|--output-directory <Datei>] [-s|--suffix <Format>]"
 
-#: bugreport.c:91
+#: bugreport.c:97
 msgid ""
 "Thank you for filling out a Git bug report!\n"
 "Please answer the following questions to help us understand your issue.\n"
@@ -22771,66 +22993,76 @@
 "Bitte überprüfen Sie den restlichen Teil des Fehlerberichts unten.\n"
 "Sie können jede Zeile löschen, die Sie nicht mitteilen möchten.\n"
 
-#: bugreport.c:130
+#: bugreport.c:136
 msgid "specify a destination for the bugreport file"
 msgstr "Speicherort für die Datei des Fehlerberichts angeben"
 
-#: bugreport.c:132
+#: bugreport.c:138
 msgid "specify a strftime format suffix for the filename"
 msgstr "Dateiendung im strftime-Format für den Dateinamen angeben"
 
-#: bugreport.c:156
+#: bugreport.c:162
 #, c-format
 msgid "could not create leading directories for '%s'"
 msgstr "konnte vorangehende Verzeichnisse für '%s' nicht erstellen"
 
-#: bugreport.c:163
+#: bugreport.c:169
 msgid "System Info"
 msgstr "System Info"
 
-#: bugreport.c:166
+#: bugreport.c:172
 msgid "Enabled Hooks"
 msgstr "Aktivierte Hooks"
 
-#: bugreport.c:174
+#: bugreport.c:180
 #, c-format
 msgid "couldn't create a new file at '%s'"
 msgstr "konnte keine neue Datei unter '%s' erstellen"
 
-#: bugreport.c:186
+#: bugreport.c:184
+#, c-format
+msgid "unable to write to %s"
+msgstr "konnte nicht nach %s schreiben"
+
+#: bugreport.c:194
 #, c-format
 msgid "Created new report at '%s'.\n"
 msgstr "Neuer Bericht unter '%s' erstellt.\n"
 
-#: fast-import.c:3085
+#: fast-import.c:3100
 #, c-format
 msgid "Missing from marks for submodule '%s'"
 msgstr "Fehlende 'from'-Markierungen für Submodul '%s'"
 
-#: fast-import.c:3087
+#: fast-import.c:3102
 #, c-format
 msgid "Missing to marks for submodule '%s'"
 msgstr "Fehlende 'to'-Markierungen für Submodul '%s'"
 
-#: fast-import.c:3222
+#: fast-import.c:3237
 #, c-format
 msgid "Expected 'mark' command, got %s"
 msgstr "'mark' Befehl erwartet, '%s' bekommen"
 
-#: fast-import.c:3227
+#: fast-import.c:3242
 #, c-format
 msgid "Expected 'to' command, got %s"
 msgstr "'to' Befehl erwartet, '%s' bekommen"
 
-#: fast-import.c:3317
+#: fast-import.c:3334
 msgid "Expected format name:filename for submodule rewrite option"
 msgstr "Format 'Name:Dateiname' für Submodul-Rewrite-Option erwartet"
 
-#: fast-import.c:3371
+#: fast-import.c:3388
 #, c-format
 msgid "feature '%s' forbidden in input without --allow-unsafe-features"
 msgstr "Feature '%s' verboten in Eingabe ohne Option --allow-unsafe-features"
 
+#: http-fetch.c:111
+#, c-format
+msgid "argument to --packfile must be a valid hash (got '%s')"
+msgstr "Argument für --packfile muss ein gültiger Hash sein ('%s' erhalten)"
+
 #: credential-cache--daemon.c:223
 #, c-format
 msgid ""
@@ -23012,31 +23244,31 @@
 "Das Anheften des öffentlichen Schlüssels wird mit cURL < 7.44.0\n"
 "nicht unterstützt."
 
-#: http.c:914
+#: http.c:910
 msgid "CURLSSLOPT_NO_REVOKE not supported with cURL < 7.44.0"
 msgstr "CURLSSLOPT_NO_REVOKE wird mit cURL < 7.44.0 nicht unterstützt."
 
-#: http.c:993
+#: http.c:989
 msgid "Protocol restrictions not supported with cURL < 7.19.4"
 msgstr "Protokollbeschränkungen werden mit cURL < 7.19.4 nicht unterstützt."
 
-#: http.c:1139
+#: http.c:1132
 #, c-format
 msgid "Unsupported SSL backend '%s'. Supported SSL backends:"
 msgstr "Nicht unterstütztes SSL-Backend '%s'. Unterstützte SSL-Backends:"
 
-#: http.c:1146
+#: http.c:1139
 #, c-format
 msgid "Could not set SSL backend to '%s': cURL was built without SSL backends"
 msgstr ""
 "Konnte SSL-Backend nicht zu '%s' setzen: cURL wurde ohne SSL-Backends gebaut."
 
-#: http.c:1150
+#: http.c:1143
 #, c-format
 msgid "Could not set SSL backend to '%s': already set"
 msgstr "Konnte SSL-Backend nicht zu '%s' setzen: bereits gesetzt"
 
-#: http.c:2032
+#: http.c:2025
 #, c-format
 msgid ""
 "unable to update url base from redirection:\n"
@@ -23047,113 +23279,136 @@
 "  gefragt nach: %s\n"
 "    umgeleitet: %s"
 
-#: remote-curl.c:166
+#: remote-curl.c:168
 #, c-format
 msgid "invalid quoting in push-option value: '%s'"
 msgstr "Ungültiges Quoting beim \"push-option\"-Wert: '%s'"
 
-#: remote-curl.c:263
+#: remote-curl.c:295
 #, c-format
 msgid "%sinfo/refs not valid: is this a git repository?"
 msgstr "%sinfo/refs nicht gültig: Ist das ein Git-Repository?"
 
-#: remote-curl.c:364
+#: remote-curl.c:396
 msgid "invalid server response; expected service, got flush packet"
 msgstr "Ungültige Antwort des Servers. Service erwartet, Flush-Paket bekommen"
 
-#: remote-curl.c:395
+#: remote-curl.c:427
 #, c-format
 msgid "invalid server response; got '%s'"
 msgstr "Ungültige Serverantwort; '%s' bekommen"
 
-#: remote-curl.c:455
+#: remote-curl.c:487
 #, c-format
 msgid "repository '%s' not found"
 msgstr "Repository '%s' nicht gefunden."
 
-#: remote-curl.c:459
+#: remote-curl.c:491
 #, c-format
 msgid "Authentication failed for '%s'"
 msgstr "Authentifizierung fehlgeschlagen für '%s'"
 
-#: remote-curl.c:463
+#: remote-curl.c:495
 #, c-format
 msgid "unable to access '%s': %s"
 msgstr "konnte nicht auf '%s' zugreifen: %s"
 
-#: remote-curl.c:469
+#: remote-curl.c:501
 #, c-format
 msgid "redirecting to %s"
-msgstr "Leite nach %s um"
+msgstr "Umleitung nach %s"
 
-#: remote-curl.c:593
+#: remote-curl.c:630
 msgid "shouldn't have EOF when not gentle on EOF"
 msgstr "sollte kein EOF haben, wenn nicht behutsam mit EOF"
 
-#: remote-curl.c:673
+#: remote-curl.c:642
+msgid "remote server sent stateless separator"
+msgstr "Server sendete zustandslosen Separator"
+
+#: remote-curl.c:712
 msgid "unable to rewind rpc post data - try increasing http.postBuffer"
 msgstr ""
-"Konnte nicht RPC-POST-Daten zurückspulen - Versuchen Sie http.postBuffer zu "
+"konnte nicht RPC-POST-Daten zurückspulen - Versuchen Sie http.postBuffer zu "
 "erhöhen"
 
-#: remote-curl.c:733
+#: remote-curl.c:742
+#, c-format
+msgid "remote-curl: bad line length character: %.4s"
+msgstr "remote-curl: ungültiges Zeichen für Zeilenlänge: %.4s"
+
+#: remote-curl.c:744
+msgid "remote-curl: unexpected response end packet"
+msgstr "remote-curl: unerwartetes Antwort-Endpaket"
+
+#: remote-curl.c:820
 #, c-format
 msgid "RPC failed; %s"
 msgstr "RPC fehlgeschlagen; %s"
 
-#: remote-curl.c:773
+#: remote-curl.c:860
 msgid "cannot handle pushes this big"
 msgstr "Kann solche großen Übertragungen nicht verarbeiten."
 
-#: remote-curl.c:888
+#: remote-curl.c:975
 #, c-format
 msgid "cannot deflate request; zlib deflate error %d"
 msgstr "Kann Request nicht komprimieren; \"zlib deflate\"-Fehler %d"
 
-#: remote-curl.c:892
+#: remote-curl.c:979
 #, c-format
 msgid "cannot deflate request; zlib end error %d"
 msgstr "Kann Request nicht komprimieren; \"zlib end\"-Fehler %d"
 
-#: remote-curl.c:1023
+#: remote-curl.c:1029
+#, c-format
+msgid "%d bytes of length header were received"
+msgstr "%d Bytes des Längen-Headers wurden empfangen"
+
+#: remote-curl.c:1031
+#, c-format
+msgid "%d bytes of body are still expected"
+msgstr "%d Bytes des Bodys werden noch erwartet"
+
+#: remote-curl.c:1120
 msgid "dumb http transport does not support shallow capabilities"
 msgstr "Dumb HTTP-Transport unterstützt keine shallow-Funktionen"
 
-#: remote-curl.c:1038
+#: remote-curl.c:1135
 msgid "fetch failed."
 msgstr "\"fetch\" fehlgeschlagen."
 
-#: remote-curl.c:1086
+#: remote-curl.c:1183
 msgid "cannot fetch by sha1 over smart http"
 msgstr "Kann SHA-1 nicht über Smart-HTTP anfordern"
 
-#: remote-curl.c:1130 remote-curl.c:1136
+#: remote-curl.c:1227 remote-curl.c:1233
 #, c-format
 msgid "protocol error: expected sha/ref, got '%s'"
 msgstr "Protokollfehler: SHA-1/Referenz erwartet, '%s' bekommen"
 
-#: remote-curl.c:1148 remote-curl.c:1263
+#: remote-curl.c:1245 remote-curl.c:1360
 #, c-format
 msgid "http transport does not support %s"
 msgstr "HTTP-Transport unterstützt nicht %s"
 
-#: remote-curl.c:1184
+#: remote-curl.c:1281
 msgid "git-http-push failed"
 msgstr "\"git-http-push\" fehlgeschlagen"
 
-#: remote-curl.c:1369
+#: remote-curl.c:1466
 msgid "remote-curl: usage: git remote-curl <remote> [<url>]"
 msgstr "remote-curl: Verwendung: git remote-curl <Remote-Repository> [<URL>]"
 
-#: remote-curl.c:1401
+#: remote-curl.c:1498
 msgid "remote-curl: error reading command stream from git"
 msgstr "remote-curl: Fehler beim Lesen des Kommando-Streams von Git"
 
-#: remote-curl.c:1408
+#: remote-curl.c:1505
 msgid "remote-curl: fetch attempted without a local repo"
 msgstr "remote-curl: \"fetch\" ohne lokales Repository versucht"
 
-#: remote-curl.c:1448
+#: remote-curl.c:1546
 #, c-format
 msgid "remote-curl: unknown command '%s' from git"
 msgstr "remote-curl: Unbekannter Befehl '%s' von Git"
@@ -23741,7 +23996,7 @@
 
 #: command-list.h:170
 msgid "Git's i18n setup code for shell scripts"
-msgstr "Git's i18n-Konfigurationscode für Shell-Skripte"
+msgstr "Gits i18n-Konfigurationscode für Shell-Skripte"
 
 #: command-list.h:171
 msgid "Common Git shell script setup code"
@@ -24213,27 +24468,27 @@
 msgid "Failed to recurse into submodule path '$displaypath'"
 msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'"
 
-#: git-submodule.sh:878
+#: git-submodule.sh:852
 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:930
+#: git-submodule.sh:904
 #, sh-format
 msgid "unexpected mode $mod_dst"
 msgstr "unerwarteter Modus $mod_dst"
 
-#: git-submodule.sh:950
+#: git-submodule.sh:924
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_src"
 msgstr "  Warnung: $display_name beinhaltet nicht Commit $sha1_src"
 
-#: git-submodule.sh:953
+#: git-submodule.sh:927
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commit $sha1_dst"
 msgstr "  Warnung: $display_name beinhaltet nicht Commit $sha1_dst"
 
-#: git-submodule.sh:956
+#: git-submodule.sh:930
 #, sh-format
 msgid "  Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst"
 msgstr ""
@@ -24672,7 +24927,7 @@
 msgstr[0] "%d Pfad angefasst\n"
 msgstr[1] "%d Pfade angefasst\n"
 
-#: git-add--interactive.perl:1053
+#: git-add--interactive.perl:1055
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for staging."
@@ -24680,7 +24935,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n"
 "Patch-Block direkt zum Hinzufügen zur Staging-Area markiert."
 
-#: git-add--interactive.perl:1056
+#: git-add--interactive.perl:1058
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for stashing."
@@ -24688,7 +24943,7 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n"
 "Patch-Block direkt zum Hinzufügen zum Stash markiert."
 
-#: git-add--interactive.perl:1059
+#: git-add--interactive.perl:1061
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for unstaging."
@@ -24696,8 +24951,8 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n"
 "Patch-Block direkt zum Entfernen aus der Staging-Area markiert."
 
-#: git-add--interactive.perl:1062 git-add--interactive.perl:1071
-#: git-add--interactive.perl:1077
+#: git-add--interactive.perl:1064 git-add--interactive.perl:1073
+#: git-add--interactive.perl:1079
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for applying."
@@ -24705,8 +24960,8 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n"
 "Patch-Block direkt zum Anwenden markiert."
 
-#: git-add--interactive.perl:1065 git-add--interactive.perl:1068
-#: git-add--interactive.perl:1074
+#: git-add--interactive.perl:1067 git-add--interactive.perl:1070
+#: git-add--interactive.perl:1076
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be\n"
 "marked for discarding."
@@ -24714,13 +24969,13 @@
 "Wenn der Patch sauber angewendet werden kann, wird der bearbeitete\n"
 "Patch-Block direkt zum Verwerfen markiert."
 
-#: git-add--interactive.perl:1111
+#: git-add--interactive.perl:1113
 #, perl-format
 msgid "failed to open hunk edit file for writing: %s"
 msgstr ""
 "Fehler beim Öffnen von Editier-Datei eines Patch-Blocks zum Schreiben: %s"
 
-#: git-add--interactive.perl:1118
+#: git-add--interactive.perl:1120
 #, perl-format
 msgid ""
 "---\n"
@@ -24733,12 +24988,12 @@
 "Um '%s' Zeilen zu entfernen, löschen Sie diese.\n"
 "Zeilen, die mit %s beginnen, werden entfernt.\n"
 
-#: git-add--interactive.perl:1140
+#: git-add--interactive.perl:1142
 #, perl-format
 msgid "failed to open hunk edit file for reading: %s"
 msgstr "Fehler beim Öffnen von Editier-Datei eines Patch-Blocks zum Lesen: %s"
 
-#: git-add--interactive.perl:1248
+#: git-add--interactive.perl:1250
 msgid ""
 "y - stage this hunk\n"
 "n - do not stage this hunk\n"
@@ -24754,7 +25009,7 @@
 "d - diesen oder alle weiteren Patch-Blöcke in dieser Datei nicht zum Commit "
 "vormerken"
 
-#: git-add--interactive.perl:1254
+#: git-add--interactive.perl:1256
 msgid ""
 "y - stash this hunk\n"
 "n - do not stash this hunk\n"
@@ -24768,7 +25023,7 @@
 "a - diesen und alle weiteren Patch-Blöcke dieser Datei stashen\n"
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht stashen"
 
-#: git-add--interactive.perl:1260
+#: git-add--interactive.perl:1262
 msgid ""
 "y - unstage this hunk\n"
 "n - do not unstage this hunk\n"
@@ -24782,7 +25037,7 @@
 "a - diesen und alle weiteren Patch-Blöcke dieser Datei unstashen\n"
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht unstashen"
 
-#: git-add--interactive.perl:1266
+#: git-add--interactive.perl:1268
 msgid ""
 "y - apply this hunk to index\n"
 "n - do not apply this hunk to index\n"
@@ -24799,7 +25054,7 @@
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht auf den Index "
 "anwenden"
 
-#: git-add--interactive.perl:1272 git-add--interactive.perl:1290
+#: git-add--interactive.perl:1274 git-add--interactive.perl:1292
 msgid ""
 "y - discard this hunk from worktree\n"
 "n - do not discard this hunk from worktree\n"
@@ -24816,7 +25071,7 @@
 "d - diesen oder alle weiteren Patch-Blöcke dieser Datei nicht im "
 "Arbeitsverzeichnis verwerfen"
 
-#: git-add--interactive.perl:1278
+#: git-add--interactive.perl:1280
 msgid ""
 "y - discard this hunk from index and worktree\n"
 "n - do not discard this hunk from index and worktree\n"
@@ -24831,7 +25086,7 @@
 "a - diesen und alle weiteren Patch-Blöcke in der Datei verwerfen\n"
 "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht verwerfen"
 
-#: git-add--interactive.perl:1284
+#: git-add--interactive.perl:1286
 msgid ""
 "y - apply this hunk to index and worktree\n"
 "n - do not apply this hunk to index and worktree\n"
@@ -24845,7 +25100,7 @@
 "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n"
 "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht anwenden"
 
-#: git-add--interactive.perl:1296
+#: git-add--interactive.perl:1298
 msgid ""
 "y - apply this hunk to worktree\n"
 "n - do not apply this hunk to worktree\n"
@@ -24859,7 +25114,7 @@
 "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n"
 "d - diesen und alle weiteren Patch-Blöcke in der Datei nicht anwenden"
 
-#: git-add--interactive.perl:1311
+#: git-add--interactive.perl:1313
 msgid ""
 "g - select a hunk to go to\n"
 "/ - search for a hunk matching the given regex\n"
@@ -24883,87 +25138,92 @@
 "e - aktuellen Patch-Block manuell editieren\n"
 "? - Hilfe anzeigen\n"
 
-#: git-add--interactive.perl:1342
+#: git-add--interactive.perl:1344
 msgid "The selected hunks do not apply to the index!\n"
 msgstr ""
 "Die ausgewählten Patch-Blöcke können nicht auf den Index angewendet werden!\n"
 
-#: git-add--interactive.perl:1357
+#: git-add--interactive.perl:1359
 #, perl-format
 msgid "ignoring unmerged: %s\n"
 msgstr "ignoriere nicht zusammengeführte Datei: %s\n"
 
-#: git-add--interactive.perl:1468
+#: git-add--interactive.perl:1478
 #, perl-format
 msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? "
 msgstr "Modusänderung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
 
-#: git-add--interactive.perl:1469
+#: git-add--interactive.perl:1479
 #, perl-format
 msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? "
 msgstr "Löschung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
 
-#: git-add--interactive.perl:1470
+#: git-add--interactive.perl:1480
+#, perl-format
+msgid "Apply addition to worktree [y,n,q,a,d%s,?]? "
+msgstr "Ergänzung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
+
+#: git-add--interactive.perl:1481
 #, perl-format
 msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "Diesen Patch-Block auf das Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? "
 
-#: git-add--interactive.perl:1570
+#: git-add--interactive.perl:1587
 msgid "No other hunks to goto\n"
 msgstr "Keine anderen Patch-Blöcke verbleibend\n"
 
-#: git-add--interactive.perl:1588
+#: git-add--interactive.perl:1605
 #, perl-format
 msgid "Invalid number: '%s'\n"
 msgstr "Ungültige Nummer: '%s'\n"
 
-#: git-add--interactive.perl:1593
+#: git-add--interactive.perl:1610
 #, perl-format
 msgid "Sorry, only %d hunk available.\n"
 msgid_plural "Sorry, only %d hunks available.\n"
 msgstr[0] "Entschuldigung, nur %d Patch-Block verfügbar.\n"
 msgstr[1] "Entschuldigung, nur %d Patch-Blöcke verfügbar.\n"
 
-#: git-add--interactive.perl:1619
+#: git-add--interactive.perl:1636
 msgid "No other hunks to search\n"
 msgstr "Keine anderen Patch-Blöcke zum Durchsuchen\n"
 
-#: git-add--interactive.perl:1636
+#: git-add--interactive.perl:1653
 #, perl-format
 msgid "Malformed search regexp %s: %s\n"
 msgstr "Fehlerhafter regulärer Ausdruck für Suche %s: %s\n"
 
-#: git-add--interactive.perl:1646
+#: git-add--interactive.perl:1663
 msgid "No hunk matches the given pattern\n"
 msgstr "Kein Patch-Block entspricht dem angegebenen Muster\n"
 
-#: git-add--interactive.perl:1658 git-add--interactive.perl:1680
+#: git-add--interactive.perl:1675 git-add--interactive.perl:1697
 msgid "No previous hunk\n"
 msgstr "Kein vorheriger Patch-Block\n"
 
-#: git-add--interactive.perl:1667 git-add--interactive.perl:1686
+#: git-add--interactive.perl:1684 git-add--interactive.perl:1703
 msgid "No next hunk\n"
 msgstr "Kein folgender Patch-Block\n"
 
-#: git-add--interactive.perl:1692
+#: git-add--interactive.perl:1709
 msgid "Sorry, cannot split this hunk\n"
 msgstr "Entschuldigung, kann diesen Patch-Block nicht aufteilen.\n"
 
-#: git-add--interactive.perl:1698
+#: git-add--interactive.perl:1715
 #, perl-format
 msgid "Split into %d hunk.\n"
 msgid_plural "Split into %d hunks.\n"
 msgstr[0] "In %d Patch-Block aufgeteilt.\n"
 msgstr[1] "In %d Patch-Blöcke aufgeteilt.\n"
 
-#: git-add--interactive.perl:1708
+#: git-add--interactive.perl:1725
 msgid "Sorry, cannot edit this hunk\n"
 msgstr "Entschuldigung, kann diesen Patch-Block nicht bearbeiten.\n"
 
 #. TRANSLATORS: please do not translate the command names
 #. 'status', 'update', 'revert', etc.
-#: git-add--interactive.perl:1773
+#: git-add--interactive.perl:1790
 msgid ""
 "status        - show paths with changes\n"
 "update        - add working tree state to the staged set of changes\n"
@@ -24982,19 +25242,19 @@
 "diff          - Unterschiede zwischen HEAD und Index anzeigen\n"
 "add untracked - Inhalte von unversionierten Dateien zum Commit vormerken\n"
 
-#: git-add--interactive.perl:1790 git-add--interactive.perl:1795
-#: git-add--interactive.perl:1798 git-add--interactive.perl:1805
-#: git-add--interactive.perl:1808 git-add--interactive.perl:1815
-#: git-add--interactive.perl:1819 git-add--interactive.perl:1825
+#: git-add--interactive.perl:1807 git-add--interactive.perl:1812
+#: git-add--interactive.perl:1815 git-add--interactive.perl:1822
+#: git-add--interactive.perl:1825 git-add--interactive.perl:1832
+#: git-add--interactive.perl:1836 git-add--interactive.perl:1842
 msgid "missing --"
 msgstr "-- fehlt"
 
-#: git-add--interactive.perl:1821
+#: git-add--interactive.perl:1838
 #, perl-format
 msgid "unknown --patch mode: %s"
 msgstr "Unbekannter --patch Modus: %s"
 
-#: git-add--interactive.perl:1827 git-add--interactive.perl:1833
+#: git-add--interactive.perl:1844 git-add--interactive.perl:1850
 #, perl-format
 msgid "invalid argument %s, expecting --"
 msgstr "ungültiges Argument %s, erwarte --"
@@ -25325,56 +25585,56 @@
 msgid "(mbox) Adding to: %s from line '%s'\n"
 msgstr "(mbox) Füge to: hinzu: %s von Zeile '%s'\n"
 
-#: git-send-email.perl:1718
+#: git-send-email.perl:1722
 #, perl-format
 msgid "(non-mbox) Adding cc: %s from line '%s'\n"
 msgstr "(non-mbox) Füge cc: hinzu: %s von Zeile '%s'\n"
 
-#: git-send-email.perl:1753
+#: git-send-email.perl:1757
 #, perl-format
 msgid "(body) Adding cc: %s from line '%s'\n"
 msgstr "(body) Füge cc: hinzu: %s von Zeile '%s'\n"
 
-#: git-send-email.perl:1864
+#: git-send-email.perl:1868
 #, perl-format
 msgid "(%s) Could not execute '%s'"
 msgstr "(%s) Konnte '%s' nicht ausführen"
 
-#: git-send-email.perl:1871
+#: git-send-email.perl:1875
 #, perl-format
 msgid "(%s) Adding %s: %s from: '%s'\n"
 msgstr "(%s) Füge %s: %s hinzu von: '%s'\n"
 
-#: git-send-email.perl:1875
+#: git-send-email.perl:1879
 #, perl-format
 msgid "(%s) failed to close pipe to '%s'"
 msgstr "(%s) Fehler beim Schließen der Pipe nach '%s'"
 
-#: git-send-email.perl:1905
+#: git-send-email.perl:1909
 msgid "cannot send message as 7bit"
 msgstr "Kann Nachricht nicht als 7bit versenden."
 
-#: git-send-email.perl:1913
+#: git-send-email.perl:1917
 msgid "invalid transfer encoding"
 msgstr "Ungültiges Transfer-Encoding"
 
-#: git-send-email.perl:1954 git-send-email.perl:2006 git-send-email.perl:2016
+#: git-send-email.perl:1958 git-send-email.perl:2010 git-send-email.perl:2020
 #, perl-format
 msgid "unable to open %s: %s\n"
 msgstr "konnte %s nicht öffnen: %s\n"
 
-#: git-send-email.perl:1957
+#: git-send-email.perl:1961
 #, perl-format
 msgid "%s: patch contains a line longer than 998 characters"
 msgstr "%s: Patch enthält eine Zeile, die länger als 998 Zeichen ist"
 
-#: git-send-email.perl:1974
+#: git-send-email.perl:1978
 #, perl-format
 msgid "Skipping %s with backup suffix '%s'.\n"
 msgstr "Lasse %s mit Backup-Suffix '%s' aus.\n"
 
 #. TRANSLATORS: please keep "[y|N]" as is.
-#: git-send-email.perl:1978
+#: git-send-email.perl:1982
 #, perl-format
 msgid "Do you really want to send %s? [y|N]: "
 msgstr "Wollen Sie %s wirklich versenden? [y|N]: "
diff --git a/po/es.po b/po/es.po
index 97bd3e2..41a72ca 100644
--- a/po/es.po
+++ b/po/es.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: 2020-05-15 09:11+0800\n"
-"PO-Revision-Date: 2020-05-17 18:49-0500\n"
+"POT-Creation-Date: 2020-07-10 09:53+0800\n"
+"PO-Revision-Date: 2020-07-26 10:11-0500\n"
 "Last-Translator: christopher.diaz.riv@gmail.com\n"
 "Language-Team: CodeLabora <codelabora@gmail.com>\n"
 "Language: es\n"
@@ -111,21 +111,21 @@
 msgid "ignoring unmerged: %s"
 msgstr "ignorando lo no fusionado: %s"
 
-#: add-interactive.c:929 add-patch.c:1675 git-add--interactive.perl:1366
+#: add-interactive.c:929 add-patch.c:1691 git-add--interactive.perl:1368
 #, c-format
 msgid "Only binary files changed.\n"
 msgstr "Solo cambiaron archivos binarios.\n"
 
-#: add-interactive.c:931 add-patch.c:1673 git-add--interactive.perl:1368
+#: add-interactive.c:931 add-patch.c:1689 git-add--interactive.perl:1370
 #, c-format
 msgid "No changes.\n"
 msgstr "Sin cambios.\n"
 
-#: add-interactive.c:935 git-add--interactive.perl:1376
+#: add-interactive.c:935 git-add--interactive.perl:1378
 msgid "Patch update"
 msgstr "Actualización del parche"
 
-#: add-interactive.c:974 git-add--interactive.perl:1754
+#: add-interactive.c:974 git-add--interactive.perl:1771
 msgid "Review diff"
 msgstr "Revisión de  diff"
 
@@ -194,11 +194,11 @@
 msgid "(empty) select nothing"
 msgstr "(vacío) selecciona nada"
 
-#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1851
+#: add-interactive.c:1083 builtin/clean.c:816 git-add--interactive.perl:1868
 msgid "*** Commands ***"
 msgstr "*** Comandos ***"
 
-#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1848
+#: add-interactive.c:1084 builtin/clean.c:817 git-add--interactive.perl:1865
 msgid "What now"
 msgstr "Ahora que"
 
@@ -215,7 +215,7 @@
 #: builtin/merge.c:276 builtin/pull.c:190 builtin/submodule--helper.c:409
 #: builtin/submodule--helper.c:1394 builtin/submodule--helper.c:1397
 #: builtin/submodule--helper.c:1902 builtin/submodule--helper.c:1905
-#: builtin/submodule--helper.c:2148 bugreport.c:129
+#: builtin/submodule--helper.c:2148 bugreport.c:135
 #: git-add--interactive.perl:213
 msgid "path"
 msgstr "ruta"
@@ -224,27 +224,32 @@
 msgid "could not refresh index"
 msgstr "no se pudo refrescar el index"
 
-#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1765
+#: add-interactive.c:1157 builtin/clean.c:781 git-add--interactive.perl:1782
 #, c-format
 msgid "Bye.\n"
 msgstr "Adiós.\n"
 
-#: add-patch.c:34 git-add--interactive.perl:1428
+#: add-patch.c:34 git-add--interactive.perl:1430
 #, c-format, perl-format
 msgid "Stage mode change [y,n,q,a,d%s,?]? "
 msgstr "¿Cambio de modo de stage [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:35 git-add--interactive.perl:1429
+#: add-patch.c:35 git-add--interactive.perl:1431
 #, c-format, perl-format
 msgid "Stage deletion [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar stage al borrado [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:36 git-add--interactive.perl:1430
+#: add-patch.c:36 git-add--interactive.perl:1432
+#, c-format, perl-format
+msgid "Stage addition [y,n,q,a,d%s,?]? "
+msgstr "¿Agregar al stage [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:37 git-add--interactive.perl:1433
 #, c-format, perl-format
 msgid "Stage this hunk [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar stage a este hunk [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:38
+#: add-patch.c:39
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "staging."
@@ -252,7 +257,7 @@
 "Si el parche aplica limpiamente, el hunk editado sera marcado inmediatamente "
 "para el área de stage."
 
-#: add-patch.c:41
+#: add-patch.c:42
 msgid ""
 "y - stage this hunk\n"
 "n - do not stage this hunk\n"
@@ -267,22 +272,27 @@
 "d - no aplicar stage a este hunk o a ninguno de los posteriores en este "
 "archivo\n"
 
-#: add-patch.c:55 git-add--interactive.perl:1433
+#: add-patch.c:56 git-add--interactive.perl:1436
 #, c-format, perl-format
 msgid "Stash mode change [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar stash al cambio de modo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:56 git-add--interactive.perl:1434
+#: add-patch.c:57 git-add--interactive.perl:1437
 #, c-format, perl-format
 msgid "Stash deletion [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar stash al borrado [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:57 git-add--interactive.perl:1435
+#: add-patch.c:58 git-add--interactive.perl:1438
+#, c-format, perl-format
+msgid "Stash addition [y,n,q,a,d%s,?]? "
+msgstr "¿Agregar al stash [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:59 git-add--interactive.perl:1439
 #, c-format, perl-format
 msgid "Stash this hunk [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar stash a este hunk [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:59
+#: add-patch.c:61
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "stashing."
@@ -290,7 +300,7 @@
 "Si el parche aplica limpiamente, el hunk editado sera marcado inmediatamente "
 "para aplicar stash."
 
-#: add-patch.c:62
+#: add-patch.c:64
 msgid ""
 "y - stash this hunk\n"
 "n - do not stash this hunk\n"
@@ -304,22 +314,27 @@
 "a - aplicar stash a este hunk y a todos los posteriores en el archivo\n"
 "d - no aplicar stash a este hunk o ninguno de los posteriores en el archivo\n"
 
-#: add-patch.c:78 git-add--interactive.perl:1438
+#: add-patch.c:80 git-add--interactive.perl:1442
 #, c-format, perl-format
 msgid "Unstage mode change [y,n,q,a,d%s,?]? "
 msgstr "¿Sacar cambio de modo del stage [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:79 git-add--interactive.perl:1439
+#: add-patch.c:81 git-add--interactive.perl:1443
 #, c-format, perl-format
 msgid "Unstage deletion [y,n,q,a,d%s,?]? "
 msgstr "¿Sacar borrado del stage [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:80 git-add--interactive.perl:1440
+#: add-patch.c:82 git-add--interactive.perl:1444
+#, c-format, perl-format
+msgid "Unstage addition [y,n,q,a,d%s,?]? "
+msgstr "¿Quitar adición al stage [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:83 git-add--interactive.perl:1445
 #, c-format, perl-format
 msgid "Unstage this hunk [y,n,q,a,d%s,?]? "
 msgstr "¿Sacar este hunk del stage [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:82
+#: add-patch.c:85
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "unstaging."
@@ -327,7 +342,7 @@
 "Si el parche aplica limpiamente, el hunk editado sera marcado inmediatamente "
 "para sacar del área de stage."
 
-#: add-patch.c:85
+#: add-patch.c:88
 msgid ""
 "y - unstage this hunk\n"
 "n - do not unstage this hunk\n"
@@ -342,22 +357,27 @@
 "d - no sacar del area de stage este hunk o ninguno de los posteriores en el "
 "archivo\n"
 
-#: add-patch.c:100 git-add--interactive.perl:1443
+#: add-patch.c:103 git-add--interactive.perl:1448
 #, c-format, perl-format
 msgid "Apply mode change to index [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar cambio de modo al índice [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:101 git-add--interactive.perl:1444
+#: add-patch.c:104 git-add--interactive.perl:1449
 #, c-format, perl-format
 msgid "Apply deletion to index [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar borrado al índice [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:102 git-add--interactive.perl:1445
+#: add-patch.c:105 git-add--interactive.perl:1450
+#, c-format, perl-format
+msgid "Apply addition to index [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar adición al índice [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:106 git-add--interactive.perl:1451
 #, c-format, perl-format
 msgid "Apply this hunk to index [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar este hunk al índice [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:104 add-patch.c:169 add-patch.c:212
+#: add-patch.c:108 add-patch.c:176 add-patch.c:221
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "applying."
@@ -365,7 +385,7 @@
 "Si el parche aplica de forma limpia, el hunk editado sera marcado "
 "inmediatamente para aplicar."
 
-#: add-patch.c:107
+#: add-patch.c:111
 msgid ""
 "y - apply this hunk to index\n"
 "n - do not apply this hunk to index\n"
@@ -379,25 +399,31 @@
 "a - aplicar este hunk y todos los posteriores en el archivo\n"
 "d - no aplicar este hunko ninguno de los posteriores en el archivo\n"
 
-#: add-patch.c:122 git-add--interactive.perl:1448
-#: git-add--interactive.perl:1463
+#: add-patch.c:126 git-add--interactive.perl:1454
+#: git-add--interactive.perl:1472
 #, c-format, perl-format
 msgid "Discard mode change from worktree [y,n,q,a,d%s,?]? "
 msgstr "¿Descartar cambio de modo del árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:123 git-add--interactive.perl:1449
-#: git-add--interactive.perl:1464
+#: add-patch.c:127 git-add--interactive.perl:1455
+#: git-add--interactive.perl:1473
 #, c-format, perl-format
 msgid "Discard deletion from worktree [y,n,q,a,d%s,?]? "
 msgstr "¿Descartar borrado del árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:124 git-add--interactive.perl:1450
-#: git-add--interactive.perl:1465
+#: add-patch.c:128 git-add--interactive.perl:1456
+#: git-add--interactive.perl:1474
+#, c-format, perl-format
+msgid "Discard addition from worktree [y,n,q,a,d%s,?]? "
+msgstr "¿Descartar adición del árbol de trabajo [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:129 git-add--interactive.perl:1457
+#: git-add--interactive.perl:1475
 #, c-format, perl-format
 msgid "Discard this hunk from worktree [y,n,q,a,d%s,?]? "
 msgstr "¿Descartar este hunk del árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:126 add-patch.c:148 add-patch.c:191
+#: add-patch.c:131 add-patch.c:154 add-patch.c:199
 msgid ""
 "If the patch applies cleanly, the edited hunk will immediately be marked for "
 "discarding."
@@ -405,7 +431,7 @@
 "Si el parche aplica de forma limpia, el hunk editado sera marcado "
 "inmediatamente para descarte."
 
-#: add-patch.c:129 add-patch.c:194
+#: add-patch.c:134 add-patch.c:202
 msgid ""
 "y - discard this hunk from worktree\n"
 "n - do not discard this hunk from worktree\n"
@@ -419,24 +445,29 @@
 "a - descartar este hunk y todos los posteriores en este archivo\n"
 "d - no descartar este hunk o ninguno de los posteriores en el archivo\n"
 
-#: add-patch.c:144 add-patch.c:187 git-add--interactive.perl:1453
+#: add-patch.c:149 add-patch.c:194 git-add--interactive.perl:1460
 #, c-format, perl-format
 msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "¿Descartar cambio de modo del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:145 add-patch.c:188 git-add--interactive.perl:1454
+#: add-patch.c:150 add-patch.c:195 git-add--interactive.perl:1461
 #, c-format, perl-format
 msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
 msgstr "¿Descartar borrado del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:146 add-patch.c:189 git-add--interactive.perl:1455
+#: add-patch.c:151 add-patch.c:196 git-add--interactive.perl:1462
+#, c-format, perl-format
+msgid "Discard addition from index and worktree [y,n,q,a,d%s,?]? "
+msgstr "¿Descartar adición del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:152 add-patch.c:197 git-add--interactive.perl:1463
 #, c-format, perl-format
 msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "¿Descartar este hunk del índice y el árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:151
+#: add-patch.c:157
 msgid ""
 "y - discard this hunk from index and worktree\n"
 "n - do not discard this hunk from index and worktree\n"
@@ -450,24 +481,29 @@
 "a - descartar este hunk y todos los posteriores en este archivo\n"
 "d - no descartar este hunk o ninguno posterior en el archivo\n"
 
-#: add-patch.c:165 add-patch.c:208 git-add--interactive.perl:1458
+#: add-patch.c:171 add-patch.c:216 git-add--interactive.perl:1466
 #, c-format, perl-format
 msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
 msgstr ""
 "¿Aplicar cambio de modo para el índice y el árbol de trabajo [y,n,q,a,d"
 "%s,?]? "
 
-#: add-patch.c:166 add-patch.c:209 git-add--interactive.perl:1459
+#: add-patch.c:172 add-patch.c:217 git-add--interactive.perl:1467
 #, c-format, perl-format
 msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar borrado al índice y al árbol de trabajo [y,n,q,a,d%s,?]? "
 
-#: add-patch.c:167 add-patch.c:210 git-add--interactive.perl:1460
+#: add-patch.c:173 add-patch.c:218 git-add--interactive.perl:1468
+#, c-format, perl-format
+msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? "
+msgstr "¿Aplicar adición al índice y al árbol de trabajo [y,n,q,a,d%s,?]? "
+
+#: add-patch.c:174 add-patch.c:219 git-add--interactive.perl:1469
 #, c-format, perl-format
 msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
 msgstr "¿Aplicar este hunk al índice y árbol de trabajo [y,n,q,a,d,/%s,?]? "
 
-#: add-patch.c:172
+#: add-patch.c:179
 msgid ""
 "y - apply this hunk to index and worktree\n"
 "n - do not apply this hunk to index and worktree\n"
@@ -481,7 +517,7 @@
 "a - aplicar este hunk y todos los posteriores en el archivo\n"
 "d - no aplicar este hunk o ninguno de los siguientes en este archivo\n"
 
-#: add-patch.c:215
+#: add-patch.c:224
 msgid ""
 "y - apply this hunk to worktree\n"
 "n - do not apply this hunk to worktree\n"
@@ -495,34 +531,34 @@
 "a - aplicar este hunk y todos los posteriores en el archivo\n"
 "d - no aplicar este hunk o ninguno de los siguientes en este archivo\n"
 
-#: add-patch.c:319
+#: add-patch.c:328
 #, c-format
 msgid "could not parse hunk header '%.*s'"
 msgstr "no se puede analizar hunk header '%.*s'"
 
-#: add-patch.c:338 add-patch.c:342
+#: add-patch.c:347 add-patch.c:351
 #, c-format
 msgid "could not parse colored hunk header '%.*s'"
 msgstr "no se puede analizar hunk header '%.*s'"
 
-#: add-patch.c:396
+#: add-patch.c:405
 msgid "could not parse diff"
 msgstr "no se puede analizar diff"
 
-#: add-patch.c:415
+#: add-patch.c:424
 msgid "could not parse colored diff"
 msgstr "no se pudo analizar diff a colores"
 
-#: add-patch.c:429
+#: add-patch.c:438
 #, c-format
 msgid "failed to run '%s'"
 msgstr "falló al ejecutar '%s'"
 
-#: add-patch.c:588
+#: add-patch.c:602
 msgid "mismatched output from interactive.diffFilter"
 msgstr "output de interactive.diffFilter no concuerda"
 
-#: add-patch.c:589
+#: add-patch.c:603
 msgid ""
 "Your filter must maintain a one-to-one correspondence\n"
 "between its input and output lines."
@@ -530,7 +566,7 @@
 "Tu filtro tiene que mantener correspondencia de uno a uno\n"
 "entre las líneas de entrada y salida."
 
-#: add-patch.c:762
+#: add-patch.c:776
 #, c-format
 msgid ""
 "expected context line #%d in\n"
@@ -539,7 +575,7 @@
 "se esperaba línea de contexto #%d en\n"
 "%.*s"
 
-#: add-patch.c:777
+#: add-patch.c:791
 #, c-format
 msgid ""
 "hunks do not overlap:\n"
@@ -552,11 +588,11 @@
 "\tno acaba con:\n"
 "%.*s"
 
-#: add-patch.c:1053 git-add--interactive.perl:1112
+#: add-patch.c:1067 git-add--interactive.perl:1114
 msgid "Manual hunk edit mode -- see bottom for a quick guide.\n"
 msgstr "Modo de edición manual de hunk -- vea abajo para una guía rápida.\n"
 
-#: add-patch.c:1057
+#: add-patch.c:1071
 #, c-format
 msgid ""
 "---\n"
@@ -570,7 +606,7 @@
 "Lineas comenzando con  %c serán eliminadas.\n"
 
 #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages.
-#: add-patch.c:1071 git-add--interactive.perl:1126
+#: add-patch.c:1085 git-add--interactive.perl:1128
 msgid ""
 "If it does not apply cleanly, you will be given an opportunity to\n"
 "edit again.  If all lines of the hunk are removed, then the edit is\n"
@@ -580,11 +616,11 @@
 "editar nuevamente. Si todas las líneas del hunk son eliminadas, entonces \n"
 "la edición es abortada y el hunk queda sin cambios.\n"
 
-#: add-patch.c:1104
+#: add-patch.c:1118
 msgid "could not parse hunk header"
 msgstr "no se puede analizar hunk header"
 
-#: add-patch.c:1149
+#: add-patch.c:1163
 msgid "'git apply --cached' failed"
 msgstr "falló 'git apply --cached'"
 
@@ -600,26 +636,26 @@
 #. Consider translating (saying "no" discards!) as
 #. (saying "n" for "no" discards!) if the translation
 #. of the word "no" does not start with n.
-#: add-patch.c:1218 git-add--interactive.perl:1239
+#: add-patch.c:1232 git-add--interactive.perl:1241
 msgid ""
 "Your edited hunk does not apply. Edit again (saying \"no\" discards!) [y/n]? "
 msgstr ""
 "Tu hunk editado no aplica. ¿Editar nuevamente (¡decir \"no\" descarta!) [y/"
 "n]? "
 
-#: add-patch.c:1261
+#: add-patch.c:1275
 msgid "The selected hunks do not apply to the index!"
 msgstr "¡Los hunks seleccionados no aplican al índice!"
 
-#: add-patch.c:1262 git-add--interactive.perl:1343
+#: add-patch.c:1276 git-add--interactive.perl:1345
 msgid "Apply them to the worktree anyway? "
 msgstr "¿Aplicarlos al árbol de trabajo de todas maneras? "
 
-#: add-patch.c:1269 git-add--interactive.perl:1346
+#: add-patch.c:1283 git-add--interactive.perl:1348
 msgid "Nothing was applied.\n"
 msgstr "Nada fue aplicado.\n"
 
-#: add-patch.c:1326
+#: add-patch.c:1340
 msgid ""
 "j - leave this hunk undecided, see next undecided hunk\n"
 "J - leave this hunk undecided, see next hunk\n"
@@ -641,69 +677,69 @@
 "e - editar manualmente el hunk actual\n"
 "? - imprimir ayuda\n"
 
-#: add-patch.c:1447 add-patch.c:1457
+#: add-patch.c:1463 add-patch.c:1473
 msgid "No previous hunk"
 msgstr "No el anterior hunk"
 
-#: add-patch.c:1452 add-patch.c:1462
+#: add-patch.c:1468 add-patch.c:1478
 msgid "No next hunk"
 msgstr "No el siguiente hunk"
 
-#: add-patch.c:1468
+#: add-patch.c:1484
 msgid "No other hunks to goto"
 msgstr "No hay más pedazos para el ir"
 
-#: add-patch.c:1479 git-add--interactive.perl:1577
+#: add-patch.c:1495 git-add--interactive.perl:1594
 msgid "go to which hunk (<ret> to see more)? "
 msgstr "¿a que hunk ir (<enter> para ver más)? "
 
-#: add-patch.c:1480 git-add--interactive.perl:1579
+#: add-patch.c:1496 git-add--interactive.perl:1596
 msgid "go to which hunk? "
 msgstr "¿a que hunk ir? "
 
-#: add-patch.c:1491
+#: add-patch.c:1507
 #, c-format
 msgid "Invalid number: '%s'"
 msgstr "Numero inválido: '%s'"
 
-#: add-patch.c:1496
+#: add-patch.c:1512
 #, c-format
 msgid "Sorry, only %d hunk available."
 msgid_plural "Sorry, only %d hunks available."
 msgstr[0] "Lo siento, solo %d hunk disponible."
 msgstr[1] "Lo siento, solo %d hunks disponibles."
 
-#: add-patch.c:1505
+#: add-patch.c:1521
 msgid "No other hunks to search"
 msgstr "No hay más pedazos para buscar"
 
-#: add-patch.c:1511 git-add--interactive.perl:1623
+#: add-patch.c:1527 git-add--interactive.perl:1640
 msgid "search for regex? "
 msgstr "¿buscar para regexp? "
 
-#: add-patch.c:1526
+#: add-patch.c:1542
 #, c-format
 msgid "Malformed search regexp %s: %s"
 msgstr "Regexp para la búsqueda mal formado %s: %s"
 
-#: add-patch.c:1543
+#: add-patch.c:1559
 msgid "No hunk matches the given pattern"
 msgstr "No hay hunks que concuerden con el patrón entregado."
 
-#: add-patch.c:1550
+#: add-patch.c:1566
 msgid "Sorry, cannot split this hunk"
 msgstr "Perdón, no se puede dividir este pedazo"
 
-#: add-patch.c:1554
+#: add-patch.c:1570
 #, c-format
 msgid "Split into %d hunks."
 msgstr "Cortar en %d hunk."
 
-#: add-patch.c:1558
+#: add-patch.c:1574
 msgid "Sorry, cannot edit this hunk"
 msgstr "Perdón, no se puede editar este pedazo"
 
-#: add-patch.c:1609
+#: add-patch.c:1625
 msgid "'git apply' failed"
 msgstr "falló 'git apply'"
 
@@ -1404,7 +1440,7 @@
 
 #: apply.c:5008 builtin/am.c:2238 builtin/interpret-trailers.c:98
 #: builtin/interpret-trailers.c:100 builtin/interpret-trailers.c:102
-#: builtin/pack-objects.c:3458 builtin/rebase.c:1332
+#: builtin/pack-objects.c:3530 builtin/rebase.c:1332
 msgid "action"
 msgstr "acción"
 
@@ -1436,7 +1472,7 @@
 msgstr "permitir solapamiento de hunks"
 
 #: apply.c:5025 builtin/add.c:323 builtin/check-ignore.c:22
-#: builtin/commit.c:1366 builtin/count-objects.c:98 builtin/fsck.c:774
+#: builtin/commit.c:1366 builtin/count-objects.c:98 builtin/fsck.c:775
 #: builtin/log.c:2186 builtin/mv.c:123 builtin/read-tree.c:128
 msgid "be verbose"
 msgstr "ser verboso"
@@ -1498,7 +1534,7 @@
 msgid "path too long (%d chars, SHA1: %s): %s"
 msgstr "ruta muy larga (%d chars, SHA1: %s): %s"
 
-#: archive-zip.c:480 builtin/pack-objects.c:232 builtin/pack-objects.c:235
+#: archive-zip.c:480 builtin/pack-objects.c:243 builtin/pack-objects.c:246
 #, c-format
 msgid "deflate error (%d)"
 msgstr "error al desinflar (%d)"
@@ -1568,8 +1604,8 @@
 msgstr "anteponer prefijo a cada ruta en el archivo"
 
 #: archive.c:467 builtin/blame.c:861 builtin/blame.c:865 builtin/blame.c:866
-#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1162
-#: builtin/fast-export.c:1164 builtin/fast-export.c:1168 builtin/grep.c:907
+#: builtin/commit-tree.c:117 builtin/config.c:130 builtin/fast-export.c:1208
+#: builtin/fast-export.c:1210 builtin/fast-export.c:1214 builtin/grep.c:907
 #: builtin/hash-object.c:105 builtin/ls-files.c:561 builtin/ls-files.c:564
 #: builtin/notes.c:412 builtin/notes.c:578 builtin/read-tree.c:123
 #: parse-options.h:190
@@ -1794,10 +1830,10 @@
 msgstr ""
 "--reverse y --first-parent juntos requieren especificar el último commit"
 
-#: blame.c:2821 bundle.c:167 ref-filter.c:2200 remote.c:1924 sequencer.c:2018
+#: blame.c:2821 bundle.c:187 ref-filter.c:2200 remote.c:1924 sequencer.c:2018
 #: sequencer.c:4466 submodule.c:847 builtin/commit.c:1047 builtin/log.c:405
 #: builtin/log.c:1012 builtin/log.c:1541 builtin/log.c:1945 builtin/log.c:2235
-#: builtin/merge.c:415 builtin/pack-objects.c:3276 builtin/pack-objects.c:3291
+#: builtin/merge.c:415 builtin/pack-objects.c:3348 builtin/pack-objects.c:3363
 #: builtin/shortlog.c:192
 msgid "revision walk setup failed"
 msgstr "falló la configuración del camino de revisión"
@@ -1968,84 +2004,88 @@
 msgid "HEAD of working tree %s is not updated"
 msgstr "HEAD del árbol de trabajo %s no está actualizada"
 
-#: bundle.c:36
+#: bundle.c:47
 #, c-format
 msgid "'%s' does not look like a v2 bundle file"
 msgstr "'%s' no se ve como un archivo bundle v2"
 
-#: bundle.c:64
+#: bundle.c:69
+msgid "unknown hash algorithm length"
+msgstr "largo del algoritmo hash desconocido"
+
+#: bundle.c:84
 #, c-format
 msgid "unrecognized header: %s%s (%d)"
 msgstr "header no reconocido %s%s (%d)"
 
-#: bundle.c:90 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034
+#: bundle.c:110 rerere.c:480 rerere.c:690 sequencer.c:2270 sequencer.c:3034
 #: builtin/commit.c:814
 #, c-format
 msgid "could not open '%s'"
 msgstr "no se pudo abrir '%s'"
 
-#: bundle.c:143
+#: bundle.c:163
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Al repositorio le falta estos commits prerrequisito:"
 
-#: bundle.c:146
+#: bundle.c:166
 msgid "need a repository to verify a bundle"
 msgstr "se necesita un repositorio para verificar un bundle"
 
-#: bundle.c:197
+#: bundle.c:217
 #, c-format
 msgid "The bundle contains this ref:"
 msgid_plural "The bundle contains these %d refs:"
 msgstr[0] "El bundle contiene esta referencia:"
 msgstr[1] "El bundle contiene estas %d referencias:"
 
-#: bundle.c:204
+#: bundle.c:224
 msgid "The bundle records a complete history."
 msgstr "El bundle registra una historia completa."
 
-#: bundle.c:206
+#: bundle.c:226
 #, c-format
 msgid "The bundle requires this ref:"
 msgid_plural "The bundle requires these %d refs:"
 msgstr[0] "El bundle requiere esta referencia:"
 msgstr[1] "El bundle requiere estas %d referencias:"
 
-#: bundle.c:273
+#: bundle.c:293
 msgid "unable to dup bundle descriptor"
 msgstr "incapaz de duplicar bundle descriptor"
 
-#: bundle.c:280
+#: bundle.c:300
 msgid "Could not spawn pack-objects"
 msgstr "No se pudo crear los pack-objetcts"
 
-#: bundle.c:291
+#: bundle.c:311
 msgid "pack-objects died"
 msgstr "pack-objects murió"
 
-#: bundle.c:333
+#: bundle.c:353
 msgid "rev-list died"
 msgstr "rev-list murió"
 
-#: bundle.c:382
+#: bundle.c:402
 #, c-format
 msgid "ref '%s' is excluded by the rev-list options"
 msgstr "referencia '%s' es excluida por las opciones de rev-list"
 
-#: bundle.c:461 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306
+#: bundle.c:481 builtin/log.c:208 builtin/log.c:1834 builtin/shortlog.c:306
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "argumento no reconocido: %s"
 
-#: bundle.c:469
+#: bundle.c:489
 msgid "Refusing to create empty bundle."
 msgstr "Rechazando crear un bundle vacío."
 
-#: bundle.c:479
+#: bundle.c:499
 #, c-format
 msgid "cannot create '%s'"
 msgstr "no se puede crear '%s'"
 
-#: bundle.c:504
+#: bundle.c:524
 msgid "index-pack died"
 msgstr "index-pack murió"
 
@@ -2054,277 +2094,269 @@
 msgid "invalid color value: %.*s"
 msgstr "color inválido: %.*s"
 
-#: commit-graph.c:183
+#: commit-graph.c:238
 msgid "commit-graph file is too small"
 msgstr "archivo commit-graph es muy pequeño"
 
-#: commit-graph.c:248
+#: commit-graph.c:303
 #, c-format
 msgid "commit-graph signature %X does not match signature %X"
 msgstr "firma %X en commit-graph no concuerda con firma %X"
 
-#: commit-graph.c:255
+#: commit-graph.c:310
 #, c-format
 msgid "commit-graph version %X does not match version %X"
 msgstr "versión de commit-graph %X no concuerda con versión %X"
 
-#: commit-graph.c:262
+#: commit-graph.c:317
 #, c-format
 msgid "commit-graph hash version %X does not match version %X"
 msgstr "versión de hash de commit-graph %X no concuerda con versión %X"
 
-#: commit-graph.c:284
+#: commit-graph.c:339
 msgid "commit-graph chunk lookup table entry missing; file may be incomplete"
 msgstr ""
 "falta tabla de lookup del chunk en commit-graph; el archivo puede estar "
 "incompleto"
 
-#: commit-graph.c:294
+#: commit-graph.c:349
 #, c-format
 msgid "commit-graph improper chunk offset %08x%08x"
 msgstr "offset del chunk de commit-graph inapropiado %08x%08x"
 
-#: commit-graph.c:362
+#: commit-graph.c:417
 #, c-format
 msgid "commit-graph chunk id %08x appears multiple times"
 msgstr "id de chunk de commit-graph %08x parece tener múltiples tiempos"
 
-#: commit-graph.c:436
+#: commit-graph.c:491
 msgid "commit-graph has no base graphs chunk"
 msgstr "commit-graph no tiene una chunk base de graphs"
 
-#: commit-graph.c:446
+#: commit-graph.c:501
 msgid "commit-graph chain does not match"
 msgstr "cadena commit-graph no concuerda"
 
-#: commit-graph.c:494
+#: commit-graph.c:549
 #, c-format
 msgid "invalid commit-graph chain: line '%s' not a hash"
 msgstr "cadena de commit-graph inválida: línea '%s' no es un hash"
 
-#: commit-graph.c:518
+#: commit-graph.c:573
 msgid "unable to find all commit-graph files"
 msgstr "no es posible encontrar los archivos commit-graph"
 
-#: commit-graph.c:651 commit-graph.c:711
+#: commit-graph.c:706 commit-graph.c:770
 msgid "invalid commit position. commit-graph is likely corrupt"
 msgstr "posición de commit inválida. commit-graph está probablemente corrupto"
 
-#: commit-graph.c:672
+#: commit-graph.c:727
 #, c-format
 msgid "could not find commit %s"
 msgstr "no se pudo encontrar commit %s"
 
-#: commit-graph.c:948 builtin/am.c:1292
+#: commit-graph.c:1009 builtin/am.c:1292
 #, c-format
 msgid "unable to parse commit %s"
 msgstr "no es posible analizar el commit %s"
 
-#: commit-graph.c:1096
+#: commit-graph.c:1157
 msgid "Writing changed paths Bloom filters index"
 msgstr "Escribiendo cambios de ruta del índice de filtros Bloom"
 
-#: commit-graph.c:1121
+#: commit-graph.c:1182
 msgid "Writing changed paths Bloom filters data"
 msgstr "Escribiendo cambios de ruta de datos de filtros Bloom"
 
-#: commit-graph.c:1160 builtin/pack-objects.c:2783
+#: commit-graph.c:1221 builtin/pack-objects.c:2832
 #, c-format
 msgid "unable to get type of object %s"
 msgstr "incapaz de obtener el tipo de objeto: %s"
 
-#: commit-graph.c:1196
+#: commit-graph.c:1257
 msgid "Loading known commits in commit graph"
 msgstr "Cargando commits conocidos en commit graph"
 
-#: commit-graph.c:1213
+#: commit-graph.c:1274
 msgid "Expanding reachable commits in commit graph"
 msgstr "Expandiendo commits alcanzables en commit graph"
 
-#: commit-graph.c:1233
+#: commit-graph.c:1294
 msgid "Clearing commit marks in commit graph"
 msgstr "Limpiando marcas de commits en commit graph"
 
-#: commit-graph.c:1252
+#: commit-graph.c:1313
 msgid "Computing commit graph generation numbers"
 msgstr "Calculando números de generación de commit graph"
 
-#: commit-graph.c:1300
+#: commit-graph.c:1367
 msgid "Computing commit changed paths Bloom filters"
 msgstr "Calculando números de generación de commit graph"
 
-#: commit-graph.c:1359
+#: commit-graph.c:1423
+msgid "Collecting referenced commits"
+msgstr "Recolectando commits referenciados"
+
+#: commit-graph.c:1447
 #, c-format
 msgid "Finding commits for commit graph in %d pack"
 msgid_plural "Finding commits for commit graph in %d packs"
 msgstr[0] "Encontrando commits para commit graph en %d pack"
 msgstr[1] "Encontrando commits para commit graph en %d packs"
 
-#: commit-graph.c:1372
+#: commit-graph.c:1460
 #, c-format
 msgid "error adding pack %s"
 msgstr "error agregando pack %s"
 
-#: commit-graph.c:1376
+#: commit-graph.c:1464
 #, c-format
 msgid "error opening index for %s"
 msgstr "error abriendo index para %s"
 
-#: commit-graph.c:1405
-#, c-format
-msgid "Finding commits for commit graph from %d ref"
-msgid_plural "Finding commits for commit graph from %d refs"
-msgstr[0] "Encontrando commits para commit graph de %d ref"
-msgstr[1] "Encontrando commits para commit graph de %d refs"
-
-#: commit-graph.c:1426
-#, c-format
-msgid "invalid commit object id: %s"
-msgstr "id de objeto commit: %s inválido"
-
-#: commit-graph.c:1442
+#: commit-graph.c:1503
 msgid "Finding commits for commit graph among packed objects"
 msgstr "Encontrando commits para commit graph entre los objetos empaquetados"
 
-#: commit-graph.c:1457
+#: commit-graph.c:1518
 msgid "Counting distinct commits in commit graph"
 msgstr "Contando commits distintos en commit graph"
 
-#: commit-graph.c:1489
+#: commit-graph.c:1550
 msgid "Finding extra edges in commit graph"
 msgstr "Encontrando esquinas extra en commit graph"
 
-#: commit-graph.c:1538
+#: commit-graph.c:1599
 msgid "failed to write correct number of base graph ids"
 msgstr "falló al escribir el número correcto de ids de base graph"
 
-#: commit-graph.c:1572 midx.c:812
+#: commit-graph.c:1633 midx.c:812
 #, c-format
 msgid "unable to create leading directories of %s"
 msgstr "no se pudo crear directorios principales para %s"
 
-#: commit-graph.c:1585
+#: commit-graph.c:1646
 msgid "unable to create temporary graph layer"
 msgstr "no es posible crear un una capa de gráfico temporal"
 
-#: commit-graph.c:1590
+#: commit-graph.c:1651
 #, c-format
 msgid "unable to adjust shared permissions for '%s'"
 msgstr "no se pudo poner permisos a '%s'"
 
-#: commit-graph.c:1667
+#: commit-graph.c:1728
 #, c-format
 msgid "Writing out commit graph in %d pass"
 msgid_plural "Writing out commit graph in %d passes"
 msgstr[0] "Escribiendo commit graph en %d paso"
 msgstr[1] "Escribiendo commit graph en %d pasos"
 
-#: commit-graph.c:1712
+#: commit-graph.c:1773
 msgid "unable to open commit-graph chain file"
 msgstr "no se pudo abrir la cadena de archivos commit-graph"
 
-#: commit-graph.c:1728
+#: commit-graph.c:1789
 msgid "failed to rename base commit-graph file"
 msgstr "no se pudo renombrar el archivo base commit-graph"
 
-#: commit-graph.c:1748
+#: commit-graph.c:1809
 msgid "failed to rename temporary commit-graph file"
 msgstr "falló al renombrar el archivo temporal commit-graph"
 
-#: commit-graph.c:1874
+#: commit-graph.c:1935
 msgid "Scanning merged commits"
 msgstr "Escaneando commits fusionados"
 
-#: commit-graph.c:1885
+#: commit-graph.c:1946
 #, c-format
 msgid "unexpected duplicate commit id %s"
 msgstr "id de commit duplicado inesperado %s"
 
-#: commit-graph.c:1908
+#: commit-graph.c:1969
 msgid "Merging commit-graph"
 msgstr "Fusionando commit-graph"
 
-#: commit-graph.c:2096
+#: commit-graph.c:2156
 #, c-format
 msgid "the commit graph format cannot write %d commits"
 msgstr "el formato de gráficos de commit no pudede escribir %d commits"
 
-#: commit-graph.c:2107
+#: commit-graph.c:2167
 msgid "too many commits to write graph"
 msgstr "demasiados commits para escribir el gráfico"
 
-#: commit-graph.c:2200
+#: commit-graph.c:2260
 msgid "the commit-graph file has incorrect checksum and is likely corrupt"
 msgstr ""
 "el archivo de commit-graph tiene checksums incorrectos y probablemente está "
 "corrupto"
 
-#: commit-graph.c:2210
+#: commit-graph.c:2270
 #, c-format
 msgid "commit-graph has incorrect OID order: %s then %s"
 msgstr "commit-graph tiene un orden de OID incorrecto: %s luego %s"
 
-#: commit-graph.c:2220 commit-graph.c:2235
+#: commit-graph.c:2280 commit-graph.c:2295
 #, c-format
 msgid "commit-graph has incorrect fanout value: fanout[%d] = %u != %u"
 msgstr "commit-graph tiene un valor fanout incorrecto: fanout[%d] = %u != %u"
 
-#: commit-graph.c:2227
+#: commit-graph.c:2287
 #, c-format
 msgid "failed to parse commit %s from commit-graph"
 msgstr "falló al analizar commit %s para commit-graph"
 
-#: commit-graph.c:2245
+#: commit-graph.c:2305
 msgid "Verifying commits in commit graph"
 msgstr "Verificando commits en commit graph"
 
-#: commit-graph.c:2259
+#: commit-graph.c:2320
 #, c-format
 msgid "failed to parse commit %s from object database for commit-graph"
 msgstr ""
 "falló al analizar el commit %s de la base de datos de objetos para commit-"
 "graph"
 
-#: commit-graph.c:2266
+#: commit-graph.c:2327
 #, c-format
 msgid "root tree OID for commit %s in commit-graph is %s != %s"
 msgstr "árbol raíz OID para commit %s en commit-graph es %s != %s"
 
-#: commit-graph.c:2276
+#: commit-graph.c:2337
 #, c-format
 msgid "commit-graph parent list for commit %s is too long"
 msgstr "lista padre de commit-graph para commit %s es muy larga"
 
-#: commit-graph.c:2285
+#: commit-graph.c:2346
 #, c-format
 msgid "commit-graph parent for %s is %s != %s"
 msgstr "padre de commit-graph para %s es %s != %s"
 
-#: commit-graph.c:2298
+#: commit-graph.c:2360
 #, c-format
 msgid "commit-graph parent list for commit %s terminates early"
 msgstr "lista padre de commit-graph para commit %s termina antes"
 
-#: commit-graph.c:2303
+#: commit-graph.c:2365
 #, c-format
 msgid ""
 "commit-graph has generation number zero for commit %s, but non-zero elsewhere"
 msgstr ""
 "commit-graph ha generado número cero para %s, pero no-cero para los demás"
 
-#: commit-graph.c:2307
+#: commit-graph.c:2369
 #, c-format
 msgid ""
 "commit-graph has non-zero generation number for commit %s, but zero elsewhere"
 msgstr ""
 "commit-graph tiene generación no-cero para %s, pero cero para los demás"
 
-#: commit-graph.c:2322
+#: commit-graph.c:2385
 #, c-format
 msgid "commit-graph generation for commit %s is %u != %u"
 msgstr "generación commit-graph para commit %s es %u != %u"
 
-#: commit-graph.c:2328
+#: commit-graph.c:2391
 #, c-format
 msgid "commit date for commit %s in commit-graph is %<PRIuMAX> != %<PRIuMAX>"
 msgstr ""
@@ -2361,27 +2393,27 @@
 "Apapa este mensaje ejecutando\n"
 "\"git config advice.graftFileDeprecated false\""
 
-#: commit.c:1168
+#: commit.c:1172
 #, c-format
 msgid "Commit %s has an untrusted GPG signature, allegedly by %s."
 msgstr "Commit %s tiene una firma GPG no confiable, pretendidamente por %s."
 
-#: commit.c:1172
+#: commit.c:1176
 #, c-format
 msgid "Commit %s has a bad GPG signature allegedly by %s."
 msgstr "Commit %s tiene una mala firma GPG pretendidamente por %s."
 
-#: commit.c:1175
+#: commit.c:1179
 #, c-format
 msgid "Commit %s does not have a GPG signature."
 msgstr "Commit %s no tiene una firma GPG."
 
-#: commit.c:1178
+#: commit.c:1182
 #, c-format
 msgid "Commit %s has a good GPG signature by %s\n"
 msgstr "El Commit %s tiene una buena firma GPG por %s\n"
 
-#: commit.c:1432
+#: commit.c:1436
 msgid ""
 "Warning: commit message did not conform to UTF-8.\n"
 "You may want to amend it after fixing the message, or set the config\n"
@@ -2573,7 +2605,7 @@
 msgid "must be one of nothing, matching, simple, upstream or current"
 msgstr "debe ser uno de nothing, matching, simple, upstream o current"
 
-#: config.c:1533 builtin/pack-objects.c:3542
+#: config.c:1533 builtin/pack-objects.c:3617
 #, c-format
 msgid "bad pack compression level %d"
 msgstr "nivel de compresión de pack erróneo %d"
@@ -2723,72 +2755,81 @@
 msgid "server doesn't support '%s'"
 msgstr "servidor no soporta '%s'"
 
-#: connect.c:103
+#: connect.c:118
 #, c-format
 msgid "server doesn't support feature '%s'"
 msgstr "servidor no soporta feature '%s'"
 
-#: connect.c:114
+#: connect.c:129
 msgid "expected flush after capabilities"
 msgstr "se espera flush tras capacidades"
 
-#: connect.c:233
+#: connect.c:263
 #, c-format
 msgid "ignoring capabilities after first line '%s'"
 msgstr "ignorando capacidades tras primera línea '%s'"
 
-#: connect.c:252
+#: connect.c:284
 msgid "protocol error: unexpected capabilities^{}"
 msgstr "error de protocolo: capacidades imprevistas^{}"
 
-#: connect.c:273
+#: connect.c:306
 #, c-format
 msgid "protocol error: expected shallow sha-1, got '%s'"
 msgstr "error de protocolo: sha-1 superficial esperado, se obtuvo '%s'"
 
-#: connect.c:275
+#: connect.c:308
 msgid "repository on the other end cannot be shallow"
 msgstr "el repositorio en el otro final no puede ser superficial"
 
-#: connect.c:313
+#: connect.c:347
 msgid "invalid packet"
 msgstr "paquete inválido"
 
-#: connect.c:333
+#: connect.c:367
 #, c-format
 msgid "protocol error: unexpected '%s'"
 msgstr "error de protocolo: '%s' inesperado"
 
-#: connect.c:441
+#: connect.c:473
+#, c-format
+msgid "unknown object format '%s' specified by server"
+msgstr "formato de objeto desconocido '%s' ha sido provisto por el servidor"
+
+#: connect.c:500
 #, c-format
 msgid "invalid ls-refs response: %s"
 msgstr "respuesta de referencias ls-refs inválida: %s"
 
-#: connect.c:445
+#: connect.c:504
 msgid "expected flush after ref listing"
 msgstr "flush esperado tras listado de refs"
 
-#: connect.c:544
+#: connect.c:507
+msgid "expected response end packet after ref listing"
+msgstr "se esperaba un paquete final luego del ref listing"
+
+#: connect.c:640
 #, c-format
 msgid "protocol '%s' is not supported"
 msgstr "protocolo '%s' no es soportado"
 
-#: connect.c:595
+#: connect.c:691
 msgid "unable to set SO_KEEPALIVE on socket"
 msgstr "no es posible configurar SO_KEEPALIVE en el socket"
 
-#: connect.c:635 connect.c:698
+#: connect.c:731 connect.c:794
 #, c-format
 msgid "Looking up %s ... "
 msgstr "Revisando %s... "
 
-#: connect.c:639
+#: connect.c:735
 #, c-format
 msgid "unable to look up %s (port %s) (%s)"
 msgstr "no se puede revisar %s (puerto %s) (%s)"
 
 #. TRANSLATORS: this is the end of "Looking up %s ... "
-#: connect.c:643 connect.c:714
+#: connect.c:739 connect.c:810
 #, c-format
 msgid ""
 "done.\n"
@@ -2797,7 +2838,7 @@
 "hecho.\n"
 "Conectando a %s (puerto %s) ... "
 
-#: connect.c:665 connect.c:742
+#: connect.c:761 connect.c:838
 #, c-format
 msgid ""
 "unable to connect to %s:\n"
@@ -2807,74 +2848,74 @@
 "%s"
 
 #. TRANSLATORS: this is the end of "Connecting to %s (port %s) ... "
-#: connect.c:671 connect.c:748
+#: connect.c:767 connect.c:844
 msgid "done."
 msgstr "hecho."
 
-#: connect.c:702
+#: connect.c:798
 #, c-format
 msgid "unable to look up %s (%s)"
 msgstr "no es posible revisar %s (%s)"
 
-#: connect.c:708
+#: connect.c:804
 #, c-format
 msgid "unknown port %s"
 msgstr "puerto desconocido %s"
 
-#: connect.c:845 connect.c:1175
+#: connect.c:941 connect.c:1271
 #, c-format
 msgid "strange hostname '%s' blocked"
 msgstr "hostname extraño '%s' bloqueado"
 
-#: connect.c:847
+#: connect.c:943
 #, c-format
 msgid "strange port '%s' blocked"
 msgstr "puerto extraño '%s' bloqueado"
 
-#: connect.c:857
+#: connect.c:953
 #, c-format
 msgid "cannot start proxy %s"
 msgstr "no se puede comenzar proxy %s"
 
-#: connect.c:928
+#: connect.c:1024
 msgid "no path specified; see 'git help pull' for valid url syntax"
 msgstr ""
 "no hay ruta especificada; vea 'git help pull' para sintaxis de url válidas"
 
-#: connect.c:1123
+#: connect.c:1219
 msgid "ssh variant 'simple' does not support -4"
 msgstr "variante 'simple' de ssh no soporta -4"
 
-#: connect.c:1135
+#: connect.c:1231
 msgid "ssh variant 'simple' does not support -6"
 msgstr "variante 'simple' de ssh no soporta -6"
 
-#: connect.c:1152
+#: connect.c:1248
 msgid "ssh variant 'simple' does not support setting port"
 msgstr "variante ssh 'simple' no soporta configurar puerto"
 
-#: connect.c:1264
+#: connect.c:1360
 #, c-format
 msgid "strange pathname '%s' blocked"
 msgstr "ruta extraña '%s' bloqueada"
 
-#: connect.c:1311
+#: connect.c:1407
 msgid "unable to fork"
 msgstr "no es posible hacer fork"
 
-#: connected.c:107 builtin/fsck.c:208 builtin/prune.c:45
+#: connected.c:109 builtin/fsck.c:209 builtin/prune.c:45
 msgid "Checking connectivity"
 msgstr "Verificando conectividad"
 
-#: connected.c:119
+#: connected.c:121
 msgid "Could not run 'git rev-list'"
 msgstr "No se pudo correr 'git rev-list'"
 
-#: connected.c:139
+#: connected.c:141
 msgid "failed write to rev-list"
 msgstr "falló escribir a rev-list"
 
-#: connected.c:146
+#: connected.c:148
 msgid "failed to close rev-list's stdin"
 msgstr "falló al cerrar la entrada standard de rev-list"
 
@@ -3137,17 +3178,17 @@
 "No es un repositorio git. Use --no-index para comparar dos paths fuera del "
 "árbol de trabajo"
 
-#: diff.c:155
+#: diff.c:156
 #, c-format
 msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
 msgstr "  Falló al analizar dirstat porcentaje de corte '%s'\n"
 
-#: diff.c:160
+#: diff.c:161
 #, c-format
 msgid "  Unknown dirstat parameter '%s'\n"
 msgstr "  parámetro '%s' de dirstat desconocido\n"
 
-#: diff.c:296
+#: diff.c:297
 msgid ""
 "color moved setting must be one of 'no', 'default', 'blocks', 'zebra', "
 "'dimmed-zebra', 'plain'"
@@ -3155,7 +3196,7 @@
 "opción de color tiene que ser una de 'no', 'default', 'blocks', 'zebra', "
 "'dimmed_zebra', 'plain'"
 
-#: diff.c:324
+#: diff.c:325
 #, c-format
 msgid ""
 "unknown color-moved-ws mode '%s', possible values are 'ignore-space-change', "
@@ -3165,7 +3206,7 @@
 "change', 'ignore-space-at-eol', 'ignore-all-space', 'allow-indentation-"
 "change'"
 
-#: diff.c:332
+#: diff.c:333
 msgid ""
 "color-moved-ws: allow-indentation-change cannot be combined with other "
 "whitespace modes"
@@ -3173,13 +3214,13 @@
 "color-moved-ws: allow-indentation-change no puede ser combinado con otros "
 "modos de espacios en blanco"
 
-#: diff.c:405
+#: diff.c:410
 #, c-format
 msgid "Unknown value for 'diff.submodule' config variable: '%s'"
 msgstr ""
 "Valor para la variable de configuración 'diff.submodule' desconocido: '%s'"
 
-#: diff.c:465
+#: diff.c:470
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
@@ -3188,35 +3229,35 @@
 "Errores en la variable de config 'diff.dirstat' encontrados:\n"
 "%s"
 
-#: diff.c:4238
+#: diff.c:4243
 #, c-format
 msgid "external diff died, stopping at %s"
 msgstr "diff externo murió, deteniendo en %s"
 
-#: diff.c:4583
+#: diff.c:4589
 msgid "--name-only, --name-status, --check and -s are mutually exclusive"
 msgstr "--name-only, --name-status, --check y -s son mutuamente exclusivas"
 
-#: diff.c:4586
+#: diff.c:4592
 msgid "-G, -S and --find-object are mutually exclusive"
 msgstr "-G, -S y --find-object son mutuamente exclusivas"
 
-#: diff.c:4664
+#: diff.c:4670
 msgid "--follow requires exactly one pathspec"
 msgstr "--follow requiere exactamente un pathspec"
 
-#: diff.c:4712
+#: diff.c:4718
 #, c-format
 msgid "invalid --stat value: %s"
 msgstr "valor --stat inválido: %s"
 
-#: diff.c:4717 diff.c:4722 diff.c:4727 diff.c:4732 diff.c:5245
+#: diff.c:4723 diff.c:4728 diff.c:4733 diff.c:4738 diff.c:5250
 #: parse-options.c:197 parse-options.c:201
 #, c-format
 msgid "%s expects a numerical value"
 msgstr "%s espera un valor numérico"
 
-#: diff.c:4749
+#: diff.c:4755
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -3225,42 +3266,42 @@
 "Falló al analizar parámetro de opción --dirstat/-X:\n"
 "%s"
 
-#: diff.c:4834
+#: diff.c:4840
 #, c-format
 msgid "unknown change class '%c' in --diff-filter=%s"
 msgstr "cambio de clase desconocido '%c' en --diff-filter=%s"
 
-#: diff.c:4858
+#: diff.c:4864
 #, c-format
 msgid "unknown value after ws-error-highlight=%.*s"
 msgstr "valor desconocido luego de ws-error-highlight=%.*s"
 
-#: diff.c:4872
+#: diff.c:4878
 #, c-format
 msgid "unable to resolve '%s'"
 msgstr "no se puede resolver '%s'"
 
-#: diff.c:4922 diff.c:4928
+#: diff.c:4928 diff.c:4934
 #, c-format
 msgid "%s expects <n>/<m> form"
 msgstr "%s espera forma <n>/<m>"
 
-#: diff.c:4940
+#: diff.c:4946
 #, c-format
 msgid "%s expects a character, got '%s'"
 msgstr "%s esperaba un char, se obtuvo '%s'"
 
-#: diff.c:4961
+#: diff.c:4967
 #, c-format
 msgid "bad --color-moved argument: %s"
 msgstr "mal argumento --color-moved: %s"
 
-#: diff.c:4980
+#: diff.c:4986
 #, c-format
 msgid "invalid mode '%s' in --color-moved-ws"
 msgstr "modo inválido '%s' en --color-moved-ws"
 
-#: diff.c:5020
+#: diff.c:5026
 msgid ""
 "option diff-algorithm accepts \"myers\", \"minimal\", \"patience\" and "
 "\"histogram\""
@@ -3268,154 +3309,154 @@
 "opción diff-algorithm acepta \"myers\", \"minimal\", \"patience\" e "
 "\"histogram\""
 
-#: diff.c:5056 diff.c:5076
+#: diff.c:5062 diff.c:5082
 #, c-format
 msgid "invalid argument to %s"
 msgstr "argumento inválido para %s"
 
-#: diff.c:5214
+#: diff.c:5219
 #, c-format
 msgid "failed to parse --submodule option parameter: '%s'"
 msgstr "falló al analizar parámetro de opción --submodule: '%s'"
 
-#: diff.c:5270
+#: diff.c:5275
 #, c-format
 msgid "bad --word-diff argument: %s"
 msgstr "mal argumento --word-diff: %s"
 
-#: diff.c:5293
+#: diff.c:5298
 msgid "Diff output format options"
 msgstr "Opciones de formato de salida para diff"
 
-#: diff.c:5295 diff.c:5301
+#: diff.c:5300 diff.c:5306
 msgid "generate patch"
 msgstr "generar parche"
 
-#: diff.c:5298 builtin/log.c:177
+#: diff.c:5303 builtin/log.c:177
 msgid "suppress diff output"
 msgstr "suprimir salida de diff"
 
-#: diff.c:5303 diff.c:5417 diff.c:5424
+#: diff.c:5308 diff.c:5422 diff.c:5429
 msgid "<n>"
 msgstr "<n>"
 
-#: diff.c:5304 diff.c:5307
+#: diff.c:5309 diff.c:5312
 msgid "generate diffs with <n> lines context"
 msgstr "genera diffs con <n> líneas de contexto"
 
-#: diff.c:5309
+#: diff.c:5314
 msgid "generate the diff in raw format"
 msgstr "genera el diff en formato raw"
 
-#: diff.c:5312
+#: diff.c:5317
 msgid "synonym for '-p --raw'"
 msgstr "sinónimo para '-p --stat'"
 
-#: diff.c:5316
+#: diff.c:5321
 msgid "synonym for '-p --stat'"
 msgstr "sinónimo para '-p --stat'"
 
-#: diff.c:5320
+#: diff.c:5325
 msgid "machine friendly --stat"
 msgstr "--stat amigable para máquina"
 
-#: diff.c:5323
+#: diff.c:5328
 msgid "output only the last line of --stat"
 msgstr "mostrar solo la última línea para --stat"
 
-#: diff.c:5325 diff.c:5333
+#: diff.c:5330 diff.c:5338
 msgid "<param1,param2>..."
 msgstr "<param1,param2>..."
 
-#: diff.c:5326
+#: diff.c:5331
 msgid ""
 "output the distribution of relative amount of changes for each sub-directory"
 msgstr ""
 "muestra la distribución de cantidades de cambios relativa para cada "
 "subdirectorio"
 
-#: diff.c:5330
+#: diff.c:5335
 msgid "synonym for --dirstat=cumulative"
 msgstr "sinónimo para --dirstat=cumulative"
 
-#: diff.c:5334
+#: diff.c:5339
 msgid "synonym for --dirstat=files,param1,param2..."
 msgstr "sinonimo para --dirstat=archivos,param1,param2..."
 
-#: diff.c:5338
+#: diff.c:5343
 msgid "warn if changes introduce conflict markers or whitespace errors"
 msgstr ""
 "advierte si cambios introducen conflictos de markers o errores de espacios "
 "en blanco"
 
-#: diff.c:5341
+#: diff.c:5346
 msgid "condensed summary such as creations, renames and mode changes"
 msgstr ""
 "resumen condensado de creaciones, cambios de nombres y cambios de modos"
 
-#: diff.c:5344
+#: diff.c:5349
 msgid "show only names of changed files"
 msgstr "mostrar solo nombres de archivos cambiados"
 
-#: diff.c:5347
+#: diff.c:5352
 msgid "show only names and status of changed files"
 msgstr "mostrar solo nombres y estados de archivos cambiados"
 
-#: diff.c:5349
+#: diff.c:5354
 msgid "<width>[,<name-width>[,<count>]]"
 msgstr "<ancho>[,<nombre-ancho>[,<cantidad>]]"
 
-#: diff.c:5350
+#: diff.c:5355
 msgid "generate diffstat"
 msgstr "generar diffstat"
 
-#: diff.c:5352 diff.c:5355 diff.c:5358
+#: diff.c:5357 diff.c:5360 diff.c:5363
 msgid "<width>"
 msgstr "<ancho>"
 
-#: diff.c:5353
+#: diff.c:5358
 msgid "generate diffstat with a given width"
 msgstr "genera diffstat con un ancho dado"
 
-#: diff.c:5356
+#: diff.c:5361
 msgid "generate diffstat with a given name width"
 msgstr "genera diffstat con un nombre de ancho dado"
 
-#: diff.c:5359
+#: diff.c:5364
 msgid "generate diffstat with a given graph width"
 msgstr "genera diffstat con un ancho de graph dado"
 
-#: diff.c:5361
+#: diff.c:5366
 msgid "<count>"
 msgstr "<cantidad>"
 
-#: diff.c:5362
+#: diff.c:5367
 msgid "generate diffstat with limited lines"
 msgstr "genera diffstat con líneas limitadas"
 
-#: diff.c:5365
+#: diff.c:5370
 msgid "generate compact summary in diffstat"
 msgstr "genera un resumen compacto de diffstat"
 
-#: diff.c:5368
+#: diff.c:5373
 msgid "output a binary diff that can be applied"
 msgstr "muestra un diff binario que puede ser aplicado"
 
-#: diff.c:5371
+#: diff.c:5376
 msgid "show full pre- and post-image object names on the \"index\" lines"
 msgstr ""
 "mostrar todo un pre- y post-image de nombres de objetos en las líneas \"index"
 "\""
 
-#: diff.c:5373
+#: diff.c:5378
 msgid "show colored diff"
 msgstr "mostrar diff colorido"
 
-#: diff.c:5374
+#: diff.c:5379
 msgid "<kind>"
 msgstr "<tipo>"
 
-#: diff.c:5375
+#: diff.c:5380
 msgid ""
 "highlight whitespace errors in the 'context', 'old' or 'new' lines in the "
 "diff"
@@ -3423,7 +3464,7 @@
 "resaltar errores de espacios en blanco en las líneas 'context', 'old' o "
 "'new' del diff"
 
-#: diff.c:5378
+#: diff.c:5383
 msgid ""
 "do not munge pathnames and use NULs as output field terminators in --raw or "
 "--numstat"
@@ -3431,89 +3472,89 @@
 "no consolidar los pathnames y usar NULs como terminadores de campos en --raw "
 "o --numstat"
 
-#: diff.c:5381 diff.c:5384 diff.c:5387 diff.c:5493
+#: diff.c:5386 diff.c:5389 diff.c:5392 diff.c:5498
 msgid "<prefix>"
 msgstr "<prefijo>"
 
-#: diff.c:5382
+#: diff.c:5387
 msgid "show the given source prefix instead of \"a/\""
 msgstr "mostrar el prefijo de fuente dado en lugar de \"a/\""
 
-#: diff.c:5385
+#: diff.c:5390
 msgid "show the given destination prefix instead of \"b/\""
 msgstr "mostrar el prefijo de destino en lugar de \"b/\""
 
-#: diff.c:5388
+#: diff.c:5393
 msgid "prepend an additional prefix to every line of output"
 msgstr "anteponer un prefijo adicional a cada línea mostrada"
 
-#: diff.c:5391
+#: diff.c:5396
 msgid "do not show any source or destination prefix"
 msgstr "no mostrar ningún prefijo de fuente o destino"
 
-#: diff.c:5394
+#: diff.c:5399
 msgid "show context between diff hunks up to the specified number of lines"
 msgstr ""
 "muestra el contexto entre hunks de diff hasta el número especificado de "
 "líneas"
 
-#: diff.c:5398 diff.c:5403 diff.c:5408
+#: diff.c:5403 diff.c:5408 diff.c:5413
 msgid "<char>"
 msgstr "<char>"
 
-#: diff.c:5399
+#: diff.c:5404
 msgid "specify the character to indicate a new line instead of '+'"
 msgstr "especifica el char para indicar una nueva línea en lugar de '+'"
 
-#: diff.c:5404
+#: diff.c:5409
 msgid "specify the character to indicate an old line instead of '-'"
 msgstr "especifica el char para indicar una línea vieja en lugar de '-'"
 
-#: diff.c:5409
+#: diff.c:5414
 msgid "specify the character to indicate a context instead of ' '"
 msgstr "especifica el char para indicar un contexto en lugar de ' '"
 
-#: diff.c:5412
+#: diff.c:5417
 msgid "Diff rename options"
 msgstr "Opciones de diff rename"
 
-#: diff.c:5413
+#: diff.c:5418
 msgid "<n>[/<m>]"
 msgstr "<n>[/<m>]"
 
-#: diff.c:5414
+#: diff.c:5419
 msgid "break complete rewrite changes into pairs of delete and create"
 msgstr "descomponer los cambios de reescritura en pares de borrar y crear"
 
-#: diff.c:5418
+#: diff.c:5423
 msgid "detect renames"
 msgstr "detectar renombrados"
 
-#: diff.c:5422
+#: diff.c:5427
 msgid "omit the preimage for deletes"
 msgstr "omite la preimage para borrados"
 
-#: diff.c:5425
+#: diff.c:5430
 msgid "detect copies"
 msgstr "detectar copias"
 
-#: diff.c:5429
+#: diff.c:5434
 msgid "use unmodified files as source to find copies"
 msgstr "usa archivos no modificados como fuente para encontrar copias"
 
-#: diff.c:5431
+#: diff.c:5436
 msgid "disable rename detection"
 msgstr "deshabilita detección de renombres"
 
-#: diff.c:5434
+#: diff.c:5439
 msgid "use empty blobs as rename source"
 msgstr "usa blobs vacíos como fuente de renombre"
 
-#: diff.c:5436
+#: diff.c:5441
 msgid "continue listing the history of a file beyond renames"
 msgstr "continua listando el historial de un archivo más allá de renombres"
 
-#: diff.c:5439
+#: diff.c:5444
 msgid ""
 "prevent rename/copy detection if the number of rename/copy targets exceeds "
 "given limit"
@@ -3521,155 +3562,155 @@
 "previene detección de renombre/copias si el número de objetivos para "
 "renombres/copias excede el límite dado"
 
-#: diff.c:5441
+#: diff.c:5446
 msgid "Diff algorithm options"
 msgstr "Opciones de algoritmos de diff"
 
-#: diff.c:5443
+#: diff.c:5448
 msgid "produce the smallest possible diff"
 msgstr "produce el diff más pequeño posible"
 
-#: diff.c:5446
+#: diff.c:5451
 msgid "ignore whitespace when comparing lines"
 msgstr "ignorar espacios en blanco cuando comparando líneas"
 
-#: diff.c:5449
+#: diff.c:5454
 msgid "ignore changes in amount of whitespace"
 msgstr "ignorar cambios en la cantidad de líneas en blanco"
 
-#: diff.c:5452
+#: diff.c:5457
 msgid "ignore changes in whitespace at EOL"
 msgstr "ignorar cambios en espacios en blanco en EOL"
 
-#: diff.c:5455
+#: diff.c:5460
 msgid "ignore carrier-return at the end of line"
 msgstr "ignora carrier-return al final de la línea"
 
-#: diff.c:5458
+#: diff.c:5463
 msgid "ignore changes whose lines are all blank"
 msgstr "ignora cambios cuyas líneas son todas en blanco"
 
-#: diff.c:5461
+#: diff.c:5466
 msgid "heuristic to shift diff hunk boundaries for easy reading"
 msgstr "heurística para cambiar los límites de hunk para una fácil lectura"
 
-#: diff.c:5464
+#: diff.c:5469
 msgid "generate diff using the \"patience diff\" algorithm"
 msgstr "genera un diff usando algoritmo \"patience diff\""
 
-#: diff.c:5468
+#: diff.c:5473
 msgid "generate diff using the \"histogram diff\" algorithm"
 msgstr "genera un diff usando algoritmo \"histogram diff\""
 
-#: diff.c:5470
+#: diff.c:5475
 msgid "<algorithm>"
 msgstr "<algoritmo>"
 
-#: diff.c:5471
+#: diff.c:5476
 msgid "choose a diff algorithm"
 msgstr "escoge un algoritmo para diff"
 
-#: diff.c:5473
+#: diff.c:5478
 msgid "<text>"
 msgstr "<texto>"
 
-#: diff.c:5474
+#: diff.c:5479
 msgid "generate diff using the \"anchored diff\" algorithm"
 msgstr "genera un diff usando algoritmo \"anchored diff\""
 
-#: diff.c:5476 diff.c:5485 diff.c:5488
+#: diff.c:5481 diff.c:5490 diff.c:5493
 msgid "<mode>"
 msgstr "<modo>"
 
-#: diff.c:5477
+#: diff.c:5482
 msgid "show word diff, using <mode> to delimit changed words"
 msgstr ""
 "muestra diff por palabras usando <modo> para delimitar las palabras cambiadas"
 
-#: diff.c:5479 diff.c:5482 diff.c:5527
+#: diff.c:5484 diff.c:5487 diff.c:5532
 msgid "<regex>"
 msgstr "<regex>"
 
-#: diff.c:5480
+#: diff.c:5485
 msgid "use <regex> to decide what a word is"
 msgstr "usa <regex> para decidir que palabra es"
 
-#: diff.c:5483
+#: diff.c:5488
 msgid "equivalent to --word-diff=color --word-diff-regex=<regex>"
 msgstr "equivalente a --word-diff=color --word-diff-regex=<regex>"
 
-#: diff.c:5486
+#: diff.c:5491
 msgid "moved lines of code are colored differently"
 msgstr "líneas movidas de código están coloreadas diferente"
 
-#: diff.c:5489
+#: diff.c:5494
 msgid "how white spaces are ignored in --color-moved"
 msgstr "como espacios en blanco son ignorados en --color-moved"
 
-#: diff.c:5492
+#: diff.c:5497
 msgid "Other diff options"
 msgstr "Otras opciones de diff"
 
-#: diff.c:5494
+#: diff.c:5499
 msgid "when run from subdir, exclude changes outside and show relative paths"
 msgstr ""
 "cuando ejecutado desde un subdir, excluye cambios del exterior y muestra "
 "paths relativos"
 
-#: diff.c:5498
+#: diff.c:5503
 msgid "treat all files as text"
 msgstr "tratar todos los archivos como texto"
 
-#: diff.c:5500
+#: diff.c:5505
 msgid "swap two inputs, reverse the diff"
 msgstr "cambia dos inputs, invierte el diff"
 
-#: diff.c:5502
+#: diff.c:5507
 msgid "exit with 1 if there were differences, 0 otherwise"
 msgstr "termina con 1 si hubieron diferencias, de lo contrario con 0"
 
-#: diff.c:5504
+#: diff.c:5509
 msgid "disable all output of the program"
 msgstr "deshabilita todo el output del programa"
 
-#: diff.c:5506
+#: diff.c:5511
 msgid "allow an external diff helper to be executed"
 msgstr "permite la ejecución de un diff helper externo"
 
-#: diff.c:5508
+#: diff.c:5513
 msgid "run external text conversion filters when comparing binary files"
 msgstr ""
 "ejecuta filtros de conversión de texto externos cuando comparando binarios"
 
-#: diff.c:5510
+#: diff.c:5515
 msgid "<when>"
 msgstr "<cuando>"
 
-#: diff.c:5511
+#: diff.c:5516
 msgid "ignore changes to submodules in the diff generation"
 msgstr "ignorar cambios a submódulos en la generación de diff"
 
-#: diff.c:5514
+#: diff.c:5519
 msgid "<format>"
 msgstr "<formato>"
 
-#: diff.c:5515
+#: diff.c:5520
 msgid "specify how differences in submodules are shown"
 msgstr "especifica como son mostradas las diferencias en submódulos"
 
-#: diff.c:5519
+#: diff.c:5524
 msgid "hide 'git add -N' entries from the index"
 msgstr "ocultar entradas 'git add -N' del index"
 
-#: diff.c:5522
+#: diff.c:5527
 msgid "treat 'git add -N' entries as real in the index"
 msgstr "trata entradas 'git add -N' como reales en el index"
 
-#: diff.c:5524
+#: diff.c:5529
 msgid "<string>"
 msgstr "<string>"
 
-#: diff.c:5525
+#: diff.c:5530
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "string"
@@ -3677,7 +3718,7 @@
 "busca por diferencias que cambien el número de ocurrencias para el string "
 "especificado"
 
-#: diff.c:5528
+#: diff.c:5533
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "regex"
@@ -3685,23 +3726,23 @@
 "busca por diferencias que cambien el número de ocurrencias para el regex "
 "especificado"
 
-#: diff.c:5531
+#: diff.c:5536
 msgid "show all changes in the changeset with -S or -G"
 msgstr "mostrar todos los cambios en el changeset con -S o -G"
 
-#: diff.c:5534
+#: diff.c:5539
 msgid "treat <string> in -S as extended POSIX regular expression"
 msgstr "tratar <string> en -S como una expresión regular extendida de POSIX"
 
-#: diff.c:5537
+#: diff.c:5542
 msgid "control the order in which files appear in the output"
 msgstr "controlar el orden en el que los archivos aparecen en la salida"
 
-#: diff.c:5538
+#: diff.c:5543
 msgid "<object-id>"
 msgstr "<id-objeto>"
 
-#: diff.c:5539
+#: diff.c:5544
 msgid ""
 "look for differences that change the number of occurrences of the specified "
 "object"
@@ -3709,33 +3750,33 @@
 "busca por diferencias que cambien el número de ocurrencias para el objeto "
 "especificado"
 
-#: diff.c:5541
+#: diff.c:5546
 msgid "[(A|C|D|M|R|T|U|X|B)...[*]]"
 msgstr "[(A|C|D|M|R|T|U|X|B)...[*]]"
 
-#: diff.c:5542
+#: diff.c:5547
 msgid "select files by diff type"
 msgstr "selecciona archivos por tipo de diff"
 
-#: diff.c:5544
+#: diff.c:5549
 msgid "<file>"
 msgstr "<archivo>"
 
-#: diff.c:5545
+#: diff.c:5550
 msgid "Output to a specific file"
 msgstr "Output a un archivo específico"
 
-#: diff.c:6200
+#: diff.c:6205
 msgid "inexact rename detection was skipped due to too many files."
 msgstr ""
 "detección de cambio de nombre inexacta fue saltada por haber muchos archivos."
 
-#: diff.c:6203
+#: diff.c:6208
 msgid "only found copies from modified paths due to too many files."
 msgstr ""
 "solo se encontraron copias de rutas modificadas por haber muchos archivos."
 
-#: diff.c:6206
+#: diff.c:6211
 #, c-format
 msgid ""
 "you may want to set your %s variable to at least %d and retry the command."
@@ -3752,61 +3793,61 @@
 msgid "Performing inexact rename detection"
 msgstr "Realizando una detección de cambios de nombre inexacta"
 
-#: dir.c:555
+#: dir.c:573
 #, c-format
 msgid "pathspec '%s' did not match any file(s) known to git"
 msgstr ""
 "ruta especificada '%s' no concordó con ningún archivo(s) conocido por git"
 
-#: dir.c:695 dir.c:724 dir.c:737
+#: dir.c:713 dir.c:742 dir.c:755
 #, c-format
 msgid "unrecognized pattern: '%s'"
 msgstr "patrón desconocido: '%s'"
 
-#: dir.c:754 dir.c:768
+#: dir.c:772 dir.c:786
 #, c-format
 msgid "unrecognized negative pattern: '%s'"
 msgstr "patrón negativo no reconocido: '%s'"
 
-#: dir.c:786
+#: dir.c:804
 #, c-format
 msgid "your sparse-checkout file may have issues: pattern '%s' is repeated"
 msgstr ""
 "tu archivo sparse-checkout tal vez tenga errores: patrón '%s' está repetido"
 
-#: dir.c:796
+#: dir.c:814
 msgid "disabling cone pattern matching"
 msgstr "deshabilitar coincidencia de patrónes cono"
 
-#: dir.c:1173
+#: dir.c:1191
 #, c-format
 msgid "cannot use %s as an exclude file"
 msgstr "no se puede usar %s como archivo de exclusión"
 
-#: dir.c:2275
+#: dir.c:2296
 #, c-format
 msgid "could not open directory '%s'"
 msgstr "no se pudo abrir el directorio '%s'"
 
-#: dir.c:2575
+#: dir.c:2596
 msgid "failed to get kernel name and information"
 msgstr "falló al conseguir la información y nombre del kernel"
 
-#: dir.c:2699
+#: dir.c:2720
 msgid "untracked cache is disabled on this system or location"
 msgstr "untracked cache está desactivado en este sistema o ubicación"
 
-#: dir.c:3481
+#: dir.c:3502
 #, c-format
 msgid "index file corrupt in repo %s"
 msgstr "archivo índice corrompido en repositorio %s"
 
-#: dir.c:3526 dir.c:3531
+#: dir.c:3547 dir.c:3552
 #, c-format
 msgid "could not create directories for %s"
 msgstr "no se pudo crear directorios para %s"
 
-#: dir.c:3560
+#: dir.c:3581
 #, c-format
 msgid "could not migrate git directory from '%s' to '%s'"
 msgstr "no se pudo migrar el directorio git de '%s' a '%s'"
@@ -3816,11 +3857,11 @@
 msgid "hint: Waiting for your editor to close the file...%c"
 msgstr "ayuda: Esperando que tu editor cierre el archivo ...%c"
 
-#: entry.c:178
+#: entry.c:177
 msgid "Filtering content"
 msgstr "Filtrando contenido"
 
-#: entry.c:479
+#: entry.c:478
 #, c-format
 msgid "could not stat file '%s'"
 msgstr "no se pudo establecer el archivo '%s'"
@@ -3840,228 +3881,246 @@
 msgid "too many args to run %s"
 msgstr "demasiados argumentos para correr %s"
 
-#: fetch-pack.c:151
+#: fetch-pack.c:152
 msgid "git fetch-pack: expected shallow list"
 msgstr "git fetch-pack: lista poco profunda esperada"
 
-#: fetch-pack.c:154
+#: fetch-pack.c:155
 msgid "git fetch-pack: expected a flush packet after shallow list"
 msgstr ""
 "git fetch-pack: se esperaba un flush packet luego de la lista superficial"
 
-#: fetch-pack.c:165
+#: fetch-pack.c:166
 msgid "git fetch-pack: expected ACK/NAK, got a flush packet"
 msgstr "git fetch-pack: se esperaba ACK/NAK, se obtuvo un flush packet"
 
-#: fetch-pack.c:185
+#: fetch-pack.c:186
 #, c-format
 msgid "git fetch-pack: expected ACK/NAK, got '%s'"
 msgstr "git fetch-pack: se esperaba ACK/NAK, se obtuvo '%s'"
 
-#: fetch-pack.c:196
+#: fetch-pack.c:197
 msgid "unable to write to remote"
 msgstr "no se puede escribir al remoto"
 
-#: fetch-pack.c:258
+#: fetch-pack.c:259
 msgid "--stateless-rpc requires multi_ack_detailed"
 msgstr "--stateless-rpc requiere multi_ack_detailed"
 
-#: fetch-pack.c:357 fetch-pack.c:1364
+#: fetch-pack.c:358 fetch-pack.c:1408
 #, c-format
 msgid "invalid shallow line: %s"
 msgstr "línea poco profunda inválida: %s"
 
-#: fetch-pack.c:363 fetch-pack.c:1370
+#: fetch-pack.c:364 fetch-pack.c:1414
 #, c-format
 msgid "invalid unshallow line: %s"
 msgstr "línea superficial inválida: %s"
 
-#: fetch-pack.c:365 fetch-pack.c:1372
+#: fetch-pack.c:366 fetch-pack.c:1416
 #, c-format
 msgid "object not found: %s"
 msgstr "objeto no encontrado: %s"
 
-#: fetch-pack.c:368 fetch-pack.c:1375
+#: fetch-pack.c:369 fetch-pack.c:1419
 #, c-format
 msgid "error in object: %s"
 msgstr "error en objeto: %s"
 
-#: fetch-pack.c:370 fetch-pack.c:1377
+#: fetch-pack.c:371 fetch-pack.c:1421
 #, c-format
 msgid "no shallow found: %s"
 msgstr "superficie no encontrada: %s"
 
-#: fetch-pack.c:373 fetch-pack.c:1381
+#: fetch-pack.c:374 fetch-pack.c:1425
 #, c-format
 msgid "expected shallow/unshallow, got %s"
 msgstr "se esperaba shallow/unshallow, se obtuvo %s"
 
-#: fetch-pack.c:415
+#: fetch-pack.c:416
 #, c-format
 msgid "got %s %d %s"
 msgstr "se obtuvo %s %d %s"
 
-#: fetch-pack.c:432
+#: fetch-pack.c:433
 #, c-format
 msgid "invalid commit %s"
 msgstr "commit inválido %s"
 
-#: fetch-pack.c:463
+#: fetch-pack.c:464
 msgid "giving up"
 msgstr "rindiéndose"
 
-#: fetch-pack.c:476 progress.c:340
+#: fetch-pack.c:477 progress.c:336
 msgid "done"
 msgstr "listo"
 
-#: fetch-pack.c:488
+#: fetch-pack.c:489
 #, c-format
 msgid "got %s (%d) %s"
 msgstr "se obtuvo %s (%d) %s"
 
-#: fetch-pack.c:534
+#: fetch-pack.c:535
 #, c-format
 msgid "Marking %s as complete"
 msgstr "Marcando %s como completa"
 
-#: fetch-pack.c:755
+#: fetch-pack.c:756
 #, c-format
 msgid "already have %s (%s)"
 msgstr "ya se tiene %s (%s)"
 
-#: fetch-pack.c:819
+#: fetch-pack.c:821
 msgid "fetch-pack: unable to fork off sideband demultiplexer"
 msgstr "fetch-pack: no se puede extraer un demultiplexor de banda lateral"
 
-#: fetch-pack.c:827
+#: fetch-pack.c:829
 msgid "protocol error: bad pack header"
 msgstr "error de protocolo: paquete de header erróneo"
 
-#: fetch-pack.c:901
+#: fetch-pack.c:910
 #, c-format
 msgid "fetch-pack: unable to fork off %s"
 msgstr "fetch-pack: no se puede quitar %s"
 
-#: fetch-pack.c:917
+#: fetch-pack.c:927
 #, c-format
 msgid "%s failed"
 msgstr "%s falló"
 
-#: fetch-pack.c:919
+#: fetch-pack.c:929
 msgid "error in sideband demultiplexer"
 msgstr "error en demultiplexor de banda lateral"
 
-#: fetch-pack.c:966
+#: fetch-pack.c:976
 #, c-format
 msgid "Server version is %.*s"
 msgstr "Versión de servidor es %.*s"
 
-#: fetch-pack.c:971 fetch-pack.c:977 fetch-pack.c:980 fetch-pack.c:986
-#: fetch-pack.c:990 fetch-pack.c:994 fetch-pack.c:998 fetch-pack.c:1002
-#: fetch-pack.c:1006 fetch-pack.c:1010 fetch-pack.c:1014 fetch-pack.c:1018
-#: fetch-pack.c:1024 fetch-pack.c:1030 fetch-pack.c:1035 fetch-pack.c:1040
+#: fetch-pack.c:981 fetch-pack.c:987 fetch-pack.c:990 fetch-pack.c:996
+#: fetch-pack.c:1000 fetch-pack.c:1004 fetch-pack.c:1008 fetch-pack.c:1012
+#: fetch-pack.c:1016 fetch-pack.c:1020 fetch-pack.c:1024 fetch-pack.c:1028
+#: fetch-pack.c:1034 fetch-pack.c:1040 fetch-pack.c:1045 fetch-pack.c:1050
 #, c-format
 msgid "Server supports %s"
 msgstr "El servidor soporta %s"
 
-#: fetch-pack.c:973
+#: fetch-pack.c:983
 msgid "Server does not support shallow clients"
 msgstr "El servidor no soporta clientes superficiales"
 
-#: fetch-pack.c:1033
+#: fetch-pack.c:1043
 msgid "Server does not support --shallow-since"
 msgstr "El servidor no soporta --shalow-since"
 
-#: fetch-pack.c:1038
+#: fetch-pack.c:1048
 msgid "Server does not support --shallow-exclude"
 msgstr "El servidor no soporta --shalow-exclude"
 
-#: fetch-pack.c:1042
+#: fetch-pack.c:1052
 msgid "Server does not support --deepen"
 msgstr "El servidor no soporta --deepen"
 
-#: fetch-pack.c:1059
+#: fetch-pack.c:1054
+msgid "Server does not support this repository's object format"
+msgstr "El servidor no soporta el formato de objetos de este repositorio"
+
+#: fetch-pack.c:1071
 msgid "no common commits"
 msgstr "no hay commits comunes"
 
-#: fetch-pack.c:1071 fetch-pack.c:1563
+#: fetch-pack.c:1083 fetch-pack.c:1639
 msgid "git fetch-pack: fetch failed."
 msgstr "git fetch-pack: fetch falló."
 
 #: fetch-pack.c:1211
+#, c-format
+msgid "mismatched algorithms: client %s; server %s"
+msgstr "algoritmos no compatibles: cliente %s; servidor %s"
+
+#: fetch-pack.c:1215
+#, c-format
+msgid "the server does not support algorithm '%s'"
+msgstr "servidor no soporta el algoritmo '%s'"
+
+#: fetch-pack.c:1235
 msgid "Server does not support shallow requests"
 msgstr "El servidor no soporta peticiones superficiales"
 
-#: fetch-pack.c:1218
+#: fetch-pack.c:1242
 msgid "Server supports filter"
 msgstr "El servidor soporta filtro"
 
-#: fetch-pack.c:1242
+#: fetch-pack.c:1286
 msgid "unable to write request to remote"
 msgstr "no se puede escribir request al remoto"
 
-#: fetch-pack.c:1260
+#: fetch-pack.c:1304
 #, c-format
 msgid "error reading section header '%s'"
 msgstr "error leyendo sección header '%s'"
 
-#: fetch-pack.c:1266
+#: fetch-pack.c:1310
 #, c-format
 msgid "expected '%s', received '%s'"
 msgstr "se esperaba '%s', se recibió '%s'"
 
-#: fetch-pack.c:1327
+#: fetch-pack.c:1371
 #, c-format
 msgid "unexpected acknowledgment line: '%s'"
 msgstr "línea de confirmación inesperada: '%s'"
 
-#: fetch-pack.c:1332
+#: fetch-pack.c:1376
 #, c-format
 msgid "error processing acks: %d"
 msgstr "error procesando acks: %d"
 
-#: fetch-pack.c:1342
+#: fetch-pack.c:1386
 msgid "expected packfile to be sent after 'ready'"
 msgstr "espere que el packfile sea mandado luego del 'listo'"
 
-#: fetch-pack.c:1344
+#: fetch-pack.c:1388
 msgid "expected no other sections to be sent after no 'ready'"
 msgstr "espere que ninguna otra sección sea enviada luego del 'listo'"
 
-#: fetch-pack.c:1386
+#: fetch-pack.c:1430
 #, c-format
 msgid "error processing shallow info: %d"
 msgstr "error procesando información superficial: %d"
 
-#: fetch-pack.c:1433
+#: fetch-pack.c:1477
 #, c-format
 msgid "expected wanted-ref, got '%s'"
 msgstr "se esperaba wanted-ref, se obtuvo '%s'"
 
-#: fetch-pack.c:1438
+#: fetch-pack.c:1482
 #, c-format
 msgid "unexpected wanted-ref: '%s'"
 msgstr "wanted-ref inesperado: '%s'"
 
-#: fetch-pack.c:1443
+#: fetch-pack.c:1487
 #, c-format
 msgid "error processing wanted refs: %d"
 msgstr "error procesando refs deseadas: %d"
 
-#: fetch-pack.c:1789
+#: fetch-pack.c:1517
+msgid "git fetch-pack: expected response end packet"
+msgstr "git fetch-pack: se espera un paquete final de respuesta"
+
+#: fetch-pack.c:1921
 msgid "no matching remote head"
 msgstr "no concuerda el head remoto"
 
-#: fetch-pack.c:1812 builtin/clone.c:692
+#: fetch-pack.c:1944 builtin/clone.c:692
 msgid "remote did not send all necessary objects"
 msgstr "remoto no mando todos los objetos necesarios"
 
-#: fetch-pack.c:1839
+#: fetch-pack.c:1971
 #, c-format
 msgid "no such remote ref %s"
 msgstr "no existe ref remota %s"
 
-#: fetch-pack.c:1842
+#: fetch-pack.c:1974
 #, c-format
 msgid "Server does not allow request for unadvertised object %s"
 msgstr "El servidor no permite solicitudes de objetos inadvertidos %s"
@@ -4097,7 +4156,7 @@
 msgid "'%s': unable to read %s"
 msgstr "'%s': no es posible leer %s"
 
-#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:82
+#: grep.c:2145 setup.c:176 builtin/clone.c:411 builtin/diff.c:89
 #: builtin/rm.c:135
 #, c-format
 msgid "failed to stat '%s'"
@@ -4241,16 +4300,16 @@
 "\n"
 "Los comandos más similares son"
 
-#: help.c:653
+#: help.c:654
 msgid "git version [<options>]"
 msgstr "git versión [<opciones>]"
 
-#: help.c:708
+#: help.c:709
 #, c-format
 msgid "%s: %s - %s"
 msgstr "%s: %s - %s"
 
-#: help.c:712
+#: help.c:713
 msgid ""
 "\n"
 "Did you mean this?"
@@ -4349,6 +4408,12 @@
 msgid "multiple filter-specs cannot be combined"
 msgstr "no se pueden combinar múltiples tipos de especificaciones de filtro"
 
+#: list-objects-filter-options.c:330
+msgid "unable to upgrade repository format to support partial clone"
+msgstr ""
+"no es posible actualizar el formato del repositorio para soportar clonado "
+"parcial"
+
 #: list-objects-filter.c:492
 #, c-format
 msgid "unable to access sparse blob in '%s'"
@@ -4588,7 +4653,7 @@
 msgid "renamed"
 msgstr "renombrado"
 
-#: merge-recursive.c:1577 merge-recursive.c:2472 merge-recursive.c:3117
+#: merge-recursive.c:1577 merge-recursive.c:2484 merge-recursive.c:3129
 #, c-format
 msgid "Refusing to lose dirty file at %s"
 msgstr "Rehusando perder el archivo sucio en %s"
@@ -4630,14 +4695,14 @@
 msgid " (left unresolved)"
 msgstr " (dejado sin resolver)"
 
-#: merge-recursive.c:1793
+#: merge-recursive.c:1805
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "CONFLICTO (renombrar/renombrar): Renombrar %s->%s en %s. Renombrar %s->%s en "
 "%s"
 
-#: merge-recursive.c:2056
+#: merge-recursive.c:2068
 #, c-format
 msgid ""
 "CONFLICT (directory rename split): Unclear where to place %s because "
@@ -4648,7 +4713,7 @@
 "colocar %s porque el directorio %s fue renombrado a otros múltiples "
 "directorios, sin ningún que contenga la mayoría de archivos."
 
-#: merge-recursive.c:2088
+#: merge-recursive.c:2100
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Existing file/dir at %s in the way of "
@@ -4658,7 +4723,7 @@
 "existente en %s se interpone con el cambio de nombres implícito, poniendo "
 "la(s) siguiente(s) ruta(s) aquí: %s."
 
-#: merge-recursive.c:2098
+#: merge-recursive.c:2110
 #, c-format
 msgid ""
 "CONFLICT (implicit dir rename): Cannot map more than one path to %s; "
@@ -4667,7 +4732,7 @@
 "CONFLICTO (cambio de nombre implícito): No se puede mapear más de una ruta "
 "para %s; cambio de nombre implícito intentó poner estas rutas: %s"
 
-#: merge-recursive.c:2190
+#: merge-recursive.c:2202
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename directory %s->%s in %s. Rename directory %s-"
@@ -4676,7 +4741,7 @@
 "CONFLICTO (renombrar/renombrar): Renombrar directorio %s->%s en %s. "
 "Renombrar directorio %s->%s en %s"
 
-#: merge-recursive.c:2435
+#: merge-recursive.c:2447
 #, c-format
 msgid ""
 "WARNING: Avoiding applying %s -> %s rename to %s, because %s itself was "
@@ -4685,52 +4750,52 @@
 "PELIGRO: Evitando aplicar %s -> %s renombrado a %s, porque %s mismo fue "
 "renombrado."
 
-#: merge-recursive.c:2961
+#: merge-recursive.c:2973
 #, c-format
 msgid "cannot read object %s"
 msgstr "no se pudo leer el objeto %s"
 
-#: merge-recursive.c:2964
+#: merge-recursive.c:2976
 #, c-format
 msgid "object %s is not a blob"
 msgstr "objeto %s no es un blob"
 
-#: merge-recursive.c:3028
+#: merge-recursive.c:3040
 msgid "modify"
 msgstr "modificar"
 
-#: merge-recursive.c:3028
+#: merge-recursive.c:3040
 msgid "modified"
 msgstr "modificado"
 
-#: merge-recursive.c:3040
+#: merge-recursive.c:3052
 msgid "content"
 msgstr "contenido"
 
-#: merge-recursive.c:3044
+#: merge-recursive.c:3056
 msgid "add/add"
 msgstr "agregar/agregar"
 
-#: merge-recursive.c:3067
+#: merge-recursive.c:3079
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "Saltado %s (fusionado como existente)"
 
-#: merge-recursive.c:3089 git-submodule.sh:985
+#: merge-recursive.c:3101 git-submodule.sh:959
 msgid "submodule"
 msgstr "submódulo"
 
-#: merge-recursive.c:3090
+#: merge-recursive.c:3102
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "CONFLICTO (%s): Conflicto de fusión en %s"
 
-#: merge-recursive.c:3120
+#: merge-recursive.c:3132
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Agregando más bien como %s"
 
-#: merge-recursive.c:3203
+#: merge-recursive.c:3215
 #, c-format
 msgid ""
 "Path updated: %s added in %s inside a directory that was renamed in %s; "
@@ -4739,7 +4804,7 @@
 "Path actualizado: %s agregado en %s dentro de un directorio que fue "
 "renombrado en %s; moviéndolo a %s."
 
-#: merge-recursive.c:3206
+#: merge-recursive.c:3218
 #, c-format
 msgid ""
 "CONFLICT (file location): %s added in %s inside a directory that was renamed "
@@ -4748,7 +4813,7 @@
 "CONFLICTO (ubicación de archivo): %s agregado en %s dentro de un directorio "
 "que fue renombrado en %s, sugerimos que debería ser movido a %s."
 
-#: merge-recursive.c:3210
+#: merge-recursive.c:3222
 #, c-format
 msgid ""
 "Path updated: %s renamed to %s in %s, inside a directory that was renamed in "
@@ -4757,7 +4822,7 @@
 "Path actualizado: %s renombrado a %s en %s, dentro de un directorio que fue "
 "renombrado en %s; moviéndolo a %s."
 
-#: merge-recursive.c:3213
+#: merge-recursive.c:3225
 #, c-format
 msgid ""
 "CONFLICT (file location): %s renamed to %s in %s, inside a directory that "
@@ -4767,61 +4832,61 @@
 "directorio que fue renombrado en %s, sugiriendo que tal vez debería ser "
 "movido a %s."
 
-#: merge-recursive.c:3327
+#: merge-recursive.c:3339
 #, c-format
 msgid "Removing %s"
 msgstr "Eliminando %s"
 
-#: merge-recursive.c:3350
+#: merge-recursive.c:3362
 msgid "file/directory"
 msgstr "archivo/directorio"
 
-#: merge-recursive.c:3355
+#: merge-recursive.c:3367
 msgid "directory/file"
 msgstr "directorio/archivo"
 
-#: merge-recursive.c:3362
+#: merge-recursive.c:3374
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "CONFLICTO (%s): Hay un directorio con el nombre %s en %s. Agregando %s como "
 "%s"
 
-#: merge-recursive.c:3371
+#: merge-recursive.c:3383
 #, c-format
 msgid "Adding %s"
 msgstr "Agregando %s"
 
-#: merge-recursive.c:3380
+#: merge-recursive.c:3392
 #, c-format
 msgid "CONFLICT (add/add): Merge conflict in %s"
 msgstr "CONFLICTO (add/add): Conflicto de merge en %s"
 
-#: merge-recursive.c:3424
+#: merge-recursive.c:3436
 msgid "Already up to date!"
 msgstr "¡Ya está actualizado!"
 
-#: merge-recursive.c:3433
+#: merge-recursive.c:3445
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "falló la fusión de los árboles %s y %s"
 
-#: merge-recursive.c:3537
+#: merge-recursive.c:3549
 msgid "Merging:"
 msgstr "Fusionando:"
 
-#: merge-recursive.c:3550
+#: merge-recursive.c:3562
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "se encontró %u ancestro común:"
 msgstr[1] "se encontraron %u ancestros comunes:"
 
-#: merge-recursive.c:3600
+#: merge-recursive.c:3612
 msgid "merge returned no commit"
 msgstr "la fusión no devolvió ningún commit"
 
-#: merge-recursive.c:3659
+#: merge-recursive.c:3671
 #, c-format
 msgid ""
 "Your local changes to the following files would be overwritten by merge:\n"
@@ -4831,12 +4896,12 @@
 "merge:\n"
 "  %s"
 
-#: merge-recursive.c:3756
+#: merge-recursive.c:3768
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "No se pudo analizar el objeto '%s'"
 
-#: merge-recursive.c:3774 builtin/merge.c:705 builtin/merge.c:885
+#: merge-recursive.c:3786 builtin/merge.c:705 builtin/merge.c:885
 msgid "Unable to write index."
 msgstr "Incapaz de escribir el índice."
 
@@ -4845,7 +4910,7 @@
 msgstr "falló al leer la cache"
 
 #: merge.c:108 rerere.c:720 builtin/am.c:1878 builtin/am.c:1912
-#: builtin/checkout.c:559 builtin/checkout.c:824 builtin/clone.c:816
+#: builtin/checkout.c:559 builtin/checkout.c:822 builtin/clone.c:816
 #: builtin/stash.c:265
 msgid "unable to write new index file"
 msgstr "no es posible escribir el archivo índice"
@@ -5096,22 +5161,22 @@
 msgid "hash mismatch %s"
 msgstr "hash no concuerda %s"
 
-#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2135
+#: pack-bitmap.c:815 pack-bitmap.c:821 builtin/pack-objects.c:2184
 #, c-format
 msgid "unable to get size of %s"
 msgstr "no se pudo obtener el tamaño de %s"
 
-#: packfile.c:629
+#: packfile.c:630
 msgid "offset before end of packfile (broken .idx?)"
 msgstr "offset antes del final del paquete (broken .idx?)"
 
-#: packfile.c:1899
+#: packfile.c:1900
 #, c-format
 msgid "offset before start of pack index for %s (corrupt index?)"
 msgstr ""
 "offset antes del comienzo del índice del paquete para %s (¿índice corrupto?)"
 
-#: packfile.c:1903
+#: packfile.c:1904
 #, c-format
 msgid "offset beyond end of pack index for %s (truncated index?)"
 msgstr ""
@@ -5317,44 +5382,48 @@
 msgstr "no es posible escribir delim packet"
 
 #: pkt-line.c:106
+msgid "unable to write stateless separator packet"
+msgstr "no es posible escribir un paquete separador sin estado (stateless)"
+
+#: pkt-line.c:113
 msgid "flush packet write failed"
 msgstr "limpieza de escritura de paquetes falló"
 
-#: pkt-line.c:146 pkt-line.c:232
+#: pkt-line.c:153 pkt-line.c:239
 msgid "protocol error: impossibly long line"
 msgstr "error de protocolo: línea imposiblemente larga"
 
-#: pkt-line.c:162 pkt-line.c:164
+#: pkt-line.c:169 pkt-line.c:171
 msgid "packet write with format failed"
 msgstr "escritura de paquetes con formato falló"
 
-#: pkt-line.c:196
+#: pkt-line.c:203
 msgid "packet write failed - data exceeds max packet size"
 msgstr "fallo al escribir paquete - la data excede al tamaño máximo de paquete"
 
-#: pkt-line.c:203 pkt-line.c:210
+#: pkt-line.c:210 pkt-line.c:217
 msgid "packet write failed"
 msgstr "escritura de paquetes falló"
 
-#: pkt-line.c:295
+#: pkt-line.c:302
 msgid "read error"
 msgstr "error de lectura"
 
-#: pkt-line.c:303
+#: pkt-line.c:310
 msgid "the remote end hung up unexpectedly"
 msgstr "el remoto se colgó de manera inesperada"
 
-#: pkt-line.c:331
+#: pkt-line.c:338
 #, c-format
 msgid "protocol error: bad line length character: %.4s"
 msgstr "error de protocolo: mal caracter de largo de línea: %.4s"
 
-#: pkt-line.c:341 pkt-line.c:346
+#: pkt-line.c:352 pkt-line.c:357
 #, c-format
 msgid "protocol error: bad line length %d"
 msgstr "error de protocolo: mal largo de línea %d"
 
-#: pkt-line.c:362
+#: pkt-line.c:373
 #, c-format
 msgid "remote error: %s"
 msgstr "error remoto: %s"
@@ -5533,7 +5602,7 @@
 
 #: read-cache.c:1983 read-cache.c:2271 rerere.c:565 rerere.c:599 rerere.c:1111
 #: submodule.c:1619 builtin/add.c:532 builtin/check-ignore.c:181
-#: builtin/checkout.c:488 builtin/checkout.c:676 builtin/clean.c:961
+#: builtin/checkout.c:488 builtin/checkout.c:674 builtin/clean.c:991
 #: builtin/commit.c:364 builtin/diff-tree.c:121 builtin/grep.c:507
 #: builtin/mv.c:145 builtin/reset.c:247 builtin/rm.c:290
 #: builtin/submodule--helper.c:332
@@ -5590,7 +5659,7 @@
 msgid "broken index, expect %s in %s, got %s"
 msgstr "index roto, se esperaba %s en %s, se obtuvo %s"
 
-#: read-cache.c:3026 strbuf.c:1176 wrapper.c:622 builtin/merge.c:1130
+#: read-cache.c:3026 strbuf.c:1171 wrapper.c:630 builtin/merge.c:1130
 #, c-format
 msgid "could not close '%s'"
 msgstr "no se pudo cerrar '%s'"
@@ -5727,7 +5796,7 @@
 "\n"
 
 #: rebase-interactive.c:110 rerere.c:485 rerere.c:692 sequencer.c:3463
-#: sequencer.c:3489 sequencer.c:5248 builtin/fsck.c:346 builtin/rebase.c:258
+#: sequencer.c:3489 sequencer.c:5248 builtin/fsck.c:347 builtin/rebase.c:258
 #, c-format
 msgid "could not write '%s'"
 msgstr "no se pudo escribir '%s'"
@@ -5772,7 +5841,7 @@
 msgid "could not read '%s'."
 msgstr "no se puede leer '%s'."
 
-#: ref-filter.c:42 wt-status.c:1936
+#: ref-filter.c:42 wt-status.c:1977
 msgid "gone"
 msgstr "desaparecido"
 
@@ -5997,7 +6066,7 @@
 msgid "ignoring ref with broken name %s"
 msgstr "ignorando referencia con nombre roto %s"
 
-#: ref-filter.c:2095 refs.c:625
+#: ref-filter.c:2095 refs.c:657
 #, c-format
 msgid "ignoring broken ref %s"
 msgstr "ignorando referencia rota %s"
@@ -6027,94 +6096,108 @@
 msgid "option `%s' must point to a commit"
 msgstr "opción '%s' debe apuntar a un commit"
 
-#: refs.c:262
+#: refs.c:264
 #, c-format
 msgid "%s does not point to a valid object!"
 msgstr "¡%s no apunta a ningún objeto válido!"
 
-#: refs.c:623
+#: refs.c:572
+#, c-format
+msgid "could not retrieve `%s`"
+msgstr "no se pudo recibir `%s`"
+
+#: refs.c:579
+#, c-format
+msgid "invalid branch name: %s = %s"
+msgstr "Nombre de rama inválido: %s = %s"
+
+#: refs.c:655
 #, c-format
 msgid "ignoring dangling symref %s"
 msgstr "ignorando referencia rota %s"
 
-#: refs.c:760
+#: refs.c:792
 #, c-format
 msgid "could not open '%s' for writing: %s"
 msgstr "no se pudo abrir '%s' para escritura: %s"
 
-#: refs.c:770 refs.c:821
+#: refs.c:802 refs.c:853
 #, c-format
 msgid "could not read ref '%s'"
 msgstr "no se pudo leer la referencia '%s'"
 
-#: refs.c:776
+#: refs.c:808
 #, c-format
 msgid "ref '%s' already exists"
 msgstr "ref '%s' ya existe"
 
-#: refs.c:781
+#: refs.c:813
 #, c-format
 msgid "unexpected object ID when writing '%s'"
 msgstr "ID de objecto inesperado al escribir '%s'"
 
-#: refs.c:789 sequencer.c:408 sequencer.c:2721 sequencer.c:2925
-#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1173
-#: wrapper.c:620
+#: refs.c:821 sequencer.c:408 sequencer.c:2721 sequencer.c:2925
+#: sequencer.c:2939 sequencer.c:3195 sequencer.c:5159 strbuf.c:1168
+#: wrapper.c:628
 #, c-format
 msgid "could not write to '%s'"
 msgstr "no se pudo escribir en '%s'"
 
-#: refs.c:816 strbuf.c:1171 wrapper.c:188 wrapper.c:358 builtin/am.c:719
+#: refs.c:848 strbuf.c:1166 wrapper.c:196 wrapper.c:366 builtin/am.c:719
 #: builtin/rebase.c:852
 #, c-format
 msgid "could not open '%s' for writing"
 msgstr "no se pudo abrir '%s' para escritura"
 
-#: refs.c:823
+#: refs.c:855
 #, c-format
 msgid "unexpected object ID when deleting '%s'"
 msgstr "ID de objecto inesperado al borrar '%s'"
 
-#: refs.c:954
+#: refs.c:986
 #, c-format
 msgid "log for ref %s has gap after %s"
 msgstr "log de ref %s tiene un vacío tras %s"
 
-#: refs.c:960
+#: refs.c:992
 #, c-format
 msgid "log for ref %s unexpectedly ended on %s"
 msgstr "log de ref %s finalizado inesperadamente en %s"
 
-#: refs.c:1019
+#: refs.c:1051
 #, c-format
 msgid "log for %s is empty"
 msgstr "log de %s está vacío"
 
-#: refs.c:1111
+#: refs.c:1143
 #, c-format
 msgid "refusing to update ref with bad name '%s'"
 msgstr "rehusando actualizar ref con mal nombre '%s'"
 
-#: refs.c:1187
+#: refs.c:1219
 #, c-format
 msgid "update_ref failed for ref '%s': %s"
 msgstr "update_ref falló para ref '%s': %s"
 
-#: refs.c:1979
+#: refs.c:2011
 #, c-format
 msgid "multiple updates for ref '%s' not allowed"
 msgstr "múltiples actualizaciones para ref '%s' no permitidas"
 
-#: refs.c:2011
+#: refs.c:2098
 msgid "ref updates forbidden inside quarantine environment"
 msgstr "actualizaciones de ref prohibidas dentro de ambiente de cuarentena"
 
-#: refs.c:2107 refs.c:2137
+#: refs.c:2109
+msgid "ref updates aborted by hook"
+msgstr "ref update abortado por el hook"
+
+#: refs.c:2209 refs.c:2239
 #, c-format
 msgid "'%s' exists; cannot create '%s'"
 msgstr "'%s' existe; no se puede crear '%s'"
 
-#: refs.c:2113 refs.c:2148
+#: refs.c:2215 refs.c:2250
 #, c-format
 msgid "cannot process '%s' and '%s' at the same time"
 msgstr "no se puede procesar '%s' y '%s' al mismo tiempo"
@@ -6401,7 +6484,7 @@
 msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
 msgstr "  (usa \"git pull\" para fusionar la rama remota en la tuya)\n"
 
-#: remote.c:2233
+#: remote.c:2241
 #, c-format
 msgid "cannot parse expected object name '%s'"
 msgstr "no se puede leer el nombre de objeto '%s'"
@@ -6528,20 +6611,20 @@
 msgid "failed to find tree of %s"
 msgstr "falló al encontrar árbol de %s"
 
-#: revision.c:2655
+#: revision.c:2661
 msgid "your current branch appears to be broken"
 msgstr "tu rama actual parece estar rota"
 
-#: revision.c:2658
+#: revision.c:2664
 #, c-format
 msgid "your current branch '%s' does not have any commits yet"
 msgstr "tu rama actual '%s' no tiene ningún commit todavía"
 
-#: revision.c:2866
+#: revision.c:2873
 msgid "--first-parent is incompatible with --bisect"
 msgstr "--first-parent es incompatible con --bisect"
 
-#: revision.c:2870
+#: revision.c:2877
 msgid "-L does not yet support diff formats besides -p and -s"
 msgstr "-L no soporta todavía formatos de diff fuera de -p y -s"
 
@@ -6583,11 +6666,15 @@
 msgid "failed to sign the push certificate"
 msgstr "falló al firmar el certificado de push"
 
-#: send-pack.c:399
+#: send-pack.c:394
+msgid "the receiving end does not support this repository's hash algorithm"
+msgstr "el destino no soporta el algoritmo de hash de este repositorio"
+
+#: send-pack.c:403
 msgid "the receiving end does not support --signed push"
 msgstr "el final receptor no soporta --signed push"
 
-#: send-pack.c:401
+#: send-pack.c:405
 msgid ""
 "not sending a push certificate since the receiving end does not support --"
 "signed push"
@@ -6595,11 +6682,11 @@
 "no se manda un certificado de push ya que el destino no soporta push firmado "
 "(--signed )"
 
-#: send-pack.c:413
+#: send-pack.c:417
 msgid "the receiving end does not support --atomic push"
 msgstr "el destino n