From: Junio C Hamano Date: Fri, 21 Dec 2012 23:18:27 +0000 (-0800) Subject: Merge branch 'sl/git-svn-docs' X-Git-Tag: v1.8.1-rc3~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/80c78e11a007d234dcbc173ad002fae8f80a3707?hp=dd465ce66f685baee2c93e33ca39acafc139c46c Merge branch 'sl/git-svn-docs' * sl/git-svn-docs: git-svn: Note about tags. git-svn: Expand documentation for --follow-parent git-svn: Recommend use of structure options. git-svn: Document branches with at-sign(@). --- diff --git a/.mailmap b/.mailmap index bcf4f8770f..c7e8618300 100644 --- a/.mailmap +++ b/.mailmap @@ -9,7 +9,9 @@ Alex Bennée Alexander Gavrilov Aneesh Kumar K.V Brian M. Carlson +Cheng Renquan Chris Shoemaker +Dan Johnson Dana L. How Dana L. How Daniel Barkalow @@ -18,14 +20,18 @@ David Kågedal David S. Miller Deskin Miller Dirk Süsserott +Eric S. Raymond Erik Faye-Lund Fredrik Kuivinen +Frédéric Heitzmann H. Peter Anvin H. Peter Anvin H. Peter Anvin Horst H. von Brand İsmail Dönmez +Jakub Narębski Jay Soffian +Jeff King Joachim Berdal Haga Johannes Sixt Johannes Sixt @@ -41,12 +47,21 @@ Junio C Hamano Junio C Hamano Junio C Hamano Karl Hasselström +Kevin Leung Kent Engstrom Lars Doelle Lars Doelle Li Hong +Linus Torvalds +Linus Torvalds +Linus Torvalds +Linus Torvalds +Linus Torvalds +Linus Torvalds Lukas Sandström -Martin Langhoff +Marc-André Lureau +Mark Rada +Martin Langhoff Martin von Zweigbergk Michael Coleman Michael J Gruber @@ -63,11 +78,13 @@ Ralf Thielow Ramsay Allan Jones René Scharfe Robert Fitzsimons +Robert Zeh Sam Vilain Santi Béjar Sean Estabrooks Shawn O. Pearce Steven Grimm +Tay Ray Chuan Theodore Ts'o Thomas Rast Tony Luck diff --git a/Documentation/Makefile b/Documentation/Makefile index 361550422a..7df75d0b9d 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -31,7 +31,6 @@ SP_ARTICLES += howto/separating-topic-branches SP_ARTICLES += howto/revert-a-faulty-merge SP_ARTICLES += howto/recover-corrupted-blob-object SP_ARTICLES += howto/rebuild-from-update-hook -SP_ARTICLES += howto/rebuild-from-update-hook SP_ARTICLES += howto/rebase-from-internal-branch SP_ARTICLES += howto/maintain-git API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt))) diff --git a/Documentation/RelNotes/1.8.0.2.txt b/Documentation/RelNotes/1.8.0.2.txt index 5d08021a8d..8497e051de 100644 --- a/Documentation/RelNotes/1.8.0.2.txt +++ b/Documentation/RelNotes/1.8.0.2.txt @@ -4,6 +4,25 @@ Git v1.8.0.2 Release Notes Fixes since v1.8.0.1 -------------------- + * Various codepaths have workaround for a common misconfiguration to + spell "UTF-8" as "utf8", but it was not used uniformly. Most + notably, mailinfo (which is used by "git am") lacked this support. + + * We failed to mention a file without any content change but whose + permission bit was modified, or (worse yet) a new file without any + content in the "git diff --stat" output. + + * When "--stat-count" hides a diffstat for binary contents, the total + number of added and removed lines at the bottom was computed + incorrectly. + + * When "--stat-count" hides a diffstat for unmerged paths, the total + number of affected files at the bottom of the "diff --stat" output + was computed incorrectly. + + * "diff --shortstat" miscounted the total number of affected files + when there were unmerged paths. + * "git p4" used to try expanding malformed "$keyword$" that spans across multiple lines. diff --git a/Documentation/RelNotes/1.8.1.txt b/Documentation/RelNotes/1.8.1.txt index c507b129bb..fec1a06ec9 100644 --- a/Documentation/RelNotes/1.8.1.txt +++ b/Documentation/RelNotes/1.8.1.txt @@ -116,11 +116,17 @@ Foreign Interface * The remote helper interface to interact with subversion repositories (one of the GSoC 2012 projects) has been merged. + * The documentation for git(1) was pointing at a page at an external + site for the list of authors that no longer existed. The link has + been updated to point at an alternative site. + Performance, Internal Implementation, etc. * Compilation on Cygwin with newer header files are supported now. + * A couple of low-level implementation updates on MinGW. + * The logic to generate the initial advertisement from "upload-pack" (i.e. what is invoked by "git fetch" on the other side of the connection) to list what refs are available in the repository has @@ -146,55 +152,44 @@ details). * The configuration parser had an unnecessary hardcoded limit on variable names that was not checked consistently. - (merge 0971e99 bw/config-lift-variable-name-length-limit later to maint). * The "say" function in the test scaffolding incorrectly allowed "echo" to interpret "\a" as if it were a C-string asking for a BEL output. - (merge 7bc0911 jc/test-say-color-avoid-echo-escape later to maint). * "git mergetool" feeds /dev/null as a common ancestor when dealing with an add/add conflict, but p4merge backend cannot handle it. Work it around by passing a temporary empty file. - (merge 3facc60 da/mergetools-p4 later to maint). * "git log -F -E --grep=''" failed to use the given pattern as extended regular expression, and instead looked for the string literally. - (merge 727b6fc jc/grep-pcre-loose-ends~1 later to maint). * "git grep -e pattern " asked the attribute system to read ":.gitattributes" file in the working tree, which was nonsense. - (merge 55c6168 nd/grep-true-path later to maint). * A symbolic ref refs/heads/SYM was not correctly removed with "git branch -d SYM"; the command removed the ref pointed by SYM instead. - (merge 13baa9f rs/branch-del-symref later to maint). * Update "remote tracking branch" in the documentation to "remote-tracking branch". - (merge a6d3bde mm/maint-doc-remote-tracking later to maint). * "git pull --rebase" run while the HEAD is detached tried to find the upstream branch of the detached HEAD (which by definition does not exist) and emitted unnecessary error messages. - (merge e980765 ph/pull-rebase-detached later to maint). * The refs/replace hierarchy was not mentioned in the repository-layout docs. - (merge 11fbe18 po/maint-refs-replace-docs later to maint). * Various rfc2047 quoting issues around a non-ASCII name on the From: line in the output from format-patch have been corrected. - (merge 25dc8da js/format-2047 later to maint). * Sometimes curl_multi_timeout() function suggested a wrong timeout value when there is no file descriptor to wait on and the http transport ended up sleeping for minutes in select(2) system call. A workaround has been added for this. - (merge 7202b81 sz/maint-curl-multi-timeout later to maint). * For a fetch refspec (or the result of applying wildcard on one), we always want the RHS to map to something inside "refs/" @@ -203,7 +198,6 @@ details). * "git diff -G" did not honor textconv filter when looking for changes. - (merge b1c2f57 jk/maint-diff-grep-textconv later to maint). * Some HTTP servers ask for auth only during the actual packing phase (not in ls-remote phase); this is not really a recommended @@ -213,41 +207,35 @@ details). * "git p4" used to try expanding malformed "$keyword$" that spans across multiple lines. - (merge 6b2bf41 pw/maint-p4-rcs-expansion-newline later to maint). * Syntax highlighting in "gitweb" was not quite working. - (merge 048b399 rh/maint-gitweb-highlight-ext later to maint). * RSS feed from "gitweb" had a xss hole in its title output. - (merge 0f0ecf6 jk/maint-gitweb-xss later to maint). * "git config --path $key" segfaulted on "[section] key" (a boolean "true" spelled without "=", not "[section] key = true"). - (merge 962c38e cn/config-missing-path later to maint). * "git checkout -b foo" while on an unborn branch did not say "Switched to a new branch 'foo'" like other cases. - (merge afa8c07 jk/checkout-out-of-unborn later to maint). + + * Various codepaths have workaround for a common misconfiguration to + spell "UTF-8" as "utf8", but it was not used uniformly. Most + notably, mailinfo (which is used by "git am") lacked this support. * We failed to mention a file without any content change but whose permission bit was modified, or (worse yet) a new file without any content in the "git diff --stat" output. - (merge de9095955 lt/diff-stat-show-0-lines later to maint). * When "--stat-count" hides a diffstat for binary contents, the total number of added and removed lines at the bottom was computed incorrectly. - (merge de9095955 lt/diff-stat-show-0-lines later to maint). * When "--stat-count" hides a diffstat for unmerged paths, the total number of affected files at the bottom of the "diff --stat" output was computed incorrectly. - (merge de9095955 lt/diff-stat-show-0-lines later to maint). * "diff --shortstat" miscounted the total number of affected files when there were unmerged paths. - (merge de9095955 lt/diff-stat-show-0-lines later to maint). * "update-ref -d --deref SYM" to delete a ref through a symbolic ref that points to it did not remove it correctly. - (merge b274a71 jh/update-ref-d-through-symref later to maint). diff --git a/Documentation/config.txt b/Documentation/config.txt index e70216dfe6..bf8f911e1f 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -160,9 +160,10 @@ advice.*:: it resulted in a non-fast-forward error. statusHints:: Show directions on how to proceed from the current - state in the output of linkgit:git-status[1] and in + state in the output of linkgit:git-status[1], in the template shown when writing commit messages in - linkgit:git-commit[1]. + linkgit:git-commit[1], and in the help message shown + by linkgit:git-checkout[1] when switching branch. commitBeforeMerge:: Advice shown when linkgit:git-merge[1] refuses to merge to avoid overwriting local changes. diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt index 89dd634674..4314ad0fbb 100644 --- a/Documentation/diff-config.txt +++ b/Documentation/diff-config.txt @@ -57,8 +57,8 @@ diff.statGraphWidth:: to all commands generating --stat output except format-patch. diff.context:: - Generate diffs with lines of context instead of the default of - 3. This value is overridden by the -U option. + Generate diffs with lines of context instead of the default + of 3. This value is overridden by the -U option. diff.external:: If this config variable is set, diff generation is not diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index f4f7e250c5..39f2c5074c 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -309,7 +309,11 @@ endif::git-log[] index (i.e. amount of addition/deletions compared to the file's size). For example, `-M90%` means git should consider a delete/add pair to be a rename if more than 90% of the file - hasn't changed. + hasn't changed. Without a `%` sign, the number is to be read as + a fraction, with a decimal point before it. I.e., `-M5` becomes + 0.5, and is thus the same as `-M50%`. Similarly, `-M05` is + the same as `-M5%`. To limit detection to exact renames, use + `-M100%`. -C[]:: --find-copies[=]:: diff --git a/Documentation/git-remote-helpers.txt b/Documentation/git-remote-helpers.txt index 5ce4cda8e7..6d696e0f90 100644 --- a/Documentation/git-remote-helpers.txt +++ b/Documentation/git-remote-helpers.txt @@ -35,6 +35,37 @@ transport protocols, such as 'git-remote-http', 'git-remote-https', 'git-remote-ftp' and 'git-remote-ftps'. They implement the capabilities 'fetch', 'option', and 'push'. +INVOCATION +---------- + +Remote helper programs are invoked with one or (optionally) two +arguments. The first argument specifies a remote repository as in git; +it is either the name of a configured remote or a URL. The second +argument specifies a URL; it is usually of the form +'://
', but any arbitrary string is possible. +The 'GIT_DIR' environment variable is set up for the remote helper +and can be used to determine where to store additional data or from +which directory to invoke auxiliary git commands. + +When git encounters a URL of the form '://
', where +'' is a protocol that it cannot handle natively, it +automatically invokes 'git remote-' with the full URL as +the second argument. If such a URL is encountered directly on the +command line, the first argument is the same as the second, and if it +is encountered in a configured remote, the first argument is the name +of that remote. + +A URL of the form '::
' explicitly instructs git to +invoke 'git remote-' with '
' as the second +argument. If such a URL is encountered directly on the command line, +the first argument is '
', and if it is encountered in a +configured remote, the first argument is the name of that remote. + +Additionally, when a configured remote has 'remote..vcs' set to +'', git explicitly invokes 'git remote-' with +'' as the first argument. If set, the second argument is +'remote..url'; otherwise, the second argument is omitted. + INPUT FORMAT ------------ @@ -57,67 +88,17 @@ Each remote helper is expected to support only a subset of commands. The operations a helper supports are declared to git in the response to the `capabilities` command (see COMMANDS, below). -'option':: - For specifying settings like `verbosity` (how much output to - write to stderr) and `depth` (how much history is wanted in the - case of a shallow clone) that affect how other commands are - carried out. - -'connect':: - For fetching and pushing using git's native packfile protocol - that requires a bidirectional, full-duplex connection. - -'push':: - For listing remote refs and pushing specified objects from the - local object store to remote refs. - -'fetch':: - For listing remote refs and fetching the associated history to - the local object store. - -'import':: - For listing remote refs and fetching the associated history as - a fast-import stream. - -'refspec' :: - This modifies the 'import' capability, allowing the produced - fast-import stream to modify refs in a private namespace - instead of writing to refs/heads or refs/remotes directly. - It is recommended that all importers providing the 'import' - capability use this. -+ -A helper advertising the capability -`refspec refs/heads/*:refs/svn/origin/branches/*` -is saying that, when it is asked to `import refs/heads/topic`, the -stream it outputs will update the `refs/svn/origin/branches/topic` -ref. -+ -This capability can be advertised multiple times. The first -applicable refspec takes precedence. The left-hand of refspecs -advertised with this capability must cover all refs reported by -the list command. If no 'refspec' capability is advertised, -there is an implied `refspec *:*`. - -'bidi-import':: - The fast-import commands 'cat-blob' and 'ls' can be used by remote-helpers - to retrieve information about blobs and trees that already exist in - fast-import's memory. This requires a channel from fast-import to the - remote-helper. - If it is advertised in addition to "import", git establishes a pipe from - fast-import to the remote-helper's stdin. - It follows that git and fast-import are both connected to the - remote-helper's stdin. Because git can send multiple commands to - the remote-helper it is required that helpers that use 'bidi-import' - buffer all 'import' commands of a batch before sending data to fast-import. - This is to prevent mixing commands and fast-import responses on the - helper's stdin. +In the following, we list all defined capabilities and for +each we list which commands a helper with that capability +must provide. Capabilities for Pushing -~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^ 'connect':: Can attempt to connect to 'git receive-pack' (for pushing), - 'git upload-pack', etc for communication using the - packfile protocol. + 'git upload-pack', etc for communication using + git's native packfile protocol. This + requires a bidirectional, full-duplex connection. + Supported commands: 'connect'. @@ -127,16 +108,26 @@ Supported commands: 'connect'. + Supported commands: 'list for-push', 'push'. -If a helper advertises both 'connect' and 'push', git will use -'connect' if possible and fall back to 'push' if the helper requests -so when connecting (see the 'connect' command under COMMANDS). +'export':: + Can discover remote refs and push specified objects from a + fast-import stream to remote refs. ++ +Supported commands: 'list for-push', 'export'. + +If a helper advertises 'connect', git will use it if possible and +fall back to another capability if the helper requests so when +connecting (see the 'connect' command under COMMANDS). +When choosing between 'push' and 'export', git prefers 'push'. +Other frontends may have some other order of preference. + Capabilities for Fetching -~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^ 'connect':: Can try to connect to 'git upload-pack' (for fetching), 'git receive-pack', etc for communication using the - packfile protocol. + git's native packfile protocol. This + requires a bidirectional, full-duplex connection. + Supported commands: 'connect'. @@ -158,14 +149,27 @@ connecting (see the 'connect' command under COMMANDS). When choosing between 'fetch' and 'import', git prefers 'fetch'. Other frontends may have some other order of preference. +Miscellaneous capabilities +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +'option':: + For specifying settings like `verbosity` (how much output to + write to stderr) and `depth` (how much history is wanted in the + case of a shallow clone) that affect how other commands are + carried out. + 'refspec' :: - This modifies the 'import' capability. + This modifies the 'import' capability, allowing the produced + fast-import stream to modify refs in a private namespace + instead of writing to refs/heads or refs/remotes directly. + It is recommended that all importers providing the 'import' + capability use this. + -A helper advertising +A helper advertising the capability `refspec refs/heads/*:refs/svn/origin/branches/*` -in its capabilities is saying that, when it handles -`import refs/heads/topic`, the stream it outputs will update the -`refs/svn/origin/branches/topic` ref. +is saying that, when it is asked to `import refs/heads/topic`, the +stream it outputs will update the `refs/svn/origin/branches/topic` +ref. + This capability can be advertised multiple times. The first applicable refspec takes precedence. The left-hand of refspecs @@ -173,36 +177,33 @@ advertised with this capability must cover all refs reported by the list command. If no 'refspec' capability is advertised, there is an implied `refspec *:*`. -INVOCATION ----------- +'bidi-import':: + This modifies the 'import' capability. + The fast-import commands 'cat-blob' and 'ls' can be used by remote-helpers + to retrieve information about blobs and trees that already exist in + fast-import's memory. This requires a channel from fast-import to the + remote-helper. + If it is advertised in addition to "import", git establishes a pipe from + fast-import to the remote-helper's stdin. + It follows that git and fast-import are both connected to the + remote-helper's stdin. Because git can send multiple commands to + the remote-helper it is required that helpers that use 'bidi-import' + buffer all 'import' commands of a batch before sending data to fast-import. + This is to prevent mixing commands and fast-import responses on the + helper's stdin. -Remote helper programs are invoked with one or (optionally) two -arguments. The first argument specifies a remote repository as in git; -it is either the name of a configured remote or a URL. The second -argument specifies a URL; it is usually of the form -'://
', but any arbitrary string is possible. -The 'GIT_DIR' environment variable is set up for the remote helper -and can be used to determine where to store additional data or from -which directory to invoke auxiliary git commands. +'export-marks' :: + This modifies the 'export' capability, instructing git to dump the + internal marks table to when complete. For details, + read up on '--export-marks=' in linkgit:git-fast-export[1]. + +'import-marks' :: + This modifies the 'export' capability, instructing git to load the + marks specified in before processing any input. For details, + read up on '--import-marks=' in linkgit:git-fast-export[1]. -When git encounters a URL of the form '://
', where -'' is a protocol that it cannot handle natively, it -automatically invokes 'git remote-' with the full URL as -the second argument. If such a URL is encountered directly on the -command line, the first argument is the same as the second, and if it -is encountered in a configured remote, the first argument is the name -of that remote. -A URL of the form '::
' explicitly instructs git to -invoke 'git remote-' with '
' as the second -argument. If such a URL is encountered directly on the command line, -the first argument is '
', and if it is encountered in a -configured remote, the first argument is the name of that remote. -Additionally, when a configured remote has 'remote..vcs' set to -'', git explicitly invokes 'git remote-' with -'' as the first argument. If set, the second argument is -'remote..url'; otherwise, the second argument is omitted. COMMANDS -------- @@ -212,9 +213,11 @@ Commands are given by the caller on the helper's standard input, one per line. 'capabilities':: Lists the capabilities of the helper, one per line, ending with a blank line. Each capability may be preceded with '*', - which marks them mandatory for git version using the remote - helper to understand (unknown mandatory capability is fatal - error). + which marks them mandatory for git versions using the remote + helper to understand. Any unknown mandatory capability is a + fatal error. ++ +Support for this command is mandatory. 'list':: Lists the refs, one per line, in the format " @@ -224,9 +227,20 @@ Commands are given by the caller on the helper's standard input, one per line. the name; unrecognized attributes are ignored. The list ends with a blank line. + -If 'push' is supported this may be called as 'list for-push' -to obtain the current refs prior to sending one or more 'push' -commands to the helper. +See REF LIST ATTRIBUTES for a list of currently defined attributes. ++ +Supported if the helper has the "fetch" or "import" capability. + +'list for-push':: + Similar to 'list', except that it is used if and only if + the caller wants to the resulting ref list to prepare + push commands. + A helper supporting both push and fetch can use this + to distinguish for which operation the output of 'list' + is going to be used, possibly reducing the amount + of work that needs to be performed. ++ +Supported if the helper has the "push" or "export" capability. 'option' :: Sets the transport helper option to . Outputs a @@ -236,6 +250,8 @@ commands to the helper. for it). Options should be set before other commands, and may influence the behavior of those commands. + +See OPTIONS for a list of currently defined options. ++ Supported if the helper has the "option" capability. 'fetch' :: @@ -244,7 +260,7 @@ Supported if the helper has the "option" capability. per line, terminated with a blank line. Outputs a single blank line when all fetch commands in the same batch are complete. Only objects which were reported - in the ref list with a sha1 may be fetched this way. + in the output of 'list' with a sha1 may be fetched this way. + Optionally may output a 'lock ' line indicating a file under GIT_DIR/objects/pack which is keeping a pack until refs can be @@ -305,7 +321,23 @@ sequence has to be buffered before starting to send data to fast-import to prevent mixing of commands and fast-import responses on the helper's stdin. + -Supported if the helper has the 'import' capability. +Supported if the helper has the "import" capability. + +'export':: + Instructs the remote helper that any subsequent input is + part of a fast-import stream (generated by 'git fast-export') + containing objects which should be pushed to the remote. ++ +Especially useful for interoperability with a foreign versioning +system. ++ +The 'export-marks' and 'import-marks' capabilities, if specified, +affect this command in so far as they are passed on to 'git +fast-export', which then will load/store a table of marks for +local objects. This can be used to implement for incremental +operations. ++ +Supported if the helper has the "export" capability. 'connect' :: Connects to given service. Standard input and standard output @@ -332,10 +364,9 @@ capabilities reported by the helper. REF LIST ATTRIBUTES ------------------- -'for-push':: - The caller wants to use the ref list to prepare push - commands. A helper might chose to acquire the ref list by - opening a different type of connection to the destination. +The 'list' command produces a list of refs in which each ref +may be followed by a list of attributes. The following ref list +attributes are defined. 'unchanged':: This ref is unchanged since the last import or fetch, although @@ -343,6 +374,10 @@ REF LIST ATTRIBUTES OPTIONS ------- + +The following options are defined and (under suitable circumstances) +set by git if the remote helper has the 'option' capability. + 'option verbosity' :: Changes the verbosity of messages displayed by the helper. A value of 0 for means that processes operate diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt index 0aa4e20eae..711ffe17a7 100644 --- a/Documentation/git-stash.txt +++ b/Documentation/git-stash.txt @@ -144,7 +144,7 @@ drop [-q|--quiet] []:: Remove a single stashed state from the stash list. When no `` is given, it removes the latest one. i.e. `stash@{0}`, otherwise - `` must a valid stash log reference of the form + `` must be a valid stash log reference of the form `stash@{}`. create:: diff --git a/Documentation/git.txt b/Documentation/git.txt index cbe0883534..1d797f27ed 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,10 @@ unreleased) version of git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.8.0.1/git.html[documentation for release 1.8.0.1] +* link:v1.8.0.2/git.html[documentation for release 1.8.0.2] * release notes for + link:RelNotes/1.8.0.2.txt[1.8.0.2], link:RelNotes/1.8.0.1.txt[1.8.0.1], link:RelNotes/1.8.0.txt[1.8.0]. @@ -649,6 +650,7 @@ git so take care if using Cogito etc. If the 'GIT_DIR' environment variable is set then it specifies a path to use instead of the default `.git` for the base of the repository. + The '--git-dir' command-line option also sets this value. 'GIT_WORK_TREE':: Set the path to the working tree. The value will not be @@ -868,8 +870,10 @@ Authors ------- Git was started by Linus Torvalds, and is currently maintained by Junio C Hamano. Numerous contributions have come from the git mailing list -. For a more complete list of contributors, see -http://git-scm.com/about. If you have a clone of git.git itself, the +. http://www.ohloh.net/p/git/contributors/summary +gives you a more complete list of contributors. + +If you have a clone of git.git itself, the output of linkgit:git-shortlog[1] and linkgit:git-blame[1] can show you the authors for specific parts of the project. diff --git a/Documentation/technical/api-command.txt b/Documentation/technical/api-command.txt index ea9b2eda31..d3b978177b 100644 --- a/Documentation/technical/api-command.txt +++ b/Documentation/technical/api-command.txt @@ -71,28 +71,28 @@ Integrating a command Here are the things you need to do when you want to merge a new subcommand into the git tree. -0. Don't forget to sign off your patch! +1. Don't forget to sign off your patch! -1. Append your command name to one of the variables BUILTIN_OBJS, +2. Append your command name to one of the variables BUILTIN_OBJS, EXTRA_PROGRAMS, SCRIPT_SH, SCRIPT_PERL or SCRIPT_PYTHON. -2. Drop its test in the t directory. +3. Drop its test in the t directory. -3. If your command is implemented in an interpreted language with a +4. If your command is implemented in an interpreted language with a p-code intermediate form, make sure .gitignore in the main directory includes a pattern entry that ignores such files. Python .pyc and .pyo files will already be covered. -4. If your command has any dependency on a particular version of +5. If your command has any dependency on a particular version of your language, document it in the INSTALL file. -5. There is a file command-list.txt in the distribution main directory +6. There is a file command-list.txt in the distribution main directory that categorizes commands by type, so they can be listed in appropriate subsections in the documentation's summary command list. Add an entry for yours. To understand the categories, look at git-cmmands.txt in the main directory. -6. Give the maintainer one paragraph to include in the RelNotes file +7. Give the maintainer one paragraph to include in the RelNotes file to describe the new feature; a good place to do so is in the cover letter [PATCH 0/n]. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 76ffd4d4d6..1a9e4a20da 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.8.1-rc0 +DEF_VER=v1.8.1-rc2 LF=' ' diff --git a/Makefile b/Makefile index 4ad6fbd64e..736ecd45b5 100644 --- a/Makefile +++ b/Makefile @@ -374,7 +374,7 @@ htmldir = share/doc/git-doc ETC_GITCONFIG = $(sysconfdir)/gitconfig ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes lib = lib -# DESTDIR= +# DESTDIR = pathsep = : export prefix bindir sharedir sysconfdir gitwebdir localedir @@ -575,9 +575,9 @@ endif export PERL_PATH export PYTHON_PATH -LIB_FILE=libgit.a -XDIFF_LIB=xdiff/lib.a -VCSSVN_LIB=vcs-svn/lib.a +LIB_FILE = libgit.a +XDIFF_LIB = xdiff/lib.a +VCSSVN_LIB = vcs-svn/lib.a LIB_H += xdiff/xinclude.h LIB_H += xdiff/xmacros.h @@ -1139,7 +1139,7 @@ ifeq ($(uname_S),NetBSD) endif ifeq ($(uname_S),AIX) DEFAULT_PAGER = more - NO_STRCASESTR=YesPlease + NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_MKDTEMP = YesPlease NO_MKSTEMPS = YesPlease @@ -1147,7 +1147,7 @@ ifeq ($(uname_S),AIX) NO_NSEC = YesPlease FREAD_READS_DIRECTORIES = UnfortunatelyYes INTERNAL_QSORT = UnfortunatelyYes - NEEDS_LIBICONV=YesPlease + NEEDS_LIBICONV = YesPlease BASIC_CFLAGS += -D_LARGE_FILES ifeq ($(shell expr "$(uname_V)" : '[1234]'),1) NO_PTHREADS = YesPlease @@ -1155,13 +1155,13 @@ ifeq ($(uname_S),AIX) PTHREAD_LIBS = -lpthread endif ifeq ($(shell expr "$(uname_V).$(uname_R)" : '5\.1'),3) - INLINE='' + INLINE = '' endif GIT_TEST_CMP = cmp endif ifeq ($(uname_S),GNU) # GNU/Hurd - NO_STRLCPY=YesPlease + NO_STRLCPY = YesPlease NO_MKSTEMPS = YesPlease HAVE_PATHS_H = YesPlease LIBC_CONTAINS_LIBINTL = YesPlease @@ -1187,9 +1187,9 @@ ifeq ($(uname_S),IRIX) NEEDS_LIBGEN = YesPlease endif ifeq ($(uname_S),IRIX64) - NO_SETENV=YesPlease + NO_SETENV = YesPlease NO_UNSETENV = YesPlease - NO_STRCASESTR=YesPlease + NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_MKSTEMPS = YesPlease NO_MKDTEMP = YesPlease @@ -1203,14 +1203,14 @@ ifeq ($(uname_S),IRIX64) NO_REGEX = YesPlease NO_FNMATCH_CASEFOLD = YesPlease SNPRINTF_RETURNS_BOGUS = YesPlease - SHELL_PATH=/usr/gnu/bin/bash + SHELL_PATH = /usr/gnu/bin/bash NEEDS_LIBGEN = YesPlease endif ifeq ($(uname_S),HP-UX) INLINE = __inline - NO_IPV6=YesPlease - NO_SETENV=YesPlease - NO_STRCASESTR=YesPlease + NO_IPV6 = YesPlease + NO_SETENV = YesPlease + NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_MKSTEMPS = YesPlease NO_STRLCPY = YesPlease @@ -1386,10 +1386,10 @@ ifeq ($(uname_S),NONSTOP_KERNEL) MKDIR_WO_TRAILING_SLASH = YesPlease # RFE 10-120912-4693 submitted to HP NonStop development. NO_SETITIMER = UnfortunatelyYes - SANE_TOOL_PATH=/usr/coreutils/bin:/usr/local/bin - SHELL_PATH=/usr/local/bin/bash + SANE_TOOL_PATH = /usr/coreutils/bin:/usr/local/bin + SHELL_PATH = /usr/local/bin/bash # as of H06.25/J06.14, we might better use this - #SHELL_PATH=/usr/coreutils/bin/bash + #SHELL_PATH = /usr/coreutils/bin/bash endif ifneq (,$(findstring MINGW,$(uname_S))) pathsep = ; @@ -1437,7 +1437,7 @@ ifneq (,$(findstring MINGW,$(uname_S))) X = .exe SPARSE_FLAGS = -Wno-one-bit-signed-bitfield ifneq (,$(wildcard ../THIS_IS_MSYSGIT)) - htmldir=doc/git/html/ + htmldir = doc/git/html/ prefix = INSTALL = /bin/install EXTLIBS += /mingw/lib/libz.a @@ -1559,7 +1559,7 @@ else CURL_LIBCURL = -lcurl endif ifdef NEEDS_SSL_WITH_CURL - CURL_LIBCURL += -lssl + CURL_LIBCURL += -lssl ifdef NEEDS_CRYPTO_WITH_SSL CURL_LIBCURL += -lcrypto endif @@ -1768,7 +1768,7 @@ ifdef OBJECT_CREATION_USES_RENAMES endif ifdef NO_STRUCT_ITIMERVAL COMPAT_CFLAGS += -DNO_STRUCT_ITIMERVAL - NO_SETITIMER=YesPlease + NO_SETITIMER = YesPlease endif ifdef NO_SETITIMER COMPAT_CFLAGS += -DNO_SETITIMER @@ -1920,15 +1920,15 @@ ifneq (,$(XDL_FAST_HASH)) endif ifeq ($(TCLTK_PATH),) -NO_TCLTK=NoThanks +NO_TCLTK = NoThanks endif ifeq ($(PERL_PATH),) -NO_PERL=NoThanks +NO_PERL = NoThanks endif ifeq ($(PYTHON_PATH),) -NO_PYTHON=NoThanks +NO_PYTHON = NoThanks endif QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir @@ -1975,13 +1975,13 @@ PROFILE_DIR := $(CURDIR) ifeq ("$(PROFILE)","GEN") CFLAGS += -fprofile-generate=$(PROFILE_DIR) -DNO_NORETURN=1 EXTLIBS += -lgcov - export CCACHE_DISABLE=t - V=1 + export CCACHE_DISABLE = t + V = 1 else ifneq ("$(PROFILE)","") CFLAGS += -fprofile-use=$(PROFILE_DIR) -fprofile-correction -DNO_NORETURN=1 - export CCACHE_DISABLE=t - V=1 + export CCACHE_DISABLE = t + V = 1 endif endif @@ -2830,7 +2830,7 @@ git.spec: git.spec.in GIT-VERSION-FILE sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@+ mv $@+ $@ -GIT_TARNAME=git-$(GIT_VERSION) +GIT_TARNAME = git-$(GIT_VERSION) dist: git.spec git-archive$(X) configure ./git-archive --format=tar \ --prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar diff --git a/builtin/pack-redundant.c b/builtin/pack-redundant.c index f5c6afc5dd..649c3aaa93 100644 --- a/builtin/pack-redundant.c +++ b/builtin/pack-redundant.c @@ -301,14 +301,14 @@ static void pll_free(struct pll *l) */ static struct pll * get_permutations(struct pack_list *list, int n) { - struct pll *subset, *ret = NULL, *new_pll = NULL, *pll; + struct pll *subset, *ret = NULL, *new_pll = NULL; if (list == NULL || pack_list_size(list) < n || n == 0) return NULL; if (n == 1) { while (list) { - new_pll = xmalloc(sizeof(pll)); + new_pll = xmalloc(sizeof(*new_pll)); new_pll->pl = NULL; pack_list_insert(&new_pll->pl, list); new_pll->next = ret; @@ -321,7 +321,7 @@ static struct pll * get_permutations(struct pack_list *list, int n) while (list->next) { subset = get_permutations(list->next, n - 1); while (subset) { - new_pll = xmalloc(sizeof(pll)); + new_pll = xmalloc(sizeof(*new_pll)); new_pll->pl = subset->pl; pack_list_insert(&new_pll->pl, list); new_pll->next = ret; diff --git a/compat/mingw.c b/compat/mingw.c index 4e6383898c..b673625580 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -256,6 +256,8 @@ int mingw_rmdir(const char *pathname) while ((ret = rmdir(pathname)) == -1 && tries < ARRAY_SIZE(delay)) { if (!is_file_in_use_error(GetLastError())) + errno = err_win_to_posix(GetLastError()); + if (errno != EACCES) break; if (!is_dir_empty(pathname)) { errno = ENOTEMPTY; @@ -271,7 +273,7 @@ int mingw_rmdir(const char *pathname) Sleep(delay[tries]); tries++; } - while (ret == -1 && is_file_in_use_error(GetLastError()) && + while (ret == -1 && errno == EACCES && is_file_in_use_error(GetLastError()) && ask_yes_no_if_possible("Deletion of directory '%s' failed. " "Should I try again?", pathname)) ret = rmdir(pathname); @@ -319,6 +321,31 @@ ssize_t mingw_write(int fd, const void *buf, size_t count) return write(fd, buf, min(count, 31 * 1024 * 1024)); } +static BOOL WINAPI ctrl_ignore(DWORD type) +{ + return TRUE; +} + +#undef fgetc +int mingw_fgetc(FILE *stream) +{ + int ch; + if (!isatty(_fileno(stream))) + return fgetc(stream); + + SetConsoleCtrlHandler(ctrl_ignore, TRUE); + while (1) { + ch = fgetc(stream); + if (ch != EOF || GetLastError() != ERROR_OPERATION_ABORTED) + break; + + /* Ctrl+C was pressed, simulate SIGINT and retry */ + mingw_raise(SIGINT); + } + SetConsoleCtrlHandler(ctrl_ignore, FALSE); + return ch; +} + #undef fopen FILE *mingw_fopen (const char *filename, const char *otype) { @@ -1546,7 +1573,7 @@ static HANDLE timer_event; static HANDLE timer_thread; static int timer_interval; static int one_shot; -static sig_handler_t timer_fn = SIG_DFL; +static sig_handler_t timer_fn = SIG_DFL, sigint_fn = SIG_DFL; /* The timer works like this: * The thread, ticktack(), is a trivial routine that most of the time @@ -1560,10 +1587,7 @@ static sig_handler_t timer_fn = SIG_DFL; static unsigned __stdcall ticktack(void *dummy) { while (WaitForSingleObject(timer_event, timer_interval) == WAIT_TIMEOUT) { - if (timer_fn == SIG_DFL) - die("Alarm"); - if (timer_fn != SIG_IGN) - timer_fn(SIGALRM); + mingw_raise(SIGALRM); if (one_shot) break; } @@ -1654,12 +1678,49 @@ int sigaction(int sig, struct sigaction *in, struct sigaction *out) sig_handler_t mingw_signal(int sig, sig_handler_t handler) { sig_handler_t old = timer_fn; - if (sig != SIGALRM) + + switch (sig) { + case SIGALRM: + timer_fn = handler; + break; + + case SIGINT: + sigint_fn = handler; + break; + + default: return signal(sig, handler); - timer_fn = handler; + } + return old; } +#undef raise +int mingw_raise(int sig) +{ + switch (sig) { + case SIGALRM: + if (timer_fn == SIG_DFL) { + if (isatty(STDERR_FILENO)) + fputs("Alarm clock\n", stderr); + exit(128 + SIGALRM); + } else if (timer_fn != SIG_IGN) + timer_fn(SIGALRM); + return 0; + + case SIGINT: + if (sigint_fn == SIG_DFL) + exit(128 + SIGINT); + else if (sigint_fn != SIG_IGN) + sigint_fn(SIGINT); + return 0; + + default: + return raise(sig); + } +} + + static const char *make_backslash_path(const char *path) { static char buf[PATH_MAX + 1]; @@ -1721,21 +1782,6 @@ int link(const char *oldpath, const char *newpath) return 0; } -char *getpass(const char *prompt) -{ - struct strbuf buf = STRBUF_INIT; - - fputs(prompt, stderr); - for (;;) { - char c = _getch(); - if (c == '\r' || c == '\n') - break; - strbuf_addch(&buf, c); - } - fputs("\n", stderr); - return strbuf_detach(&buf, NULL); -} - pid_t waitpid(pid_t pid, int *status, int options) { HANDLE h = OpenProcess(SYNCHRONIZE | PROCESS_QUERY_INFORMATION, diff --git a/compat/mingw.h b/compat/mingw.h index eeb08d120b..685cd2c3d4 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -55,8 +55,6 @@ struct passwd { char *pw_dir; }; -extern char *getpass(const char *prompt); - typedef void (__cdecl *sig_handler_t)(int); struct sigaction { sig_handler_t sa_handler; @@ -179,6 +177,9 @@ int mingw_open (const char *filename, int oflags, ...); ssize_t mingw_write(int fd, const void *buf, size_t count); #define write mingw_write +int mingw_fgetc(FILE *stream); +#define fgetc mingw_fgetc + FILE *mingw_fopen (const char *filename, const char *otype); #define fopen mingw_fopen @@ -290,6 +291,9 @@ static inline unsigned int git_ntohl(unsigned int x) sig_handler_t mingw_signal(int sig, sig_handler_t handler); #define signal mingw_signal +int mingw_raise(int sig); +#define raise mingw_raise + /* * ANSI emulation wrappers */ diff --git a/compat/terminal.c b/compat/terminal.c index bbb038dd01..9b5e3d1bb8 100644 --- a/compat/terminal.c +++ b/compat/terminal.c @@ -3,8 +3,22 @@ #include "sigchain.h" #include "strbuf.h" +#if defined(HAVE_DEV_TTY) || defined(WIN32) + +static void restore_term(void); + +static void restore_term_on_signal(int sig) +{ + restore_term(); + sigchain_pop(sig); + raise(sig); +} + #ifdef HAVE_DEV_TTY +#define INPUT_PATH "/dev/tty" +#define OUTPUT_PATH "/dev/tty" + static int term_fd = -1; static struct termios old_term; @@ -14,58 +28,109 @@ static void restore_term(void) return; tcsetattr(term_fd, TCSAFLUSH, &old_term); + close(term_fd); term_fd = -1; } -static void restore_term_on_signal(int sig) +static int disable_echo(void) { - restore_term(); - sigchain_pop(sig); - raise(sig); + struct termios t; + + term_fd = open("/dev/tty", O_RDWR); + if (tcgetattr(term_fd, &t) < 0) + goto error; + + old_term = t; + sigchain_push_common(restore_term_on_signal); + + t.c_lflag &= ~ECHO; + if (!tcsetattr(term_fd, TCSAFLUSH, &t)) + return 0; + +error: + close(term_fd); + term_fd = -1; + return -1; +} + +#elif defined(WIN32) + +#define INPUT_PATH "CONIN$" +#define OUTPUT_PATH "CONOUT$" +#define FORCE_TEXT "t" + +static HANDLE hconin = INVALID_HANDLE_VALUE; +static DWORD cmode; + +static void restore_term(void) +{ + if (hconin == INVALID_HANDLE_VALUE) + return; + + SetConsoleMode(hconin, cmode); + CloseHandle(hconin); + hconin = INVALID_HANDLE_VALUE; } +static int disable_echo(void) +{ + hconin = CreateFile("CONIN$", GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ, NULL, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, NULL); + if (hconin == INVALID_HANDLE_VALUE) + return -1; + + GetConsoleMode(hconin, &cmode); + sigchain_push_common(restore_term_on_signal); + if (!SetConsoleMode(hconin, cmode & (~ENABLE_ECHO_INPUT))) { + CloseHandle(hconin); + hconin = INVALID_HANDLE_VALUE; + return -1; + } + + return 0; +} + +#endif + +#ifndef FORCE_TEXT +#define FORCE_TEXT +#endif + char *git_terminal_prompt(const char *prompt, int echo) { static struct strbuf buf = STRBUF_INIT; int r; - FILE *fh; + FILE *input_fh, *output_fh; - fh = fopen("/dev/tty", "w+"); - if (!fh) + input_fh = fopen(INPUT_PATH, "r" FORCE_TEXT); + if (!input_fh) return NULL; - if (!echo) { - struct termios t; - - if (tcgetattr(fileno(fh), &t) < 0) { - fclose(fh); - return NULL; - } - - old_term = t; - term_fd = fileno(fh); - sigchain_push_common(restore_term_on_signal); - - t.c_lflag &= ~ECHO; - if (tcsetattr(fileno(fh), TCSAFLUSH, &t) < 0) { - term_fd = -1; - fclose(fh); - return NULL; - } + output_fh = fopen(OUTPUT_PATH, "w" FORCE_TEXT); + if (!output_fh) { + fclose(input_fh); + return NULL; + } + + if (!echo && disable_echo()) { + fclose(input_fh); + fclose(output_fh); + return NULL; } - fputs(prompt, fh); - fflush(fh); + fputs(prompt, output_fh); + fflush(output_fh); - r = strbuf_getline(&buf, fh, '\n'); + r = strbuf_getline(&buf, input_fh, '\n'); if (!echo) { - fseek(fh, SEEK_CUR, 0); - putc('\n', fh); - fflush(fh); + putc('\n', output_fh); + fflush(output_fh); } restore_term(); - fclose(fh); + fclose(input_fh); + fclose(output_fh); if (r == EOF) return NULL; diff --git a/config.mak.in b/config.mak.in index 69d48382fe..e8a9bb4682 100644 --- a/config.mak.in +++ b/config.mak.in @@ -18,7 +18,7 @@ datarootdir = @datarootdir@ template_dir = @datadir@/git-core/templates sysconfdir = @sysconfdir@ -mandir=@mandir@ +mandir = @mandir@ srcdir = @srcdir@ VPATH = @srcdir@ diff --git a/contrib/completion/git-completion.tcsh b/contrib/completion/git-completion.tcsh index 471f47b404..8aafb63315 100644 --- a/contrib/completion/git-completion.tcsh +++ b/contrib/completion/git-completion.tcsh @@ -19,23 +19,26 @@ # (e.g. ~/.git-completion.tcsh and ~/.git-completion.bash). # 2) Add the following line to your .tcshrc/.cshrc: # source ~/.git-completion.tcsh +# 3) For completion similar to bash, it is recommended to also +# add the following line to your .tcshrc/.cshrc: +# set autolist=ambiguous +# It will tell tcsh to list the possible completion choices. set __git_tcsh_completion_original_script = ${HOME}/.git-completion.bash set __git_tcsh_completion_script = ${HOME}/.git-completion.tcsh.bash # Check that the user put the script in the right place if ( ! -e ${__git_tcsh_completion_original_script} ) then - echo "git-completion.tcsh: Cannot find: ${__git_tcsh_completion_original_script}. Git completion will not work." - exit + echo "git-completion.tcsh: Cannot find: ${__git_tcsh_completion_original_script}. Git completion will not work." + exit endif cat << EOF > ${__git_tcsh_completion_script} #!bash # # This script is GENERATED and will be overwritten automatically. -# Do not modify it directly. Instead, modify the git-completion.tcsh -# script provided by Git core. -# +# Do not modify it directly. Instead, modify git-completion.tcsh +# and source it again. source ${__git_tcsh_completion_original_script} @@ -47,22 +50,58 @@ COMP_WORDS=(\$2) # tell us that the previous word is complete and the cursor # is on the next word. if [ "\${2: -1}" == " " ]; then - # The last character is a space, so our location is at the end - # of the command-line array - COMP_CWORD=\${#COMP_WORDS[@]} + # The last character is a space, so our location is at the end + # of the command-line array + COMP_CWORD=\${#COMP_WORDS[@]} else - # The last character is not a space, so our location is on the - # last word of the command-line array, so we must decrement the - # count by 1 - COMP_CWORD=\$((\${#COMP_WORDS[@]}-1)) + # The last character is not a space, so our location is on the + # last word of the command-line array, so we must decrement the + # count by 1 + COMP_CWORD=\$((\${#COMP_WORDS[@]}-1)) fi # Call _git() or _gitk() of the bash script, based on the first argument _\${1} IFS=\$'\n' -echo "\${COMPREPLY[*]}" | sort | uniq +if [ \${#COMPREPLY[*]} -gt 0 ]; then + echo "\${COMPREPLY[*]}" | sort | uniq +else + # No completions suggested. In this case, we want tcsh to perform + # standard file completion. However, there does not seem to be way + # to tell tcsh to do that. To help the user, we try to simulate + # file completion directly in this script. + # + # Known issues: + # - Possible completions are shown with their directory prefix. + # - Completions containing shell variables are not handled. + # - Completions with ~ as the first character are not handled. + + # No file completion should be done unless we are completing beyond + # the git sub-command. An improvement on the bash completion :) + if [ \${COMP_CWORD} -gt 1 ]; then + TO_COMPLETE="\${COMP_WORDS[\${COMP_CWORD}]}" + + # We don't support ~ expansion: too tricky. + if [ "\${TO_COMPLETE:0:1}" != "~" ]; then + # Use ls so as to add the '/' at the end of directories. + RESULT=(\`ls -dp \${TO_COMPLETE}* 2> /dev/null\`) + echo \${RESULT[*]} + + # If there is a single completion and it is a directory, + # we output it a second time to trick tcsh into not adding a space + # after it. + if [ \${#RESULT[*]} -eq 1 ] && [ "\${RESULT[0]: -1}" == "/" ]; then + echo \${RESULT[*]} + fi + fi + fi +fi + EOF -complete git 'p/*/`bash ${__git_tcsh_completion_script} git "${COMMAND_LINE}"`/' -complete gitk 'p/*/`bash ${__git_tcsh_completion_script} gitk "${COMMAND_LINE}"`/' +# Don't need this variable anymore, so don't pollute the users environment +unset __git_tcsh_completion_original_script + +complete git 'p,*,`bash ${__git_tcsh_completion_script} git "${COMMAND_LINE}"`,' +complete gitk 'p,*,`bash ${__git_tcsh_completion_script} gitk "${COMMAND_LINE}"`,' diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 00fc099b8d..9b074e148d 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -10,14 +10,20 @@ # 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh). # 2) Add the following line to your .bashrc/.zshrc: # source ~/.git-prompt.sh -# 3a) In ~/.bashrc set PROMPT_COMMAND=__git_ps1 -# To customize the prompt, provide start/end arguments -# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "' -# 3b) Alternatively change your PS1 to call __git_ps1 as +# 3a) Change your PS1 to call __git_ps1 as # command-substitution: # Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' # ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' -# the optional argument will be used as format string +# the optional argument will be used as format string. +# 3b) Alternatively, if you are using bash, __git_ps1 can be +# used for PROMPT_COMMAND with two parameters,
 and
+#        , which are strings you would put in $PS1 before
+#        and after the status string generated by the git-prompt
+#        machinery.  e.g.
+#           PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
+#        will show username, at-sign, host, colon, cwd, then
+#        various status string, followed by dollar and SP, as
+#        your prompt.
 #
 # The argument to __git_ps1 will be displayed only if you are currently
 # in a git repository.  The %s token will be the name of the current
@@ -55,10 +61,19 @@
 # GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
 # setting the bash.showUpstream config variable.
 #
+# If you would like to see more information about the identity of
+# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
+# to one of these values:
+#
+#     contains      relative to newer annotated tag (v1.6.3.2~35)
+#     branch        relative to newer tag or branch (master~4)
+#     describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
+#     default       exactly matching tag
+#
 # If you would like a colored hint about the current dirty state, set
 # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
 # the colored output of "git status -sb".
-#
+
 # __gitdir accepts 0 or 1 arguments (i.e., location)
 # returns location of .git repo
 __gitdir ()
diff --git a/contrib/stats/mailmap.pl b/contrib/stats/mailmap.pl
index 4b852e2455..9513f5e35b 100755
--- a/contrib/stats/mailmap.pl
+++ b/contrib/stats/mailmap.pl
@@ -1,38 +1,70 @@
-#!/usr/bin/perl -w
-my %mailmap = ();
-open I, "<", ".mailmap";
-while () {
-	chomp;
-	next if /^#/;
-	if (my ($author, $mail) = /^(.*?)\s+<(.+)>$/) {
-		$mailmap{$mail} = $author;
-	}
+#!/usr/bin/perl
+
+use warnings 'all';
+use strict;
+use Getopt::Long;
+
+my $match_emails;
+my $match_names;
+my $order_by = 'count';
+Getopt::Long::Configure(qw(bundling));
+GetOptions(
+	'emails|e!' => \$match_emails,
+	'names|n!'  => \$match_names,
+	'count|c'   => sub { $order_by = 'count' },
+	'time|t'    => sub { $order_by = 'stamp' },
+) or exit 1;
+$match_emails = 1 unless $match_names;
+
+my $email = {};
+my $name = {};
+
+open(my $fh, '-|', "git log --format='%at <%aE> %aN'");
+while(<$fh>) {
+	my ($t, $e, $n) = /(\S+) <(\S+)> (.*)/;
+	mark($email, $e, $n, $t);
+	mark($name, $n, $e, $t);
 }
-close I;
-
-my %mail2author = ();
-open I, "git log --pretty='format:%ae	%an' |";
-while () {
-	chomp;
-	my ($mail, $author) = split(/\t/, $_);
-	next if exists $mailmap{$mail};
-	$mail2author{$mail} ||= {};
-	$mail2author{$mail}{$author} ||= 0;
-	$mail2author{$mail}{$author}++;
+close($fh);
+
+if ($match_emails) {
+	foreach my $e (dups($email)) {
+		foreach my $n (vals($email->{$e})) {
+			show($n, $e, $email->{$e}->{$n});
+		}
+		print "\n";
+	}
 }
-close I;
-
-while (my ($mail, $authorcount) = each %mail2author) {
-	# %$authorcount is ($author => $count);
-	# sort and show the names from the most frequent ones.
-	my @names = (map { $_->[0] }
-		sort { $b->[1] <=> $a->[1] }
-		map { [$_, $authorcount->{$_}] }
-		keys %$authorcount);
-	if (1 < @names) {
-		for (@names) {
-			print "$_ <$mail>\n";
+if ($match_names) {
+	foreach my $n (dups($name)) {
+		foreach my $e (vals($name->{$n})) {
+			show($n, $e, $name->{$n}->{$e});
 		}
+		print "\n";
 	}
 }
+exit 0;
 
+sub mark {
+	my ($h, $k, $v, $t) = @_;
+	my $e = $h->{$k}->{$v} ||= { count => 0, stamp => 0 };
+	$e->{count}++;
+	$e->{stamp} = $t unless $t < $e->{stamp};
+}
+
+sub dups {
+	my $h = shift;
+	return grep { keys($h->{$_}) > 1 } keys($h);
+}
+
+sub vals {
+	my $h = shift;
+	return sort {
+		$h->{$b}->{$order_by} <=> $h->{$a}->{$order_by}
+	} keys($h);
+}
+
+sub show {
+	my ($n, $e, $h) = @_;
+	print "$n <$e> ($h->{$order_by})\n";
+}
diff --git a/po/de.po b/po/de.po
index 0db9a9b2ab..0e8ed5437a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,21 +1,21 @@
 # German translations for Git.
-# Copyright (C) 2010-2012 Ralf Thielow 
+# Copyright (C) 2010-2012 Ralf Thielow 
 # This file is distributed under the same license as the Git package.
-# Ralf Thielow , 2010, 2011, 2012.
+# Ralf Thielow , 2010, 2011, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: git 1.7.12\n"
+"Project-Id-Version: git 1.8.1\n"
 "Report-Msgid-Bugs-To: Git Mailing List \n"
-"POT-Creation-Date: 2012-09-05 06:20+0800\n"
-"PO-Revision-Date: 2012-03-28 18:46+0200\n"
-"Last-Translator: Ralf Thielow \n"
-"Language-Team: German\n"
+"POT-Creation-Date: 2012-11-30 12:40+0800\n"
+"PO-Revision-Date: 2012-10-02 19:35+0200\n"
+"Last-Translator: Ralf Thielow \n"
+"Language-Team: German <>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
 #: advice.c:40
 #, c-format
@@ -38,6 +38,101 @@ msgstr ""
 "um die Auflösung entsprechend zu markieren und einzutragen,\n"
 "oder benutze 'git commit -a'."
 
+#: archive.c:10
+msgid "git archive [options]  [...]"
+msgstr "git archive [Optionen]  [...]"
+
+#: archive.c:11
+msgid "git archive --list"
+msgstr "git archive --list"
+
+#: archive.c:12
+msgid ""
+"git archive --remote  [--exec ] [options]  [...]"
+msgstr ""
+"git archive --remote  [--exec ] [Optionen] "
+" [Pfad...]"
+
+#: archive.c:13
+msgid "git archive --remote  [--exec ] --list"
+msgstr "git archive --remote  [--exec ] --list"
+
+#: archive.c:322
+msgid "fmt"
+msgstr "Format"
+
+#: archive.c:322
+msgid "archive format"
+msgstr "Ausgabeformat"
+
+#: archive.c:323 builtin/log.c:1084
+msgid "prefix"
+msgstr "Prefix"
+
+#: archive.c:324
+msgid "prepend prefix to each pathname in the archive"
+msgstr "stellt einen Präfix vor jeden Pfadnamen in der Ausgabe"
+
+#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2390
+#: builtin/blame.c:2391 builtin/config.c:55 builtin/fast-export.c:642
+#: builtin/fast-export.c:644 builtin/grep.c:715 builtin/hash-object.c:77
+#: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540
+#: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149
+msgid "file"
+msgstr "Datei"
+
+#: archive.c:326 builtin/archive.c:92
+msgid "write the archive to this file"
+msgstr "schreibt die Ausgabe in diese Datei"
+
+#: archive.c:328
+msgid "read .gitattributes in working directory"
+msgstr "liest .gitattributes aus dem Arbeitsverzeichnis"
+
+#: archive.c:329
+msgid "report archived files on stderr"
+msgstr "gibt archivierte Dateien in der Standard-Fehlerausgabe aus"
+
+#: archive.c:330
+msgid "store only"
+msgstr "nur speichern"
+
+#: archive.c:331
+msgid "compress faster"
+msgstr "schneller komprimieren"
+
+#: archive.c:339
+msgid "compress better"
+msgstr "besser komprimieren"
+
+#: archive.c:342
+msgid "list supported archive formats"
+msgstr "listet unterstützte Ausgabeformate auf"
+
+#: archive.c:344 builtin/archive.c:93 builtin/clone.c:85
+msgid "repo"
+msgstr "Projektarchiv"
+
+#: archive.c:345 builtin/archive.c:94
+msgid "retrieve the archive from remote repository "
+msgstr "ruft das Archiv von externem Projektarchiv  ab"
+
+#: archive.c:346 builtin/archive.c:95 builtin/notes.c:619
+msgid "command"
+msgstr "Programm"
+
+#: archive.c:347 builtin/archive.c:96
+msgid "path to the remote git-upload-archive command"
+msgstr "Pfad zum externen \"git-upload-archive\"-Programm"
+
+#: attr.c:259
+msgid ""
+"Negative patterns are forbidden in git attributes\n"
+"Use '\\!' for literal leading exclamation."
+msgstr ""
+"Verneinende Muster sind in Git-Attributen verboten.\n"
+"Benutze '\\!' für führende Ausrufezeichen."
+
 #: bundle.c:36
 #, c-format
 msgid "'%s' does not look like a v2 bundle file"
@@ -48,7 +143,7 @@ msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus"
 msgid "unrecognized header: %s%s (%d)"
 msgstr "nicht erkannter Kopfbereich: %s%s (%d)"
 
-#: bundle.c:89 builtin/commit.c:699
+#: bundle.c:89 builtin/commit.c:674
 #, c-format
 msgid "could not open '%s'"
 msgstr "Konnte '%s' nicht öffnen"
@@ -57,8 +152,8 @@ msgstr "Konnte '%s' nicht öffnen"
 msgid "Repository lacks these prerequisite commits:"
 msgstr "Dem Projektarchiv fehlen folgende vorausgesetzte Versionen:"
 
-#: bundle.c:164 sequencer.c:550 sequencer.c:982 builtin/log.c:290
-#: builtin/log.c:727 builtin/log.c:1313 builtin/log.c:1529 builtin/merge.c:347
+#: bundle.c:164 sequencer.c:562 sequencer.c:994 builtin/log.c:290
+#: builtin/log.c:732 builtin/log.c:1319 builtin/log.c:1535 builtin/merge.c:347
 #: builtin/shortlog.c:181
 msgid "revision walk setup failed"
 msgstr "Einrichtung des Revisionsgangs fehlgeschlagen"
@@ -85,7 +180,7 @@ msgstr[1] "Das Paket benötigt diese %d Referenzen"
 msgid "rev-list died"
 msgstr "\"rev-list\" abgebrochen"
 
-#: bundle.c:300 builtin/log.c:1209 builtin/shortlog.c:284
+#: bundle.c:300 builtin/log.c:1215 builtin/shortlog.c:284
 #, c-format
 msgid "unrecognized argument: %s"
 msgstr "nicht erkanntes Argument: %s"
@@ -116,12 +211,12 @@ msgstr "kann '%s' nicht erstellen"
 msgid "index-pack died"
 msgstr "Erstellung der Paketindexdatei abgebrochen"
 
-#: commit.c:48
+#: commit.c:50
 #, c-format
 msgid "could not parse %s"
 msgstr "konnte %s nicht parsen"
 
-#: commit.c:50
+#: commit.c:52
 #, c-format
 msgid "%s %s is not a commit!"
 msgstr "%s %s ist keine Version!"
@@ -211,18 +306,24 @@ msgid_plural "%lu years ago"
 msgstr[0] "vor %lu Jahr"
 msgstr[1] "vor %lu Jahren"
 
-#: diff.c:105
+#: diff.c:111
 #, c-format
-msgid "  Failed to parse dirstat cut-off percentage '%.*s'\n"
+msgid "  Failed to parse dirstat cut-off percentage '%s'\n"
 msgstr ""
-"  Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%.*s'\n"
+"  Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n"
+
+#: diff.c:116
+#, c-format
+msgid "  Unknown dirstat parameter '%s'\n"
+msgstr "  Unbekannter \"dirstat\" Parameter '%s'\n"
 
-#: diff.c:110
+#: diff.c:194
 #, c-format
-msgid "  Unknown dirstat parameter '%.*s'\n"
-msgstr "  Unbekannter \"dirstat\" Parameter '%.*s'\n"
+msgid "Unknown value for 'diff.submodule' config variable: '%s'"
+msgstr ""
+"Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'"
 
-#: diff.c:210
+#: diff.c:237
 #, c-format
 msgid ""
 "Found errors in 'diff.dirstat' config variable:\n"
@@ -231,32 +332,7 @@ msgstr ""
 "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n"
 "%s"
 
-#: diff.c:1401
-msgid " 0 files changed"
-msgstr " 0 Dateien geändert"
-
-#: diff.c:1405
-#, c-format
-msgid " %d file changed"
-msgid_plural " %d files changed"
-msgstr[0] " %d Datei geändert"
-msgstr[1] " %d Dateien geändert"
-
-#: diff.c:1422
-#, c-format
-msgid ", %d insertion(+)"
-msgid_plural ", %d insertions(+)"
-msgstr[0] ", %d Zeile hinzugefügt(+)"
-msgstr[1] ", %d Zeilen hinzugefügt(+)"
-
-#: diff.c:1433
-#, c-format
-msgid ", %d deletion(-)"
-msgid_plural ", %d deletions(-)"
-msgstr[0] ", %d Zeile entfernt(-)"
-msgstr[1] ", %d Zeilen entfernt(-)"
-
-#: diff.c:3460
+#: diff.c:3494
 #, c-format
 msgid ""
 "Failed to parse --dirstat/-X option parameter:\n"
@@ -265,6 +341,12 @@ msgstr ""
 "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n"
 "%s"
 
+#: diff.c:3508
+#,  c-format
+msgid "Failed to parse --submodule option parameter: '%s'"
+msgstr ""
+"Fehler beim Parsen des --submodule Optionsparameters: '%s'"
+
 #: gpg-interface.c:59
 msgid "could not run gpg."
 msgstr "konnte gpg nicht ausführen"
@@ -277,17 +359,17 @@ msgstr "gpg hat die Daten nicht akzeptiert"
 msgid "gpg failed to sign the data"
 msgstr "gpg beim Signieren der Daten fehlgeschlagen"
 
-#: grep.c:1320
+#: grep.c:1622
 #, c-format
 msgid "'%s': unable to read %s"
 msgstr "'%s': konnte nicht lesen %s"
 
-#: grep.c:1337
+#: grep.c:1639
 #, c-format
 msgid "'%s': %s"
 msgstr "'%s': %s"
 
-#: grep.c:1348
+#: grep.c:1650
 #, c-format
 msgid "'%s': short read %s"
 msgstr "'%s': read() zu kurz %s"
@@ -347,6 +429,15 @@ msgstr[1] ""
 "\n"
 "Hast du eines von diesen gemeint?"
 
+#: merge.c:56
+msgid "failed to read the cache"
+msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
+
+#: merge.c:110 builtin/checkout.c:333 builtin/checkout.c:534
+#: builtin/clone.c:586
+msgid "unable to write new index file"
+msgstr "Konnte neue Bereitstellungsdatei nicht schreiben."
+
 #: merge-recursive.c:190
 #, c-format
 msgid "(bad commit)\n"
@@ -407,20 +498,20 @@ msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s'"
 msgid "do not know what to do with %06o %s '%s'"
 msgstr "weiß nicht was mit %06o %s '%s' zu machen ist"
 
-#: merge-recursive.c:921
+#: merge-recursive.c:922
 msgid "Failed to execute internal merge"
 msgstr "Fehler bei Ausführung der internen Zusammenführung"
 
-#: merge-recursive.c:925
+#: merge-recursive.c:926
 #, c-format
 msgid "Unable to add %s to database"
 msgstr "Konnte %s nicht zur Datenbank hinzufügen"
 
-#: merge-recursive.c:941
+#: merge-recursive.c:942
 msgid "unsupported object type in the tree"
 msgstr "nicht unterstützter Objekttyp im Baum"
 
-#: merge-recursive.c:1020 merge-recursive.c:1034
+#: merge-recursive.c:1021 merge-recursive.c:1035
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -429,7 +520,7 @@ msgstr ""
 "KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde "
 "im Arbeitsbereich gelassen."
 
-#: merge-recursive.c:1026 merge-recursive.c:1039
+#: merge-recursive.c:1027 merge-recursive.c:1040
 #, c-format
 msgid ""
 "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left "
@@ -438,20 +529,20 @@ msgstr ""
 "KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde "
 "im Arbeitsbereich bei %s gelassen."
 
-#: merge-recursive.c:1080
+#: merge-recursive.c:1081
 msgid "rename"
 msgstr "umbenennen"
 
-#: merge-recursive.c:1080
+#: merge-recursive.c:1081
 msgid "renamed"
 msgstr "umbenannt"
 
-#: merge-recursive.c:1136
+#: merge-recursive.c:1137
 #, c-format
 msgid "%s is a directory in %s adding as %s instead"
 msgstr "%s ist ein Verzeichnis in %s, füge es stattdessen als %s hinzu"
 
-#: merge-recursive.c:1158
+#: merge-recursive.c:1159
 #, c-format
 msgid ""
 "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s"
@@ -460,148 +551,148 @@ msgstr ""
 "KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Zweig \"%s\" "
 "und \"%s\"->\"%s\" in Zweig \"%s\"%s"
 
-#: merge-recursive.c:1163
+#: merge-recursive.c:1164
 msgid " (left unresolved)"
 msgstr " (bleibt unaufgelöst)"
 
-#: merge-recursive.c:1217
+#: merge-recursive.c:1218
 #, c-format
 msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s"
 msgstr ""
 "KONFLIKT (umbenennen/umbenennen): Benenne um %s->%s in %s. Benenne um %s->%s "
 "in %s"
 
-#: merge-recursive.c:1247
+#: merge-recursive.c:1248
 #, c-format
 msgid "Renaming %s to %s and %s to %s instead"
 msgstr "Benenne stattdessen %s nach %s und %s nach %s um"
 
-#: merge-recursive.c:1446
+#: merge-recursive.c:1447
 #, c-format
 msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s"
 msgstr ""
 "KONFLIKT (umbenennen/hinzufügen): Benenne um %s->%s in %s. %s hinzugefügt in "
 "%s"
 
-#: merge-recursive.c:1456
+#: merge-recursive.c:1457
 #, c-format
 msgid "Adding merged %s"
 msgstr "Füge zusammengeführte Datei %s hinzu"
 
-#: merge-recursive.c:1461 merge-recursive.c:1659
+#: merge-recursive.c:1462 merge-recursive.c:1660
 #, c-format
 msgid "Adding as %s instead"
 msgstr "Füge stattdessen als %s hinzu"
 
-#: merge-recursive.c:1512
+#: merge-recursive.c:1513
 #, c-format
 msgid "cannot read object %s"
 msgstr "kann Objekt %s nicht lesen"
 
-#: merge-recursive.c:1515
+#: merge-recursive.c:1516
 #, c-format
 msgid "object %s is not a blob"
 msgstr "Objekt %s ist kein Blob"
 
-#: merge-recursive.c:1563
+#: merge-recursive.c:1564
 msgid "modify"
 msgstr "ändern"
 
-#: merge-recursive.c:1563
+#: merge-recursive.c:1564
 msgid "modified"
 msgstr "geändert"
 
-#: merge-recursive.c:1573
+#: merge-recursive.c:1574
 msgid "content"
 msgstr "Inhalt"
 
-#: merge-recursive.c:1580
+#: merge-recursive.c:1581
 msgid "add/add"
 msgstr "hinzufügen/hinzufügen"
 
-#: merge-recursive.c:1614
+#: merge-recursive.c:1615
 #, c-format
 msgid "Skipped %s (merged same as existing)"
 msgstr "%s ausgelassen (Ergebnis der Zusammenführung existiert bereits)"
 
-#: merge-recursive.c:1628
+#: merge-recursive.c:1629
 #, c-format
 msgid "Auto-merging %s"
 msgstr "automatische Zusammenführung von %s"
 
-#: merge-recursive.c:1632 git-submodule.sh:869
+#: merge-recursive.c:1633 git-submodule.sh:893
 msgid "submodule"
 msgstr "Unterprojekt"
 
-#: merge-recursive.c:1633
+#: merge-recursive.c:1634
 #, c-format
 msgid "CONFLICT (%s): Merge conflict in %s"
 msgstr "KONFLIKT (%s): Zusammenführungskonflikt in %s"
 
-#: merge-recursive.c:1723
+#: merge-recursive.c:1724
 #, c-format
 msgid "Removing %s"
 msgstr "Entferne %s"
 
-#: merge-recursive.c:1748
+#: merge-recursive.c:1749
 msgid "file/directory"
 msgstr "Datei/Verzeichnis"
 
-#: merge-recursive.c:1754
+#: merge-recursive.c:1755
 msgid "directory/file"
 msgstr "Verzeichnis/Datei"
 
-#: merge-recursive.c:1759
+#: merge-recursive.c:1760
 #, c-format
 msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s"
 msgstr ""
 "KONFLIKT (%s): Es existiert bereits ein Verzeichnis %s in %s. Füge %s als %s "
 "hinzu."
 
-#: merge-recursive.c:1769
+#: merge-recursive.c:1770
 #, c-format
 msgid "Adding %s"
 msgstr "Füge %s hinzu"
 
-#: merge-recursive.c:1786
+#: merge-recursive.c:1787
 msgid "Fatal merge failure, shouldn't happen."
 msgstr "Fataler Fehler bei der Zusammenführung. Sollte nicht passieren."
 
-#: merge-recursive.c:1805
+#: merge-recursive.c:1806
 msgid "Already up-to-date!"
 msgstr "Bereits aktuell!"
 
-#: merge-recursive.c:1814
+#: merge-recursive.c:1815
 #, c-format
 msgid "merging of trees %s and %s failed"
 msgstr "Zusammenführen der Bäume %s und %s fehlgeschlagen"
 
-#: merge-recursive.c:1844
+#: merge-recursive.c:1845
 #, c-format
 msgid "Unprocessed path??? %s"
 msgstr "unverarbeiteter Pfad??? %s"
 
-#: merge-recursive.c:1889
+#: merge-recursive.c:1890
 msgid "Merging:"
 msgstr "Zusammenführung:"
 
-#: merge-recursive.c:1902
+#: merge-recursive.c:1903
 #, c-format
 msgid "found %u common ancestor:"
 msgid_plural "found %u common ancestors:"
 msgstr[0] "%u gemeinsamen Vorfahren gefunden"
 msgstr[1] "%u gemeinsame Vorfahren gefunden"
 
-#: merge-recursive.c:1939
+#: merge-recursive.c:1940
 msgid "merge returned no commit"
 msgstr "Zusammenführung hat keine Version zurückgegeben"
 
-#: merge-recursive.c:1996
+#: merge-recursive.c:1997
 #, c-format
 msgid "Could not parse object '%s'"
 msgstr "Konnte Objekt '%s' nicht parsen."
 
-#: merge-recursive.c:2008 builtin/merge.c:696
+#: merge-recursive.c:2009 builtin/merge.c:643
 msgid "Unable to write index."
 msgstr "Konnte Bereitstellung nicht schreiben."
 
@@ -633,7 +724,11 @@ msgid_plural "Your branch is ahead of '%s' by %d commits.\n"
 msgstr[0] "Dein Zweig ist vor '%s' um %d Version.\n"
 msgstr[1] "Dein Zweig ist vor '%s' um %d Versionen.\n"
 
-#: remote.c:1638
+#: remote.c:1637
+msgid "  (use \"git push\" to publish your local commits)\n"
+msgstr "  (benutze \"git push\" um deine lokalen Versionen herauszubringen)\n"
+
+#: remote.c:1640
 #, c-format
 msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n"
 msgid_plural ""
@@ -644,7 +739,12 @@ msgstr[1] ""
 "Dein Zweig ist zu '%s' um %d Versionen hinterher, und kann vorgespult "
 "werden.\n"
 
-#: remote.c:1646
+#: remote.c:1647
+msgid "  (use \"git pull\" to update your local branch)\n"
+msgstr ""
+"  (benutze \"git pull\" um deinen lokalen Zweig zu aktualisieren)\n"
+
+#: remote.c:1650
 #, c-format
 msgid ""
 "Your branch and '%s' have diverged,\n"
@@ -659,19 +759,24 @@ msgstr[1] ""
 "Dein Zweig und '%s' sind divergiert,\n"
 "und haben jeweils %d und %d unterschiedliche Versionen.\n"
 
-#: sequencer.c:121 builtin/merge.c:864 builtin/merge.c:977
-#: builtin/merge.c:1087 builtin/merge.c:1097
+#: remote.c:1659
+msgid "  (use \"git pull\" to merge the remote branch into yours)\n"
+msgstr ""
+"  (benutze \"git pull\" um deinen Zweig mit dem externen zusammenzuführen)\n"
+
+#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984
+#: builtin/merge.c:994
 #, c-format
 msgid "Could not open '%s' for writing"
 msgstr "Konnte '%s' nicht zum Schreiben öffnen."
 
-#: sequencer.c:123 builtin/merge.c:333 builtin/merge.c:867
-#: builtin/merge.c:1089 builtin/merge.c:1102
+#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986
+#: builtin/merge.c:999
 #, c-format
 msgid "Could not write to '%s'"
 msgstr "Konnte nicht nach '%s' schreiben."
 
-#: sequencer.c:144
+#: sequencer.c:146
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add ' or 'git rm '"
@@ -679,7 +784,7 @@ msgstr ""
 "nach Auflösung der Konflikte, markiere die korrigierten Pfade\n"
 "mit 'git add ' oder 'git rm '"
 
-#: sequencer.c:147
+#: sequencer.c:149
 msgid ""
 "after resolving the conflicts, mark the corrected paths\n"
 "with 'git add ' or 'git rm '\n"
@@ -689,74 +794,74 @@ msgstr ""
 "mit 'git add ' oder 'git rm 'und trage das Ergebnis ein mit "
 "'git commit'"
 
-#: sequencer.c:160 sequencer.c:758 sequencer.c:841
+#: sequencer.c:162 sequencer.c:770 sequencer.c:853
 #, c-format
 msgid "Could not write to %s"
 msgstr "Konnte nicht nach %s schreiben"
 
-#: sequencer.c:163
+#: sequencer.c:165
 #, c-format
 msgid "Error wrapping up %s"
 msgstr "Fehler bei Nachbereitung von %s"
 
-#: sequencer.c:178
+#: sequencer.c:180
 msgid "Your local changes would be overwritten by cherry-pick."
 msgstr ""
 "Deine lokalen Änderungen würden von \"cherry-pick\" überschrieben werden."
 
-#: sequencer.c:180
+#: sequencer.c:182
 msgid "Your local changes would be overwritten by revert."
 msgstr "Deine lokalen Änderungen würden von \"revert\" überschrieben werden."
 
-#: sequencer.c:183
+#: sequencer.c:185
 msgid "Commit your changes or stash them to proceed."
 msgstr "Trage deine Änderungen ein oder benutze \"stash\" um fortzufahren."
 
 #. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:233
+#: sequencer.c:235
 #, c-format
 msgid "%s: Unable to write new index file"
 msgstr "%s: Konnte neue Bereitstellungsdatei nicht schreiben"
 
-#: sequencer.c:261
+#: sequencer.c:266
 msgid "Could not resolve HEAD commit\n"
 msgstr "Konnte Version der Zweigspitze (HEAD) nicht auflösen\n"
 
-#: sequencer.c:282
+#: sequencer.c:287
 msgid "Unable to update cache tree\n"
 msgstr "Konnte zwischengespeicherten Baum nicht aktualisieren\n"
 
-#: sequencer.c:324
+#: sequencer.c:332
 #, c-format
 msgid "Could not parse commit %s\n"
 msgstr "Konnte Version %s nicht parsen\n"
 
-#: sequencer.c:329
+#: sequencer.c:337
 #, c-format
 msgid "Could not parse parent commit %s\n"
 msgstr "Konnte Elternversion %s nicht parsen\n"
 
-#: sequencer.c:395
+#: sequencer.c:403
 msgid "Your index file is unmerged."
 msgstr "Deine Bereitstellungsdatei ist nicht zusammengeführt."
 
-#: sequencer.c:398
+#: sequencer.c:406
 msgid "You do not have a valid HEAD"
 msgstr "Du hast keine gültige Zweigspitze (HEAD)"
 
-#: sequencer.c:413
+#: sequencer.c:421
 #, c-format
 msgid "Commit %s is a merge but no -m option was given."
 msgstr ""
 "Version %s ist eine Zusammenführung, aber die Option -m wurde nicht "
 "angegeben."
 
-#: sequencer.c:421
+#: sequencer.c:429
 #, c-format
 msgid "Commit %s does not have parent %d"
 msgstr "Version %s hat keinen Elternteil %d"
 
-#: sequencer.c:425
+#: sequencer.c:433
 #, c-format
 msgid "Mainline was specified but commit %s is not a merge."
 msgstr ""
@@ -764,145 +869,145 @@ msgstr ""
 
 #. TRANSLATORS: The first %s will be "revert" or
 #. "cherry-pick", the second %s a SHA1
-#: sequencer.c:436
+#: sequencer.c:444
 #, c-format
 msgid "%s: cannot parse parent commit %s"
 msgstr "%s: kann Elternversion %s nicht parsen"
 
-#: sequencer.c:440
+#: sequencer.c:448
 #, c-format
 msgid "Cannot get commit message for %s"
 msgstr "Kann keine Versionsbeschreibung für %s bekommen"
 
-#: sequencer.c:524
+#: sequencer.c:532
 #, c-format
 msgid "could not revert %s... %s"
 msgstr "Konnte %s nicht zurücksetzen... %s"
 
-#: sequencer.c:525
+#: sequencer.c:533
 #, c-format
 msgid "could not apply %s... %s"
 msgstr "Konnte %s nicht anwenden... %s"
 
-#: sequencer.c:553
+#: sequencer.c:565
 msgid "empty commit set passed"
 msgstr "leere Menge von Versionen übergeben"
 
-#: sequencer.c:561
+#: sequencer.c:573
 #, c-format
 msgid "git %s: failed to read the index"
 msgstr "git %s: Fehler beim Lesen der Bereitstellung"
 
-#: sequencer.c:566
+#: sequencer.c:578
 #, c-format
 msgid "git %s: failed to refresh the index"
 msgstr "git %s: Fehler beim Aktualisieren der Bereitstellung"
 
-#: sequencer.c:624
+#: sequencer.c:636
 #, c-format
 msgid "Cannot %s during a %s"
 msgstr "Kann %s nicht während eines %s durchführen"
 
-#: sequencer.c:646
+#: sequencer.c:658
 #, c-format
 msgid "Could not parse line %d."
 msgstr "Konnte Zeile %d nicht parsen."
 
-#: sequencer.c:651
+#: sequencer.c:663
 msgid "No commits parsed."
 msgstr "Keine Versionen geparst."
 
-#: sequencer.c:664
+#: sequencer.c:676
 #, c-format
 msgid "Could not open %s"
 msgstr "Konnte %s nicht öffnen"
 
-#: sequencer.c:668
+#: sequencer.c:680
 #, c-format
 msgid "Could not read %s."
 msgstr "Konnte %s nicht lesen."
 
-#: sequencer.c:675
+#: sequencer.c:687
 #, c-format
 msgid "Unusable instruction sheet: %s"
 msgstr "Unbenutzbares Instruktionsblatt: %s"
 
-#: sequencer.c:703
+#: sequencer.c:715
 #, c-format
 msgid "Invalid key: %s"
 msgstr "Ungültiger Schlüssel: %s"
 
-#: sequencer.c:706
+#: sequencer.c:718
 #, c-format
 msgid "Invalid value for %s: %s"
 msgstr "Ungültiger Wert für %s: %s"
 
-#: sequencer.c:718
+#: sequencer.c:730
 #, c-format
 msgid "Malformed options sheet: %s"
 msgstr "Fehlerhaftes Optionsblatt: %s"
 
-#: sequencer.c:739
+#: sequencer.c:751
 msgid "a cherry-pick or revert is already in progress"
 msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang"
 
-#: sequencer.c:740
+#: sequencer.c:752
 msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
 msgstr "versuche \"git cherry-pick (--continue | --quit | --abort)\""
 
-#: sequencer.c:744
+#: sequencer.c:756
 #, c-format
 msgid "Could not create sequencer directory %s"
 msgstr "Konnte \"sequencer\"-Verzeichnis %s nicht erstellen"
 
-#: sequencer.c:760 sequencer.c:845
+#: sequencer.c:772 sequencer.c:857
 #, c-format
 msgid "Error wrapping up %s."
 msgstr "Fehler beim Einpacken von %s."
 
-#: sequencer.c:779 sequencer.c:913
+#: sequencer.c:791 sequencer.c:925
 msgid "no cherry-pick or revert in progress"
 msgstr "kein \"cherry-pick\" oder \"revert\" im Gang"
 
-#: sequencer.c:781
+#: sequencer.c:793
 msgid "cannot resolve HEAD"
 msgstr "kann Zweigspitze (HEAD) nicht auflösen"
 
-#: sequencer.c:783
+#: sequencer.c:795
 msgid "cannot abort from a branch yet to be born"
 msgstr "kann nicht abbrechen: bin auf einem Zweig, der noch geboren wird"
 
-#: sequencer.c:805 builtin/apply.c:3987
+#: sequencer.c:817 builtin/apply.c:4005
 #, c-format
 msgid "cannot open %s: %s"
 msgstr "Kann %s nicht öffnen: %s"
 
-#: sequencer.c:808
+#: sequencer.c:820
 #, c-format
 msgid "cannot read %s: %s"
 msgstr "Kann %s nicht lesen: %s"
 
-#: sequencer.c:809
+#: sequencer.c:821
 msgid "unexpected end of file"
 msgstr "Unerwartetes Dateiende"
 
-#: sequencer.c:815
+#: sequencer.c:827
 #, c-format
 msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
 msgstr ""
 "gespeicherte \"pre-cherry-pick\" Datei der Zweigspitze (HEAD) '%s' ist "
 "beschädigt"
 
-#: sequencer.c:838
+#: sequencer.c:850
 #, c-format
 msgid "Could not format %s."
 msgstr "Konnte %s nicht formatieren."
 
-#: sequencer.c:1000
+#: sequencer.c:1012
 msgid "Can't revert as initial commit"
 msgstr "Kann nicht zu initialer Version zurücksetzen."
 
-#: sequencer.c:1001
+#: sequencer.c:1013
 msgid "Can't cherry-pick into empty head"
 msgstr "Kann \"cherry-pick\" nicht in einem leerem Kopf ausführen."
 
@@ -926,12 +1031,17 @@ msgid "Upstream branch '%s' not stored as a remote-tracking branch"
 msgstr ""
 "Zweig '%s' des entfernten Projektarchivs ist kein gefolgter Übernahmezweig"
 
-#: wrapper.c:413
+#: wrapper.c:408
+#, c-format
+msgid "unable to access '%s': %s"
+msgstr "konnte nicht auf '%s' zugreifen: %s"
+
+#: wrapper.c:426
 #, c-format
 msgid "unable to look up current user in the passwd file: %s"
 msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s"
 
-#: wrapper.c:414
+#: wrapper.c:427
 msgid "no such user"
 msgstr "kein solcher Benutzer"
 
@@ -995,11 +1105,6 @@ msgstr ""
 "  (trage ein oder verwerfe den unbeobachteten oder geänderten Inhalt in den "
 "Unterprojekten)"
 
-#: wt-status.c:224
-#, c-format
-msgid "%s files:"
-msgstr "%s Dateien:"
-
 #: wt-status.c:227
 #, c-format
 msgid "  (use \"git %s ...\" to include in what will be committed)"
@@ -1209,12 +1314,12 @@ msgid "Initial commit"
 msgstr "Initiale Version"
 
 #: wt-status.c:1011
-msgid "Untracked"
-msgstr "Unbeobachtete"
+msgid "Untracked files"
+msgstr "Unbeobachtete Dateien"
 
 #: wt-status.c:1013
-msgid "Ignored"
-msgstr "Ignorierte"
+msgid "Ignored files"
+msgstr "Ignorierte Dateien"
 
 #: wt-status.c:1015
 #, c-format
@@ -1229,59 +1334,73 @@ msgstr " (benutze die Option -u um unbeobachteten Dateien anzuzeigen)"
 msgid "No changes"
 msgstr "Keine Änderungen"
 
-#: wt-status.c:1027
+#: wt-status.c:1028
 #, c-format
-msgid "no changes added to commit%s\n"
-msgstr "keine Änderungen zum Eintragen hinzugefügt%s\n"
-
-#: wt-status.c:1029
-msgid " (use \"git add\" and/or \"git commit -a\")"
-msgstr " (benutze \"git add\" und/oder \"git commit -a\")"
+msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
+msgstr ""
+"keine Änderungen zum Eintragen hinzugefügt (benutze \"git add\" und/oder "
+"\"git commit -a\")\n"
 
 #: wt-status.c:1031
 #, c-format
-msgid "nothing added to commit but untracked files present%s\n"
+msgid "no changes added to commit\n"
+msgstr "keine Änderungen zum Eintragen hinzugefügt\n"
+
+#: wt-status.c:1034
+#, c-format
+msgid ""
+"nothing added to commit but untracked files present (use \"git add\" to "
+"track)\n"
 msgstr ""
-"nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien%s\n"
+"nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien "
+"(benutze \"git add\" zum Beobachten)\n"
 
-#: wt-status.c:1033
-msgid " (use \"git add\" to track)"
-msgstr " (benutze \"git add\" zum Beobachten)"
+#: wt-status.c:1037
+#, c-format
+msgid "nothing added to commit but untracked files present\n"
+msgstr "nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien\n"
 
-#: wt-status.c:1035 wt-status.c:1038 wt-status.c:1041
+#: wt-status.c:1040
 #, c-format
-msgid "nothing to commit%s\n"
-msgstr "nichts zum Eintragen%s\n"
+msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
+msgstr ""
+"nichts einzutragen (Erstelle/Kopiere Dateien und benutze \"git add\" zum "
+"Beobachten)\n"
 
-#: wt-status.c:1036
-msgid " (create/copy files and use \"git add\" to track)"
-msgstr " (Erstelle/Kopiere Dateien und benutze \"git add\" zum Beobachten)"
+#: wt-status.c:1043 wt-status.c:1048
+#, c-format
+msgid "nothing to commit\n"
+msgstr "nichts einzutragen\n"
 
-#: wt-status.c:1039
-msgid " (use -u to show untracked files)"
-msgstr " (benutze die Option -u um unbeobachtete Dateien anzuzeigen)"
+#: wt-status.c:1046
+#, c-format
+msgid "nothing to commit (use -u to show untracked files)\n"
+msgstr ""
+"nichts einzutragen (benutze die Option -u, um unbeobachtete Dateien "
+"anzuzeigen)\n"
 
-#: wt-status.c:1042
-msgid " (working directory clean)"
-msgstr " (Arbeitsverzeichnis sauber)"
+#: wt-status.c:1050
+#, c-format
+msgid "nothing to commit, working directory clean\n"
+msgstr "nichts einzutragen, Arbeitsverzeichnis sauber\n"
 
-#: wt-status.c:1150
+#: wt-status.c:1158
 msgid "HEAD (no branch)"
 msgstr "HEAD (kein Zweig)"
 
-#: wt-status.c:1156
+#: wt-status.c:1164
 msgid "Initial commit on "
 msgstr "Initiale Version auf "
 
-#: wt-status.c:1171
+#: wt-status.c:1179
 msgid "behind "
 msgstr "hinterher "
 
-#: wt-status.c:1174 wt-status.c:1177
+#: wt-status.c:1182 wt-status.c:1185
 msgid "ahead "
 msgstr "voraus "
 
-#: wt-status.c:1179
+#: wt-status.c:1187
 msgid ", behind "
 msgstr ", hinterher "
 
@@ -1290,19 +1409,23 @@ msgstr ", hinterher "
 msgid "failed to unlink '%s'"
 msgstr "Konnte '%s' nicht entfernen"
 
+#: builtin/add.c:19
+msgid "git add [options] [--] ..."
+msgstr "git add [Optionen] [--] [...]"
+
 #: builtin/add.c:62
 #, c-format
 msgid "unexpected diff status %c"
 msgstr "unerwarteter Differenz-Status %c"
 
-#: builtin/add.c:67 builtin/commit.c:229
+#: builtin/add.c:67 builtin/commit.c:231
 msgid "updating files failed"
 msgstr "Aktualisierung der Dateien fehlgeschlagen"
 
 #: builtin/add.c:77
 #, c-format
 msgid "remove '%s'\n"
-msgstr "entferne '%s'\n"
+msgstr "lösche '%s'\n"
 
 #: builtin/add.c:176
 #, c-format
@@ -1314,7 +1437,7 @@ msgid "Unstaged changes after refreshing the index:"
 msgstr ""
 "Nicht bereitgestellte Änderungen nach Aktualisierung der Bereitstellung:"
 
-#: builtin/add.c:195 builtin/add.c:459 builtin/rm.c:186
+#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275
 #, c-format
 msgid "pathspec '%s' did not match any files"
 msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein"
@@ -1351,50 +1474,105 @@ msgstr "Leerer Patch. Abgebrochen."
 msgid "Could not apply '%s'"
 msgstr "Konnte '%s' nicht anwenden."
 
-#: builtin/add.c:312
+#: builtin/add.c:313
 msgid "The following paths are ignored by one of your .gitignore files:\n"
 msgstr ""
 "Die folgenden Pfade werden durch eine deiner \".gitignore\" Dateien "
 "ignoriert:\n"
 
-#: builtin/add.c:352
+#: builtin/add.c:319 builtin/clean.c:52 builtin/fetch.c:78 builtin/mv.c:63
+#: builtin/prune-packed.c:76 builtin/push.c:388 builtin/remote.c:1253
+#: builtin/rm.c:206
+msgid "dry run"
+msgstr "Probelauf"
+
+#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1160
+#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1483
+#: builtin/mv.c:62 builtin/read-tree.c:112
+msgid "be verbose"
+msgstr "erweiterte Ausgaben"
+
+#: builtin/add.c:322
+msgid "interactive picking"
+msgstr "interaktives Auswählen"
+
+#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:248
+msgid "select hunks interactively"
+msgstr "interaktiv Bereiche auswählen"
+
+#: builtin/add.c:324
+msgid "edit current diff and apply"
+msgstr "aktuelle Unterschiede editieren und anwenden"
+
+#: builtin/add.c:325
+msgid "allow adding otherwise ignored files"
+msgstr "erlaubt das Hinzufügen andernfalls ignorierter Dateien"
+
+#: builtin/add.c:326
+msgid "update tracked files"
+msgstr "aktualisiert beobachtete Dateien"
+
+#: builtin/add.c:327
+msgid "record only the fact that the path will be added later"
+msgstr "speichert nur, dass der Pfad später hinzugefügt werden soll"
+
+#: builtin/add.c:328
+msgid "add changes from all tracked and untracked files"
+msgstr ""
+"fügt Änderungen von allen beobachteten und unbeobachteten Dateien hinzu"
+
+#: builtin/add.c:329
+msgid "don't add, only refresh the index"
+msgstr "fügt nichts hinzu, aktualisiert nur die Bereitstellung"
+
+#: builtin/add.c:330
+msgid "just skip files which cannot be added because of errors"
+msgstr ""
+"überspringt Dateien, die aufgrund von Fehlern nicht hinzugefügt werden "
+"konnten"
+
+#: builtin/add.c:331
+msgid "check if - even missing - files are ignored in dry run"
+msgstr "prüft ob - auch fehlende - Dateien im Probelauf ignoriert werden"
+
+#: builtin/add.c:353
 #, c-format
 msgid "Use -f if you really want to add them.\n"
 msgstr "Verwende -f wenn du diese wirklich hinzufügen möchtest.\n"
 
-#: builtin/add.c:353
+#: builtin/add.c:354
 msgid "no files added"
 msgstr "keine Dateien hinzugefügt"
 
-#: builtin/add.c:359
+#: builtin/add.c:360
 msgid "adding files failed"
 msgstr "Hinzufügen von Dateien fehlgeschlagen"
 
-#: builtin/add.c:391
+#: builtin/add.c:392
 msgid "-A and -u are mutually incompatible"
 msgstr "-A und -u sind zueinander inkompatibel"
 
-#: builtin/add.c:393
+#: builtin/add.c:394
 msgid "Option --ignore-missing can only be used together with --dry-run"
 msgstr ""
 "Die Option --ignore-missing kann nur zusammen mit --dry-run benutzt werden."
 
-#: builtin/add.c:413
+#: builtin/add.c:414
 #, c-format
 msgid "Nothing specified, nothing added.\n"
 msgstr "Nichts spezifiziert, nichts hinzugefügt.\n"
 
-#: builtin/add.c:414
+#: builtin/add.c:415
 #, c-format
 msgid "Maybe you wanted to say 'git add .'?\n"
 msgstr "Wolltest du vielleicht 'git add .' sagen?\n"
 
-#: builtin/add.c:420 builtin/clean.c:95 builtin/commit.c:289 builtin/mv.c:82
-#: builtin/rm.c:162
+#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:291 builtin/mv.c:82
+#: builtin/rm.c:235
 msgid "index file corrupt"
 msgstr "Bereitstellungsdatei beschädigt"
 
-#: builtin/add.c:480 builtin/apply.c:4432 builtin/mv.c:229 builtin/rm.c:260
+#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:370
 msgid "Unable to write new index file"
 msgstr "Konnte neue Bereitstellungsdatei nicht schreiben."
 
@@ -1451,17 +1629,17 @@ msgstr ""
 msgid "git apply: bad git-diff - expected /dev/null on line %d"
 msgstr "git apply: ungültiges 'git-diff' - erwartete /dev/null in Zeile %d"
 
-#: builtin/apply.c:1402
+#: builtin/apply.c:1420
 #, c-format
 msgid "recount: unexpected line: %.*s"
 msgstr "recount: unerwartete Zeile: %.*s"
 
-#: builtin/apply.c:1459
+#: builtin/apply.c:1477
 #, c-format
 msgid "patch fragment without header at line %d: %.*s"
 msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s"
 
-#: builtin/apply.c:1476
+#: builtin/apply.c:1494
 #, c-format
 msgid ""
 "git diff header lacks filename information when removing %d leading pathname "
@@ -1476,70 +1654,70 @@ msgstr[1] ""
 "Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen, wenn "
 "%d vorangestellte Teile des Pfades entfernt werden (Zeile %d)"
 
-#: builtin/apply.c:1636
+#: builtin/apply.c:1654
 msgid "new file depends on old contents"
 msgstr "neue Datei hängt von alten Inhalten ab"
 
-#: builtin/apply.c:1638
+#: builtin/apply.c:1656
 msgid "deleted file still has contents"
 msgstr "entfernte Datei hat noch Inhalte"
 
-#: builtin/apply.c:1664
+#: builtin/apply.c:1682
 #, c-format
 msgid "corrupt patch at line %d"
 msgstr "fehlerhafter Patch bei Zeile %d"
 
-#: builtin/apply.c:1700
+#: builtin/apply.c:1718
 #, c-format
 msgid "new file %s depends on old contents"
 msgstr "neue Datei %s hängt von alten Inhalten ab"
 
-#: builtin/apply.c:1702
+#: builtin/apply.c:1720
 #, c-format
 msgid "deleted file %s still has contents"
 msgstr "entfernte Datei %s hat noch Inhalte"
 
-#: builtin/apply.c:1705
+#: builtin/apply.c:1723
 #, c-format
 msgid "** warning: file %s becomes empty but is not deleted"
 msgstr "** Warnung: Datei %s wird leer, aber nicht entfernt."
 
-#: builtin/apply.c:1851
+#: builtin/apply.c:1869
 #, c-format
 msgid "corrupt binary patch at line %d: %.*s"
 msgstr "fehlerhafter Binär-Patch bei Zeile %d: %.*s"
 
 #. there has to be one hunk (forward hunk)
-#: builtin/apply.c:1880
+#: builtin/apply.c:1898
 #, c-format
 msgid "unrecognized binary patch at line %d"
 msgstr "nicht erkannter Binär-Patch bei Zeile %d"
 
-#: builtin/apply.c:1966
+#: builtin/apply.c:1984
 #, c-format
 msgid "patch with only garbage at line %d"
 msgstr "Patch mit nutzlosen Informationen bei Zeile %d"
 
-#: builtin/apply.c:2056
+#: builtin/apply.c:2074
 #, c-format
 msgid "unable to read symlink %s"
 msgstr "konnte symbolische Verknüpfung %s nicht lesen"
 
-#: builtin/apply.c:2060
+#: builtin/apply.c:2078
 #, c-format
 msgid "unable to open or read %s"
 msgstr "konnte %s nicht öffnen oder lesen"
 
-#: builtin/apply.c:2131
+#: builtin/apply.c:2149
 msgid "oops"
 msgstr "Ups"
 
-#: builtin/apply.c:2653
+#: builtin/apply.c:2671
 #, c-format
 msgid "invalid start of line: '%c'"
 msgstr "Ungültiger Zeilenanfang: '%c'"
 
-#: builtin/apply.c:2771
+#: builtin/apply.c:2789
 #, c-format
 msgid "Hunk #%d succeeded at %d (offset %d line)."
 msgid_plural "Hunk #%d succeeded at %d (offset %d lines)."
@@ -1547,12 +1725,12 @@ msgstr[0] "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeile versetzt)"
 msgstr[1] ""
 "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeilen versetzt)"
 
-#: builtin/apply.c:2783
+#: builtin/apply.c:2801
 #, c-format
 msgid "Context reduced to (%ld/%ld) to apply fragment at %d"
 msgstr "Kontext reduziert zu (%ld/%ld) um Patch-Bereich bei %d anzuwenden"
 
-#: builtin/apply.c:2789
+#: builtin/apply.c:2807
 #, c-format
 msgid ""
 "while searching for:\n"
@@ -1561,339 +1739,335 @@ msgstr ""
 "bei der Suche nach:\n"
 "%.*s"
 
-#: builtin/apply.c:2808
+#: builtin/apply.c:2826
 #, c-format
 msgid "missing binary patch data for '%s'"
 msgstr "keine Daten in Binär-Patch für '%s'"
 
-#: builtin/apply.c:2911
+#: builtin/apply.c:2929
 #, c-format
 msgid "binary patch does not apply to '%s'"
 msgstr "Konnte Binär-Patch nicht auf '%s' anwenden"
 
-#: builtin/apply.c:2917
+#: builtin/apply.c:2935
 #, c-format
 msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)"
 msgstr ""
 "Binär-Patch für '%s' erzeugt falsches Ergebnis (erwartete %s, bekam %s)"
 
-#: builtin/apply.c:2938
+#: builtin/apply.c:2956
 #, c-format
 msgid "patch failed: %s:%ld"
 msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld"
 
-#: builtin/apply.c:3060
+#: builtin/apply.c:3078
 #, c-format
 msgid "cannot checkout %s"
 msgstr "kann %s nicht auschecken"
 
-#: builtin/apply.c:3105 builtin/apply.c:3114 builtin/apply.c:3158
+#: builtin/apply.c:3123 builtin/apply.c:3132 builtin/apply.c:3176
 #, c-format
 msgid "read of %s failed"
 msgstr "Konnte %s nicht lesen"
 
-#: builtin/apply.c:3138 builtin/apply.c:3360
+#: builtin/apply.c:3156 builtin/apply.c:3378
 #, c-format
 msgid "path %s has been renamed/deleted"
 msgstr "Pfad %s wurde umbenannt/gelöscht"
 
-#: builtin/apply.c:3219 builtin/apply.c:3374
+#: builtin/apply.c:3237 builtin/apply.c:3392
 #, c-format
 msgid "%s: does not exist in index"
 msgstr "%s ist nicht bereitgestellt"
 
-#: builtin/apply.c:3223 builtin/apply.c:3366 builtin/apply.c:3388
+#: builtin/apply.c:3241 builtin/apply.c:3384 builtin/apply.c:3406
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: builtin/apply.c:3228 builtin/apply.c:3382
+#: builtin/apply.c:3246 builtin/apply.c:3400
 #, c-format
 msgid "%s: does not match index"
 msgstr "%s entspricht nicht der Bereitstellung"
 
-#: builtin/apply.c:3330
+#: builtin/apply.c:3348
 msgid "removal patch leaves file contents"
 msgstr "Lösch-Patch hinterlässt Dateiinhalte"
 
-#: builtin/apply.c:3399
+#: builtin/apply.c:3417
 #, c-format
 msgid "%s: wrong type"
 msgstr "%s: falscher Typ"
 
-#: builtin/apply.c:3401
+#: builtin/apply.c:3419
 #, c-format
 msgid "%s has type %o, expected %o"
 msgstr "%s ist vom Typ %o, erwartete %o"
 
-#: builtin/apply.c:3502
+#: builtin/apply.c:3520
 #, c-format
 msgid "%s: already exists in index"
 msgstr "%s ist bereits bereitgestellt"
 
-#: builtin/apply.c:3505
+#: builtin/apply.c:3523
 #, c-format
 msgid "%s: already exists in working directory"
 msgstr "%s existiert bereits im Arbeitsverzeichnis"
 
-#: builtin/apply.c:3525
+#: builtin/apply.c:3543
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o)"
 msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o)"
 
-#: builtin/apply.c:3530
+#: builtin/apply.c:3548
 #, c-format
 msgid "new mode (%o) of %s does not match old mode (%o) of %s"
 msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o) von %s"
 
-#: builtin/apply.c:3538
+#: builtin/apply.c:3556
 #, c-format
 msgid "%s: patch does not apply"
 msgstr "%s: Patch konnte nicht angewendet werden"
 
-#: builtin/apply.c:3551
+#: builtin/apply.c:3569
 #, c-format
 msgid "Checking patch %s..."
 msgstr "Prüfe Patch %s..."
 
-#: builtin/apply.c:3606 builtin/checkout.c:213 builtin/reset.c:158
+#: builtin/apply.c:3624 builtin/checkout.c:215 builtin/reset.c:158
 #, c-format
 msgid "make_cache_entry failed for path '%s'"
 msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen"
 
-#: builtin/apply.c:3749
+#: builtin/apply.c:3767
 #, c-format
 msgid "unable to remove %s from index"
 msgstr "konnte %s nicht aus der Bereitstellung entfernen"
 
-#: builtin/apply.c:3777
+#: builtin/apply.c:3795
 #, c-format
 msgid "corrupt patch for subproject %s"
 msgstr "fehlerhafter Patch für Unterprojekt %s"
 
-#: builtin/apply.c:3781
+#: builtin/apply.c:3799
 #, c-format
 msgid "unable to stat newly created file '%s'"
 msgstr "konnte neu erstellte Datei '%s' nicht lesen"
 
-#: builtin/apply.c:3786
+#: builtin/apply.c:3804
 #, c-format
 msgid "unable to create backing store for newly created file %s"
 msgstr "kann internen Speicher für eben erstellte Datei %s nicht erzeugen"
 
-#: builtin/apply.c:3789 builtin/apply.c:3897
+#: builtin/apply.c:3807 builtin/apply.c:3915
 #, c-format
 msgid "unable to add cache entry for %s"
 msgstr "kann für %s keinen Eintrag in den Zwischenspeicher hinzufügen"
 
-#: builtin/apply.c:3822
+#: builtin/apply.c:3840
 #, c-format
 msgid "closing file '%s'"
 msgstr "schließe Datei '%s'"
 
-#: builtin/apply.c:3871
+#: builtin/apply.c:3889
 #, c-format
 msgid "unable to write file '%s' mode %o"
 msgstr "konnte Datei '%s' mit Modus %o nicht schreiben"
 
-#: builtin/apply.c:3958
+#: builtin/apply.c:3976
 #, c-format
 msgid "Applied patch %s cleanly."
 msgstr "Patch %s sauber angewendet"
 
-#: builtin/apply.c:3966
+#: builtin/apply.c:3984
 msgid "internal error"
 msgstr "interner Fehler"
 
 #. Say this even without --verbose
-#: builtin/apply.c:3969
+#: builtin/apply.c:3987
 #, c-format
 msgid "Applying patch %%s with %d reject..."
 msgid_plural "Applying patch %%s with %d rejects..."
 msgstr[0] "Wende Patch %%s mit %d Zurückweisung an..."
 msgstr[1] "Wende Patch %%s mit %d Zurückweisungen an..."
 
-#: builtin/apply.c:3979
+#: builtin/apply.c:3997
 #, c-format
 msgid "truncating .rej filename to %.*s.rej"
 msgstr "Verkürze Name von .rej Datei zu %.*s.rej"
 
-#: builtin/apply.c:4000
+#: builtin/apply.c:4018
 #, c-format
 msgid "Hunk #%d applied cleanly."
 msgstr "Patch-Bereich #%d sauber angewendet."
 
-#: builtin/apply.c:4003
+#: builtin/apply.c:4021
 #, c-format
 msgid "Rejected hunk #%d."
 msgstr "Patch-Bereich #%d zurückgewiesen."
 
-#: builtin/apply.c:4153
+#: builtin/apply.c:4171
 msgid "unrecognized input"
 msgstr "nicht erkannte Eingabe"
 
-#: builtin/apply.c:4164
+#: builtin/apply.c:4182
 msgid "unable to read index file"
 msgstr "Konnte Bereitstellungsdatei nicht lesen"
 
-#: builtin/apply.c:4283 builtin/apply.c:4286
+#: builtin/apply.c:4301 builtin/apply.c:4304 builtin/clone.c:91
+#: builtin/fetch.c:63
 msgid "path"
 msgstr "Pfad"
 
-#: builtin/apply.c:4284
+#: builtin/apply.c:4302
 msgid "don't apply changes matching the given path"
 msgstr "wendet keine Änderungen im angegebenen Pfad an"
 
-#: builtin/apply.c:4287
+#: builtin/apply.c:4305
 msgid "apply changes matching the given path"
 msgstr "wendet Änderungen nur im angegebenen Pfad an"
 
-#: builtin/apply.c:4289
+#: builtin/apply.c:4307
 msgid "num"
 msgstr "Anzahl"
 
-#: builtin/apply.c:4290
+#: builtin/apply.c:4308
 msgid "remove  leading slashes from traditional diff paths"
 msgstr ""
 "entfernt  vorangestellte Schrägstriche von herkömmlichen "
 "Differenzpfaden"
 
-#: builtin/apply.c:4293
+#: builtin/apply.c:4311
 msgid "ignore additions made by the patch"
 msgstr "ignoriert hinzugefügte Zeilen des Patches"
 
-#: builtin/apply.c:4295
+#: builtin/apply.c:4313
 msgid "instead of applying the patch, output diffstat for the input"
 msgstr ""
 "anstatt der Anwendung des Patches, wird der \"diffstat\" für die Eingabe "
 "ausgegeben"
 
-#: builtin/apply.c:4299
-msgid "shows number of added and deleted lines in decimal notation"
+#: builtin/apply.c:4317
+msgid "show number of added and deleted lines in decimal notation"
 msgstr ""
 "zeigt die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation"
 
-#: builtin/apply.c:4301
+#: builtin/apply.c:4319
 msgid "instead of applying the patch, output a summary for the input"
 msgstr ""
 "anstatt der Anwendung des Patches, wird eine Zusammenfassung für die Eingabe "
 "ausgegeben"
 
-#: builtin/apply.c:4303
+#: builtin/apply.c:4321
 msgid "instead of applying the patch, see if the patch is applicable"
 msgstr ""
 "anstatt der Anwendung des Patches, zeige ob Patch angewendet werden kann"
 
-#: builtin/apply.c:4305
+#: builtin/apply.c:4323
 msgid "make sure the patch is applicable to the current index"
 msgstr ""
 "stellt sicher, dass der Patch in der aktuellen Bereitstellung angewendet "
 "werden kann"
 
-#: builtin/apply.c:4307
+#: builtin/apply.c:4325
 msgid "apply a patch without touching the working tree"
 msgstr "wendet einen Patch an, ohne Änderungen im Arbeitszweig vorzunehmen"
 
-#: builtin/apply.c:4309
+#: builtin/apply.c:4327
 msgid "also apply the patch (use with --stat/--summary/--check)"
 msgstr "wendet den Patch an (Benutzung mit --stat/--summary/--check)"
 
-#: builtin/apply.c:4311
+#: builtin/apply.c:4329
 msgid "attempt three-way merge if a patch does not apply"
 msgstr ""
 "versucht 3-Wege-Zusammenführung, wenn der Patch nicht angewendet werden "
 "konnte"
 
-#: builtin/apply.c:4313
+#: builtin/apply.c:4331
 msgid "build a temporary index based on embedded index information"
 msgstr ""
 "erstellt eine temporäre Bereitstellung basierend auf den integrierten "
 "Bereitstellungsinformationen"
 
-#: builtin/apply.c:4315
+#: builtin/apply.c:4333 builtin/checkout-index.c:197 builtin/ls-files.c:460
 msgid "paths are separated with NUL character"
 msgstr "Pfade sind getrennt durch NUL Zeichen"
 
-#: builtin/apply.c:4318
+#: builtin/apply.c:4336
 msgid "ensure at least  lines of context match"
-msgstr ""
-"stellt sicher, dass mindestens  Zeilen des Kontextes übereinstimmen"
+msgstr "stellt sicher, dass mindestens  Zeilen des Kontextes übereinstimmen"
 
-#: builtin/apply.c:4319
+#: builtin/apply.c:4337
 msgid "action"
 msgstr "Aktion"
 
-#: builtin/apply.c:4320
+#: builtin/apply.c:4338
 msgid "detect new or modified lines that have whitespace errors"
 msgstr "ermittelt neue oder geänderte Zeilen die Fehler in Leerzeichen haben"
 
-#: builtin/apply.c:4323 builtin/apply.c:4326
+#: builtin/apply.c:4341 builtin/apply.c:4344
 msgid "ignore changes in whitespace when finding context"
 msgstr "ignoriert Änderungen in Leerzeichen bei der Suche des Kontextes"
 
-#: builtin/apply.c:4329
+#: builtin/apply.c:4347
 msgid "apply the patch in reverse"
 msgstr "wendet den Patch in umgekehrter Reihenfolge an"
 
-#: builtin/apply.c:4331
+#: builtin/apply.c:4349
 msgid "don't expect at least one line of context"
 msgstr "erwartet keinen Kontext"
 
-#: builtin/apply.c:4333
+#: builtin/apply.c:4351
 msgid "leave the rejected hunks in corresponding *.rej files"
 msgstr ""
 "hinterlässt zurückgewiesene Patch-Bereiche in den entsprechenden *.rej "
 "Dateien"
 
-#: builtin/apply.c:4335
+#: builtin/apply.c:4353
 msgid "allow overlapping hunks"
 msgstr "erlaubt sich überlappende Patch-Bereiche"
 
-#: builtin/apply.c:4336
-msgid "be verbose"
-msgstr "erweiterte Ausgaben"
-
-#: builtin/apply.c:4338
+#: builtin/apply.c:4356
 msgid "tolerate incorrectly detected missing new-line at the end of file"
 msgstr "toleriert fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende"
 
-#: builtin/apply.c:4341
+#: builtin/apply.c:4359
 msgid "do not trust the line counts in the hunk headers"
 msgstr "vertraut nicht den Zeilennummern im Kopf des Patch-Bereiches"
 
-#: builtin/apply.c:4343
+#: builtin/apply.c:4361
 msgid "root"
 msgstr "Wurzelverzeichnis"
 
-#: builtin/apply.c:4344
+#: builtin/apply.c:4362
 msgid "prepend  to all filenames"
 msgstr "stellt  vor alle Dateinamen"
 
-#: builtin/apply.c:4366
+#: builtin/apply.c:4384
 msgid "--3way outside a repository"
 msgstr "--3way außerhalb eines Projektarchivs"
 
-#: builtin/apply.c:4374
+#: builtin/apply.c:4392
 msgid "--index outside a repository"
 msgstr "--index außerhalb eines Projektarchivs"
 
-#: builtin/apply.c:4377
+#: builtin/apply.c:4395
 msgid "--cached outside a repository"
 msgstr "--cached außerhalb eines Projektarchivs"
 
-#: builtin/apply.c:4393
+#: builtin/apply.c:4411
 #, c-format
 msgid "can't open patch '%s'"
 msgstr "kann Patch '%s' nicht öffnen"
 
-#: builtin/apply.c:4407
+#: builtin/apply.c:4425
 #, c-format
 msgid "squelched %d whitespace error"
 msgid_plural "squelched %d whitespace errors"
 msgstr[0] "unterdrückte %d Fehler in Leerzeichen"
 msgstr[1] "unterdrückte %d Fehler in Leerzeichen"
 
-#: builtin/apply.c:4413 builtin/apply.c:4423
+#: builtin/apply.c:4431 builtin/apply.c:4441
 #, c-format
 msgid "%d line adds whitespace errors."
 msgid_plural "%d lines add whitespace errors."
@@ -1935,7 +2109,136 @@ msgstr "git archive: Protokollfehler"
 msgid "git archive: expected a flush"
 msgstr "git archive: erwartete eine Spülung (flush)"
 
-#: builtin/branch.c:144
+#: builtin/bisect--helper.c:7
+msgid "git bisect--helper --next-all [--no-checkout]"
+msgstr "git bisect--helper --next-all [--no-checkout]"
+
+#: builtin/bisect--helper.c:17
+msgid "perform 'git bisect next'"
+msgstr "führt 'git bisect next' aus"
+
+#: builtin/bisect--helper.c:19
+msgid "update BISECT_HEAD instead of checking out the current commit"
+msgstr "aktualisiert BISECT_HEAD, anstatt die aktuelle Version auszuchecken"
+
+#: builtin/blame.c:25
+msgid "git blame [options] [rev-opts] [rev] [--] file"
+msgstr "git blame [Optionen] [rev-opts] [rev] [--] Datei"
+
+#: builtin/blame.c:30 builtin/shortlog.c:15
+msgid "[rev-opts] are documented in git-rev-list(1)"
+msgstr "[rev-opts] sind dokumentiert in git-rev-list(1)"
+
+#: builtin/blame.c:2374
+msgid "Show blame entries as we find them, incrementally"
+msgstr "Zeigt \"blame\"-Einträge schrittweise, während wir sie generieren"
+
+#: builtin/blame.c:2375
+msgid "Show blank SHA-1 for boundary commits (Default: off)"
+msgstr "Zeigt leere SHA-1 für Grenzversionen (Standard: aus)"
+
+#: builtin/blame.c:2376
+msgid "Do not treat root commits as boundaries (Default: off)"
+msgstr "Behandelt Ursprungsversionen nicht als Grenzen (Standard: aus)"
+
+#: builtin/blame.c:2377
+msgid "Show work cost statistics"
+msgstr "Zeigt Statistiken zum Arbeitsaufwand"
+
+#: builtin/blame.c:2378
+msgid "Show output score for blame entries"
+msgstr "Zeigt Ausgabebewertung für \"blame\"-Einträge"
+
+#: builtin/blame.c:2379
+msgid "Show original filename (Default: auto)"
+msgstr "Zeigt ursprünglichen Dateinamen (Standard: auto)"
+
+#: builtin/blame.c:2380
+msgid "Show original linenumber (Default: off)"
+msgstr "Zeigt ursprüngliche Zeilennummer (Standard: aus)"
+
+#: builtin/blame.c:2381
+msgid "Show in a format designed for machine consumption"
+msgstr "Anzeige in einem Format für maschinelle Auswertung"
+
+#: builtin/blame.c:2382
+msgid "Show porcelain format with per-line commit information"
+msgstr ""
+"Anzeige in Format für Fremdprogramme mit Versionsinformationen pro Zeile"
+
+#: builtin/blame.c:2383
+msgid "Use the same output mode as git-annotate (Default: off)"
+msgstr "Benutzt den gleichen Ausgabemodus wie \"git-annotate\" (Standard: aus)"
+
+#: builtin/blame.c:2384
+msgid "Show raw timestamp (Default: off)"
+msgstr "Zeigt unbearbeiteten Zeitstempel (Standard: aus)"
+
+#: builtin/blame.c:2385
+msgid "Show long commit SHA1 (Default: off)"
+msgstr "Zeigt langen Versions-SHA1 (Standard: aus)"
+
+#: builtin/blame.c:2386
+msgid "Suppress author name and timestamp (Default: off)"
+msgstr "Unterdrückt den Namen des Autors und den Zeitstempel (Standard: aus)"
+
+#: builtin/blame.c:2387
+msgid "Show author email instead of name (Default: off)"
+msgstr "Zeigt anstatt des Namens die Email-Adresse des Autors (Standard: aus)"
+
+#: builtin/blame.c:2388
+msgid "Ignore whitespace differences"
+msgstr "Ignoriert Unterschiede in Leerzeichen"
+
+#: builtin/blame.c:2389
+msgid "Spend extra cycles to find better match"
+msgstr "arbeite länger, um bessere Übereinstimmungen zu finden"
+
+#: builtin/blame.c:2390
+msgid "Use revisions from  instead of calling git-rev-list"
+msgstr "Benutzt Revisionen von  anstatt \"git-rev-list\" aufzurufen"
+
+#: builtin/blame.c:2391
+msgid "Use 's contents as the final image"
+msgstr "Benutzt Inhalte der en als entgültiges Abbild"
+
+#: builtin/blame.c:2392 builtin/blame.c:2393
+msgid "score"
+msgstr "Bewertung"
+
+#: builtin/blame.c:2392
+msgid "Find line copies within and across files"
+msgstr "Findet kopierte Zeilen innerhalb oder zwischen Dateien"
+
+#: builtin/blame.c:2393
+msgid "Find line movements within and across files"
+msgstr "Findet verschobene Zeilen innerhalb oder zwischen Dateien"
+
+#: builtin/blame.c:2394
+msgid "n,m"
+msgstr "n,m"
+
+#: builtin/blame.c:2394
+msgid "Process only line range n,m, counting from 1"
+msgstr "Verarbeitet nur Zeilen im Bereich n,m, gezählt von 1"
+
+#: builtin/branch.c:23
+msgid "git branch [options] [-r | -a] [--merged | --no-merged]"
+msgstr "git branch [Optionen] [-r | -a] [--merged | --no-merged]"
+
+#: builtin/branch.c:24
+msgid "git branch [options] [-l] [-f]  []"
+msgstr "git branch [Optionen] [-l] [-f]  []"
+
+#: builtin/branch.c:25
+msgid "git branch [options] [-r] (-d | -D) ..."
+msgstr "git branch [Optionen] [-r] (-d | -D) ..."
+
+#: builtin/branch.c:26
+msgid "git branch [options] (-m | -M) [] "
+msgstr "git branch [Optionen] (-m | -M) [] "
+
+#: builtin/branch.c:145
 #, c-format
 msgid ""
 "deleting branch '%s' that has been merged to\n"
@@ -1945,7 +2248,7 @@ msgstr ""
 "         '%s', aber noch nicht mit der Zweigspitze (HEAD) zusammengeführt "
 "wurde."
 
-#: builtin/branch.c:148
+#: builtin/branch.c:149
 #, c-format
 msgid ""
 "not deleting branch '%s' that is not yet merged to\n"
@@ -1954,169 +2257,300 @@ msgstr ""
 "entferne Zweig '%s' nicht, der noch nicht zusammengeführt wurde mit\n"
 "         '%s', obwohl er mit der Zweigspitze (HEAD) zusammengeführt wurde."
 
+#: builtin/branch.c:163
+#, c-format
+msgid "Couldn't look up commit object for '%s'"
+msgstr "Konnte Versionsobjekt für '%s' nicht nachschlagen."
+
+#: builtin/branch.c:167
+#, c-format
+msgid ""
+"The branch '%s' is not fully merged.\n"
+"If you are sure you want to delete it, run 'git branch -D %s'."
+msgstr ""
+"Der Zweig '%s' ist nicht vollständig zusammengeführt.\n"
+"Wenn du sicher bist diesen Zweig zu entfernen, führe 'git branch -D %s' aus."
+
 #: builtin/branch.c:180
+msgid "Update of config-file failed"
+msgstr "Aktualisierung der Konfigurationsdatei fehlgeschlagen."
+
+#: builtin/branch.c:208
 msgid "cannot use -a with -d"
 msgstr "kann -a nicht mit -d benutzen"
 
-#: builtin/branch.c:186
+#: builtin/branch.c:214
 msgid "Couldn't look up commit object for HEAD"
 msgstr "Konnte Versionsobjekt für Zweigspitze (HEAD) nicht nachschlagen."
 
-#: builtin/branch.c:191
+#: builtin/branch.c:222
 #, c-format
 msgid "Cannot delete the branch '%s' which you are currently on."
 msgstr ""
 "Kann Zweig '%s' nicht entfernen, da du dich gerade auf diesem befindest."
 
-#: builtin/branch.c:202
+#: builtin/branch.c:235
 #, c-format
 msgid "remote branch '%s' not found."
 msgstr "externer Zweig '%s' nicht gefunden"
 
-#: builtin/branch.c:203
+#: builtin/branch.c:236
 #, c-format
 msgid "branch '%s' not found."
 msgstr "Zweig '%s' nicht gefunden."
 
-#: builtin/branch.c:210
-#, c-format
-msgid "Couldn't look up commit object for '%s'"
-msgstr "Konnte Versionsobjekt für '%s' nicht nachschlagen."
-
-#: builtin/branch.c:216
-#, c-format
-msgid ""
-"The branch '%s' is not fully merged.\n"
-"If you are sure you want to delete it, run 'git branch -D %s'."
-msgstr ""
-"Der Zweig '%s' ist nicht vollständig zusammengeführt.\n"
-"Wenn du sicher bist diesen Zweig zu entfernen, führe 'git branch -D %s' aus."
-
-#: builtin/branch.c:225
+#: builtin/branch.c:250
 #, c-format
 msgid "Error deleting remote branch '%s'"
 msgstr "Fehler beim Entfernen des externen Zweiges '%s'"
 
-#: builtin/branch.c:226
+#: builtin/branch.c:251
 #, c-format
 msgid "Error deleting branch '%s'"
 msgstr "Fehler beim Entfernen des Zweiges '%s'"
 
-#: builtin/branch.c:233
+#: builtin/branch.c:258
 #, c-format
 msgid "Deleted remote branch %s (was %s).\n"
 msgstr "Externer Zweig %s entfernt (war %s).\n"
 
-#: builtin/branch.c:234
+#: builtin/branch.c:259
 #, c-format
 msgid "Deleted branch %s (was %s).\n"
 msgstr "Zweig %s entfernt (war %s).\n"
 
-#: builtin/branch.c:239
-msgid "Update of config-file failed"
-msgstr "Aktualisierung der Konfigurationsdatei fehlgeschlagen."
-
-#: builtin/branch.c:337
+#: builtin/branch.c:361
 #, c-format
 msgid "branch '%s' does not point at a commit"
 msgstr "Zweig '%s' zeigt auf keine Version"
 
-#: builtin/branch.c:409
+#: builtin/branch.c:433
 #, c-format
 msgid "[%s: behind %d]"
 msgstr "[%s: %d hinterher]"
 
-#: builtin/branch.c:411
+#: builtin/branch.c:435
 #, c-format
 msgid "[behind %d]"
 msgstr "[%d hinterher]"
 
-#: builtin/branch.c:415
+#: builtin/branch.c:439
 #, c-format
 msgid "[%s: ahead %d]"
 msgstr "[%s: %d voraus]"
 
-#: builtin/branch.c:417
+#: builtin/branch.c:441
 #, c-format
 msgid "[ahead %d]"
 msgstr "[%d voraus]"
 
-#: builtin/branch.c:420
+#: builtin/branch.c:444
 #, c-format
 msgid "[%s: ahead %d, behind %d]"
 msgstr "[%s: %d voraus, %d hinterher]"
 
-#: builtin/branch.c:423
+#: builtin/branch.c:447
 #, c-format
 msgid "[ahead %d, behind %d]"
 msgstr "[%d voraus, %d hinterher]"
 
-#: builtin/branch.c:535
+#: builtin/branch.c:560
 msgid "(no branch)"
 msgstr "(kein Zweig)"
 
-#: builtin/branch.c:600
+#: builtin/branch.c:625
 msgid "some refs could not be read"
 msgstr "Konnte einige Referenzen nicht lesen"
 
-#: builtin/branch.c:613
+#: builtin/branch.c:638
 msgid "cannot rename the current branch while not on any."
 msgstr ""
 "Kann aktuellen Zweig nicht umbenennen, solange du dich auf keinem befindest."
 
-#: builtin/branch.c:623
+#: builtin/branch.c:648
 #, c-format
 msgid "Invalid branch name: '%s'"
 msgstr "Ungültiger Zweig-Name: '%s'"
 
-#: builtin/branch.c:638
+#: builtin/branch.c:663
 msgid "Branch rename failed"
 msgstr "Umbenennung des Zweiges fehlgeschlagen"
 
-#: builtin/branch.c:642
+#: builtin/branch.c:667
 #, c-format
 msgid "Renamed a misnamed branch '%s' away"
 msgstr "falsch benannten Zweig '%s' umbenannt"
 
-#: builtin/branch.c:646
+#: builtin/branch.c:671
 #, c-format
 msgid "Branch renamed to %s, but HEAD is not updated!"
 msgstr "Zweig umbenannt zu %s, aber Zweigspitze (HEAD) ist nicht aktualisiert!"
 
-#: builtin/branch.c:653
+#: builtin/branch.c:678
 msgid "Branch is renamed, but update of config-file failed"
 msgstr ""
 "Zweig ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist "
 "fehlgeschlagen."
 
-#: builtin/branch.c:668
+#: builtin/branch.c:693
 #, c-format
 msgid "malformed object name %s"
 msgstr "Missgebildeter Objektname %s"
 
-#: builtin/branch.c:692
+#: builtin/branch.c:717
 #, c-format
 msgid "could not write branch description template: %s"
 msgstr "Konnte Beschreibungsvorlage für Zweig nicht schreiben: %s"
 
-#: builtin/branch.c:783
+#: builtin/branch.c:747
+msgid "Generic options"
+msgstr "Allgemeine Optionen"
+
+#: builtin/branch.c:749
+msgid "show hash and subject, give twice for upstream branch"
+msgstr "Zeigt Hash und Betreff; -vv: zusätzlich externen Übernahmezweig"
+
+#: builtin/branch.c:750
+msgid "suppress informational messages"
+msgstr "unterdrückt Informationsmeldungen"
+
+#: builtin/branch.c:751
+msgid "set up tracking mode (see git-pull(1))"
+msgstr "stellt den Übernahmemodus ein (siehe git-pull(1))"
+
+#: builtin/branch.c:753
+msgid "change upstream info"
+msgstr "ändert Informationen zum externen Übernahmezweig"
+
+#: builtin/branch.c:757
+msgid "use colored output"
+msgstr "verwendet farbliche Ausgaben"
+
+#: builtin/branch.c:758
+msgid "act on remote-tracking branches"
+msgstr "wirkt auf externe Übernahmezweige"
+
+#: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788
+#: builtin/branch.c:794 builtin/commit.c:1376 builtin/commit.c:1377
+#: builtin/commit.c:1378 builtin/commit.c:1379 builtin/tag.c:470
+msgid "commit"
+msgstr "Version"
+
+#: builtin/branch.c:762 builtin/branch.c:768
+msgid "print only branches that contain the commit"
+msgstr "gibt nur Zweige aus, welche diese Version beinhalten"
+
+#: builtin/branch.c:774
+msgid "Specific git-branch actions:"
+msgstr "spezifische Aktionen für \"git-branch\":"
+
+#: builtin/branch.c:775
+msgid "list both remote-tracking and local branches"
+msgstr "listet externe Übernahmezweige und lokale Zweige auf"
+
+#: builtin/branch.c:777
+msgid "delete fully merged branch"
+msgstr "entfernt vollständig zusammengeführten Zweig"
+
+#: builtin/branch.c:778
+msgid "delete branch (even if not merged)"
+msgstr "löscht Zweig (auch wenn nicht zusammengeführt)"
+
+#: builtin/branch.c:779
+msgid "move/rename a branch and its reflog"
+msgstr "verschiebt/benennt einen Zweig und dessen Referenzprotokoll um"
+
+#: builtin/branch.c:780
+msgid "move/rename a branch, even if target exists"
+msgstr ""
+"verschiebt/benennt einen Zweig um, auch wenn das Ziel bereits existiert"
+
+#: builtin/branch.c:781
+msgid "list branch names"
+msgstr "listet Zweignamen auf"
+
+#: builtin/branch.c:782
+msgid "create the branch's reflog"
+msgstr "erzeugt das Referenzprotokoll des Zweiges"
+
+#: builtin/branch.c:784
+msgid "edit the description for the branch"
+msgstr "bearbeitet die Beschreibung für den Zweig"
+
+#: builtin/branch.c:785
+msgid "force creation (when already exists)"
+msgstr "erzeuge auch, wenn der Zweig bereits existiert"
+
+#: builtin/branch.c:788
+msgid "print only not merged branches"
+msgstr "gibt nur Zweige aus, die nicht zusammengeführt sind"
+
+#: builtin/branch.c:794
+msgid "print only merged branches"
+msgstr "gibt nur Zweige aus, die zusammengeführt sind"
+
+#: builtin/branch.c:798
+msgid "list branches in columns"
+msgstr "listet Zweige in Spalten auf"
+
+#: builtin/branch.c:811
 msgid "Failed to resolve HEAD as a valid ref."
 msgstr "Konnte Zweigspitze (HEAD) nicht als gültige Referenz auflösen."
 
-#: builtin/branch.c:788 builtin/clone.c:561
+#: builtin/branch.c:816 builtin/clone.c:561
 msgid "HEAD not found below refs/heads!"
 msgstr "Zweigspitze (HEAD) wurde nicht unter \"refs/heads\" gefunden!"
 
-#: builtin/branch.c:808
+#: builtin/branch.c:836
 msgid "--column and --verbose are incompatible"
 msgstr "--column und --verbose sind inkompatibel"
 
-#: builtin/branch.c:857
+#: builtin/branch.c:887
+#, c-format
+msgid "branch '%s' does not exist"
+msgstr "Zweig '%s' existiert nicht"
+
+#: builtin/branch.c:899
+#, c-format
+msgid "Branch '%s' has no upstream information"
+msgstr "Zweig '%s' hat keinen externen Übernahmezweig gesetzt"
+
+#: builtin/branch.c:914
 msgid "-a and -r options to 'git branch' do not make sense with a branch name"
 msgstr ""
 "Die Optionen -a und -r bei 'git branch' machen mit einem Zweignamen keinen "
 "Sinn."
 
+#: builtin/branch.c:917
+#, c-format
+msgid ""
+"The --set-upstream flag is deprecated and will be removed. Consider using --"
+"track or --set-upstream-to\n"
+msgstr ""
+"Die --set-upstream Option ist veraltet und wird entfernt. Benutze --track "
+"oder --set-upstream-to\n"
+
+#: builtin/branch.c:934
+#, c-format
+msgid ""
+"\n"
+"If you wanted to make '%s' track '%s', do this:\n"
+"\n"
+msgstr ""
+"\n"
+"Wenn du wolltest, dass '%s' den Zweig '%s' als externen Übernahmezweig hat, "
+"führe aus:\n"
+
+#: builtin/branch.c:935
+#, c-format
+msgid "    git branch -d %s\n"
+msgstr "    git branch -d %s\n"
+
+#: builtin/branch.c:936
+#, c-format
+msgid "    git branch --set-upstream-to %s\n"
+msgstr "    git branch --set-upstream-to %s\n"
+
 #: builtin/bundle.c:47
 #, c-format
 msgid "%s is okay\n"
@@ -2130,95 +2564,228 @@ msgstr "Um ein Paket zu erstellen wird ein Projektarchiv benötigt."
 msgid "Need a repository to unbundle."
 msgstr "Zum Entpacken wird ein Projektarchiv benötigt."
 
-#: builtin/checkout.c:114 builtin/checkout.c:147
-#, c-format
-msgid "path '%s' does not have our version"
-msgstr "Pfad '%s' hat nicht unsere Version."
+#: builtin/cat-file.c:247
+msgid "git cat-file (-t|-s|-e|-p||--textconv) "
+msgstr "git cat-file (-t|-s|-e|-p||--textconv) "
 
-#: builtin/checkout.c:116 builtin/checkout.c:149
-#, c-format
-msgid "path '%s' does not have their version"
-msgstr "Pfad '%s' hat nicht deren Version."
+#: builtin/cat-file.c:248
+msgid "git cat-file (--batch|--batch-check) < "
+msgstr "git cat-file (--batch|--batch-check) < "
 
-#: builtin/checkout.c:132
-#, c-format
-msgid "path '%s' does not have all necessary versions"
-msgstr "Pfad '%s' hat nicht alle notwendigen Versionen."
+#: builtin/cat-file.c:266
+msgid " can be one of: blob, tree, commit, tag"
+msgstr " kann sein: blob, tree, commit, tag"
 
-#: builtin/checkout.c:176
-#, c-format
-msgid "path '%s' does not have necessary versions"
-msgstr "Pfad '%s' hat nicht die notwendigen Versionen."
+#: builtin/cat-file.c:267
+msgid "show object type"
+msgstr "zeigt Objektart"
 
-#: builtin/checkout.c:193
-#, c-format
-msgid "path '%s': cannot merge"
-msgstr "Pfad '%s': kann nicht zusammenführen"
+#: builtin/cat-file.c:268
+msgid "show object size"
+msgstr "zeigt Objektgröße"
 
-#: builtin/checkout.c:210
-#, c-format
-msgid "Unable to add merge result for '%s'"
-msgstr "Konnte Ergebnis der Zusammenführung von '%s' nicht hinzufügen."
+#: builtin/cat-file.c:270
+msgid "exit with zero when there's no error"
+msgstr "beendet mit Rückgabewert 0, wenn kein Fehler aufgetreten ist"
 
-#: builtin/checkout.c:235 builtin/checkout.c:392
-msgid "corrupt index file"
-msgstr "beschädigte Bereitstellungsdatei"
+#: builtin/cat-file.c:271
+msgid "pretty-print object's content"
+msgstr "ansprechende Anzeige des Objektinhaltes"
 
-#: builtin/checkout.c:265 builtin/checkout.c:272
-#, c-format
-msgid "path '%s' is unmerged"
-msgstr "Pfad '%s' ist nicht zusammengeführt."
+#: builtin/cat-file.c:273
+msgid "for blob objects, run textconv on object's content"
+msgstr "führt eine Textkonvertierung auf den Inhalt von Blob-Objekten aus"
 
-#: builtin/checkout.c:303 builtin/checkout.c:498 builtin/clone.c:586
-#: builtin/merge.c:811
-msgid "unable to write new index file"
-msgstr "Konnte neue Bereitstellungsdatei nicht schreiben."
+#: builtin/cat-file.c:275
+msgid "show info and content of objects fed from the standard input"
+msgstr ""
+"Anzeige von Informationen und Inhalt von Objekten, gelesen von der Standard-"
+"Eingabe"
 
-#: builtin/checkout.c:414
-msgid "you need to resolve your current index first"
-msgstr "Du musst zuerst deine aktuelle Bereitstellung auflösen."
+#: builtin/cat-file.c:278
+msgid "show info about objects fed from the standard input"
+msgstr ""
+"Anzeige von Informationen über Objekte, gelesen von der Standard-Eingabe"
+
+#: builtin/check-attr.c:11
+msgid "git check-attr [-a | --all | attr...] [--] pathname..."
+msgstr "git check-attr [-a | --all | Attribut...] [--] Pfadname..."
+
+#: builtin/check-attr.c:12
+msgid "git check-attr --stdin [-z] [-a | --all | attr...] < "
+msgstr "git check-attr --stdin [-z] [-a | --all | Attribut...] < "
+
+#: builtin/check-attr.c:19
+msgid "report all attributes set on file"
+msgstr "gibt alle Attribute einer Datei aus"
+
+#: builtin/check-attr.c:20
+msgid "use .gitattributes only from the index"
+msgstr "verwendet .gitattributes nur von der Bereitstellung"
+
+#: builtin/check-attr.c:21 builtin/hash-object.c:75
+msgid "read file names from stdin"
+msgstr "liest Dateinamen von der Standard-Eingabe"
+
+#: builtin/check-attr.c:23
+msgid "input paths are terminated by a null character"
+msgstr "Eingabepfade sind durch ein NUL Zeichen abgeschlossen"
+
+#: builtin/checkout-index.c:126
+msgid "git checkout-index [options] [--] [...]"
+msgstr "git checkout-index [Optionen] [--] [...]"
+
+#: builtin/checkout-index.c:187
+msgid "check out all files in the index"
+msgstr "checkt alle Dateien in der Bereitstellung aus"
+
+#: builtin/checkout-index.c:188
+msgid "force overwrite of existing files"
+msgstr "erzwingt das Überschreiben bereits existierender Dateien"
+
+#: builtin/checkout-index.c:190
+msgid "no warning for existing files and files not in index"
+msgstr ""
+"keine Warnung für existierende Dateien, und Dateien, die sich nicht in der "
+"Bereitstellung befinden"
+
+#: builtin/checkout-index.c:192
+msgid "don't checkout new files"
+msgstr "checkt keine neuen Dateien aus"
+
+#: builtin/checkout-index.c:194
+msgid "update stat information in the index file"
+msgstr "aktualisiert Dateiinformationen in der Bereitstellungsdatei"
+
+#: builtin/checkout-index.c:200
+msgid "read list of paths from the standard input"
+msgstr "liest eine Liste von Pfaden von der Standard-Eingabe"
+
+#: builtin/checkout-index.c:202
+msgid "write the content to temporary files"
+msgstr "schreibt den Inhalt in temporäre Dateien"
+
+#: builtin/checkout-index.c:203 builtin/column.c:30
+msgid "string"
+msgstr "Zeichenkette"
+
+#: builtin/checkout-index.c:204
+msgid "when creating files, prepend "
+msgstr ""
+"wenn Dateien erzeugt werden, stelle  dem Dateinamen voran"
+
+#: builtin/checkout-index.c:207
+msgid "copy out the files from named stage"
+msgstr "kopiert Dateien von dem benannten Stand"
+
+#: builtin/checkout.c:25
+msgid "git checkout [options] "
+msgstr "git checkout [Optionen] "
+
+#: builtin/checkout.c:26
+msgid "git checkout [options] [] -- ..."
+msgstr "git checkout [Optionen] [Zweig>] -- ..."
+
+#: builtin/checkout.c:116 builtin/checkout.c:149
+#, c-format
+msgid "path '%s' does not have our version"
+msgstr "Pfad '%s' hat nicht unsere Version."
+
+#: builtin/checkout.c:118 builtin/checkout.c:151
+#, c-format
+msgid "path '%s' does not have their version"
+msgstr "Pfad '%s' hat nicht deren Version."
 
-#: builtin/checkout.c:533
+#: builtin/checkout.c:134
+#, c-format
+msgid "path '%s' does not have all necessary versions"
+msgstr "Pfad '%s' hat nicht alle notwendigen Versionen."
+
+#: builtin/checkout.c:178
+#, c-format
+msgid "path '%s' does not have necessary versions"
+msgstr "Pfad '%s' hat nicht die notwendigen Versionen."
+
+#: builtin/checkout.c:195
+#, c-format
+msgid "path '%s': cannot merge"
+msgstr "Pfad '%s': kann nicht zusammenführen"
+
+#: builtin/checkout.c:212
+#, c-format
+msgid "Unable to add merge result for '%s'"
+msgstr "Konnte Ergebnis der Zusammenführung von '%s' nicht hinzufügen."
+
+#: builtin/checkout.c:236 builtin/checkout.c:239 builtin/checkout.c:242
+#: builtin/checkout.c:245
+#, c-format
+msgid "'%s' cannot be used with updating paths"
+msgstr "'%s' kann nicht mit Pfaden benutzt werden"
+
+#: builtin/checkout.c:248 builtin/checkout.c:251
+#, c-format
+msgid "'%s' cannot be used with %s"
+msgstr "'%s' kann nicht mit '%s' benutzt werden"
+
+#: builtin/checkout.c:254
+#, c-format
+msgid "Cannot update paths and switch to branch '%s' at the same time."
+msgstr "Kann nicht gleichzeitig Pfade aktualisieren und zu Zweig '%s' wechseln"
+
+#: builtin/checkout.c:265 builtin/checkout.c:426
+msgid "corrupt index file"
+msgstr "beschädigte Bereitstellungsdatei"
+
+#: builtin/checkout.c:295 builtin/checkout.c:302
+#, c-format
+msgid "path '%s' is unmerged"
+msgstr "Pfad '%s' ist nicht zusammengeführt."
+
+#: builtin/checkout.c:448
+msgid "you need to resolve your current index first"
+msgstr "Du musst zuerst deine aktuelle Bereitstellung auflösen."
+
+#: builtin/checkout.c:569
 #, c-format
 msgid "Can not do reflog for '%s'\n"
 msgstr "Konnte \"reflog\" für '%s' nicht durchführen\n"
 
-#: builtin/checkout.c:566
+#: builtin/checkout.c:602
 msgid "HEAD is now at"
 msgstr "Zweigspitze (HEAD) ist jetzt bei"
 
-#: builtin/checkout.c:573
+#: builtin/checkout.c:609
 #, c-format
 msgid "Reset branch '%s'\n"
 msgstr "Setze Zweig '%s' zurück\n"
 
-#: builtin/checkout.c:576
+#: builtin/checkout.c:612
 #, c-format
 msgid "Already on '%s'\n"
 msgstr "Bereits auf '%s'\n"
 
-#: builtin/checkout.c:580
+#: builtin/checkout.c:616
 #, c-format
 msgid "Switched to and reset branch '%s'\n"
 msgstr "Gewechselt zu zurückgesetztem Zweig '%s'\n"
 
-#: builtin/checkout.c:582
+#: builtin/checkout.c:618 builtin/checkout.c:955
 #, c-format
 msgid "Switched to a new branch '%s'\n"
 msgstr "Gewechselt zu einem neuen Zweig '%s'\n"
 
-#: builtin/checkout.c:584
+#: builtin/checkout.c:620
 #, c-format
 msgid "Switched to branch '%s'\n"
 msgstr "Gewechselt zu Zweig '%s'\n"
 
-#: builtin/checkout.c:640
+#: builtin/checkout.c:676
 #, c-format
 msgid " ... and %d more.\n"
 msgstr " ... und %d weitere.\n"
 
 #. The singular version
-#: builtin/checkout.c:646
+#: builtin/checkout.c:682
 #, c-format
 msgid ""
 "Warning: you are leaving %d commit behind, not connected to\n"
@@ -2241,7 +2808,7 @@ msgstr[1] ""
 "\n"
 "%s\n"
 
-#: builtin/checkout.c:664
+#: builtin/checkout.c:700
 #, c-format
 msgid ""
 "If you want to keep them by creating a new branch, this may be a good time\n"
@@ -2256,92 +2823,151 @@ msgstr ""
 " git branch neuer_zweig_name %s\n"
 "\n"
 
-#: builtin/checkout.c:694
+#: builtin/checkout.c:730
 msgid "internal error in revision walk"
 msgstr "interner Fehler im Revisionsgang"
 
-#: builtin/checkout.c:698
+#: builtin/checkout.c:734
 msgid "Previous HEAD position was"
 msgstr "Vorherige Position der Zweigspitze (HEAD) war"
 
-#: builtin/checkout.c:724 builtin/checkout.c:919
+#: builtin/checkout.c:761 builtin/checkout.c:950
 msgid "You are on a branch yet to be born"
 msgstr "du bist auf einem Zweig, der noch geboren wird"
 
 #. case (1)
-#: builtin/checkout.c:855
+#: builtin/checkout.c:886
 #, c-format
 msgid "invalid reference: %s"
 msgstr "Ungültige Referenz: %s"
 
 #. case (1): want a tree
-#: builtin/checkout.c:894
+#: builtin/checkout.c:925
 #, c-format
 msgid "reference is not a tree: %s"
 msgstr "Referenz ist kein Baum: %s"
 
-#: builtin/checkout.c:976
-msgid "-B cannot be used with -b"
-msgstr "-B kann nicht mit -b benutzt werden"
+#: builtin/checkout.c:964
+msgid "paths cannot be used with switching branches"
+msgstr "Pfade können nicht mit dem Wechseln von Zweigen benutzt werden"
 
-#: builtin/checkout.c:985
-msgid "--patch is incompatible with all other options"
-msgstr "--patch ist inkompatibel mit allen anderen Optionen"
+#: builtin/checkout.c:967 builtin/checkout.c:971
+#, c-format
+msgid "'%s' cannot be used with switching branches"
+msgstr "'%s' kann nicht mit dem Wechseln von Zweigen benutzt werden"
 
-#: builtin/checkout.c:988
-msgid "--detach cannot be used with -b/-B/--orphan"
-msgstr "--detach kann nicht mit -b/-B/--orphan benutzt werden"
+#: builtin/checkout.c:975 builtin/checkout.c:978 builtin/checkout.c:983
+#: builtin/checkout.c:986
+#, c-format
+msgid "'%s' cannot be used with '%s'"
+msgstr "'%s' kann nicht mit '%s' benutzt werden"
 
-#: builtin/checkout.c:990
-msgid "--detach cannot be used with -t"
-msgstr "--detach kann nicht mit -t benutzt werden"
+#: builtin/checkout.c:991
+#, c-format
+msgid "Cannot switch branch to a non-commit '%s'"
+msgstr "Kann Zweig nicht zu Nicht-Version '%s' wechseln"
 
-#: builtin/checkout.c:996
-msgid "--track needs a branch name"
-msgstr "--track benötigt einen Zweignamen"
+#: builtin/checkout.c:1012 builtin/gc.c:177
+msgid "suppress progress reporting"
+msgstr "unterdrückt Fortschrittsanzeige"
 
-#: builtin/checkout.c:1003
-msgid "Missing branch name; try -b"
-msgstr "Vermisse Zweignamen; versuche -b"
+#: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89
+#: builtin/remote.c:169 builtin/remote.c:171
+msgid "branch"
+msgstr "Zweig"
+
+#: builtin/checkout.c:1014
+msgid "create and checkout a new branch"
+msgstr "erzeugt und checkt einen neuen Zweig aus"
+
+#: builtin/checkout.c:1016
+msgid "create/reset and checkout a branch"
+msgstr "erzeugt/setzt neu und checkt einen Zweig aus"
+
+#: builtin/checkout.c:1017
+msgid "create reflog for new branch"
+msgstr "erzeugt Referenzprotokoll für den neuen Zweig"
 
-#: builtin/checkout.c:1009
-msgid "--orphan and -b|-B are mutually exclusive"
-msgstr "--orphan und -b|-B sind gegenseitig exklusiv"
+#: builtin/checkout.c:1018
+msgid "detach the HEAD at named commit"
+msgstr "setzt die Zweigspitze (HEAD) zu benannter Version"
 
-#: builtin/checkout.c:1011
-msgid "--orphan cannot be used with -t"
-msgstr "--orphan kann nicht mit -t benutzt werden"
+#: builtin/checkout.c:1019
+msgid "set upstream info for new branch"
+msgstr "setzt Informationen zum externen Übernahmezweig für den neuen Zweig"
 
 #: builtin/checkout.c:1021
-msgid "git checkout: -f and -m are incompatible"
-msgstr "git checkout: -f und -m sind inkompatibel"
+msgid "new branch"
+msgstr "neuer Zweig"
+
+#: builtin/checkout.c:1021
+msgid "new unparented branch"
+msgstr "neuer Zweig ohne Elternversion"
+
+#: builtin/checkout.c:1022
+msgid "checkout our version for unmerged files"
+msgstr "checkt unsere Variante für nicht zusammengeführte Dateien aus"
 
-#: builtin/checkout.c:1055
+#: builtin/checkout.c:1024
+msgid "checkout their version for unmerged files"
+msgstr "checkt ihre Variante für nicht zusammengeführte Dateien aus"
+
+#: builtin/checkout.c:1026
+msgid "force checkout (throw away local modifications)"
+msgstr "erzwingt Auschecken (verwirft lokale Änderungen)"
+
+#: builtin/checkout.c:1027
+msgid "perform a 3-way merge with the new branch"
+msgstr "führt eine 3-Wege-Zusammenführung mit dem neuen Zweig aus"
+
+#: builtin/checkout.c:1028 builtin/merge.c:215
+msgid "update ignored files (default)"
+msgstr "aktualisiert ignorierte Dateien (Standard)"
+
+#: builtin/checkout.c:1029 builtin/log.c:1116 parse-options.h:241
+msgid "style"
+msgstr "Stil"
+
+#: builtin/checkout.c:1030
+msgid "conflict style (merge or diff3)"
+msgstr "Konfliktstil (merge oder diff3)"
+
+#: builtin/checkout.c:1033
+msgid "second guess 'git checkout no-such-branch'"
+msgstr "second guess 'git checkout no-such-branch'"
+
+#: builtin/checkout.c:1057
+msgid "-b, -B and --orphan are mutually exclusive"
+msgstr "-b, -B und --orphan schliessen sich gegenseitig aus"
+
+#: builtin/checkout.c:1074
+msgid "--track needs a branch name"
+msgstr "--track benötigt einen Zweignamen"
+
+#: builtin/checkout.c:1081
+msgid "Missing branch name; try -b"
+msgstr "Vermisse Zweignamen; versuche -b"
+
+#: builtin/checkout.c:1116
 msgid "invalid path specification"
 msgstr "ungültige Pfadspezifikation"
 
-#: builtin/checkout.c:1063
+#: builtin/checkout.c:1123
 #, c-format
 msgid ""
-"git checkout: updating paths is incompatible with switching branches.\n"
+"Cannot update paths and switch to branch '%s' at the same time.\n"
 "Did you intend to checkout '%s' which can not be resolved as commit?"
 msgstr ""
-"git checkout: Die Aktualisierung von Pfaden ist inkompatibel mit dem Wechsel "
-"von Zweigen.\n"
+"Kann nicht gleichzeitig Pfade aktualisieren und zu Zweig '%s' wechseln.\n"
 "Hast du beabsichtigt '%s' auszuchecken, welcher nicht als Version aufgelöst "
 "werden kann?"
 
-#: builtin/checkout.c:1065
-msgid "git checkout: updating paths is incompatible with switching branches."
-msgstr ""
-"git checkout: Die Aktualisierung von Pfaden ist inkompatibel mit dem Wechsel "
-"von Zweigen."
-
-#: builtin/checkout.c:1070
-msgid "git checkout: --detach does not take a path argument"
-msgstr "git checkout: --detach nimmt kein Pfad-Argument"
+#: builtin/checkout.c:1128
+#, 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:1073
+#: builtin/checkout.c:1132
 msgid ""
 "git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
 "checking out of the index."
@@ -2349,13 +2975,38 @@ msgstr ""
 "git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n"
 "du aus der Bereitstellung auscheckst."
 
-#: builtin/checkout.c:1092
-msgid "Cannot switch branch to a non-commit."
-msgstr "Kann Zweig nur zu einer Version wechseln."
+#: builtin/clean.c:19
+msgid "git clean [-d] [-f] [-n] [-q] [-e ] [-x | -X] [--] ..."
+msgstr "git clean [-d] [-f] [-n] [-q] [-e ] [-x | -X] [--] ..."
+
+#: builtin/clean.c:51
+msgid "do not print names of files removed"
+msgstr "gibt keine Namen von gelöschten Dateien aus"
+
+#: builtin/clean.c:53
+msgid "force"
+msgstr "erzwingt Aktion"
+
+#: builtin/clean.c:55
+msgid "remove whole directories"
+msgstr "löscht ganze Verzeichnisse"
+
+#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:717
+#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182
+msgid "pattern"
+msgstr "Muster"
+
+#: builtin/clean.c:57
+msgid "add  to ignore rules"
+msgstr "fügt  zu den Regeln für ignorierte Pfade hinzu"
+
+#: builtin/clean.c:58
+msgid "remove ignored files, too"
+msgstr "löscht auch ignorierte Dateien"
 
-#: builtin/checkout.c:1095
-msgid "--ours/--theirs is incompatible with switching branches."
-msgstr "--ours/--theirs ist inkompatibel mit den Wechseln von Zweigen."
+#: builtin/clean.c:60
+msgid "remove only ignored files"
+msgstr "löscht nur ignorierte Dateien"
 
 #: builtin/clean.c:78
 msgid "-x and -X cannot be used together"
@@ -2379,28 +3030,122 @@ msgstr ""
 #: builtin/clean.c:155 builtin/clean.c:176
 #, c-format
 msgid "Would remove %s\n"
-msgstr "Würde %s entfernen\n"
+msgstr "Würde %s löschen\n"
 
 #: builtin/clean.c:159 builtin/clean.c:179
 #, c-format
 msgid "Removing %s\n"
-msgstr "Entferne %s\n"
+msgstr "Lösche %s\n"
 
 #: builtin/clean.c:162 builtin/clean.c:182
 #, c-format
 msgid "failed to remove %s"
-msgstr "Fehler beim Entfernen von %s"
+msgstr "Fehler beim Löschen von %s"
 
 #: builtin/clean.c:166
 #, c-format
 msgid "Would not remove %s\n"
-msgstr "Würde nicht entfernen %s\n"
+msgstr "Würde '%s' nicht löschen\n"
 
 #: builtin/clean.c:168
 #, c-format
 msgid "Not removing %s\n"
 msgstr "Entferne nicht %s\n"
 
+#: builtin/clone.c:36
+msgid "git clone [options] [--]  []"
+msgstr "git clone [Optionen] [--]  []"
+
+#: builtin/clone.c:64 builtin/fetch.c:82 builtin/merge.c:212
+#: builtin/push.c:399
+msgid "force progress reporting"
+msgstr "erzwingt Fortschrittsanzeige"
+
+#: builtin/clone.c:66
+msgid "don't create a checkout"
+msgstr "kein Auschecken"
+
+#: builtin/clone.c:67 builtin/clone.c:69 builtin/init-db.c:488
+msgid "create a bare repository"
+msgstr "erstellt ein bloßes Projektarchiv"
+
+#: builtin/clone.c:72
+msgid "create a mirror repository (implies bare)"
+msgstr "erstellt ein Spiegelarchiv (impliziert bloßes Projektarchiv)"
+
+#: builtin/clone.c:74
+msgid "to clone from a local repository"
+msgstr "um von einem lokalen Projektarchiv zu klonen"
+
+#: builtin/clone.c:76
+msgid "don't use local hardlinks, always copy"
+msgstr "benutzt lokal keine harten Links, immer Kopien"
+
+#: builtin/clone.c:78
+msgid "setup as shared repository"
+msgstr "Einrichtung als verteiltes Projektarchiv"
+
+#: builtin/clone.c:80 builtin/clone.c:82
+msgid "initialize submodules in the clone"
+msgstr "initialisiert Unterprojekte im Klon"
+
+#: builtin/clone.c:83 builtin/init-db.c:485
+msgid "template-directory"
+msgstr "Vorlagenverzeichnis"
+
+#: builtin/clone.c:84 builtin/init-db.c:486
+msgid "directory from which templates will be used"
+msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden"
+
+#: builtin/clone.c:86
+msgid "reference repository"
+msgstr "referenziert Projektarchiv"
+
+#: builtin/clone.c:87 builtin/column.c:26 builtin/merge-file.c:44
+msgid "name"
+msgstr "Name"
+
+#: builtin/clone.c:88
+msgid "use  instead of 'origin' to track upstream"
+msgstr "benutzt  statt 'origin' für externes Projektarchiv"
+
+#: builtin/clone.c:90
+msgid "checkout  instead of the remote's HEAD"
+msgstr ""
+"checkt  aus, anstatt Zweigspitze (HEAD) des externen Projektarchivs"
+
+#: builtin/clone.c:92
+msgid "path to git-upload-pack on the remote"
+msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite"
+
+#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:662
+msgid "depth"
+msgstr "Tiefe"
+
+#: builtin/clone.c:94
+msgid "create a shallow clone of that depth"
+msgstr "erstellt einen flachen Klon mit dieser Tiefe"
+
+#: builtin/clone.c:96
+msgid "clone only one branch, HEAD or --branch"
+msgstr "klont nur einen Zweig, Zweigspitze (HEAD) oder --branch"
+
+#: builtin/clone.c:97 builtin/init-db.c:494
+msgid "gitdir"
+msgstr ".git-Verzeichnis"
+
+#: builtin/clone.c:98 builtin/init-db.c:495
+msgid "separate git dir from working tree"
+msgstr "separiert Git-Verzeichnis vom Arbeitsbaum"
+
+#: builtin/clone.c:99
+msgid "key=value"
+msgstr "Schlüssel=Wert"
+
+#: builtin/clone.c:100
+msgid "set config inside the new repository"
+msgstr "setzt Konfiguration innerhalb des neuen Projektarchivs"
+
 #: builtin/clone.c:243
 #, c-format
 msgid "reference repository '%s' is not a local directory."
@@ -2452,77 +3197,113 @@ msgstr ""
 "Externe Zweigspitze (HEAD) bezieht sich auf eine nicht existierende Referenz "
 "und kann nicht ausgecheckt werden.\n"
 
-#: builtin/clone.c:642
+#: builtin/clone.c:690
 msgid "Too many arguments."
 msgstr "Zu viele Argumente."
 
-#: builtin/clone.c:646
+#: builtin/clone.c:694
 msgid "You must specify a repository to clone."
 msgstr "Du musst ein Projektarchiv zum Klonen angeben."
 
-#: builtin/clone.c:657
+#: builtin/clone.c:705
 #, c-format
 msgid "--bare and --origin %s options are incompatible."
 msgstr "--bare und --origin %s Optionen sind inkompatibel."
 
-#: builtin/clone.c:671
+#: builtin/clone.c:719
 #, c-format
 msgid "repository '%s' does not exist"
 msgstr "Projektarchiv '%s' existiert nicht."
 
-#: builtin/clone.c:676
+#: builtin/clone.c:724
 msgid "--depth is ignored in local clones; use file:// instead."
 msgstr "--depth wird in lokalen Klonen ignoriert; benutze stattdessen file://."
 
-#: builtin/clone.c:686
+#: builtin/clone.c:734
 #, 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:696
+#: builtin/clone.c:744
 #, c-format
 msgid "working tree '%s' already exists."
 msgstr "Arbeitsbaum '%s' existiert bereits."
 
-#: builtin/clone.c:709 builtin/clone.c:723
+#: builtin/clone.c:757 builtin/clone.c:771
 #, c-format
 msgid "could not create leading directories of '%s'"
 msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen."
 
-#: builtin/clone.c:712
+#: builtin/clone.c:760
 #, c-format
 msgid "could not create work tree dir '%s'."
 msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen."
 
-#: builtin/clone.c:731
+#: builtin/clone.c:779
 #, c-format
 msgid "Cloning into bare repository '%s'...\n"
 msgstr "Klone in bloßes Projektarchiv '%s'...\n"
 
-#: builtin/clone.c:733
+#: builtin/clone.c:781
 #, c-format
 msgid "Cloning into '%s'...\n"
 msgstr "Klone nach '%s'...\n"
 
-#: builtin/clone.c:789
+#: builtin/clone.c:823
 #, c-format
 msgid "Don't know how to clone %s"
 msgstr "Weiß nicht wie %s zu klonen ist."
 
-#: builtin/clone.c:838
+#: builtin/clone.c:872
 #, c-format
 msgid "Remote branch %s not found in upstream %s"
 msgstr "externer Zweig %s nicht im anderen Projektarchiv %s gefunden"
 
-#: builtin/clone.c:845
+#: builtin/clone.c:879
 msgid "You appear to have cloned an empty repository."
 msgstr "Du scheinst ein leeres Projektarchiv geklont zu haben."
 
+#: builtin/column.c:9
+msgid "git column [options]"
+msgstr "git column [Optionen]"
+
+#: builtin/column.c:26
+msgid "lookup config vars"
+msgstr "schlägt Konfigurationsvariablen nach"
+
+#: builtin/column.c:27 builtin/column.c:28
+msgid "layout to use"
+msgstr "zu verwendende Anordnung"
+
+#: builtin/column.c:29
+msgid "Maximum width"
+msgstr "maximale Breite"
+
+#: builtin/column.c:30
+msgid "Padding space on left border"
+msgstr "Abstand zum linken Rand"
+
+#: builtin/column.c:31
+msgid "Padding space on right border"
+msgstr "Abstand zur rechten Rand"
+
+#: builtin/column.c:32
+msgid "Padding space between columns"
+msgstr "Abstand zwischen Spalten"
+
 #: builtin/column.c:51
 msgid "--command must be the first argument"
 msgstr "Option --command muss zuerst angegeben werden"
 
-#: builtin/commit.c:43
+#: builtin/commit.c:34
+msgid "git commit [options] [--] ..."
+msgstr "git commit [Optionen] [--] ..."
+
+#: builtin/commit.c:39
+msgid "git status [options] [--] ..."
+msgstr "git status [Optionen] [--] ..."
+
+#: builtin/commit.c:44
 msgid ""
 "Your name and email address were configured automatically based\n"
 "on your username and hostname. Please check that they are accurate.\n"
@@ -2548,7 +3329,7 @@ msgstr ""
 "\n"
 "    git commit --amend --reset-author\n"
 
-#: builtin/commit.c:55
+#: builtin/commit.c:56
 msgid ""
 "You asked to amend the most recent commit, but doing so would make\n"
 "it empty. You can repeat your command with --allow-empty, or you can\n"
@@ -2558,7 +3339,7 @@ msgstr ""
 "machen. Du kannst Dein Kommando mit --allow-empty wiederholen, oder die\n"
 "Version mit \"git reset HEAD^\" vollständig entfernen.\n"
 
-#: builtin/commit.c:60
+#: builtin/commit.c:61
 msgid ""
 "The previous cherry-pick is now empty, possibly due to conflict resolution.\n"
 "If you wish to commit it anyway, use:\n"
@@ -2575,97 +3356,97 @@ msgstr ""
 "\n"
 "Andernfalls benutze bitte 'git reset'\n"
 
-#: builtin/commit.c:256
+#: builtin/commit.c:258
 msgid "failed to unpack HEAD tree object"
 msgstr "Fehler beim Entpacken des Baum-Objektes der Zweigspitze (HEAD)."
 
-#: builtin/commit.c:298
+#: builtin/commit.c:300
 msgid "unable to create temporary index"
 msgstr "Konnte temporäre Bereitstellung nicht erstellen."
 
-#: builtin/commit.c:304
+#: builtin/commit.c:306
 msgid "interactive add failed"
 msgstr "interaktives Hinzufügen fehlgeschlagen"
 
-#: builtin/commit.c:337 builtin/commit.c:358 builtin/commit.c:408
+#: builtin/commit.c:339 builtin/commit.c:360 builtin/commit.c:410
 msgid "unable to write new_index file"
 msgstr "Konnte new_index Datei nicht schreiben"
 
-#: builtin/commit.c:389
+#: builtin/commit.c:391
 msgid "cannot do a partial commit during a merge."
 msgstr ""
 "Kann keine partielle Eintragung durchführen, während eine Zusammenführung im "
 "Gange ist."
 
-#: builtin/commit.c:391
+#: builtin/commit.c:393
 msgid "cannot do a partial commit during a cherry-pick."
 msgstr ""
 "Kann keine partielle Eintragung durchführen, während \"cherry-pick\" im "
 "Gange ist."
 
-#: builtin/commit.c:401
+#: builtin/commit.c:403
 msgid "cannot read the index"
 msgstr "Kann Bereitstellung nicht lesen"
 
-#: builtin/commit.c:421
+#: builtin/commit.c:423
 msgid "unable to write temporary index file"
 msgstr "Konnte temporäre Bereitstellungsdatei nicht schreiben."
 
-#: builtin/commit.c:496 builtin/commit.c:502
+#: builtin/commit.c:511 builtin/commit.c:517
 #, c-format
 msgid "invalid commit: %s"
 msgstr "Ungültige Version: %s"
 
-#: builtin/commit.c:525
+#: builtin/commit.c:540
 msgid "malformed --author parameter"
 msgstr "Fehlerhafter --author Parameter"
 
-#: builtin/commit.c:585
+#: builtin/commit.c:560
 #, c-format
 msgid "Malformed ident string: '%s'"
 msgstr "Fehlerhafte Identifikations-String: '%s'"
 
-#: builtin/commit.c:623 builtin/commit.c:656 builtin/commit.c:970
+#: builtin/commit.c:598 builtin/commit.c:631 builtin/commit.c:954
 #, c-format
 msgid "could not lookup commit %s"
 msgstr "Konnte Version %s nicht nachschlagen"
 
-#: builtin/commit.c:635 builtin/shortlog.c:296
+#: builtin/commit.c:610 builtin/shortlog.c:296
 #, c-format
 msgid "(reading log message from standard input)\n"
 msgstr "(lese Log-Nachricht von Standard-Eingabe)\n"
 
-#: builtin/commit.c:637
+#: builtin/commit.c:612
 msgid "could not read log from standard input"
 msgstr "Konnte Log nicht von Standard-Eingabe lesen."
 
-#: builtin/commit.c:641
+#: builtin/commit.c:616
 #, c-format
 msgid "could not read log file '%s'"
 msgstr "Konnte Log-Datei '%s' nicht lesen"
 
-#: builtin/commit.c:647
+#: builtin/commit.c:622
 msgid "commit has empty message"
 msgstr "Version hat eine leere Beschreibung"
 
-#: builtin/commit.c:663
+#: builtin/commit.c:638
 msgid "could not read MERGE_MSG"
 msgstr "Konnte MERGE_MSG nicht lesen"
 
-#: builtin/commit.c:667
+#: builtin/commit.c:642
 msgid "could not read SQUASH_MSG"
 msgstr "Konnte SQUASH_MSG nicht lesen"
 
-#: builtin/commit.c:671
+#: builtin/commit.c:646
 #, c-format
 msgid "could not read '%s'"
 msgstr "Konnte '%s' nicht lesen"
 
-#: builtin/commit.c:723
+#: builtin/commit.c:707
 msgid "could not write commit template"
 msgstr "Konnte Versionsvorlage nicht schreiben"
 
-#: builtin/commit.c:734
+#: builtin/commit.c:718
 #, c-format
 msgid ""
 "\n"
@@ -2676,11 +3457,11 @@ msgid ""
 msgstr ""
 "\n"
 "Es sieht so aus, als trägst du eine Zusammenführung ein.\n"
-"Falls das nicht korrekt ist, entferne bitte die Datei\n"
+"Falls das nicht korrekt ist, lösche bitte die Datei\n"
 "\t%s\n"
 "und versuche es erneut.\n"
 
-#: builtin/commit.c:739
+#: builtin/commit.c:723
 #, c-format
 msgid ""
 "\n"
@@ -2691,11 +3472,11 @@ msgid ""
 msgstr ""
 "\n"
 "Es sieht so aus, als trägst du ein \"cherry-pick\" ein.\n"
-"Falls das nicht korrekt ist, entferne bitte die Datei\n"
+"Falls das nicht korrekt ist, lösche bitte die Datei\n"
 "\t%s\n"
 "und versuche es erneut.\n"
 
-#: builtin/commit.c:751
+#: builtin/commit.c:735
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
 "with '#' will be ignored, and an empty message aborts the commit.\n"
@@ -2704,7 +3485,7 @@ msgstr ""
 "die mit '#' beginnen, werden ignoriert, und eine leere Versionsbeschreibung\n"
 "bricht die Eintragung ab.\n"
 
-#: builtin/commit.c:756
+#: builtin/commit.c:740
 msgid ""
 "Please enter the commit message for your changes. Lines starting\n"
 "with '#' will be kept; you may remove them yourself if you want to.\n"
@@ -2715,118 +3496,320 @@ msgstr ""
 "entfernen.\n"
 "Eine leere Versionsbeschreibung bricht die Eintragung ab.\n"
 
-#: builtin/commit.c:769
+#: builtin/commit.c:753
 #, c-format
 msgid "%sAuthor:    %s"
 msgstr "%sAutor:    %s"
 
-#: builtin/commit.c:776
+#: builtin/commit.c:760
 #, c-format
 msgid "%sCommitter: %s"
 msgstr "%sEintragender: %s"
 
-#: builtin/commit.c:796
+#: builtin/commit.c:780
 msgid "Cannot read index"
 msgstr "Kann Bereitstellung nicht lesen"
 
-#: builtin/commit.c:833
+#: builtin/commit.c:817
 msgid "Error building trees"
 msgstr "Fehler beim Erzeugen der Zweige"
 
-#: builtin/commit.c:848 builtin/tag.c:361
+#: builtin/commit.c:832 builtin/tag.c:361
 #, c-format
 msgid "Please supply the message using either -m or -F option.\n"
 msgstr "Bitte liefere eine Beschreibung entweder mit der Option -m oder -F.\n"
 
-#: builtin/commit.c:945
+#: builtin/commit.c:929
 #, c-format
 msgid "No existing author found with '%s'"
 msgstr "Kein existierender Autor mit '%s' gefunden."
 
-#: builtin/commit.c:960 builtin/commit.c:1160
+#: builtin/commit.c:944 builtin/commit.c:1148
 #, c-format
 msgid "Invalid untracked files mode '%s'"
 msgstr "Ungültiger Modus '%s' für unbeobachtete Dateien"
 
-#: builtin/commit.c:1000
+#: builtin/commit.c:984
 msgid "Using both --reset-author and --author does not make sense"
 msgstr "Verwendung von --reset-author und --author macht keinen Sinn."
 
-#: builtin/commit.c:1011
+#: builtin/commit.c:995
 msgid "You have nothing to amend."
 msgstr "Du hast nichts zum nachbessern."
 
-#: builtin/commit.c:1014
+#: builtin/commit.c:998
 msgid "You are in the middle of a merge -- cannot amend."
 msgstr "Eine Zusammenführung ist im Gange -- kann nicht nachbessern."
 
-#: builtin/commit.c:1016
+#: builtin/commit.c:1000
 msgid "You are in the middle of a cherry-pick -- cannot amend."
 msgstr "\"cherry-pick\" ist im Gange -- kann nicht nachbessern."
 
-#: builtin/commit.c:1019
+#: builtin/commit.c:1003
 msgid "Options --squash and --fixup cannot be used together"
 msgstr ""
 "Die Optionen --squash und --fixup können nicht gemeinsam benutzt werden."
 
-#: builtin/commit.c:1029
+#: builtin/commit.c:1013
 msgid "Only one of -c/-C/-F/--fixup can be used."
 msgstr "Nur eines von -c/-C/-F/--fixup kann benutzt werden."
 
-#: builtin/commit.c:1031
+#: builtin/commit.c:1015
 msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
 msgstr "Option -m kann nicht mit -c/-C/-F/--fixup kombiniert werden"
 
-#: builtin/commit.c:1039
+#: builtin/commit.c:1023
 msgid "--reset-author can be used only with -C, -c or --amend."
 msgstr "--reset--author kann nur mit -C, -c oder --amend benutzt werden"
 
-#: builtin/commit.c:1056
+#: builtin/commit.c:1040
 msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
 msgstr ""
 "Nur eines von --include/--only/--all/--interactive/--patch kann benutzt "
 "werden."
 
-#: builtin/commit.c:1058
+#: builtin/commit.c:1042
 msgid "No paths with --include/--only does not make sense."
 msgstr "--include/--only machen ohne Pfade keinen Sinn."
 
-#: builtin/commit.c:1060
+#: builtin/commit.c:1044
 msgid "Clever... amending the last one with dirty index."
 msgstr ""
 "Klug... die letzte Version mit einer unsauberen Bereitstellung nachbessern."
 
-#: builtin/commit.c:1062
+#: builtin/commit.c:1046
 msgid "Explicit paths specified without -i nor -o; assuming --only paths..."
 msgstr ""
 "Explizite Pfade ohne -i oder -o angegeben; unter der Annahme von --only "
 "Pfaden..."
 
-#: builtin/commit.c:1072 builtin/tag.c:577
+#: builtin/commit.c:1056 builtin/tag.c:577
 #, c-format
 msgid "Invalid cleanup mode %s"
 msgstr "Ungültiger \"cleanup\" Modus %s"
 
-#: builtin/commit.c:1077
+#: builtin/commit.c:1061
 msgid "Paths with -a does not make sense."
 msgstr "Pfade mit -a machen keinen Sinn."
 
-#: builtin/commit.c:1260
+#: builtin/commit.c:1067 builtin/commit.c:1202
+msgid "--long and -z are incompatible"
+msgstr "--long und -z sind inkompatibel"
+
+#: builtin/commit.c:1162 builtin/commit.c:1398
+msgid "show status concisely"
+msgstr "zeigt Status im Kurzformat"
+
+#: builtin/commit.c:1164 builtin/commit.c:1400
+msgid "show branch information"
+msgstr "zeigt Zweiginformationen"
+
+#: builtin/commit.c:1166 builtin/commit.c:1402 builtin/push.c:389
+msgid "machine-readable output"
+msgstr "maschinenlesbare Ausgabe"
+
+#: builtin/commit.c:1169 builtin/commit.c:1404
+msgid "show status in long format (default)"
+msgstr "zeigt Status im Langformat (Standard)"
+
+#: builtin/commit.c:1172 builtin/commit.c:1407
+msgid "terminate entries with NUL"
+msgstr "schließt Einträge mit NUL-Zeichen ab"
+
+#: builtin/commit.c:1174 builtin/commit.c:1410 builtin/fast-export.c:636
+#: builtin/fast-export.c:639 builtin/tag.c:461
+msgid "mode"
+msgstr "Modus"
+
+#: builtin/commit.c:1175 builtin/commit.c:1410
+msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
+msgstr ""
+"zeigt nicht beobachtete Dateien, optionale Modi: all, normal, no. (Standard: "
+"all)"
+
+#: builtin/commit.c:1178
+msgid "show ignored files"
+msgstr "zeigt ignorierte Dateien"
+
+#: builtin/commit.c:1179 parse-options.h:151
+msgid "when"
+msgstr "wann"
+
+#: builtin/commit.c:1180
+msgid ""
+"ignore changes to submodules, optional when: all, dirty, untracked. "
+"(Default: all)"
+msgstr ""
+"ignoriert Änderungen in Unterprojekten, optional wenn: all, dirty, "
+"untracked. (Standard: all)"
+
+#: builtin/commit.c:1182
+msgid "list untracked files in columns"
+msgstr "listet unbeobachtete Dateien in Spalten auf"
+
+#: builtin/commit.c:1256
 msgid "couldn't look up newly created commit"
 msgstr "Konnte neu erstellte Version nicht nachschlagen."
 
-#: builtin/commit.c:1262
+#: builtin/commit.c:1258
 msgid "could not parse newly created commit"
 msgstr "Konnte neulich erstellte Version nicht analysieren."
 
-#: builtin/commit.c:1303
+#: builtin/commit.c:1299
 msgid "detached HEAD"
 msgstr "losgelöste Zweigspitze (HEAD)"
 
-#: builtin/commit.c:1305
+#: builtin/commit.c:1301
 msgid " (root-commit)"
 msgstr " (Basis-Version)"
 
+#: builtin/commit.c:1368
+msgid "suppress summary after successful commit"
+msgstr "unterdrückt Zusammenfassung nach erfolgreicher Eintragung"
+
+#: builtin/commit.c:1369
+msgid "show diff in commit message template"
+msgstr "zeigt Unterschiede in Versionsbeschreibungsvorlage an"
+
+#: builtin/commit.c:1371
+msgid "Commit message options"
+msgstr "Optionen für Versionsbeschreibung"
+
+#: builtin/commit.c:1372 builtin/tag.c:459
+msgid "read message from file"
+msgstr "liest Beschreibung von Datei"
+
+#: builtin/commit.c:1373
+msgid "author"
+msgstr "Autor"
+
+#: builtin/commit.c:1373
+msgid "override author for commit"
+msgstr "überschreibt Autor von Version"
+
+#: builtin/commit.c:1374 builtin/gc.c:178
+msgid "date"
+msgstr "Datum"
+
+#: builtin/commit.c:1374
+msgid "override date for commit"
+msgstr "überschreibt Datum von Version"
+
+#: builtin/commit.c:1375 builtin/merge.c:206 builtin/notes.c:537
+#: builtin/notes.c:694 builtin/tag.c:457
+msgid "message"
+msgstr "Beschreibung"
+
+#: builtin/commit.c:1375
+msgid "commit message"
+msgstr "Versionsbeschreibung"
+
+#: builtin/commit.c:1376
+msgid "reuse and edit message from specified commit"
+msgstr "verwendet wieder und editiert Beschreibung von der angegebenen Version"
+
+#: builtin/commit.c:1377
+msgid "reuse message from specified commit"
+msgstr "verwendet Beschreibung der angegebenen Version wieder"
+
+#: builtin/commit.c:1378
+msgid "use autosquash formatted message to fixup specified commit"
+msgstr ""
+"benutzt eine automatisch zusammengesetzte Beschreibung zum Nachbessern der "
+"angegebenen Version"
+
+#: builtin/commit.c:1379
+msgid "use autosquash formatted message to squash specified commit"
+msgstr ""
+"benutzt eine automatisch zusammengesetzte Beschreibung zum Zusammenführen "
+"der angegebenen Version"
+
+#: builtin/commit.c:1380
+msgid "the commit is authored by me now (used with -C/-c/--amend)"
+msgstr "Setze mich als Autor der Version (benutzt mit -C/-c/--amend)"
+
+#: builtin/commit.c:1381 builtin/log.c:1073 builtin/revert.c:109
+msgid "add Signed-off-by:"
+msgstr "fügt 'Signed-off-by:'-Zeile hinzu"
+
+#: builtin/commit.c:1382
+msgid "use specified template file"
+msgstr "benutzt angegebene Vorlagendatei"
+
+#: builtin/commit.c:1383
+msgid "force edit of commit"
+msgstr "erzwingt Bearbeitung der Version"
+
+#: builtin/commit.c:1384
+msgid "default"
+msgstr "Standard"
+
+#: builtin/commit.c:1384 builtin/tag.c:462
+msgid "how to strip spaces and #comments from message"
+msgstr ""
+"wie Leerzeichen und #Kommentare von der Beschreibung getrennt werden sollen"
+
+#: builtin/commit.c:1385
+msgid "include status in commit message template"
+msgstr "fügt Status in die Versionsbeschreibungsvorlage ein"
+
+#: builtin/commit.c:1386 builtin/merge.c:213 builtin/tag.c:463
+msgid "key id"
+msgstr "Schlüssel-ID"
+
+#: builtin/commit.c:1387 builtin/merge.c:214
+msgid "GPG sign commit"
+msgstr "signiert Version mit GPG"
+
+#. end commit message options
+#: builtin/commit.c:1390
+msgid "Commit contents options"
+msgstr "Optionen für Versionsinhalt"
+
+#: builtin/commit.c:1391
+msgid "commit all changed files"
+msgstr "trägt alle geänderten Dateien ein"
+
+#: builtin/commit.c:1392
+msgid "add specified files to index for commit"
+msgstr "trägt die angegebenen Dateien zusätzlich zur Bereitstellung ein"
+
+#: builtin/commit.c:1393
+msgid "interactively add files"
+msgstr "interaktives Hinzufügen von Dateien"
+
+#: builtin/commit.c:1394
+msgid "interactively add changes"
+msgstr "interaktives Hinzufügen von Änderungen"
+
+#: builtin/commit.c:1395
+msgid "commit only specified files"
+msgstr "trägt nur die angegebenen Dateien ein"
+
+#: builtin/commit.c:1396
+msgid "bypass pre-commit hook"
+msgstr "umgeht \"pre-commit hook\""
+
+#: builtin/commit.c:1397
+msgid "show what would be committed"
+msgstr "zeigt an, was eingetragen werden würde"
+
+#: builtin/commit.c:1408
+msgid "amend previous commit"
+msgstr "ändert vorherige Version"
+
+#: builtin/commit.c:1409
+msgid "bypass post-rewrite hook"
+msgstr "umgeht \"post-rewrite hook\""
+
+#: builtin/commit.c:1414
+msgid "ok to record an empty change"
+msgstr "erlaubt Aufzeichnung einer leeren Änderung"
+
+#: builtin/commit.c:1417
+msgid "ok to record a change with an empty message"
+msgstr "erlaubt Aufzeichnung einer Änderung mit einer leeren Beschreibung"
+
 #: builtin/commit.c:1449
 msgid "could not parse HEAD commit"
 msgstr "Konnte Version der Zweigspitze (HEAD) nicht analysieren."
@@ -2860,7 +3843,7 @@ msgstr "Eintragung abgebrochen; du hast die Beschreibung nicht editiert.\n"
 msgid "Aborting commit due to empty commit message.\n"
 msgstr "Eintragung aufgrund leerer Versionsbeschreibung abgebrochen.\n"
 
-#: builtin/commit.c:1554 builtin/merge.c:935 builtin/merge.c:960
+#: builtin/commit.c:1554 builtin/merge.c:832 builtin/merge.c:857
 msgid "failed to write commit object"
 msgstr "Fehler beim Schreiben des Versionsobjektes."
 
@@ -2883,6 +3866,134 @@ msgstr ""
 "voll und Dein Kontingent nicht aufgebraucht ist und führe\n"
 "anschließend \"git reset HEAD\" zu Wiederherstellung aus."
 
+#: builtin/config.c:7
+msgid "git config [options]"
+msgstr "git config [Optionen]"
+
+#: builtin/config.c:51
+msgid "Config file location"
+msgstr "Ort der Konfigurationsdatei"
+
+#: builtin/config.c:52
+msgid "use global config file"
+msgstr "benutzt globale Konfigurationsdatei"
+
+#: builtin/config.c:53
+msgid "use system config file"
+msgstr "benutzt systemweite Konfigurationsdatei"
+
+#: builtin/config.c:54
+msgid "use repository config file"
+msgstr "benutzt Konfigurationsdatei des Projektarchivs"
+
+#: builtin/config.c:55
+msgid "use given config file"
+msgstr "benutzt die angegebene Konfigurationsdatei"
+
+#: builtin/config.c:56
+msgid "Action"
+msgstr "Aktion"
+
+#: builtin/config.c:57
+msgid "get value: name [value-regex]"
+msgstr "gibt Wert zurück: Name [Wert-regex]"
+
+#: builtin/config.c:58
+msgid "get all values: key [value-regex]"
+msgstr "gibt alle Werte zurück: Schlüssel [Wert-regex]"
+
+#: builtin/config.c:59
+msgid "get values for regexp: name-regex [value-regex]"
+msgstr "gibt Werte für den regulären Ausdruck zurück: Name-regex [Wert-regex]"
+
+#: builtin/config.c:60
+msgid "replace all matching variables: name value [value_regex]"
+msgstr "ersetzt alle passenden Variablen: Name Wert [Wert-regex] "
+
+#: builtin/config.c:61
+msgid "add a new variable: name value"
+msgstr "fügt neue Variable hinzu: Name Wert"
+
+#: builtin/config.c:62
+msgid "remove a variable: name [value-regex]"
+msgstr "entfernt eine Variable: Name [Wert-regex]"
+
+#: builtin/config.c:63
+msgid "remove all matches: name [value-regex]"
+msgstr "entfernt alle Übereinstimmungen: Name [Wert-regex]"
+
+#: builtin/config.c:64
+msgid "rename section: old-name new-name"
+msgstr "benennt eine Sektion um: alter-Name neuer-Name"
+
+#: builtin/config.c:65
+msgid "remove a section: name"
+msgstr "entfernt eine Sektion: Name"
+
+#: builtin/config.c:66
+msgid "list all"
+msgstr "listet alles auf"
+
+#: builtin/config.c:67
+msgid "open an editor"
+msgstr "öffnet einen Editor"
+
+#: builtin/config.c:68 builtin/config.c:69
+msgid "slot"
+msgstr "Slot"
+
+#: builtin/config.c:68
+msgid "find the color configured: [default]"
+msgstr "findet die konfigurierte Farbe: [Standard]"
+
+#: builtin/config.c:69
+msgid "find the color setting: [stdout-is-tty]"
+msgstr "findet die Farbeinstellung: [Standard-Ausgabe-ist-Terminal]"
+
+#: builtin/config.c:70
+msgid "Type"
+msgstr "Typ"
+
+#: builtin/config.c:71
+msgid "value is \"true\" or \"false\""
+msgstr "Wert ist \"true\" oder \"false\""
+
+#: builtin/config.c:72
+msgid "value is decimal number"
+msgstr "Wert ist eine Dezimalzahl"
+
+#: builtin/config.c:73
+msgid "value is --bool or --int"
+msgstr "Wert ist --bool oder --int"
+
+#: builtin/config.c:74
+msgid "value is a path (file or directory name)"
+msgstr "Wert ist ein Pfad (Datei oder Verzeichnisname)"
+
+#: builtin/config.c:75
+msgid "Other"
+msgstr "Sonstiges"
+
+#: builtin/config.c:76
+msgid "terminate values with NUL byte"
+msgstr "schließt Werte mit NUL-Byte ab"
+
+#: builtin/config.c:77
+msgid "respect include directives on lookup"
+msgstr "beachtet \"include\"-Direktiven beim Nachschlagen"
+
+#: builtin/count-objects.c:69
+msgid "git count-objects [-v]"
+msgstr "git count-objects [-v]"
+
+#: builtin/describe.c:15
+msgid "git describe [options] *"
+msgstr "git describe [Optionen] *"
+
+#: builtin/describe.c:16
+msgid "git describe [options] --dirty"
+msgstr "git describe [Optionen] --dirty"
+
 #: builtin/describe.c:234
 #, c-format
 msgid "annotated tag %s not available"
@@ -2955,6 +4066,51 @@ msgstr ""
 "mehr als %i Markierungen gefunden; Führe die ersten %i auf\n"
 "Suche bei %s aufgegeben\n"
 
+#: builtin/describe.c:403
+msgid "find the tag that comes after the commit"
+msgstr "findet die Markierung, die nach der Version kommt"
+
+#: builtin/describe.c:404
+msgid "debug search strategy on stderr"
+msgstr "protokolliert die Suchstrategie in der Standard-Fehlerausgabe"
+
+#: builtin/describe.c:405
+msgid "use any ref in .git/refs"
+msgstr "benutzt jede Referenz in .git/refs"
+
+#: builtin/describe.c:406
+msgid "use any tag in .git/refs/tags"
+msgstr "benutzt alle Markierungen in .git/refs/tags"
+
+#: builtin/describe.c:407
+msgid "always use long format"
+msgstr "benutzt immer langes Format"
+
+#: builtin/describe.c:410
+msgid "only output exact matches"
+msgstr "gibt nur exakte Übereinstimmungen aus"
+
+#: builtin/describe.c:412
+msgid "consider  most recent tags (default: 10)"
+msgstr "betrachtet die jüngsten  Markierungen (Standard: 10)"
+
+#: builtin/describe.c:414
+msgid "only consider tags matching "
+msgstr "betrachtet nur Markierungen die  entsprechen"
+
+#: builtin/describe.c:416 builtin/name-rev.c:238
+msgid "show abbreviated commit object as fallback"
+msgstr "zeigt gekürztes Versionsobjekt, wenn sonst nichts zutrifft"
+
+#: builtin/describe.c:417
+msgid "mark"
+msgstr "Kennzeichen"
+
+#: builtin/describe.c:418
+msgid "append  on dirty working tree (default: \"-dirty\")"
+msgstr ""
+"fügt  bei geändertem Arbeitsbaum hinzu (Standard: \"-dirty\")"
+
 #: builtin/describe.c:436
 msgid "--long is incompatible with --abbrev=0"
 msgstr "--long ist inkompatibel mit --abbrev=0"
@@ -2972,40 +4128,162 @@ msgstr "--dirty ist inkompatibel mit Versionen"
 msgid "'%s': not a regular file or symlink"
 msgstr "'%s': keine reguläre Datei oder symbolischer Link"
 
-#: builtin/diff.c:224
+#: builtin/diff.c:228
 #, c-format
 msgid "invalid option: %s"
 msgstr "Ungültige Option: %s"
 
-#: builtin/diff.c:301
+#: builtin/diff.c:305
 msgid "Not a git repository"
 msgstr "Kein Git-Projektarchiv"
 
-#: builtin/diff.c:344
+#: builtin/diff.c:348
 #, c-format
 msgid "invalid object '%s' given."
 msgstr "Objekt '%s' ist ungültig."
 
-#: builtin/diff.c:349
+#: builtin/diff.c:353
 #, c-format
 msgid "more than %d trees given: '%s'"
 msgstr "Mehr als %d Zweige angegeben: '%s'"
 
-#: builtin/diff.c:359
+#: builtin/diff.c:363
 #, c-format
 msgid "more than two blobs given: '%s'"
 msgstr "Mehr als zwei Blobs angegeben: '%s'"
 
-#: builtin/diff.c:367
+#: builtin/diff.c:371
 #, c-format
 msgid "unhandled object '%s' given."
 msgstr "unbehandeltes Objekt '%s' angegeben"
 
-#: builtin/fetch.c:200
+#: builtin/fast-export.c:22
+msgid "git fast-export [rev-list-opts]"
+msgstr "git fast-export [rev-list-opts]"
+
+#: builtin/fast-export.c:635
+msgid "show progress after  objects"
+msgstr "zeigt Fortschritt nach  Objekten an"
+
+#: builtin/fast-export.c:637
+msgid "select handling of signed tags"
+msgstr "wählt Behandlung von signierten Markierungen"
+
+#: builtin/fast-export.c:640
+msgid "select handling of tags that tag filtered objects"
+msgstr "wählt Behandlung von Markierungen, die gefilterte Objekte markieren"
+
+#: builtin/fast-export.c:643
+msgid "Dump marks to this file"
+msgstr "Schreibt Kennzeichen in diese Datei"
+
+#: builtin/fast-export.c:645
+msgid "Import marks from this file"
+msgstr "Importiert Kennzeichen von dieser Datei"
+
+#: builtin/fast-export.c:647
+msgid "Fake a tagger when tags lack one"
+msgstr ""
+"erzeugt künstlich einen Markierungsersteller, wenn die Markierung keinen hat"
+
+#: builtin/fast-export.c:649
+msgid "Output full tree for each commit"
+msgstr "gibt für jede Version den gesamten Baum aus"
+
+#: builtin/fast-export.c:651
+msgid "Use the done feature to terminate the stream"
+msgstr "Benutzt die \"done\"-Funktion um den Strom abzuschließen"
+
+#: builtin/fast-export.c:652
+msgid "Skip output of blob data"
+msgstr "Überspringt Ausgabe von Blob-Daten"
+
+#: builtin/fetch.c:20
+msgid "git fetch [] [ [...]]"
+msgstr "git fetch [] [ [...]]"
+
+#: builtin/fetch.c:21
+msgid "git fetch [] "
+msgstr "git fetch [] "
+
+#: builtin/fetch.c:22
+msgid "git fetch --multiple [] [( | )...]"
+msgstr "git fetch --multiple [] [( | )...]"
+
+#: builtin/fetch.c:23
+msgid "git fetch --all []"
+msgstr "git fetch --all []"
+
+#: builtin/fetch.c:60
+msgid "fetch from all remotes"
+msgstr "fordert von allen externen Projektarchiven an"
+
+#: builtin/fetch.c:62
+msgid "append to .git/FETCH_HEAD instead of overwriting"
+msgstr "hängt an .git/FETCH_HEAD an, anstatt zu überschreiben"
+
+#: builtin/fetch.c:64
+msgid "path to upload pack on remote end"
+msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite"
+
+#: builtin/fetch.c:65
+msgid "force overwrite of local branch"
+msgstr "erzwingt das Überschreiben von lokalen Zweigen"
+
+#: builtin/fetch.c:67
+msgid "fetch from multiple remotes"
+msgstr "fordert von mehreren externen Projektarchiven an"
+
+#: builtin/fetch.c:69
+msgid "fetch all tags and associated objects"
+msgstr "fordert alle Markierungen und verbundene Objekte an"
+
+#: builtin/fetch.c:71
+msgid "do not fetch all tags (--no-tags)"
+msgstr "fordert nicht alle Markierungen an (--no-tags)"
+
+#: builtin/fetch.c:73
+msgid "prune remote-tracking branches no longer on remote"
+msgstr ""
+"entfernt externe Übernahmezweige, die sich nicht mehr im Fernarchiv befinden"
+
+#: builtin/fetch.c:74
+msgid "on-demand"
+msgstr "bei-Bedarf"
+
+#: builtin/fetch.c:75
+msgid "control recursive fetching of submodules"
+msgstr "kontrolliert rekursive Anforderungen von Unterprojekten"
+
+#: builtin/fetch.c:79
+msgid "keep downloaded pack"
+msgstr "behält heruntergeladenes Paket"
+
+#: builtin/fetch.c:81
+msgid "allow updating of HEAD ref"
+msgstr "erlaubt Aktualisierung der \"HEAD\"-Referenz"
+
+#: builtin/fetch.c:84
+msgid "deepen history of shallow clone"
+msgstr "vertieft die Historie eines flachen Klon"
+
+#: builtin/fetch.c:85 builtin/log.c:1088
+msgid "dir"
+msgstr "Verzeichnis"
+
+#: builtin/fetch.c:86
+msgid "prepend this to submodule path output"
+msgstr "stellt dies an die Ausgabe der Unterprojekt-Pfade voran"
+
+#: builtin/fetch.c:89
+msgid "default mode for recursion"
+msgstr "Standard-Modus für Rekursion"
+
+#: builtin/fetch.c:201
 msgid "Couldn't find remote ref HEAD"
 msgstr "Konnte externe Referenz der Zweigspitze (HEAD) nicht finden."
 
-#: builtin/fetch.c:253
+#: builtin/fetch.c:254
 #, c-format
 msgid "object %s not found"
 msgstr "Objekt %s nicht gefunden"
@@ -3077,7 +4355,7 @@ msgid ""
 " 'git remote prune %s' to remove any old, conflicting branches"
 msgstr ""
 "Einige lokale Referenzen konnten nicht aktualisiert werden; versuche\n"
-"'git remote prune %s' um jeden älteren, widersprüchlichen Zweig zu entfernen."
+"'git remote prune %s' um jeden älteren, widersprüchlichen Zweig zu löschen."
 
 #: builtin/fetch.c:549
 #, c-format
@@ -3119,17 +4397,17 @@ msgstr "Option \"%s\" Wert \"%s\" ist nicht gültig für %s"
 msgid "Option \"%s\" is ignored for %s\n"
 msgstr "Option \"%s\" wird ignoriert für %s\n"
 
-#: builtin/fetch.c:888
+#: builtin/fetch.c:891
 #, c-format
 msgid "Fetching %s\n"
 msgstr "Fordere an von %s\n"
 
-#: builtin/fetch.c:890 builtin/remote.c:100
+#: builtin/fetch.c:893 builtin/remote.c:100
 #, c-format
 msgid "Could not fetch %s"
 msgstr "Konnte nicht von %s anfordern"
 
-#: builtin/fetch.c:907
+#: builtin/fetch.c:912
 msgid ""
 "No remote repository specified.  Please, specify either a URL or a\n"
 "remote name from which new revisions should be fetched."
@@ -3138,29 +4416,148 @@ msgstr ""
 "oder den Namen des externen Archivs an, von welchem neue\n"
 "Versionen angefordert werden sollen."
 
-#: builtin/fetch.c:927
+#: builtin/fetch.c:932
 msgid "You need to specify a tag name."
 msgstr "Du musst den Namen der Markierung angeben."
 
-#: builtin/fetch.c:979
+#: builtin/fetch.c:984
 msgid "fetch --all does not take a repository argument"
 msgstr "fetch --all akzeptiert kein Projektarchiv als Argument"
 
-#: builtin/fetch.c:981
+#: builtin/fetch.c:986
 msgid "fetch --all does not make sense with refspecs"
 msgstr "fetch --all macht keinen Sinn mit Referenzspezifikationen"
 
-#: builtin/fetch.c:992
+#: builtin/fetch.c:997
 #, c-format
 msgid "No such remote or remote group: %s"
 msgstr "Kein externes Archiv (einzeln oder Gruppe): %s"
 
-#: builtin/fetch.c:1000
+#: builtin/fetch.c:1005
 msgid "Fetching a group and specifying refspecs does not make sense"
 msgstr ""
 "Abholen einer Gruppe mit Angabe von Referenzspezifikationen macht keinen "
 "Sinn."
 
+#: builtin/fmt-merge-msg.c:13
+msgid "git fmt-merge-msg [-m ] [--log[=]|--no-log] [--file ]"
+msgstr ""
+"git fmt-merge-msg [-m ] [--log[=]|--no-log] [--file ]"
+
+#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:701
+#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175
+#: builtin/tag.c:448 parse-options.h:133 parse-options.h:235
+msgid "n"
+msgstr "Anzahl"
+
+#: builtin/fmt-merge-msg.c:654
+msgid "populate log with at most  entries from shortlog"
+msgstr "fügt Historie mit höchstens  Einträgen von \"shortlog\" hinzu"
+
+#: builtin/fmt-merge-msg.c:657
+msgid "alias for --log (deprecated)"
+msgstr "Alias für --log (veraltet)"
+
+#: builtin/fmt-merge-msg.c:660
+msgid "text"
+msgstr "Text"
+
+#: builtin/fmt-merge-msg.c:661
+msgid "use  as start of message"
+msgstr "benutzt  als Beschreibungsanfang"
+
+#: builtin/fmt-merge-msg.c:662
+msgid "file to read from"
+msgstr "Datei zum Einlesen"
+
+#: builtin/for-each-ref.c:979
+msgid "git for-each-ref [options] []"
+msgstr "git for-each-ref [Optionen] []"
+
+#: builtin/for-each-ref.c:994
+msgid "quote placeholders suitably for shells"
+msgstr "formatiert Platzhalter als Shell-String"
+
+#: builtin/for-each-ref.c:996
+msgid "quote placeholders suitably for perl"
+msgstr "formatiert Platzhalter als Perl-String"
+
+#: builtin/for-each-ref.c:998
+msgid "quote placeholders suitably for python"
+msgstr "formatiert Platzhalter als Python-String"
+
+#: builtin/for-each-ref.c:1000
+msgid "quote placeholders suitably for tcl"
+msgstr "formatiert Platzhalter als TCL-String"
+
+#: builtin/for-each-ref.c:1003
+msgid "show only  matched refs"
+msgstr "zeigt nur  passende Referenzen"
+
+#: builtin/for-each-ref.c:1004
+msgid "format"
+msgstr "Format"
+
+#: builtin/for-each-ref.c:1004
+msgid "format to use for the output"
+msgstr "für die Ausgabe zu verwendendes Format"
+
+#: builtin/for-each-ref.c:1005
+msgid "key"
+msgstr "Schüssel"
+
+#: builtin/for-each-ref.c:1006
+msgid "field name to sort on"
+msgstr "sortiere nach diesem Feld"
+
+#: builtin/fsck.c:608
+msgid "git fsck [options] [...]"
+msgstr "git fsck [Optionen] [...]"
+
+#: builtin/fsck.c:614
+msgid "show unreachable objects"
+msgstr "zeigt unerreichbare Objekte"
+
+#: builtin/fsck.c:615
+msgid "show dangling objects"
+msgstr "zeigt unreferenzierte Objekte"
+
+#: builtin/fsck.c:616
+msgid "report tags"
+msgstr "meldet Markierungen"
+
+#: builtin/fsck.c:617
+msgid "report root nodes"
+msgstr "meldet Hauptwurzeln"
+
+#: builtin/fsck.c:618
+msgid "make index objects head nodes"
+msgstr "erzeugt Kopfknoten der Bereitstellungsobjekte"
+
+#: builtin/fsck.c:619
+msgid "make reflogs head nodes (default)"
+msgstr "erzeugt Kopfknoten des Referenzprotokolls (Standard)"
+
+#: builtin/fsck.c:620
+msgid "also consider packs and alternate objects"
+msgstr ""
+
+#: builtin/fsck.c:621
+msgid "enable more strict checking"
+msgstr "aktiviert genauere Prüfung"
+
+#: builtin/fsck.c:623
+msgid "write dangling objects in .git/lost-found"
+msgstr "schreibt unreferenzierte Objekte nach .git/lost-found"
+
+#: builtin/fsck.c:624 builtin/prune.c:134
+msgid "show progress"
+msgstr "zeigt Fortschrittsanzeige"
+
+#: builtin/gc.c:22
+msgid "git gc [options]"
+msgstr "git gc [Optionen]"
+
 #: builtin/gc.c:63
 #, c-format
 msgid "Invalid %s: '%s'"
@@ -3171,14 +4568,19 @@ msgstr "Ungültiger %s: '%s'"
 msgid "insanely long object directory %.*s"
 msgstr "zu langes Objekt-Verzeichnis %.*s"
 
-#: builtin/gc.c:221
-#, c-format
-msgid "Auto packing the repository for optimum performance.\n"
-msgstr ""
-"Die Datenbank des Projektarchivs wird für eine optimale Performance "
-"komprimiert.\n"
+#: builtin/gc.c:179
+msgid "prune unreferenced objects"
+msgstr "entfernt unreferenzierte Objekte"
+
+#: builtin/gc.c:181
+msgid "be more thorough (increased runtime)"
+msgstr "mehr Gründlichkeit (erhöht Laufzeit)"
+
+#: builtin/gc.c:182
+msgid "enable auto-gc mode"
+msgstr "aktiviert \"auto-gc\" Modus"
 
-#: builtin/gc.c:224
+#: builtin/gc.c:222
 #, c-format
 msgid ""
 "Auto packing the repository for optimum performance. You may also\n"
@@ -3188,73 +4590,304 @@ msgstr ""
 "komprimiert. Du kannst auch \"git gc\" manuell ausführen.\n"
 "Siehe \"git help gc\" für weitere Informationen.\n"
 
-#: builtin/gc.c:251
+#: builtin/gc.c:249
 msgid ""
 "There are too many unreachable loose objects; run 'git prune' to remove them."
 msgstr ""
 "Es gibt zu viele unerreichbare lose Objekte; führe 'git prune' aus, um diese "
-"zu entfernen."
+"zu löschen."
 
-#: builtin/grep.c:216
+#: builtin/grep.c:22
+msgid "git grep [options] [-e]  [...] [[--] ...]"
+msgstr "git grep [Optionen] [-e]  [...] [[--] ...]"
+
+#: builtin/grep.c:217
 #, c-format
 msgid "grep: failed to create thread: %s"
 msgstr "grep: Fehler beim Erzeugen eines Thread: %s"
 
-#: builtin/grep.c:454
+#: builtin/grep.c:365
 #, c-format
 msgid "Failed to chdir: %s"
 msgstr "Fehler beim Verzeichniswechsel: %s"
 
-#: builtin/grep.c:530 builtin/grep.c:564
+#: builtin/grep.c:443 builtin/grep.c:478
 #, c-format
 msgid "unable to read tree (%s)"
 msgstr "konnte Zweig (%s) nicht lesen"
 
-#: builtin/grep.c:578
+#: builtin/grep.c:493
 #, c-format
 msgid "unable to grep from object of type %s"
 msgstr "kann \"grep\" nicht mit Objekten des Typs %s durchführen"
 
-#: builtin/grep.c:636
+#: builtin/grep.c:551
 #, c-format
 msgid "switch `%c' expects a numerical value"
 msgstr "Schalter '%c' erwartet einen numerischen Wert"
 
-#: builtin/grep.c:653
+#: builtin/grep.c:568
 #, c-format
 msgid "cannot open '%s'"
 msgstr "kann '%s' nicht öffnen"
 
-#: builtin/grep.c:917
+#: builtin/grep.c:643
+msgid "search in index instead of in the work tree"
+msgstr "sucht in der Bereitstellung anstatt im Arbeitsbaum"
+
+#: builtin/grep.c:645
+msgid "find in contents not managed by git"
+msgstr "findet auch in Inhalten, die nicht von Git verwaltet werden"
+
+#: builtin/grep.c:647
+msgid "search in both tracked and untracked files"
+msgstr "sucht in beobachteten und unbeobachteten Dateien"
+
+#: builtin/grep.c:649
+msgid "search also in ignored files"
+msgstr "sucht auch in ignorierten Dateien"
+
+#: builtin/grep.c:652
+msgid "show non-matching lines"
+msgstr "zeigt Zeilen ohne Übereinstimmungen"
+
+#: builtin/grep.c:654
+msgid "case insensitive matching"
+msgstr "findet Übereinstimmungen unabhängig von Groß- und Kleinschreibung"
+
+#: builtin/grep.c:656
+msgid "match patterns only at word boundaries"
+msgstr "sucht nur ganze Wörter"
+
+#: builtin/grep.c:658
+msgid "process binary files as text"
+msgstr "verarbeitet binäre Dateien als Text"
+
+#: builtin/grep.c:660
+msgid "don't match patterns in binary files"
+msgstr "findet keine Muster in Binärdateien"
+
+#: builtin/grep.c:663
+msgid "descend at most  levels"
+msgstr "durchläuft höchstens  Ebenen"
+
+#: builtin/grep.c:667
+msgid "use extended POSIX regular expressions"
+msgstr "benutzt erweiterte reguläre Ausdrücke aus POSIX"
+
+#: builtin/grep.c:670
+msgid "use basic POSIX regular expressions (default)"
+msgstr "benutzt grundlegende reguläre Ausdrücke aus POSIX (Standard)"
+
+#: builtin/grep.c:673
+msgid "interpret patterns as fixed strings"
+msgstr "interpretiert Muster als feste Zeichenketten"
+
+#: builtin/grep.c:676
+msgid "use Perl-compatible regular expressions"
+msgstr "benutzt Perl-kompatible reguläre Ausdrücke"
+
+#: builtin/grep.c:679
+msgid "show line numbers"
+msgstr "zeigt Zeilennummern"
+
+#: builtin/grep.c:680
+msgid "don't show filenames"
+msgstr "zeigt keine Dateinamen"
+
+#: builtin/grep.c:681
+msgid "show filenames"
+msgstr "zeigt Dateinamen"
+
+#: builtin/grep.c:683
+msgid "show filenames relative to top directory"
+msgstr "zeigt Dateinamen relativ zum Projektverzeichnis"
+
+#: builtin/grep.c:685
+msgid "show only filenames instead of matching lines"
+msgstr "zeigt nur Dateinamen anstatt übereinstimmende Zeilen"
+
+#: builtin/grep.c:687
+msgid "synonym for --files-with-matches"
+msgstr "Synonym für --files-with-matches"
+
+#: builtin/grep.c:690
+msgid "show only the names of files without match"
+msgstr "zeigt nur die Dateinamen ohne Übereinstimmungen"
+
+#: builtin/grep.c:692
+msgid "print NUL after filenames"
+msgstr "gibt NUL-Zeichen nach Dateinamen aus"
+
+#: builtin/grep.c:694
+msgid "show the number of matches instead of matching lines"
+msgstr "zeigt, anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen"
+
+#: builtin/grep.c:695
+msgid "highlight matches"
+msgstr "hebt Übereinstimmungen hervor"
+
+#: builtin/grep.c:697
+msgid "print empty line between matches from different files"
+msgstr ""
+"gibt eine Leerzeile zwischen Übereinstimmungen in verschiedenen Dateien aus"
+
+#: builtin/grep.c:699
+msgid "show filename only once above matches from same file"
+msgstr ""
+"zeigt den Dateinamen nur einmal oberhalb der Übereinstimmungen aus dieser "
+"Datei an"
+
+#: builtin/grep.c:702
+msgid "show  context lines before and after matches"
+msgstr "zeigt  Zeilen vor und nach den Übereinstimmungen an"
+
+#: builtin/grep.c:705
+msgid "show  context lines before matches"
+msgstr "zeigt  Zeilen vor den Übereinstimmungen an"
+
+#: builtin/grep.c:707
+msgid "show  context lines after matches"
+msgstr "zeigt  Zeilen nach den Übereinstimmungen an"
+
+#: builtin/grep.c:708
+msgid "shortcut for -C NUM"
+msgstr "Kurzform für -C NUM"
+
+#: builtin/grep.c:711
+msgid "show a line with the function name before matches"
+msgstr "zeigt eine Zeile mit dem Funktionsnamen vor Übereinstimmungen an"
+
+#: builtin/grep.c:713
+msgid "show the surrounding function"
+msgstr "zeigt die umgebende Funktion an"
+
+#: builtin/grep.c:716
+msgid "read patterns from file"
+msgstr "liest Muster von einer Datei"
+
+#: builtin/grep.c:718
+msgid "match "
+msgstr "findet "
+
+#: builtin/grep.c:720
+msgid "combine patterns specified with -e"
+msgstr "kombiniert Muster, die mit -e angegeben wurden"
+
+#: builtin/grep.c:732
+msgid "indicate hit with exit status without output"
+msgstr "zeigt Übereinstimmungen nur durch Beendigungsstatus an"
+
+#: builtin/grep.c:734
+msgid "show only matches from files that match all patterns"
+msgstr "zeigt nur Übereinstimmungen von Dateien, die allen Mustern entsprechen"
+
+#: builtin/grep.c:736
+msgid "show parse tree for grep expression"
+msgstr "zeigt geparsten Baum für \"grep\"-Ausdruck"
+
+#: builtin/grep.c:740
+msgid "pager"
+msgstr "Anzeigeprogramm"
+
+#: builtin/grep.c:740
+msgid "show matching files in the pager"
+msgstr "zeigt Dateien mit Übereinstimmungen im Anzeigeprogramm"
+
+#: builtin/grep.c:743
+msgid "allow calling of grep(1) (ignored by this build)"
+msgstr "erlaubt den Aufruf von grep(1) (von dieser Programmversion ignoriert)"
+
+#: builtin/grep.c:744 builtin/show-ref.c:184
+msgid "show usage"
+msgstr "zeigt Verwendung"
+
+#: builtin/grep.c:811
 msgid "no pattern given."
 msgstr "keine Muster angegeben"
 
-#: builtin/grep.c:931
+#: builtin/grep.c:825
 #, c-format
 msgid "bad object %s"
 msgstr "ungültiges Objekt %s"
 
-#: builtin/grep.c:972
+#: builtin/grep.c:866
 msgid "--open-files-in-pager only works on the worktree"
 msgstr "--open-files-in-pager arbeitet nur innerhalb des Arbeitsbaums"
 
-#: builtin/grep.c:995
+#: builtin/grep.c:889
 msgid "--cached or --untracked cannot be used with --no-index."
 msgstr "--cached oder --untracked kann nicht mit --no-index benutzt werden"
 
-#: builtin/grep.c:1000
+#: builtin/grep.c:894
 msgid "--no-index or --untracked cannot be used with revs."
 msgstr "--no-index oder --untracked kann nicht mit Versionen benutzt werden"
 
-#: builtin/grep.c:1003
+#: builtin/grep.c:897
 msgid "--[no-]exclude-standard cannot be used for tracked contents."
 msgstr ""
 "--[no-]exlude-standard kann nicht mit beobachteten Inhalten benutzt werden"
 
-#: builtin/grep.c:1011
+#: builtin/grep.c:905
 msgid "both --cached and trees are given."
 msgstr "sowohl --cached als auch Zweige gegeben"
 
+#: builtin/hash-object.c:60
+msgid ""
+"git hash-object [-t ] [-w] [--path=|--no-filters] [--stdin] [--] "
+"..."
+msgstr ""
+"git hash-object [-t ] [-w] [--path=|--no-filters] [--stdin] [--] "
+"..."
+
+#: builtin/hash-object.c:61
+msgid "git hash-object  --stdin-paths < "
+msgstr "git hash-object  --stdin-paths < "
+
+#: builtin/hash-object.c:72
+msgid "type"
+msgstr "Art"
+
+#: builtin/hash-object.c:72
+msgid "object type"
+msgstr "Art des Objektes"
+
+#: builtin/hash-object.c:73
+msgid "write the object into the object database"
+msgstr "schreibt das Objekt in die Objektdatenbank"
+
+#: builtin/hash-object.c:74
+msgid "read the object from stdin"
+msgstr "liest das Objekt von der Standard-Eingabe"
+
+#: builtin/hash-object.c:76
+msgid "store file as is without filters"
+msgstr "speichert Datei wie sie ist, ohne Filter"
+
+#: builtin/hash-object.c:77
+msgid "process file as it were from this path"
+msgstr "verarbeitet Datei, als ob sie von diesem Pfad wäre"
+
+#: builtin/help.c:43
+msgid "print all available commands"
+msgstr "Anzeige aller vorhandenen Kommandos"
+
+#: builtin/help.c:44
+msgid "show man page"
+msgstr "zeigt Handbuch"
+
+#: builtin/help.c:45
+msgid "show manual in web browser"
+msgstr "zeigt Handbuch in einem Webbrowser"
+
+#: builtin/help.c:47
+msgid "show info page"
+msgstr "zeigt Info-Seite"
+
+#: builtin/help.c:53
+msgid "git help [--all] [--man|--web|--info] [command]"
+msgstr "git help [--all] [--man|--web|--info] [Kommando]"
+
 #: builtin/help.c:65
 #, c-format
 msgid "unrecognized help format '%s'"
@@ -3369,6 +5002,11 @@ msgstr "Kann Paketdatei '%s' nicht öffnen"
 msgid "pack signature mismatch"
 msgstr "Paketsignatur stimmt nicht überein"
 
+#: builtin/index-pack.c:294
+#, c-format
+msgid "pack version % unsupported"
+msgstr "Paketversion % nicht unterstützt"
+
 #: builtin/index-pack.c:312
 #, c-format
 msgid "pack has bad object at offset %lu: %s"
@@ -3476,93 +5114,123 @@ msgstr "Fehler beim Ausführen von \"parse_pack_objects()\""
 msgid "Resolving deltas"
 msgstr "Löse Unterschiede auf"
 
-#: builtin/index-pack.c:1105
+#: builtin/index-pack.c:1064
+#, c-format
+msgid "unable to create thread: %s"
+msgstr "kann Thread nicht erzeugen: %s"
+
+#: builtin/index-pack.c:1106
 msgid "confusion beyond insanity"
 msgstr "Fehler beim Auflösen der Unterschiede"
 
-#: builtin/index-pack.c:1124
+#: builtin/index-pack.c:1112
+#, c-format
+msgid "completed with %d local objects"
+msgstr "vervollständigt mit %d lokalen Objekten"
+
+#: builtin/index-pack.c:1121
+#, c-format
+msgid "Unexpected tail checksum for %s (disk corruption?)"
+msgstr "Unerwartete Prüfsumme für %s (Festplattenfehler?)"
+
+#: builtin/index-pack.c:1125
 #, c-format
 msgid "pack has %d unresolved delta"
 msgid_plural "pack has %d unresolved deltas"
 msgstr[0] "Paket hat %d unaufgelöste Unterschied"
 msgstr[1] "Paket hat %d unaufgelöste Unterschiede"
 
-#: builtin/index-pack.c:1149
+#: builtin/index-pack.c:1150
 #, c-format
 msgid "unable to deflate appended object (%d)"
 msgstr "Konnte angehängtes Objekt (%d) nicht komprimieren"
 
-#: builtin/index-pack.c:1228
+#: builtin/index-pack.c:1229
 #, c-format
 msgid "local object %s is corrupt"
 msgstr "lokales Objekt %s ist beschädigt"
 
-#: builtin/index-pack.c:1252
+#: builtin/index-pack.c:1253
 msgid "error while closing pack file"
 msgstr "Fehler beim Schließen der Paketdatei"
 
-#: builtin/index-pack.c:1265
+#: builtin/index-pack.c:1266
 #, c-format
 msgid "cannot write keep file '%s'"
 msgstr "Kann Paketbeschreibungsdatei '%s' nicht schreiben"
 
-#: builtin/index-pack.c:1273
+#: builtin/index-pack.c:1274
 #, c-format
 msgid "cannot close written keep file '%s'"
 msgstr "Kann eben erstellte Paketbeschreibungsdatei '%s' nicht schließen"
 
-#: builtin/index-pack.c:1286
+#: builtin/index-pack.c:1287
 msgid "cannot store pack file"
 msgstr "Kann Paketdatei nicht speichern"
 
-#: builtin/index-pack.c:1297
+#: builtin/index-pack.c:1298
 msgid "cannot store index file"
 msgstr "Kann Indexdatei nicht speichern"
 
-#: builtin/index-pack.c:1398
+#: builtin/index-pack.c:1331
+#, c-format
+msgid "bad pack.indexversion=%"
+msgstr "\"pack.indexversion=%\" ist ungültig"
+
+#: builtin/index-pack.c:1337
+#, c-format
+msgid "invalid number of threads specified (%d)"
+msgstr "ungültige Anzahl von Threads angegeben (%d)"
+
+#: builtin/index-pack.c:1341 builtin/index-pack.c:1514
+#, c-format
+msgid "no threads support, ignoring %s"
+msgstr "keine Unterstützung von Threads, '%s' wird ignoriert"
+
+#: builtin/index-pack.c:1399
 #, c-format
 msgid "Cannot open existing pack file '%s'"
 msgstr "Kann existierende Paketdatei '%s' nicht öffnen"
 
-#: builtin/index-pack.c:1400
+#: builtin/index-pack.c:1401
 #, 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:1447
+#: builtin/index-pack.c:1448
 #, 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:1454
+#: builtin/index-pack.c:1455
 #, 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:1481
+#: builtin/index-pack.c:1482
 msgid "Cannot come back to cwd"
 msgstr "Kann nicht zurück zu Arbeitsverzeichnis wechseln"
 
-#: builtin/index-pack.c:1525 builtin/index-pack.c:1528
-#: builtin/index-pack.c:1540 builtin/index-pack.c:1544
+#: builtin/index-pack.c:1526 builtin/index-pack.c:1529
+#: builtin/index-pack.c:1541 builtin/index-pack.c:1545
 #, c-format
 msgid "bad %s"
 msgstr "%s ist ungültig"
 
-#: builtin/index-pack.c:1558
+#: builtin/index-pack.c:1559
 msgid "--fix-thin cannot be used without --stdin"
 msgstr "--fix-thin kann nicht ohne --stdin benutzt werden"
 
-#: builtin/index-pack.c:1562 builtin/index-pack.c:1572
+#: builtin/index-pack.c:1563 builtin/index-pack.c:1573
 #, c-format
 msgid "packfile name '%s' does not end with '.pack'"
 msgstr "Name der Paketdatei '%s' endet nicht mit '.pack'"
 
-#: builtin/index-pack.c:1581
+#: builtin/index-pack.c:1582
 msgid "--verify with no packfile name given"
 msgstr "--verify ohne Name der Paketdatei angegeben"
 
@@ -3682,6 +5350,27 @@ msgstr " gemeinsames"
 msgid "cannot tell cwd"
 msgstr "kann aktuelles Arbeitsverzeichnis nicht ermitteln"
 
+#: builtin/init-db.c:467
+msgid ""
+"git init [-q | --quiet] [--bare] [--template=] [--shared"
+"[=]] [directory]"
+msgstr ""
+"git init [-q | --quiet] [--bare] [--template=] [--shared"
+"[=]] [Verzeichnis]"
+
+#: builtin/init-db.c:490
+msgid "permissions"
+msgstr "Berechtigungen"
+
+#: builtin/init-db.c:491
+msgid "specify that the git repository is to be shared amongst several users"
+msgstr ""
+"gibt an, dass das Git-Projektarchiv mit mehreren Benutzern geteilt wird"
+
+#: builtin/init-db.c:493 builtin/prune-packed.c:77
+msgid "be quiet"
+msgstr "weniger Ausgaben"
+
 #: builtin/init-db.c:522 builtin/init-db.c:529
 #, c-format
 msgid "cannot mkdir %s"
@@ -3710,105 +5399,396 @@ msgstr "Kann nicht auf aktuelles Arbeitsverzeichnis zugreifen."
 msgid "Cannot access work tree '%s'"
 msgstr "Kann nicht auf Arbeitsbaum '%s' zugreifen."
 
+#: builtin/log.c:37
+msgid "git log [] [..] [[--] ...]\n"
+msgstr "git log [] [..] [[--] ...]\n"
+
+#: builtin/log.c:38
+msgid "   or: git show [options] ..."
+msgstr "   oder: git show [Optionen] ..."
+
+#: builtin/log.c:100
+msgid "suppress diff output"
+msgstr "unterdrückt Ausgabe der Unterschiede"
+
+#: builtin/log.c:101
+msgid "show source"
+msgstr "zeigt Quelle"
+
+#: builtin/log.c:102
+msgid "decorate options"
+msgstr "decorate-Optionen"
+
 #: builtin/log.c:189
 #, c-format
 msgid "Final output: %d %s\n"
 msgstr "letzte Ausgabe: %d %s\n"
 
-#: builtin/log.c:403 builtin/log.c:494
+#: builtin/log.c:405 builtin/log.c:497
 #, c-format
 msgid "Could not read object %s"
 msgstr "Kann Objekt %s nicht lesen."
 
-#: builtin/log.c:518
+#: builtin/log.c:521
 #, c-format
 msgid "Unknown type: %d"
 msgstr "Unbekannter Typ: %d"
 
-#: builtin/log.c:608
+#: builtin/log.c:613
 msgid "format.headers without value"
 msgstr "format.headers ohne Wert"
 
-#: builtin/log.c:682
+#: builtin/log.c:687
 msgid "name of output directory is too long"
 msgstr "Name des Ausgabeverzeichnisses ist zu lang."
 
-#: builtin/log.c:693
+#: builtin/log.c:698
 #, c-format
 msgid "Cannot open patch file %s"
 msgstr "Kann Patch-Datei %s nicht öffnen"
 
-#: builtin/log.c:707
+#: builtin/log.c:712
 msgid "Need exactly one range."
 msgstr "Brauche genau einen Versionsbereich."
 
-#: builtin/log.c:715
+#: builtin/log.c:720
 msgid "Not a range."
 msgstr "Kein Versionsbereich."
 
-#: builtin/log.c:789
+#: builtin/log.c:794
 msgid "Cover letter needs email format"
 msgstr "Anschreiben benötigt E-Mail-Format"
 
-#: builtin/log.c:862
+#: builtin/log.c:867
 #, c-format
 msgid "insane in-reply-to: %s"
 msgstr "ungültiges in-reply-to: %s"
 
-#: builtin/log.c:935
+#: builtin/log.c:895
+msgid "git format-patch [options] [ | ]"
+msgstr "git format-patch [Optionen] [ | ]"
+
+#: builtin/log.c:940
 msgid "Two output directories?"
 msgstr "Zwei Ausgabeverzeichnisse?"
 
-#: builtin/log.c:1157
+#: builtin/log.c:1068
+msgid "use [PATCH n/m] even with a single patch"
+msgstr "benutzt [PATCH n/m] auch mit einzelnem Patch"
+
+#: builtin/log.c:1071
+msgid "use [PATCH] even with multiple patches"
+msgstr "benutzt [PATCH] auch mit mehreren Patches"
+
+#: builtin/log.c:1075
+msgid "print patches to standard out"
+msgstr "Ausgabe der Patches in Standard-Ausgabe"
+
+#: builtin/log.c:1077
+msgid "generate a cover letter"
+msgstr "erzeugt ein Deckblatt"
+
+#: builtin/log.c:1079
+msgid "use simple number sequence for output file names"
+msgstr "benutzt einfache Nummernfolge für die Namen der Ausgabedateien"
+
+#: builtin/log.c:1080
+msgid "sfx"
+msgstr "Dateiendung"
+
+#: builtin/log.c:1081
+msgid "use  instead of '.patch'"
+msgstr "verwendet  anstatt '.patch'"
+
+#: builtin/log.c:1083
+msgid "start numbering patches at  instead of 1"
+msgstr "beginnt die Nummerierung der Patches bei  anstatt bei 1"
+
+#: builtin/log.c:1085
+msgid "Use [] instead of [PATCH]"
+msgstr "benutzt [] anstatt [PATCH]"
+
+#: builtin/log.c:1088
+msgid "store resulting files in "
+msgstr "speichert erzeugte Dateien in "
+
+#: builtin/log.c:1091
+msgid "don't strip/add [PATCH]"
+msgstr "[PATCH] wird nicht entfernt/hinzugefügt"
+
+#: builtin/log.c:1094
+msgid "don't output binary diffs"
+msgstr "gibt keine binären Unterschiede aus"
+
+#: builtin/log.c:1096
+msgid "don't include a patch matching a commit upstream"
+msgstr ""
+"schließt keine Patches ein, die einer Version im Übernahmezweig entsprechen"
+
+#: builtin/log.c:1098
+msgid "show patch format instead of default (patch + stat)"
+msgstr "zeigt Patchformat anstatt des Standards (Patch + Zusammenfassung)"
+
+#: builtin/log.c:1100
+msgid "Messaging"
+msgstr "Email-Einstellungen"
+
+#: builtin/log.c:1101
+msgid "header"
+msgstr "Header"
+
+#: builtin/log.c:1102
+msgid "add email header"
+msgstr "fügt Email-Header hinzu"
+
+#: builtin/log.c:1103 builtin/log.c:1105
+msgid "email"
+msgstr "Email"
+
+#: builtin/log.c:1103
+msgid "add To: header"
+msgstr "fügt  \"To:\"-Header hinzu"
+
+#: builtin/log.c:1105
+msgid "add Cc: header"
+msgstr "fügt \"Cc:\"-Header hinzu"
+
+#: builtin/log.c:1107
+msgid "message-id"
+msgstr "message-id"
+
+#: builtin/log.c:1108
+msgid "make first mail a reply to "
+msgstr "macht aus erster Email eine Antwort zu "
+
+#: builtin/log.c:1109 builtin/log.c:1112
+msgid "boundary"
+msgstr "Grenze"
+
+#: builtin/log.c:1110
+msgid "attach the patch"
+msgstr "hängt einen Patch an"
+
+#: builtin/log.c:1113
+msgid "inline the patch"
+msgstr "fügt den Patch direkt in die Nachricht ein"
+
+#: builtin/log.c:1117
+msgid "enable message threading, styles: shallow, deep"
+msgstr "aktiviert Nachrichtenverkettung, Stile: shallow, deep"
+
+#: builtin/log.c:1119
+msgid "signature"
+msgstr "Signatur"
+
+#: builtin/log.c:1120
+msgid "add a signature"
+msgstr "fügt eine Signatur hinzu"
+
+#: builtin/log.c:1122
+msgid "don't print the patch filenames"
+msgstr "zeigt keine Dateinamen der Patches"
+
+#: builtin/log.c:1163
 #, c-format
 msgid "bogus committer info %s"
 msgstr "unechte Einreicher-Informationen %s"
 
-#: builtin/log.c:1202
+#: builtin/log.c:1208
 msgid "-n and -k are mutually exclusive."
 msgstr "-n und -k schließen sich gegenseitig aus"
 
-#: builtin/log.c:1204
+#: builtin/log.c:1210
 msgid "--subject-prefix and -k are mutually exclusive."
 msgstr "--subject-prefix und -k schließen sich gegenseitig aus"
 
-#: builtin/log.c:1212
-msgid "--name-only does not make sense"
-msgstr "--name-only macht keinen Sinn"
+#: builtin/log.c:1218
+msgid "--name-only does not make sense"
+msgstr "--name-only macht keinen Sinn"
+
+#: builtin/log.c:1220
+msgid "--name-status does not make sense"
+msgstr "--name-status macht keinen Sinn"
+
+#: builtin/log.c:1222
+msgid "--check does not make sense"
+msgstr "--check macht keinen Sinn"
+
+#: builtin/log.c:1245
+msgid "standard output, or directory, which one?"
+msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
+
+#: builtin/log.c:1247
+#, c-format
+msgid "Could not create directory '%s'"
+msgstr "Konnte Verzeichnis '%s' nicht erstellen."
+
+#: builtin/log.c:1400
+msgid "Failed to create output files"
+msgstr "Fehler beim Erstellen der Ausgabedateien."
+
+#: builtin/log.c:1449
+msgid "git cherry [-v] [ [ []]]"
+msgstr "git cherry [-v] [<Übernahmezweig> [ []]]"
+
+#: builtin/log.c:1504
+#, c-format
+msgid ""
+"Could not find a tracked remote branch, please specify  manually.\n"
+msgstr ""
+"Konnte gefolgten, externen Zweig nicht finden, bitte gebe  manuell "
+"an.\n"
+
+#: builtin/log.c:1517 builtin/log.c:1519 builtin/log.c:1531
+#, c-format
+msgid "Unknown commit %s"
+msgstr "Unbekannte Version %s"
+
+#: builtin/ls-files.c:408
+msgid "git ls-files [options] [...]"
+msgstr "git ls-files [Optionen] [...]"
+
+#: builtin/ls-files.c:463
+msgid "identify the file status with tags"
+msgstr "zeigt den Dateistatus mit Markierungen"
+
+#: builtin/ls-files.c:465
+msgid "use lowercase letters for 'assume unchanged' files"
+msgstr "benutzt Kleinbuchstaben für Dateien mit 'assume unchanged' Markierung"
+
+#: builtin/ls-files.c:467
+msgid "show cached files in the output (default)"
+msgstr "zeigt zwischengespeicherten Dateien in der Ausgabe an (Standard)"
+
+#: builtin/ls-files.c:469
+msgid "show deleted files in the output"
+msgstr "zeigt entfernte Dateien in der Ausgabe an"
+
+#: builtin/ls-files.c:471
+msgid "show modified files in the output"
+msgstr "zeigt geänderte Dateien in der Ausgabe an"
+
+#: builtin/ls-files.c:473
+msgid "show other files in the output"
+msgstr "zeigt sonstige Dateien in der Ausgabe an"
+
+#: builtin/ls-files.c:475
+msgid "show ignored files in the output"
+msgstr "zeigt ignorierte Dateien in der Ausgabe an"
+
+#: builtin/ls-files.c:478
+msgid "show staged contents' object name in the output"
+msgstr "zeigt Objektnamen von Inhalten in der Bereitstellung in der Ausgabe an"
+
+#: builtin/ls-files.c:480
+msgid "show files on the filesystem that need to be removed"
+msgstr "zeigt Dateien im Dateisystem, die gelöscht werden müssen, an"
+
+#: builtin/ls-files.c:482
+msgid "show 'other' directories' name only"
+msgstr "zeigt nur Namen von 'sonstigen' Verzeichnissen an"
+
+#: builtin/ls-files.c:485
+msgid "don't show empty directories"
+msgstr "zeigt keine leeren Verzeichnisse an"
+
+#: builtin/ls-files.c:488
+msgid "show unmerged files in the output"
+msgstr "zeigt nicht zusammengeführte Dateien in der Ausgabe an"
+
+#: builtin/ls-files.c:490
+msgid "show resolve-undo information"
+msgstr "zeigt 'resolve-undo' Informationen an"
+
+#: builtin/ls-files.c:492
+msgid "skip files matching pattern"
+msgstr "lässt Dateien aus, die einem Muster entsprechen"
+
+#: builtin/ls-files.c:495
+msgid "exclude patterns are read from "
+msgstr "schließt Muster, gelesen von , aus"
+
+#: builtin/ls-files.c:498
+msgid "read additional per-directory exclude patterns in "
+msgstr "liest zusätzliche pro-Verzeichnis Auschlussmuster aus "
+
+#: builtin/ls-files.c:500
+msgid "add the standard git exclusions"
+msgstr "fügt die standardmäßigen Git-Ausschlüsse hinzu"
+
+#: builtin/ls-files.c:503
+msgid "make the output relative to the project top directory"
+msgstr "Ausgabe relativ zum Projektverzeichnis"
+
+#: builtin/ls-files.c:506
+msgid "if any  is not in the index, treat this as an error"
+msgstr ""
+"behandle es als Fehler, wenn sich eine  nicht in der Bereitstellung "
+"befindet"
+
+#: builtin/ls-files.c:507
+msgid "tree-ish"
+msgstr "Versionsreferenz"
+
+#: builtin/ls-files.c:508
+msgid "pretend that paths removed since  are still present"
+msgstr ""
+"gibt vor, dass Pfade, die seit  gelöscht wurden, immer "
+"noch vorhanden sind"
+
+#: builtin/ls-files.c:510
+msgid "show debugging data"
+msgstr "zeigt Ausgaben zur Fehlersuche an"
+
+#: builtin/ls-tree.c:27
+msgid "git ls-tree []  [...]"
+msgstr "git ls-tree []  [...]"
+
+#: builtin/ls-tree.c:125
+msgid "only show trees"
+msgstr "zeigt nur Bäume an"
+
+#: builtin/ls-tree.c:127
+msgid "recurse into subtrees"
+msgstr "führt Rekursion in Teilbäumen durch"
 
-#: builtin/log.c:1214
-msgid "--name-status does not make sense"
-msgstr "--name-status macht keinen Sinn"
+#: builtin/ls-tree.c:129
+msgid "show trees when recursing"
+msgstr "zeigt Bäume bei Rekursion an"
 
-#: builtin/log.c:1216
-msgid "--check does not make sense"
-msgstr "--check macht keinen Sinn"
+#: builtin/ls-tree.c:132
+msgid "terminate entries with NUL byte"
+msgstr "schließt Einträge mit NUL-Byte ab"
 
-#: builtin/log.c:1239
-msgid "standard output, or directory, which one?"
-msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?"
+#: builtin/ls-tree.c:133
+msgid "include object size"
+msgstr "schließt Objektgröße ein"
 
-#: builtin/log.c:1241
-#, c-format
-msgid "Could not create directory '%s'"
-msgstr "Konnte Verzeichnis '%s' nicht erstellen."
+#: builtin/ls-tree.c:135 builtin/ls-tree.c:137
+msgid "list only filenames"
+msgstr "listet nur Dateinamen auf"
 
-#: builtin/log.c:1394
-msgid "Failed to create output files"
-msgstr "Fehler beim Erstellen der Ausgabedateien."
+#: builtin/ls-tree.c:140
+msgid "use full path names"
+msgstr "benutzt vollständige Pfadnamen"
 
-#: builtin/log.c:1498
-#, c-format
-msgid ""
-"Could not find a tracked remote branch, please specify  manually.\n"
+#: builtin/ls-tree.c:142
+msgid "list entire tree; not just current directory (implies --full-name)"
 msgstr ""
-"Konnte gefolgten, externen Zweig nicht finden, bitte gebe  manuell "
-"an.\n"
+"listet den gesamten Baum auf; nicht nur das aktuelle Verzeichnis (impliziert "
+"--full-name)"
 
-#: builtin/log.c:1511 builtin/log.c:1513 builtin/log.c:1525
-#, c-format
-msgid "Unknown commit %s"
-msgstr "Unbekannte Version %s"
+#: builtin/merge.c:43
+msgid "git merge [options] [...]"
+msgstr "git merge [Optionen] [...]"
+
+#: builtin/merge.c:44
+msgid "git merge [options]  HEAD "
+msgstr "git merge [Optionen]  HEAD "
+
+#: builtin/merge.c:45
+msgid "git merge --abort"
+msgstr "git merge --abort"
 
 #: builtin/merge.c:90
 msgid "switch `m' requires a value"
@@ -3829,6 +5809,75 @@ msgstr "Verfügbare Strategien sind:"
 msgid "Available custom strategies are:"
 msgstr "Verfügbare benutzerdefinierte Strategien sind:"
 
+#: builtin/merge.c:183
+msgid "do not show a diffstat at the end of the merge"
+msgstr ""
+"zeigt keine Zusammenfassung der Unterschiede am Schluss der Zusammenführung "
+"an"
+
+#: builtin/merge.c:186
+msgid "show a diffstat at the end of the merge"
+msgstr ""
+"zeigt eine Zusammenfassung der Unterschiede am Schluss der Zusammenführung an"
+
+#: builtin/merge.c:187
+msgid "(synonym to --stat)"
+msgstr "(Synonym für --stat)"
+
+#: builtin/merge.c:189
+msgid "add (at most ) entries from shortlog to merge commit message"
+msgstr ""
+"fügt (höchstens ) Einträge von \"shortlog\" zur Beschreibung der "
+"Zusammenführung hinzu"
+
+#: builtin/merge.c:192
+msgid "create a single commit instead of doing a merge"
+msgstr "erzeugt eine einzelne Version anstatt einer Zusammenführung"
+
+#: builtin/merge.c:194
+msgid "perform a commit if the merge succeeds (default)"
+msgstr ""
+"führt eine Eintragung durch, wenn die Zusammenführung erfolgreich war "
+"(Standard)"
+
+#: builtin/merge.c:196
+msgid "edit message before committing"
+msgstr "Bearbeitung der Versionsbeschreibung vor der Eintragung"
+
+#: builtin/merge.c:198
+msgid "allow fast-forward (default)"
+msgstr "erlaubt Vorspulen (Standard)"
+
+#: builtin/merge.c:200
+msgid "abort if fast-forward is not possible"
+msgstr "bricht ab, wenn kein Vorspulen möglich ist"
+
+#: builtin/merge.c:202 builtin/notes.c:870 builtin/revert.c:112
+msgid "strategy"
+msgstr "Strategie"
+
+#: builtin/merge.c:203
+msgid "merge strategy to use"
+msgstr "zu verwendende Zusammenführungsstrategie"
+
+#: builtin/merge.c:204
+msgid "option=value"
+msgstr "Option=Wert"
+
+#: builtin/merge.c:205
+msgid "option for selected merge strategy"
+msgstr "Option für ausgewählte Zusammenführungsstrategie"
+
+#: builtin/merge.c:207
+msgid "merge commit message (for a non-fast-forward merge)"
+msgstr ""
+"führt Versionsbeschreibung zusammen (für eine Zusammenführung, die kein "
+"Vorspulen war)"
+
+#: builtin/merge.c:211
+msgid "abort the current in-progress merge"
+msgstr "bricht die sich im Gange befindliche Zusammenführung ab"
+
 #: builtin/merge.c:240
 msgid "could not run stash."
 msgstr "Konnte \"stash\" nicht ausführen."
@@ -3884,37 +5933,33 @@ msgstr "Ungültiger branch.%s.mergeoptions String: %s"
 msgid "git write-tree failed to write a tree"
 msgstr "\"git write-tree\" schlug beim Schreiben eines Baumes fehl"
 
-#: builtin/merge.c:678
-msgid "failed to read the cache"
-msgstr "Lesen des Zwischenspeichers fehlgeschlagen"
-
-#: builtin/merge.c:709
+#: builtin/merge.c:656
 msgid "Not handling anything other than two heads merge."
 msgstr "Es wird nur die Zusammenführung von zwei Zweigen behandelt."
 
-#: builtin/merge.c:723
+#: builtin/merge.c:670
 #, c-format
 msgid "Unknown option for merge-recursive: -X%s"
 msgstr "Unbekannte Option für merge-recursive: -X%s"
 
-#: builtin/merge.c:737
+#: builtin/merge.c:684
 #, c-format
 msgid "unable to write %s"
 msgstr "konnte %s nicht schreiben"
 
-#: builtin/merge.c:876
+#: builtin/merge.c:773
 #, c-format
 msgid "Could not read from '%s'"
 msgstr "konnte nicht von '%s' lesen"
 
-#: builtin/merge.c:885
+#: builtin/merge.c:782
 #, c-format
 msgid "Not committing merge; use 'git commit' to complete the merge.\n"
 msgstr ""
 "Zusammenführung wurde nicht eingetragen; benutze 'git commit' um die "
 "Zusammenführung abzuschließen.\n"
 
-#: builtin/merge.c:891
+#: builtin/merge.c:788
 msgid ""
 "Please enter a commit message to explain why this merge is necessary,\n"
 "especially if it merges an updated upstream into a topic branch.\n"
@@ -3930,56 +5975,56 @@ msgstr ""
 "Zeilen beginnend mit '#' werden ignoriert, und eine leere Beschreibung "
 "bricht die Eintragung ab.\n"
 
-#: builtin/merge.c:915
+#: builtin/merge.c:812
 msgid "Empty commit message."
 msgstr "Leere Versionsbeschreibung"
 
-#: builtin/merge.c:927
+#: builtin/merge.c:824
 #, c-format
 msgid "Wonderful.\n"
 msgstr "Wunderbar.\n"
 
-#: builtin/merge.c:992
+#: builtin/merge.c:889
 #, c-format
 msgid "Automatic merge failed; fix conflicts and then commit the result.\n"
 msgstr ""
 "Automatische Zusammenführung fehlgeschlagen; behebe die Konflikte und trage "
 "dann das Ergebnis ein.\n"
 
-#: builtin/merge.c:1008
+#: builtin/merge.c:905
 #, c-format
 msgid "'%s' is not a commit"
 msgstr "'%s' ist keine Version"
 
-#: builtin/merge.c:1049
+#: builtin/merge.c:946
 msgid "No current branch."
 msgstr "Du befindest dich auf keinem Zweig."
 
-#: builtin/merge.c:1051
+#: builtin/merge.c:948
 msgid "No remote for the current branch."
 msgstr "Kein externes Archiv für den aktuellen Zweig."
 
-#: builtin/merge.c:1053
+#: builtin/merge.c:950
 msgid "No default upstream defined for the current branch."
 msgstr ""
 "Es ist kein externes Standard-Projektarchiv für den aktuellen Zweig "
 "definiert."
 
-#: builtin/merge.c:1058
+#: builtin/merge.c:955
 #, c-format
 msgid "No remote tracking branch for %s from %s"
 msgstr "Kein externer Übernahmezweig für %s von %s"
 
-#: builtin/merge.c:1145 builtin/merge.c:1302
+#: builtin/merge.c:1042 builtin/merge.c:1199
 #, c-format
 msgid "%s - not something we can merge"
 msgstr "%s - nichts was wir zusammenführen können"
 
-#: builtin/merge.c:1213
+#: builtin/merge.c:1110
 msgid "There is no merge to abort (MERGE_HEAD missing)."
 msgstr "Es gibt keine Zusammenführung zum Abbrechen (vermisse MERGE_HEAD)"
 
-#: builtin/merge.c:1229 git-pull.sh:31
+#: builtin/merge.c:1126 git-pull.sh:31
 msgid ""
 "You have not concluded your merge (MERGE_HEAD exists).\n"
 "Please, commit your changes before you can merge."
@@ -3987,12 +6032,12 @@ msgstr ""
 "Du hast deine Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert).\n"
 "Bitte trage deine Änderungen ein, bevor du zusammenführen kannst."
 
-#: builtin/merge.c:1232 git-pull.sh:34
+#: builtin/merge.c:1129 git-pull.sh:34
 msgid "You have not concluded your merge (MERGE_HEAD exists)."
 msgstr ""
 "Du hast deine Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert)."
 
-#: builtin/merge.c:1236
+#: builtin/merge.c:1133
 msgid ""
 "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
 "Please, commit your changes before you can merge."
@@ -4000,86 +6045,186 @@ msgstr ""
 "Du hast \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n"
 "Bitte trage deine Änderungen ein, bevor du zusammenführen kannst."
 
-#: builtin/merge.c:1239
+#: builtin/merge.c:1136
 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)."
 msgstr ""
 "Du hast \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)."
 
-#: builtin/merge.c:1248
+#: builtin/merge.c:1145
 msgid "You cannot combine --squash with --no-ff."
 msgstr "Du kannst --squash nicht mit --no-ff kombinieren."
 
-#: builtin/merge.c:1253
+#: builtin/merge.c:1150
 msgid "You cannot combine --no-ff with --ff-only."
 msgstr "Du kannst --no-ff nicht mit --ff--only kombinieren."
 
-#: builtin/merge.c:1260
+#: builtin/merge.c:1157
 msgid "No commit specified and merge.defaultToUpstream not set."
 msgstr "Keine Version angegeben und merge.defaultToUpstream ist nicht gesetzt."
 
-#: builtin/merge.c:1292
+#: builtin/merge.c:1189
 msgid "Can merge only exactly one commit into empty head"
 msgstr "Kann nur exakt eine Version in einem leeren Zweig zusammenführen."
 
-#: builtin/merge.c:1295
+#: builtin/merge.c:1192
 msgid "Squash commit into empty head not supported yet"
 msgstr "Bin auf einem Zweig, der noch geboren wird; kann nicht quetschen."
 
-#: builtin/merge.c:1297
+#: builtin/merge.c:1194
 msgid "Non-fast-forward commit does not make sense into an empty head"
 msgstr "nicht vorzuspulende Version macht in einem leeren Zweig keinen Sinn"
 
-#: builtin/merge.c:1412
+#: builtin/merge.c:1309
 #, c-format
 msgid "Updating %s..%s\n"
 msgstr "Aktualisiere %s..%s\n"
 
-#: builtin/merge.c:1450
+#: builtin/merge.c:1348
 #, c-format
 msgid "Trying really trivial in-index merge...\n"
 msgstr "Probiere wirklich triviale \"in-index\"-Zusammenführung...\n"
 
-#: builtin/merge.c:1457
+#: builtin/merge.c:1355
 #, c-format
 msgid "Nope.\n"
 msgstr "Nein.\n"
 
-#: builtin/merge.c:1489
+#: builtin/merge.c:1387
 msgid "Not possible to fast-forward, aborting."
 msgstr "Vorspulen nicht möglich, breche ab."
 
-#: builtin/merge.c:1512 builtin/merge.c:1591
+#: builtin/merge.c:1410 builtin/merge.c:1489
 #, c-format
 msgid "Rewinding the tree to pristine...\n"
 msgstr "Rücklauf des Zweiges bis zum Ursprung...\n"
 
-#: builtin/merge.c:1516
+#: builtin/merge.c:1414
 #, c-format
 msgid "Trying merge strategy %s...\n"
 msgstr "Probiere Zusammenführungsstrategie %s...\n"
 
-#: builtin/merge.c:1582
+#: builtin/merge.c:1480
 #, c-format
 msgid "No merge strategy handled the merge.\n"
 msgstr "Keine Zusammenführungsstrategie behandelt diese Zusammenführung.\n"
 
-#: builtin/merge.c:1584
+#: builtin/merge.c:1482
 #, c-format
 msgid "Merge with strategy %s failed.\n"
 msgstr "Zusammenführung mit Strategie %s fehlgeschlagen.\n"
 
-#: builtin/merge.c:1593
+#: builtin/merge.c:1491
 #, c-format
 msgid "Using the %s to prepare resolving by hand.\n"
 msgstr "Benutze \"%s\" um die Auflösung per Hand vorzubereiten.\n"
 
-#: builtin/merge.c:1605
+#: builtin/merge.c:1503
 #, c-format
 msgid "Automatic merge went well; stopped before committing as requested\n"
 msgstr ""
 "Automatische Zusammenführung abgeschlossen; halte, wie gewünscht, vor der "
 "Eintragung an\n"
 
+#: builtin/merge-base.c:26
+msgid "git merge-base [-a|--all]  ..."
+msgstr "git merge-base [-a|--all]  ..."
+
+#: builtin/merge-base.c:27
+msgid "git merge-base [-a|--all] --octopus ..."
+msgstr "git merge-base [-a|--all] --octopus ..."
+
+#: builtin/merge-base.c:28
+msgid "git merge-base --independent ..."
+msgstr "git merge-base --independent ..."
+
+#: builtin/merge-base.c:29
+msgid "git merge-base --is-ancestor  "
+msgstr "git merge-base --is-ancestor  "
+
+#: builtin/merge-base.c:98
+msgid "output all common ancestors"
+msgstr "Ausgabe aller gemeinsamen Vorfahren"
+
+#: builtin/merge-base.c:99
+msgid "find ancestors for a single n-way merge"
+msgstr "findet Vorfahren für eine einzelne n-Wege-Zusammenführung"
+
+#: builtin/merge-base.c:100
+msgid "list revs not reachable from others"
+msgstr "listet Revisionen auf, die nicht durch Andere erreichbar sind"
+
+#: builtin/merge-base.c:102
+msgid "is the first one ancestor of the other?"
+msgstr "ist der Erste ein Vorfahre von dem Anderen?"
+
+#: builtin/merge-file.c:8
+msgid ""
+"git merge-file [options] [-L name1 [-L orig [-L name2]]] file1 orig_file "
+"file2"
+msgstr ""
+"git merge-file [Optionen] [-L Name1 [-L orig [-L Name2]]] Datei1 orig_Datei "
+"Datei2"
+
+#: builtin/merge-file.c:33
+msgid "send results to standard output"
+msgstr "sendet Ergebnisse zur Standard-Ausgabe"
+
+#: builtin/merge-file.c:34
+msgid "use a diff3 based merge"
+msgstr "benutzt eine diff3 basierte Zusammenführung"
+
+#: builtin/merge-file.c:35
+msgid "for conflicts, use our version"
+msgstr "verwendet bei Konflikten unsere Variante"
+
+#: builtin/merge-file.c:37
+msgid "for conflicts, use their version"
+msgstr "verwendet bei Konflikten ihre Variante"
+
+#: builtin/merge-file.c:39
+msgid "for conflicts, use a union version"
+msgstr "verwendet bei Konflikten eine gemeinsame Variante"
+
+#: builtin/merge-file.c:42
+msgid "for conflicts, use this marker size"
+msgstr "verwendet bei Konflikten diese Kennzeichnungslänge"
+
+#: builtin/merge-file.c:43
+msgid "do not warn about conflicts"
+msgstr "keine Warnung bei Konflikten"
+
+#: builtin/merge-file.c:45
+msgid "set labels for file1/orig_file/file2"
+msgstr "setzt Beschriftung für Datei1/orig_Datei/Datei2"
+
+#: builtin/mktree.c:67
+msgid "git mktree [-z] [--missing] [--batch]"
+msgstr "git mktree [-z] [--missing] [--batch]"
+
+#: builtin/mktree.c:153
+msgid "input is NUL terminated"
+msgstr "Eingabe ist durch NUL-Zeichen abgeschlossen"
+
+#: builtin/mktree.c:154 builtin/write-tree.c:24
+msgid "allow missing objects"
+msgstr "erlaubt fehlende Objekte"
+
+#: builtin/mktree.c:155
+msgid "allow creation of more than one tree"
+msgstr "erlaubt die Erstellung von mehr als einem Baum"
+
+#: builtin/mv.c:14
+msgid "git mv [options] ... "
+msgstr "git mv [Optionen] ... "
+
+#: builtin/mv.c:64
+msgid "force move/rename even if target exists"
+msgstr "erzwingt Verschieben/Umbenennen, auch wenn das Ziel existiert"
+
+#: builtin/mv.c:65
+msgid "skip move/rename errors"
+msgstr "überspringt Fehler beim Verschieben oder Umbenennen"
+
 #: builtin/mv.c:108
 #, c-format
 msgid "Checking rename of '%s' to '%s'\n"
@@ -4142,115 +6287,288 @@ msgstr "Benenne %s nach %s um\n"
 msgid "renaming '%s' failed"
 msgstr "Umbenennung von '%s' fehlgeschlagen"
 
-#: builtin/notes.c:139
+#: builtin/name-rev.c:175
+msgid "git name-rev [options] ..."
+msgstr "git name-rev [Optionen] ..."
+
+#: builtin/name-rev.c:176
+msgid "git name-rev [options] --all"
+msgstr "git name-rev [Optionen] --all"
+
+#: builtin/name-rev.c:177
+msgid "git name-rev [options] --stdin"
+msgstr "git name-rev [Optionen] --stdin"
+
+#: builtin/name-rev.c:229
+msgid "print only names (no SHA-1)"
+msgstr "zeigt nur Namen an (keine SHA-1)"
+
+#: builtin/name-rev.c:230
+msgid "only use tags to name the commits"
+msgstr "benutzt nur Markierungen um die Versionen zu benennen"
+
+#: builtin/name-rev.c:232
+msgid "only use refs matching "
+msgstr "benutzt nur Referenzen die  entsprechen"
+
+#: builtin/name-rev.c:234
+msgid "list all commits reachable from all refs"
+msgstr "listet alle Versionen auf, die von allen Referenzen erreichbar sind"
+
+#: builtin/name-rev.c:235
+msgid "read from stdin"
+msgstr "liest von der Standard-Eingabe"
+
+#: builtin/name-rev.c:236
+msgid "allow to print `undefined` names"
+msgstr "erlaubt Ausgabe von `undefinierten` Namen"
+
+#: builtin/notes.c:26
+msgid "git notes [--ref ] [list []]"
+msgstr "git notes [--ref ] [list []]"
+
+#: builtin/notes.c:27
+msgid ""
+"git notes [--ref ] add [-f] [-m  | -F  | (-c | -C) "
+"] []"
+msgstr ""
+"git notes [--ref ] add [-f] [-m  | -F  | (-"
+"c | -C) ] []"
+
+#: builtin/notes.c:28
+msgid "git notes [--ref ] copy [-f]  "
+msgstr ""
+"git notes [--ref ] copy [-f]  "
+
+#: builtin/notes.c:29
+msgid ""
+"git notes [--ref ] append [-m  | -F  | (-c | -C) "
+"] []"
+msgstr ""
+"git notes [--ref ] append [-m  | -F  | (-c "
+"| -C) ] []"
+
+#: builtin/notes.c:30
+msgid "git notes [--ref ] edit []"
+msgstr "git notes [--ref ] edit []"
+
+#: builtin/notes.c:31
+msgid "git notes [--ref ] show []"
+msgstr "git notes [--ref ] show []"
+
+#: builtin/notes.c:32
+msgid ""
+"git notes [--ref ] merge [-v | -q] [-s  ] "
+msgstr ""
+"git notes [--ref ] merge [-v | -q] [-s  ] "
+
+#: builtin/notes.c:33
+msgid "git notes merge --commit [-v | -q]"
+msgstr "git notes merge --commit [-v | -q]"
+
+#: builtin/notes.c:34
+msgid "git notes merge --abort [-v | -q]"
+msgstr "git notes merge --abort [-v | -q]"
+
+#: builtin/notes.c:35
+msgid "git notes [--ref ] remove [...]"
+msgstr "git notes [--ref ] remove [...]"
+
+#: builtin/notes.c:36
+msgid "git notes [--ref ] prune [-n | -v]"
+msgstr "git notes [--ref ] prune [-n | -v]"
+
+#: builtin/notes.c:37
+msgid "git notes [--ref ] get-ref"
+msgstr "git notes [--ref ] get-ref"
+
+#: builtin/notes.c:42
+msgid "git notes [list []]"
+msgstr "git notes [list []]"
+
+#: builtin/notes.c:47
+msgid "git notes add [] []"
+msgstr "git notes add [] []"
+
+#: builtin/notes.c:52
+msgid "git notes copy []  "
+msgstr "git notes copy []  "
+
+#: builtin/notes.c:53
+msgid "git notes copy --stdin [ ]..."
+msgstr "git notes copy --stdin [ ]..."
+
+#: builtin/notes.c:58
+msgid "git notes append [] []"
+msgstr "git notes append [] []"
+
+#: builtin/notes.c:63
+msgid "git notes edit []"
+msgstr "git notes edit []"
+
+#: builtin/notes.c:68
+msgid "git notes show []"
+msgstr "git notes show []"
+
+#: builtin/notes.c:73
+msgid "git notes merge [] "
+msgstr "git notes merge [] "
+
+#: builtin/notes.c:74
+msgid "git notes merge --commit []"
+msgstr "git notes merge --commit []"
+
+#: builtin/notes.c:75
+msgid "git notes merge --abort []"
+msgstr "git notes merge --abort []"
+
+#: builtin/notes.c:80
+msgid "git notes remove []"
+msgstr "git notes remove []"
+
+#: builtin/notes.c:85
+msgid "git notes prune []"
+msgstr "git notes prune []"
+
+#: builtin/notes.c:90
+msgid "git notes get-ref"
+msgstr "git notes get-ref"
+
+#: builtin/notes.c:142
 #, c-format
 msgid "unable to start 'show' for object '%s'"
 msgstr "konnte 'show' für Objekt '%s' nicht starten"
 
-#: builtin/notes.c:145
+#: builtin/notes.c:148
 msgid "can't fdopen 'show' output fd"
 msgstr "konnte Datei-Deskriptor für Ausgabe von 'show' nicht öffnen"
 
-#: builtin/notes.c:155
+#: builtin/notes.c:158
 #, c-format
 msgid "failed to close pipe to 'show' for object '%s'"
 msgstr "Schließen der Verbindung zu 'show' ist für Objekt '%s' fehlgeschlagen."
 
-#: builtin/notes.c:158
+#: builtin/notes.c:161
 #, c-format
 msgid "failed to finish 'show' for object '%s'"
 msgstr "konnte 'show' für Objekt '%s' nicht abschließen"
 
-#: builtin/notes.c:175 builtin/tag.c:347
+#: builtin/notes.c:178 builtin/tag.c:347
 #, c-format
 msgid "could not create file '%s'"
 msgstr "konnte Datei '%s' nicht erstellen"
 
-#: builtin/notes.c:189
+#: builtin/notes.c:192
 msgid "Please supply the note contents using either -m or -F option"
 msgstr "Bitte liefere den Notiz-Inhalt unter Verwendung der Option -m oder -F."
 
-#: builtin/notes.c:210 builtin/notes.c:973
+#: builtin/notes.c:213 builtin/notes.c:976
 #, c-format
 msgid "Removing note for object %s\n"
 msgstr "Entferne Notiz für Objekt %s\n"
 
-#: builtin/notes.c:215
+#: builtin/notes.c:218
 msgid "unable to write note object"
 msgstr "Konnte Notiz-Objekt nicht schreiben"
 
-#: builtin/notes.c:217
+#: builtin/notes.c:220
 #, c-format
 msgid "The note contents has been left in %s"
 msgstr "Die Notiz-Inhalte wurden in %s belassen"
 
-#: builtin/notes.c:251 builtin/tag.c:542
+#: builtin/notes.c:254 builtin/tag.c:542
 #, c-format
 msgid "cannot read '%s'"
 msgstr "kann '%s' nicht lesen"
 
-#: builtin/notes.c:253 builtin/tag.c:545
+#: builtin/notes.c:256 builtin/tag.c:545
 #, c-format
 msgid "could not open or read '%s'"
 msgstr "konnte '%s' nicht öffnen oder lesen"
 
-#: builtin/notes.c:272 builtin/notes.c:445 builtin/notes.c:447
-#: builtin/notes.c:507 builtin/notes.c:561 builtin/notes.c:644
-#: builtin/notes.c:649 builtin/notes.c:724 builtin/notes.c:766
-#: builtin/notes.c:968 builtin/reset.c:293 builtin/tag.c:558
+#: builtin/notes.c:275 builtin/notes.c:448 builtin/notes.c:450
+#: builtin/notes.c:510 builtin/notes.c:564 builtin/notes.c:647
+#: builtin/notes.c:652 builtin/notes.c:727 builtin/notes.c:769
+#: builtin/notes.c:971 builtin/reset.c:293 builtin/tag.c:558
 #, c-format
 msgid "Failed to resolve '%s' as a valid ref."
 msgstr "Konnte '%s' nicht als gültige Referenz auflösen."
 
-#: builtin/notes.c:275
+#: builtin/notes.c:278
 #, c-format
 msgid "Failed to read object '%s'."
 msgstr "Fehler beim Lesen des Objektes '%s'."
 
-#: builtin/notes.c:299
+#: builtin/notes.c:302
 msgid "Cannot commit uninitialized/unreferenced notes tree"
 msgstr "Kann uninitialisierten/unreferenzierten Notiz-Baum nicht eintragen."
 
-#: builtin/notes.c:340
+#: builtin/notes.c:343
 #, c-format
 msgid "Bad notes.rewriteMode value: '%s'"
 msgstr "Ungültiger notes.rewriteMode Wert: '%s'"
 
-#: builtin/notes.c:350
+#: builtin/notes.c:353
 #, c-format
 msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
 msgstr ""
-"Neuschreiben der Notizen in %s zurückgewiesen (außerhalb von refs/notes/)"
+"Umschreiben der Notizen in %s zurückgewiesen (außerhalb von refs/notes/)"
 
 #. TRANSLATORS: The first %s is the name of the
 #. environment variable, the second %s is its value
-#: builtin/notes.c:377
+#: builtin/notes.c:380
 #, c-format
 msgid "Bad %s value: '%s'"
 msgstr "Ungültiger %s Wert: '%s'"
 
-#: builtin/notes.c:441
+#: builtin/notes.c:444
 #, c-format
 msgid "Malformed input line: '%s'."
 msgstr "Fehlerhafte Eingabezeile: '%s'."
 
-#: builtin/notes.c:456
+#: builtin/notes.c:459
 #, c-format
 msgid "Failed to copy notes from '%s' to '%s'"
 msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'"
 
-#: builtin/notes.c:500 builtin/notes.c:554 builtin/notes.c:627
-#: builtin/notes.c:639 builtin/notes.c:712 builtin/notes.c:759
-#: builtin/notes.c:1033
+#: builtin/notes.c:503 builtin/notes.c:557 builtin/notes.c:630
+#: builtin/notes.c:642 builtin/notes.c:715 builtin/notes.c:762
+#: builtin/notes.c:1036
 msgid "too many parameters"
 msgstr "zu viele Parameter"
 
-#: builtin/notes.c:513 builtin/notes.c:772
+#: builtin/notes.c:516 builtin/notes.c:775
 #, c-format
 msgid "No note found for object %s."
 msgstr "Kein Notiz für Objekt %s gefunden."
 
-#: builtin/notes.c:580
+#: builtin/notes.c:538 builtin/notes.c:695
+msgid "note contents as a string"
+msgstr "Notizinhalte als Zeichenkette"
+
+#: builtin/notes.c:541 builtin/notes.c:698
+msgid "note contents in a file"
+msgstr "Notizinhalte in einer Datei"
+
+#: builtin/notes.c:543 builtin/notes.c:546 builtin/notes.c:700
+#: builtin/notes.c:703 builtin/tag.c:476
+msgid "object"
+msgstr "Objekt"
+
+#: builtin/notes.c:544 builtin/notes.c:701
+msgid "reuse and edit specified note object"
+msgstr "Wiederverwendung und Bearbeitung des angegebenen Notiz-Objektes"
+
+#: builtin/notes.c:547 builtin/notes.c:704
+msgid "reuse specified note object"
+msgstr "Wiederverwendung des angegebenen Notiz-Objektes"
+
+#: builtin/notes.c:549 builtin/notes.c:617
+msgid "replace existing notes"
+msgstr "ersetzt existierende Notizen"
+
+#: builtin/notes.c:583
 #, c-format
 msgid ""
 "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -4259,16 +6577,26 @@ msgstr ""
 "Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s "
 "gefunden. Verwende '-f' um die existierenden Notizen zu überschreiben."
 
-#: builtin/notes.c:585 builtin/notes.c:662
+#: builtin/notes.c:588 builtin/notes.c:665
 #, c-format
 msgid "Overwriting existing notes for object %s\n"
 msgstr "Überschreibe existierende Notizen für Objekt %s\n"
 
-#: builtin/notes.c:635
+#: builtin/notes.c:618
+msgid "read objects from stdin"
+msgstr "liest Objekte von der Standard-Eingabe"
+
+#: builtin/notes.c:620
+msgid "load rewriting config for  (implies --stdin)"
+msgstr ""
+"lädt Konfiguration für  beim Umschreiben von Versionen (impliziert "
+"--stdin)"
+
+#: builtin/notes.c:638
 msgid "too few parameters"
 msgstr "zu wenig Parameter"
 
-#: builtin/notes.c:656
+#: builtin/notes.c:659
 #, c-format
 msgid ""
 "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite "
@@ -4277,12 +6605,12 @@ msgstr ""
 "Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. "
 "Verwende '-f' um die existierenden Notizen zu überschreiben."
 
-#: builtin/notes.c:668
+#: builtin/notes.c:671
 #, c-format
 msgid "Missing notes on source object %s. Cannot copy."
 msgstr "Keine Notizen für Quell-Objekt %s. Kopie nicht möglich."
 
-#: builtin/notes.c:717
+#: builtin/notes.c:720
 #, c-format
 msgid ""
 "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
@@ -4291,41 +6619,264 @@ msgstr ""
 "Die Optionen -m/-F/-c/-C sind für das Unterkommando 'edit' veraltet.\n"
 "Bitte benutze stattdessen 'git notes add -f -m/-F/-c/-C'.\n"
 
-#: builtin/notes.c:971
+#: builtin/notes.c:867
+msgid "General options"
+msgstr "Allgemeine Optionen"
+
+#: builtin/notes.c:869
+msgid "Merge options"
+msgstr "Optionen für Zusammenführung"
+
+#: builtin/notes.c:871
+msgid ""
+"resolve notes conflicts using the given strategy (manual/ours/theirs/union/"
+"cat_sort_uniq)"
+msgstr ""
+"löst Konflikte bei Notizen mit der angegebenen Strategie auf (manual/ours/"
+"theirs/union/cat_sort_uniq)"
+
+#: builtin/notes.c:873
+msgid "Committing unmerged notes"
+msgstr "trägt nicht zusammengeführte Notizen ein"
+
+#: builtin/notes.c:875
+msgid "finalize notes merge by committing unmerged notes"
+msgstr ""
+"schließt Zusammenführung von Notizen ab, in dem nicht zusammengeführte "
+"Notizen eingetragen werden"
+
+#: builtin/notes.c:877
+msgid "Aborting notes merge resolution"
+msgstr "bricht Konfliktauflösung bei Zusammenführung von Notizen ab"
+
+#: builtin/notes.c:879
+msgid "abort notes merge"
+msgstr "bricht Zusammenführung von Notizen ab"
+
+#: builtin/notes.c:974
 #, c-format
 msgid "Object %s has no note\n"
 msgstr "Objekt %s hat keine Notiz\n"
 
-#: builtin/notes.c:1103 builtin/remote.c:1598
+#: builtin/notes.c:986
+msgid "attempt to remove non-existent note is not an error"
+msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler"
+
+#: builtin/notes.c:989
+msgid "read object names from the standard input"
+msgstr "liest Objektnamen von der Standard-Eingabe"
+
+#: builtin/notes.c:1070
+msgid "notes_ref"
+msgstr "Notiz-Referenz"
+
+#: builtin/notes.c:1071
+msgid "use notes from "
+msgstr "benutzt Notizen von "
+
+#: builtin/notes.c:1106 builtin/remote.c:1598
 #, c-format
 msgid "Unknown subcommand: %s"
 msgstr "Unbekanntes Unterkommando: %s"
 
+#: builtin/pack-objects.c:23
+msgid "git pack-objects --stdout [options...] [< ref-list | < object-list]"
+msgstr ""
+"git pack-objects --stdout [Optionen...] [< Referenzliste | < Objektliste]"
+
+#: builtin/pack-objects.c:24
+msgid "git pack-objects [options...] base-name [< ref-list | < object-list]"
+msgstr ""
+"git pack-objects [Optionen...] Basis-Name [< Referenzliste | < Objektliste]"
+
 #: builtin/pack-objects.c:183 builtin/pack-objects.c:186
 #, c-format
 msgid "deflate error (%d)"
 msgstr "Fehler beim Komprimieren (%d)"
 
-#: builtin/pack-objects.c:2398
+#: builtin/pack-objects.c:2397
 #, c-format
 msgid "unsupported index version %s"
 msgstr "Nicht unterstützte Bereitstellungsversion %s"
 
-#: builtin/pack-objects.c:2402
+#: builtin/pack-objects.c:2401
 #, c-format
 msgid "bad index version '%s'"
 msgstr "Ungültige Bereitstellungsversion '%s'"
 
-#: builtin/pack-objects.c:2425
+#: builtin/pack-objects.c:2424
 #, c-format
 msgid "option %s does not accept negative form"
 msgstr "Option %s akzeptiert keine negative Form"
 
-#: builtin/pack-objects.c:2429
+#: builtin/pack-objects.c:2428
 #, c-format
 msgid "unable to parse value '%s' for option %s"
 msgstr "konnte Wert '%s' für Option %s nicht parsen"
 
+#: builtin/pack-objects.c:2447
+msgid "do not show progress meter"
+msgstr "zeigt keine Fortschrittsanzeige"
+
+#: builtin/pack-objects.c:2449
+msgid "show progress meter"
+msgstr "zeigt Fortschrittsanzeige"
+
+#: builtin/pack-objects.c:2451
+msgid "show progress meter during object writing phase"
+msgstr "zeigt Forschrittsanzeige während der Phase des Schreibens der Objekte"
+
+#: builtin/pack-objects.c:2454
+msgid "similar to --all-progress when progress meter is shown"
+msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird"
+
+#: builtin/pack-objects.c:2455
+msgid "version[,offset]"
+msgstr "version[,offset]"
+
+#: builtin/pack-objects.c:2456
+msgid "write the pack index file in the specified idx format version"
+msgstr ""
+"schreibt die Index-Datei des Paketes in der angegebenen Indexformat-Version"
+
+#: builtin/pack-objects.c:2459
+msgid "maximum size of each output pack file"
+msgstr "maximale Größe für jede ausgegebene Paketdatei"
+
+#: builtin/pack-objects.c:2461
+msgid "ignore borrowed objects from alternate object store"
+msgstr "ignoriert geliehene Objekte von alternativem Objektspeicher"
+
+#: builtin/pack-objects.c:2463
+msgid "ignore packed objects"
+msgstr "ignoriert gepackte Objekte"
+
+#: builtin/pack-objects.c:2465
+msgid "limit pack window by objects"
+msgstr "begrenzt Paketfenster durch Objekte"
+
+#: builtin/pack-objects.c:2467
+msgid "limit pack window by memory in addition to object limit"
+msgstr "begrenzt Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher"
+
+#: builtin/pack-objects.c:2469
+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:2471
+msgid "reuse existing deltas"
+msgstr "verwendet existierende Unterschiede wieder"
+
+#: builtin/pack-objects.c:2473
+msgid "reuse existing objects"
+msgstr "verwendet existierende Objekte wieder"
+
+#: builtin/pack-objects.c:2475
+msgid "use OFS_DELTA objects"
+msgstr "benutzt OFS_DELTA Objekte"
+
+#: builtin/pack-objects.c:2477
+msgid "use threads when searching for best delta matches"
+msgstr ""
+"benutzt Threads bei der Suche nach den besten Übereinstimmungen bei "
+"Unterschieden"
+
+#: builtin/pack-objects.c:2479
+msgid "do not create an empty pack output"
+msgstr "erzeugt keine leeren Pakete"
+
+#: builtin/pack-objects.c:2481
+msgid "read revision arguments from standard input"
+msgstr "liest Argumente bezüglich Revisionen von der Standard-Eingabe"
+
+#: builtin/pack-objects.c:2483
+msgid "limit the objects to those that are not yet packed"
+msgstr "begrenzt die Objekte zu solchen, die noch nicht gepackt wurden"
+
+#: builtin/pack-objects.c:2486
+msgid "include objects reachable from any reference"
+msgstr "schließt Objekte ein, die von jeder Referenz erreichbar sind"
+
+#: builtin/pack-objects.c:2489
+msgid "include objects referred by reflog entries"
+msgstr ""
+"schließt Objekte ein, die von Einträgen des Referenzprotokolls referenziert "
+"werden"
+
+#: builtin/pack-objects.c:2492
+msgid "output pack to stdout"
+msgstr "schreibt Paket in die Standard-Ausgabe"
+
+#: builtin/pack-objects.c:2494
+msgid "include tag objects that refer to objects to be packed"
+msgstr ""
+"schließt Markierungsobjekte ein, die auf gepackte Objekte referenzieren"
+
+#: builtin/pack-objects.c:2496
+msgid "keep unreachable objects"
+msgstr "behält nicht erreichbare Objekte"
+
+#: builtin/pack-objects.c:2497 parse-options.h:141
+msgid "time"
+msgstr "Zeit"
+
+#: builtin/pack-objects.c:2498
+msgid "unpack unreachable objects newer than