Compare commits
56 Commits
v2.40.0-rc
...
v2.38.5
Author | SHA1 | Date | |
---|---|---|---|
ec58344906 | |||
c96ecfe6a5 | |||
d27ae36bbb | |||
1df551ce5c | |||
ecaa3db171 | |||
62298def14 | |||
7380a72f6b | |||
8cd052ea53 | |||
abcb63fb70 | |||
d6e9f67a8e | |||
3a19048ce4 | |||
bcd874d50f | |||
b8787a98db | |||
31f7fe5e34 | |||
ea56f91275 | |||
92957d8427 | |||
b524e896b6 | |||
668f2d5361 | |||
528290f8c6 | |||
4fe5d0b10a | |||
18e2b1cfc8 | |||
3bb3d6bac5 | |||
e91cfe6085 | |||
a5bb10fd5e | |||
c4137be0f5 | |||
29198213c9 | |||
9db05711c9 | |||
2f3b28f272 | |||
4989c35688 | |||
fef08dd32e | |||
8453685d04 | |||
e4cb3693a4 | |||
3c7896e362 | |||
6f5ff3aa31 | |||
0737200a06 | |||
0a1dc55c40 | |||
5843080c85 | |||
321854ac46 | |||
0c8d22abaf | |||
7c811ed5e5 | |||
a2b2173cfe | |||
c025b4b2f1 | |||
d99728b2ca | |||
a36df79a37 | |||
e4298ccd7f | |||
8516dac1e1 | |||
07f91e5e79 | |||
a69043d510 | |||
18bc8eb7b5 | |||
b0e3e2d06b | |||
fda237cb64 | |||
86f6f4fa91 | |||
79e0626b39 | |||
20854bc47a | |||
c03ffcff4e | |||
417fb91b5d |
22
.gitattributes
vendored
22
.gitattributes
vendored
@ -1,17 +1,17 @@
|
||||
* whitespace=!indent,trail,space
|
||||
*.[ch] whitespace=indent,trail,space diff=cpp
|
||||
*.sh whitespace=indent,trail,space text eol=lf
|
||||
*.perl text eol=lf diff=perl
|
||||
*.pl text eof=lf diff=perl
|
||||
*.pm text eol=lf diff=perl
|
||||
*.py text eol=lf diff=python
|
||||
*.bat text eol=crlf
|
||||
*.sh whitespace=indent,trail,space eol=lf
|
||||
*.perl eol=lf diff=perl
|
||||
*.pl eof=lf diff=perl
|
||||
*.pm eol=lf diff=perl
|
||||
*.py eol=lf diff=python
|
||||
*.bat eol=crlf
|
||||
CODE_OF_CONDUCT.md -whitespace
|
||||
/Documentation/**/*.txt text eol=lf
|
||||
/command-list.txt text eol=lf
|
||||
/GIT-VERSION-GEN text eol=lf
|
||||
/mergetools/* text eol=lf
|
||||
/t/oid-info/* text eol=lf
|
||||
/Documentation/**/*.txt eol=lf
|
||||
/command-list.txt eol=lf
|
||||
/GIT-VERSION-GEN eol=lf
|
||||
/mergetools/* eol=lf
|
||||
/t/oid-info/* eol=lf
|
||||
/Documentation/git-merge.txt conflict-marker-size=32
|
||||
/Documentation/gitk.txt conflict-marker-size=32
|
||||
/Documentation/user-manual.txt conflict-marker-size=32
|
||||
|
63
.github/workflows/check-whitespace.yml
vendored
63
.github/workflows/check-whitespace.yml
vendored
@ -9,83 +9,42 @@ on:
|
||||
pull_request:
|
||||
types: [opened, synchronize]
|
||||
|
||||
# Avoid unnecessary builds. Unlike the main CI jobs, these are not
|
||||
# ci-configurable (but could be).
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
check-whitespace:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: git log --check
|
||||
id: check_out
|
||||
run: |
|
||||
baseSha=${{github.event.pull_request.base.sha}}
|
||||
problems=()
|
||||
log=
|
||||
commit=
|
||||
commitText=
|
||||
commitTextmd=
|
||||
goodparent=
|
||||
while read dash sha etc
|
||||
while read dash etc
|
||||
do
|
||||
case "${dash}" in
|
||||
"---")
|
||||
if test -z "${commit}"
|
||||
then
|
||||
goodparent=${sha}
|
||||
fi
|
||||
commit="${sha}"
|
||||
commitText="${sha} ${etc}"
|
||||
commitTextmd="[${sha}](https://github.com/${{ github.repository }}/commit/${sha}) ${etc}"
|
||||
commit="${etc}"
|
||||
;;
|
||||
"")
|
||||
;;
|
||||
*)
|
||||
if test -n "${commit}"
|
||||
then
|
||||
problems+=("1) --- ${commitTextmd}")
|
||||
log="${log}\n${commit}"
|
||||
echo ""
|
||||
echo "--- ${commitText}"
|
||||
echo "--- ${commit}"
|
||||
fi
|
||||
commit=
|
||||
fi
|
||||
case "${dash}" in
|
||||
*:[1-9]*:) # contains file and line number information
|
||||
dashend=${dash#*:}
|
||||
problems+=("[${dash}](https://github.com/${{ github.repository }}/blob/${{github.event.pull_request.head.ref}}/${dash%%:*}#L${dashend%:}) ${sha} ${etc}")
|
||||
;;
|
||||
*)
|
||||
problems+=("\`${dash} ${sha} ${etc}\`")
|
||||
log="${log}\n${dash} ${etc}"
|
||||
echo "${dash} ${etc}"
|
||||
;;
|
||||
esac
|
||||
echo "${dash} ${sha} ${etc}"
|
||||
;;
|
||||
esac
|
||||
done <<< $(git log --check --pretty=format:"---% h% s" ${baseSha}..)
|
||||
done <<< $(git log --check --pretty=format:"---% h% s" ${{github.event.pull_request.base.sha}}..)
|
||||
|
||||
if test ${#problems[*]} -gt 0
|
||||
if test -n "${log}"
|
||||
then
|
||||
if test -z "${commit}"
|
||||
then
|
||||
goodparent=${baseSha: 0:7}
|
||||
fi
|
||||
echo "🛑 Please review the Summary output for further information."
|
||||
echo "### :x: A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY
|
||||
echo "" >>$GITHUB_STEP_SUMMARY
|
||||
echo "Run these commands to correct the problem:" >>$GITHUB_STEP_SUMMARY
|
||||
echo "1. \`git rebase --whitespace=fix ${goodparent}\`" >>$GITHUB_STEP_SUMMARY
|
||||
echo "1. \`git push --force\`" >>$GITHUB_STEP_SUMMARY
|
||||
echo " " >>$GITHUB_STEP_SUMMARY
|
||||
echo "Errors:" >>$GITHUB_STEP_SUMMARY
|
||||
for i in "${problems[@]}"
|
||||
do
|
||||
echo "${i}" >>$GITHUB_STEP_SUMMARY
|
||||
done
|
||||
|
||||
exit 2
|
||||
fi
|
||||
|
6
.github/workflows/l10n.yml
vendored
6
.github/workflows/l10n.yml
vendored
@ -2,12 +2,6 @@ name: git-l10n
|
||||
|
||||
on: [push, pull_request_target]
|
||||
|
||||
# Avoid unnecessary builds. Unlike the main CI jobs, these are not
|
||||
# ci-configurable (but could be).
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
git-po-helper:
|
||||
if: >-
|
||||
|
54
.github/workflows/main.yml
vendored
54
.github/workflows/main.yml
vendored
@ -11,7 +11,6 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}
|
||||
skip_concurrent: ${{ steps.check-ref.outputs.skip_concurrent }}
|
||||
steps:
|
||||
- name: try to clone ci-config branch
|
||||
run: |
|
||||
@ -35,15 +34,7 @@ jobs:
|
||||
then
|
||||
enabled=no
|
||||
fi
|
||||
|
||||
skip_concurrent=yes
|
||||
if test -x config-repo/ci/config/skip-concurrent &&
|
||||
! config-repo/ci/config/skip-concurrent '${{ github.ref }}'
|
||||
then
|
||||
skip_concurrent=no
|
||||
fi
|
||||
echo "enabled=$enabled" >>$GITHUB_OUTPUT
|
||||
echo "skip_concurrent=$skip_concurrent" >>$GITHUB_OUTPUT
|
||||
- name: skip if the commit or tree was already tested
|
||||
id: skip-if-redundant
|
||||
uses: actions/github-script@v6
|
||||
@ -91,9 +82,6 @@ jobs:
|
||||
needs: ci-config
|
||||
if: needs.ci-config.outputs.enabled == 'yes'
|
||||
runs-on: windows-latest
|
||||
concurrency:
|
||||
group: windows-build-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: git-for-windows/setup-git-for-windows-sdk@v1
|
||||
@ -113,14 +101,11 @@ jobs:
|
||||
windows-test:
|
||||
name: win test
|
||||
runs-on: windows-latest
|
||||
needs: [ci-config, windows-build]
|
||||
needs: [windows-build]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
concurrency:
|
||||
group: windows-test-${{ matrix.nr }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
steps:
|
||||
- name: download tracked files and build artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
@ -147,14 +132,11 @@ jobs:
|
||||
vs-build:
|
||||
name: win+VS build
|
||||
needs: ci-config
|
||||
if: github.event.repository.owner.login == 'git-for-windows' && needs.ci-config.outputs.enabled == 'yes'
|
||||
if: needs.ci-config.outputs.enabled == 'yes'
|
||||
env:
|
||||
NO_PERL: 1
|
||||
GIT_CONFIG_PARAMETERS: "'user.name=CI' 'user.email=ci@git'"
|
||||
runs-on: windows-latest
|
||||
concurrency:
|
||||
group: vs-build-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: git-for-windows/setup-git-for-windows-sdk@v1
|
||||
@ -202,14 +184,11 @@ jobs:
|
||||
vs-test:
|
||||
name: win+VS test
|
||||
runs-on: windows-latest
|
||||
needs: [ci-config, vs-build]
|
||||
needs: vs-build
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
concurrency:
|
||||
group: vs-test-${{ matrix.nr }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
steps:
|
||||
- uses: git-for-windows/setup-git-for-windows-sdk@v1
|
||||
- name: download tracked files and build artifacts
|
||||
@ -239,9 +218,6 @@ jobs:
|
||||
name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
|
||||
needs: ci-config
|
||||
if: needs.ci-config.outputs.enabled == 'yes'
|
||||
concurrency:
|
||||
group: ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@ -273,12 +249,6 @@ jobs:
|
||||
- jobname: linux-leaks
|
||||
cc: gcc
|
||||
pool: ubuntu-latest
|
||||
- jobname: linux-asan
|
||||
cc: gcc
|
||||
pool: ubuntu-latest
|
||||
- jobname: linux-ubsan
|
||||
cc: gcc
|
||||
pool: ubuntu-latest
|
||||
env:
|
||||
CC: ${{matrix.vector.cc}}
|
||||
CC_PACKAGE: ${{matrix.vector.cc_package}}
|
||||
@ -289,9 +259,8 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- run: ci/install-dependencies.sh
|
||||
- run: ci/run-build-and-tests.sh
|
||||
- name: print test failures
|
||||
- run: ci/print-test-failures.sh
|
||||
if: failure() && env.FAILED_TEST_ARTIFACTS != ''
|
||||
run: ci/print-test-failures.sh
|
||||
- name: Upload failed tests' directories
|
||||
if: failure() && env.FAILED_TEST_ARTIFACTS != ''
|
||||
uses: actions/upload-artifact@v3
|
||||
@ -302,9 +271,6 @@ jobs:
|
||||
name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})
|
||||
needs: ci-config
|
||||
if: needs.ci-config.outputs.enabled == 'yes'
|
||||
concurrency:
|
||||
group: dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@ -326,9 +292,8 @@ jobs:
|
||||
if: matrix.vector.jobname == 'linux32'
|
||||
- run: ci/install-docker-dependencies.sh
|
||||
- run: ci/run-build-and-tests.sh
|
||||
- name: print test failures
|
||||
- run: ci/print-test-failures.sh
|
||||
if: failure() && env.FAILED_TEST_ARTIFACTS != ''
|
||||
run: ci/print-test-failures.sh
|
||||
- name: Upload failed tests' directories
|
||||
if: failure() && env.FAILED_TEST_ARTIFACTS != '' && matrix.vector.jobname != 'linux32'
|
||||
uses: actions/upload-artifact@v3
|
||||
@ -347,9 +312,6 @@ jobs:
|
||||
env:
|
||||
jobname: StaticAnalysis
|
||||
runs-on: ubuntu-22.04
|
||||
concurrency:
|
||||
group: static-analysis-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: ci/install-dependencies.sh
|
||||
@ -361,9 +323,6 @@ jobs:
|
||||
env:
|
||||
jobname: sparse
|
||||
runs-on: ubuntu-20.04
|
||||
concurrency:
|
||||
group: sparse-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
steps:
|
||||
- name: Download a current `sparse` package
|
||||
# Ubuntu's `sparse` version is too old for us
|
||||
@ -382,9 +341,6 @@ jobs:
|
||||
name: documentation
|
||||
needs: ci-config
|
||||
if: needs.ci-config.outputs.enabled == 'yes'
|
||||
concurrency:
|
||||
group: documentation-${{ github.ref }}
|
||||
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
|
||||
env:
|
||||
jobname: Documentation
|
||||
runs-on: ubuntu-latest
|
||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,5 +1,7 @@
|
||||
/fuzz-commit-graph
|
||||
/fuzz_corpora
|
||||
/GIT-BUILD-DIR
|
||||
/fuzz-pack-headers
|
||||
/fuzz-pack-idx
|
||||
/GIT-BUILD-OPTIONS
|
||||
/GIT-CFLAGS
|
||||
/GIT-LDFLAGS
|
||||
@ -8,18 +10,19 @@
|
||||
/GIT-PERL-HEADER
|
||||
/GIT-PYTHON-VARS
|
||||
/GIT-SCRIPT-DEFINES
|
||||
/GIT-SPATCH-DEFINES
|
||||
/GIT-USER-AGENT
|
||||
/GIT-VERSION-FILE
|
||||
/bin-wrappers/
|
||||
/git
|
||||
/git-add
|
||||
/git-add--interactive
|
||||
/git-am
|
||||
/git-annotate
|
||||
/git-apply
|
||||
/git-archimport
|
||||
/git-archive
|
||||
/git-bisect
|
||||
/git-bisect--helper
|
||||
/git-blame
|
||||
/git-branch
|
||||
/git-bugreport
|
||||
@ -58,6 +61,7 @@
|
||||
/git-difftool
|
||||
/git-difftool--helper
|
||||
/git-describe
|
||||
/git-env--helper
|
||||
/git-fast-export
|
||||
/git-fast-import
|
||||
/git-fetch
|
||||
|
1
.mailmap
1
.mailmap
@ -165,7 +165,6 @@ Mark Rada <marada@uwaterloo.ca>
|
||||
Martin Langhoff <martin@laptop.org> <martin@catalyst.net.nz>
|
||||
Martin von Zweigbergk <martinvonz@gmail.com> <martin.von.zweigbergk@gmail.com>
|
||||
Masaya Suzuki <masayasuzuki@google.com> <draftcode@gmail.com>
|
||||
Matheus Tavares <matheus.tavb@gmail.com> <matheus.bernardino@usp.br>
|
||||
Matt Draisey <matt@draisey.ca> <mattdraisey@sympatico.ca>
|
||||
Matt Kraai <kraai@ftbfs.org> <matt.kraai@amo.abbott.com>
|
||||
Matt McCutchen <matt@mattmccutchen.net> <hashproduct@gmail.com>
|
||||
|
@ -162,6 +162,8 @@ For shell scripts specifically (not exhaustive):
|
||||
|
||||
- We do not use \{m,n\};
|
||||
|
||||
- We do not use -E;
|
||||
|
||||
- We do not use ? or + (which are \{0,1\} and \{1,\}
|
||||
respectively in BRE) but that goes without saying as these
|
||||
are ERE elements not BRE (note that \? and \+ are not even part
|
||||
@ -663,8 +665,8 @@ Writing Documentation:
|
||||
(One or more of <file>.)
|
||||
|
||||
Optional parts are enclosed in square brackets:
|
||||
[<file>...]
|
||||
(Zero or more of <file>.)
|
||||
[<extra>]
|
||||
(Zero or one <extra>.)
|
||||
|
||||
--exec-path[=<path>]
|
||||
(Option with an optional argument. Note that the "=" is inside the
|
||||
@ -678,16 +680,6 @@ Writing Documentation:
|
||||
[-q | --quiet]
|
||||
[--utf8 | --no-utf8]
|
||||
|
||||
Use spacing around "|" token(s), but not immediately after opening or
|
||||
before closing a [] or () pair:
|
||||
Do: [-q | --quiet]
|
||||
Don't: [-q|--quiet]
|
||||
|
||||
Don't use spacing around "|" tokens when they're used to seperate the
|
||||
alternate arguments of an option:
|
||||
Do: --track[=(direct|inherit)]
|
||||
Don't: --track[=(direct | inherit)]
|
||||
|
||||
Parentheses are used for grouping:
|
||||
[(<rev> | <range>)...]
|
||||
(Any number of either <rev> or <range>. Parens are needed to make
|
||||
|
@ -351,16 +351,8 @@ $(OBSOLETE_HTML): %.html : %.txto $(ASCIIDOC_DEPS)
|
||||
manpage-base-url.xsl: manpage-base-url.xsl.in
|
||||
$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
|
||||
|
||||
|
||||
manpage-prereqs := manpage-base-url.xsl $(wildcard manpage*.xsl)
|
||||
manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
||||
|
||||
%.1 : %.xml $(manpage-prereqs)
|
||||
$(manpage-cmd)
|
||||
%.5 : %.xml $(manpage-prereqs)
|
||||
$(manpage-cmd)
|
||||
%.7 : %.xml $(manpage-prereqs)
|
||||
$(manpage-cmd)
|
||||
%.1 %.5 %.7 : %.xml manpage-base-url.xsl $(wildcard manpage*.xsl)
|
||||
$(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
|
||||
|
||||
%.xml : %.txt $(ASCIIDOC_DEPS)
|
||||
$(QUIET_ASCIIDOC)$(TXT_TO_XML) -d manpage -o $@ $<
|
||||
@ -484,19 +476,8 @@ $(LINT_DOCS_MAN_SECTION_ORDER): .build/lint-docs/man-section-order/%.ok: %.txt
|
||||
.PHONY: lint-docs-man-section-order
|
||||
lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER)
|
||||
|
||||
.PHONY: lint-docs-fsck-msgids
|
||||
LINT_DOCS_FSCK_MSGIDS = .build/lint-docs/fsck-msgids.ok
|
||||
$(LINT_DOCS_FSCK_MSGIDS): lint-fsck-msgids.perl
|
||||
$(LINT_DOCS_FSCK_MSGIDS): ../fsck.h fsck-msgids.txt
|
||||
$(call mkdir_p_parent_template)
|
||||
$(QUIET_GEN)$(PERL_PATH) lint-fsck-msgids.perl \
|
||||
../fsck.h fsck-msgids.txt $@
|
||||
|
||||
lint-docs-fsck-msgids: $(LINT_DOCS_FSCK_MSGIDS)
|
||||
|
||||
## Lint: list of targets above
|
||||
.PHONY: lint-docs
|
||||
lint-docs: lint-docs-fsck-msgids
|
||||
lint-docs: lint-docs-gitlink
|
||||
lint-docs: lint-docs-man-end-blurb
|
||||
lint-docs: lint-docs-man-section-order
|
||||
|
@ -736,7 +736,7 @@ the {lore}[Git mailing list archive]:
|
||||
2022-02-21 1:43 ` John Cai
|
||||
2022-02-21 1:50 ` Taylor Blau
|
||||
2022-02-23 19:50 ` John Cai
|
||||
2022-02-18 20:00 ` // other replies elided
|
||||
2022-02-18 20:00 ` // other replies ellided
|
||||
2022-02-18 18:40 ` [PATCH 2/3] reflog: call reflog_delete from reflog.c John Cai via GitGitGadget
|
||||
2022-02-18 19:15 ` Ævar Arnfjörð Bjarmason
|
||||
2022-02-18 20:26 ` Junio C Hamano
|
||||
|
@ -49,3 +49,4 @@ Taylor Blau (3):
|
||||
t5619: demonstrate clone_local() with ambiguous transport
|
||||
clone: delay picking a transport until after get_repo_path()
|
||||
dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS
|
||||
|
||||
|
43
Documentation/RelNotes/2.30.9.txt
Normal file
43
Documentation/RelNotes/2.30.9.txt
Normal file
@ -0,0 +1,43 @@
|
||||
Git v2.30.9 Release Notes
|
||||
=========================
|
||||
|
||||
This release addresses the security issues CVE-2023-25652,
|
||||
CVE-2023-25815, and CVE-2023-29007.
|
||||
|
||||
|
||||
Fixes since v2.30.8
|
||||
-------------------
|
||||
|
||||
* CVE-2023-25652:
|
||||
|
||||
By feeding specially crafted input to `git apply --reject`, a
|
||||
path outside the working tree can be overwritten with partially
|
||||
controlled contents (corresponding to the rejected hunk(s) from
|
||||
the given patch).
|
||||
|
||||
* CVE-2023-25815:
|
||||
|
||||
When Git is compiled with runtime prefix support and runs without
|
||||
translated messages, it still used the gettext machinery to
|
||||
display messages, which subsequently potentially looked for
|
||||
translated messages in unexpected places. This allowed for
|
||||
malicious placement of crafted messages.
|
||||
|
||||
* CVE-2023-29007:
|
||||
|
||||
When renaming or deleting a section from a configuration file,
|
||||
certain malicious configuration values may be misinterpreted as
|
||||
the beginning of a new configuration section, leading to arbitrary
|
||||
configuration injection.
|
||||
|
||||
Credit for finding CVE-2023-25652 goes to Ry0taK, and the fix was
|
||||
developed by Taylor Blau, Junio C Hamano and Johannes Schindelin,
|
||||
with the help of Linus Torvalds.
|
||||
|
||||
Credit for finding CVE-2023-25815 goes to Maxime Escourbiac and
|
||||
Yassine BENGANA of Michelin, and the fix was developed by Johannes
|
||||
Schindelin.
|
||||
|
||||
Credit for finding CVE-2023-29007 goes to André Baptista and Vítor Pinho
|
||||
of Ethiack, and the fix was developed by Taylor Blau, and Johannes
|
||||
Schindelin, with help from Jeff King, and Patrick Steinhardt.
|
6
Documentation/RelNotes/2.31.8.txt
Normal file
6
Documentation/RelNotes/2.31.8.txt
Normal file
@ -0,0 +1,6 @@
|
||||
Git v2.31.8 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the fixes that appear in v2.30.9 to address the
|
||||
security issues CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007;
|
||||
see the release notes for that version for details.
|
7
Documentation/RelNotes/2.32.7.txt
Normal file
7
Documentation/RelNotes/2.32.7.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Git v2.32.7 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the fixes that appear in v2.30.9 and v2.31.8 to
|
||||
address the security issues CVE-2023-25652, CVE-2023-25815, and
|
||||
CVE-2023-29007; see the release notes for these versions for
|
||||
details.
|
7
Documentation/RelNotes/2.33.8.txt
Normal file
7
Documentation/RelNotes/2.33.8.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Git v2.33.8 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the fixes that appear in v2.30.9, v2.31.8 and
|
||||
v2.32.7 to address the security issues CVE-2023-25652,
|
||||
CVE-2023-25815, and CVE-2023-29007; see the release notes for these
|
||||
versions for details.
|
7
Documentation/RelNotes/2.34.8.txt
Normal file
7
Documentation/RelNotes/2.34.8.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Git v2.34.8 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the fixes that appear in v2.30.9, v2.31.8,
|
||||
v2.32.7 and v2.33.8 to address the security issues CVE-2023-25652,
|
||||
CVE-2023-25815, and CVE-2023-29007; see the release notes for these
|
||||
versions for details.
|
7
Documentation/RelNotes/2.35.8.txt
Normal file
7
Documentation/RelNotes/2.35.8.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Git v2.35.8 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the fixes that appear in v2.30.9, v2.31.8,
|
||||
v2.32.7, v2.33.8 and v2.34.8 to address the security issues
|
||||
CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007; see the release
|
||||
notes for these versions for details.
|
7
Documentation/RelNotes/2.36.6.txt
Normal file
7
Documentation/RelNotes/2.36.6.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Git v2.36.6 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the fixes that appear in v2.30.9, v2.31.8,
|
||||
v2.32.7, v2.33.8, v2.34.8 and v2.35.8 to address the security issues
|
||||
CVE-2023-25652, CVS-2023-25815, and CVE-2023-29007; see the release
|
||||
notes for these versions for details.
|
7
Documentation/RelNotes/2.37.7.txt
Normal file
7
Documentation/RelNotes/2.37.7.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Git v2.37.7 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fix that appears in v2.30.9, v2.31.8,
|
||||
v2.32.7, v2.33.8, v2.34.8, v2.35.8 and v2.36.6 to address the
|
||||
security issues CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007;
|
||||
see the release notes for these versions for details.
|
8
Documentation/RelNotes/2.38.5.txt
Normal file
8
Documentation/RelNotes/2.38.5.txt
Normal file
@ -0,0 +1,8 @@
|
||||
Git v2.38.5 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fix that appears in v2.30.9, v2.31.8,
|
||||
v2.32.7, v2.33.8, v2.34.8, v2.35.8, v2.36.6 and v2.37.7 to address
|
||||
the security issues CVE-2023-25652, CVE-2023-25815, and
|
||||
CVE-2023-29007; see the release notes for these versions for
|
||||
details.
|
@ -1,346 +0,0 @@
|
||||
Git v2.39 Release Notes
|
||||
=======================
|
||||
|
||||
UI, Workflows & Features
|
||||
------------------------
|
||||
|
||||
* "git grep" learned to expand the sparse-index more lazily and on
|
||||
demand in a sparse checkout.
|
||||
|
||||
* By default, use of fsmonitor on a repository on networked
|
||||
filesystem is disabled. Add knobs to make it workable on macOS.
|
||||
|
||||
* After checking out a "branch" that is a symbolic-ref that points at
|
||||
another branch, "git symbolic-ref HEAD" reports the underlying
|
||||
branch, not the symbolic-ref the user gave checkout as argument.
|
||||
The command learned the "--no-recurse" option to stop after
|
||||
dereferencing a symbolic-ref only once.
|
||||
|
||||
* "git branch --edit-description @{-1}" is now a way to edit branch
|
||||
description of the branch you were on before switching to the
|
||||
current branch.
|
||||
|
||||
* "git merge-tree --stdin" is a new way to request a series of merges
|
||||
and report the merge results.
|
||||
|
||||
* "git shortlog" learned to group by the "format" string.
|
||||
|
||||
* A new "--include-whitespace" option is added to "git patch-id", and
|
||||
existing bugs in the internal patch-id logic that did not match
|
||||
what "git patch-id" produces have been corrected.
|
||||
|
||||
* Enable gc.cruftpacks by default for those who opt into
|
||||
feature.experimental setting.
|
||||
|
||||
* "git repack" learns to send cruft objects out of the way into
|
||||
packfiles outside the repository.
|
||||
|
||||
* 'scalar reconfigure -a' is taught to automatically remove
|
||||
scalar.repo entires which no longer exist.
|
||||
|
||||
* Redact headers from cURL's h2h3 module in GIT_CURL_VERBOSE and
|
||||
others.
|
||||
|
||||
* 'git maintenance register' is taught to write configuration to an
|
||||
arbitrary path, and 'git for-each-repo' is taught to expand tilde
|
||||
characters in paths.
|
||||
|
||||
* When creating new notes, the template used to get a stray empty
|
||||
newline, which has been removed.
|
||||
|
||||
* "git receive-pack" used to use all the local refs as the boundary for
|
||||
checking connectivity of the data "git push" sent, but now it uses
|
||||
only the refs that it advertised to the pusher. In a repository with
|
||||
the .hideRefs configuration, this reduces the resources needed to
|
||||
perform the check.
|
||||
|
||||
* With '--recurse-submodules=on-demand', all submodules are
|
||||
recursively pushed.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
--------------------------------------------------------------
|
||||
|
||||
* With a bit of header twiddling, use the native regexp library on
|
||||
macOS instead of the compat/ one.
|
||||
|
||||
* Prepare for GNU [ef]grep that throw warning of their uses.
|
||||
|
||||
* Sources related to fuzz testing have been moved down to their own
|
||||
directory.
|
||||
|
||||
* Most credential helpers ignored unknown entries in a credential
|
||||
description, but a few died upon seeing them. The latter were
|
||||
taught to ignore them, too
|
||||
|
||||
* "scalar unregister" in a repository that is already been
|
||||
unregistered reported an error.
|
||||
|
||||
* Remove error detection from a function that fetches from promisor
|
||||
remotes, and make it die when such a fetch fails to bring all the
|
||||
requested objects, to give an early failure to various operations.
|
||||
|
||||
* Update CodingGuidelines to clarify what features to use and avoid
|
||||
in C99.
|
||||
|
||||
* Avoid false-positive from LSan whose assumption may be broken with
|
||||
higher optimization levels.
|
||||
|
||||
* Enable address and undefined sanitizer tasks at GitHub Actions CI.
|
||||
|
||||
* More UNUSED annotation to help using -Wunused option with the
|
||||
compiler.
|
||||
(merge 4b992f0a24 jk/unused-anno-more later to maint).
|
||||
|
||||
* Rewrite a deep recursion in the skipping negotiator to use a loop
|
||||
with on-heap prio queue to avoid stack wastage.
|
||||
|
||||
* Add documentation for message IDs in fsck error messages.
|
||||
|
||||
* Define the logical elements of a "bundle list", data structure to
|
||||
store them in-core, format to transfer them, and code to parse
|
||||
them.
|
||||
|
||||
* The role the security mailing list plays in an embargoed release
|
||||
has been documented.
|
||||
|
||||
* Two new facilities, "timer" and "counter", are introduced to the
|
||||
trace2 API.
|
||||
|
||||
* Code simplification by using strvec_pushf() instead of building an
|
||||
argument in a separate strbuf.
|
||||
|
||||
* Make sure generated dependency file is stably sorted to help
|
||||
developers debugging their build issues.
|
||||
|
||||
* The glossary entries for "commit-graph file" and "reachability
|
||||
bitmap" have been added.
|
||||
|
||||
* Various tests exercising the transfer.credentialsInUrl
|
||||
configuration are taught to avoid making requests which require
|
||||
resolving localhost to reduce CI-flakiness.
|
||||
|
||||
* A redundant diagnostic message is dropped from test_path_is_missing().
|
||||
|
||||
* Simplify the run-command API.
|
||||
|
||||
* Update the actions/github-script dependency in CI to avoid a
|
||||
deprecation warning.
|
||||
|
||||
* Progress on being able to initialize a rev_info struct with a
|
||||
macro.
|
||||
|
||||
* Add trace2 counters to the region to clear skip worktree bits in a
|
||||
sparse checkout.
|
||||
|
||||
* Modernize test script to avoid "test -f" and friends.
|
||||
|
||||
* Avoid calling 'cache_tree_update()' when doing so would be
|
||||
redundant.
|
||||
|
||||
* Update the credential-cache documentation to provide a more
|
||||
realistic example.
|
||||
|
||||
* Makefile comments updates and reordering to clarify knobs used to
|
||||
choose SHA implementations.
|
||||
|
||||
* A design document for sparse-checkout's future directions has been
|
||||
added.
|
||||
|
||||
* Teach chainlint.pl to annotate the original test definition instead
|
||||
of the token stream.
|
||||
|
||||
* "make coccicheck" is time consuming. It has been made to run more
|
||||
incrementally.
|
||||
|
||||
* `parse_object()` has been hardened to check for the existence of a
|
||||
suspected blob object.
|
||||
|
||||
* The build procedure has been adjusted to GNUmake version 4.4, which
|
||||
made some changes to how pattern rule with multiple targets are
|
||||
handled.
|
||||
|
||||
|
||||
Fixes since v2.38
|
||||
-----------------
|
||||
|
||||
* The codepath that reads from the index v4 had unaligned memory
|
||||
accesses, which has been corrected.
|
||||
|
||||
* Fix messages incorrectly marked for translation.
|
||||
|
||||
* "git fsck" failed to release contents of tree objects already used
|
||||
from the memory, which has been fixed.
|
||||
|
||||
* "git clone" did not like to see the "--bare" and the "--origin"
|
||||
options used together without a good reason.
|
||||
|
||||
* "git remote rename" failed to rename a remote without fetch
|
||||
refspec, which has been corrected.
|
||||
|
||||
* Documentation on various Boolean GIT_* environment variables have
|
||||
been clarified.
|
||||
|
||||
* "git rebase -i" can mistakenly attempt to apply a fixup to a commit
|
||||
itself, which has been corrected.
|
||||
|
||||
* "git multi-pack-index repack/expire" used to repack unreachable
|
||||
cruft into a new pack, which have been corrected.
|
||||
|
||||
* In read-only repositories, "git merge-tree" tried to come up with a
|
||||
merge result tree object, which it failed (which is not wrong) and
|
||||
led to a segfault (which is bad), which has been corrected.
|
||||
|
||||
* Force C locale while running tests around httpd to make sure we can
|
||||
find expected error messages in the log.
|
||||
|
||||
* Fix a logic in "mailinfo -b" that miscomputed the length of a
|
||||
substring, which lead to an out-of-bounds access.
|
||||
|
||||
* The codepath to sign learned to report errors when it fails to read
|
||||
from "ssh-keygen".
|
||||
|
||||
* Code clean-up that results in plugging a leak.
|
||||
|
||||
* "GIT_EDITOR=: git branch --edit-description" resulted in failure,
|
||||
which has been corrected.
|
||||
|
||||
* The code to clean temporary object directories (used for
|
||||
quarantine) tried to remove them inside its signal handler, which
|
||||
was a no-no.
|
||||
|
||||
* Update comment in the Makefile about the RUNTIME_PREFIX config knob.
|
||||
|
||||
* Clarify that "the sentence after <area>: prefix does not begin with
|
||||
a capital letter" rule applies only to the commit title.
|
||||
|
||||
* "git branch --edit-description" on an unborn branch misleadingly
|
||||
said that no such branch exists, which has been corrected.
|
||||
|
||||
* Work around older clang that warns against C99 zero initialization
|
||||
syntax for struct.
|
||||
|
||||
* Giving "--invert-grep" and "--all-match" without "--grep" to the
|
||||
"git log" command resulted in an attempt to access grep pattern
|
||||
expression structure that has not been allocated, which has been
|
||||
corrected.
|
||||
(merge db84376f98 ab/grep-simplify-extended-expression later to maint).
|
||||
|
||||
* "git diff rev^!" did not show combined diff to go to the rev from
|
||||
its parents.
|
||||
(merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint).
|
||||
|
||||
* Allow configuration files in "protected" scopes to include other
|
||||
configuration files.
|
||||
(merge ecec57b3c9 gc/bare-repo-discovery later to maint).
|
||||
|
||||
* Give a bit more diversity to macOS CI by using sha1dc in one of the
|
||||
jobs (the other one tests Apple Common Crypto).
|
||||
(merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint).
|
||||
|
||||
* A bugfix with tracing support in midx codepath
|
||||
(merge e9c3839944 tb/midx-bitmap-selection-fix later to maint).
|
||||
|
||||
* When geometric repacking feature is in use together with the
|
||||
--pack-kept-objects option, we lost packs marked with .keep files.
|
||||
(merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint).
|
||||
|
||||
* Move a global variable added as a hack during regression fixes to
|
||||
its proper place in the API.
|
||||
(merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint).
|
||||
|
||||
* Update to build procedure with VS using CMake/CTest.
|
||||
(merge c858750b41 js/cmake-updates later to maint).
|
||||
|
||||
* The short-help text shown by "git cmd -h" and the synopsis text
|
||||
shown at the beginning of "git help cmd" have been made more
|
||||
consistent.
|
||||
|
||||
* When creating a multi-pack bitmap, remove per-pack bitmap files
|
||||
unconditionally as they will never be consulted.
|
||||
(merge 55d902cd61 tb/remove-unused-pack-bitmap later to maint).
|
||||
|
||||
* Fix a longstanding syntax error in Git.pm error codepath.
|
||||
|
||||
* "git diff --stat" etc. were invented back when everything was ASCII
|
||||
and strlen() was a way to measure the display width of a string;
|
||||
adjust them to compute the display width assuming UTF-8 pathnames.
|
||||
(merge ce8529b2bb tb/diffstat-with-utf8-strwidth later to maint).
|
||||
|
||||
* "git branch --edit-description" can exit with status -1 which is
|
||||
not a good practice; it learned to use 1 as everybody else instead.
|
||||
|
||||
* "git apply" limits its input to a bit less than 1 GiB.
|
||||
|
||||
* Merging a branch with directory renames into a branch that changes
|
||||
the directory to a symlink was mishandled by the ort merge
|
||||
strategy, which has been corrected.
|
||||
|
||||
* A bugfix to "git subtree" in its split and merge features.
|
||||
|
||||
* Fix some bugs in the reflog messages when rebasing and changes the
|
||||
reflog messages of "rebase --apply" to match "rebase --merge" with
|
||||
the aim of making the reflog easier to parse.
|
||||
|
||||
* "git rebase --keep-base" used to discard the commits that are
|
||||
already cherry-picked to the upstream, even when "keep-base" meant
|
||||
that the base, on top of which the history is being rebuilt, does
|
||||
not yet include these cherry-picked commits. The --keep-base
|
||||
option now implies --reapply-cherry-picks and --no-fork-point
|
||||
options.
|
||||
|
||||
* The way "git repack" created temporary files when it received a
|
||||
signal was prone to deadlocking, which has been corrected.
|
||||
|
||||
* Various tests exercising the transfer.credentialsInUrl
|
||||
configuration are taught to avoid making requests which require
|
||||
resolving localhost to reduce CI-flakiness.
|
||||
|
||||
* The adjust_shared_perm() helper function learned to refrain from
|
||||
setting the "g+s" bit on directories when it is not necessary.
|
||||
|
||||
* "git archive" mistakenly complained twice about a missing
|
||||
executable, which has been corrected.
|
||||
|
||||
* Fix a bug where `git branch -d` did not work on an orphaned HEAD.
|
||||
|
||||
* `git rebase --update-refs` would delete references when all
|
||||
`update-ref` commands in the sequencer were removed, which has been
|
||||
corrected.
|
||||
|
||||
* Fix a regression in the bisect-helper which mistakenly treats
|
||||
arguments to the command given to 'git bisect run' as arguments to
|
||||
the helper.
|
||||
|
||||
* Correct an error where `git rebase` would mistakenly use a branch or
|
||||
tag named "refs/rewritten/xyz" when missing a rebase label.
|
||||
|
||||
* Assorted fixes of parsing end-user input as integers.
|
||||
(merge 14770cf0de pw/config-int-parse-fixes later to maint).
|
||||
|
||||
* "git prune" may try to iterate over .git/objects/pack for trash
|
||||
files to remove in it, and loudly fail when the directory is
|
||||
missing, which is not necessary. The command has been taught to
|
||||
ignore such a failure.
|
||||
(merge 6974765352 ew/prune-with-missing-objects-pack later to maint).
|
||||
|
||||
* Add one more candidate directory that may house httpd modules while
|
||||
running tests.
|
||||
(merge 1c7dc23d41 es/locate-httpd-module-location-in-test later to maint).
|
||||
|
||||
* A handful of leaks in the line-log machinery have been plugged.
|
||||
|
||||
* The format of a line in /proc/cpuinfo that describes a CPU on s390x
|
||||
looked different from everybody else, and the code in chainlint.pl
|
||||
failed to parse it.
|
||||
(merge 1f51b77f4f ah/chainlint-cpuinfo-parse-fix later to maint).
|
||||
|
||||
* Adjust the GitHub CI to newer ubuntu release.
|
||||
(merge 0d3507f3e7 jx/ci-ubuntu-fix later to maint).
|
||||
|
||||
* Other code cleanup, docfix, build fix, etc.
|
||||
(merge 413bc6d20a ds/cmd-main-reorder later to maint).
|
||||
(merge 8d2863e4ed nw/t1002-cleanup later to maint).
|
||||
(merge 7c2dc122f9 rs/list-objects-filter-leakfix later to maint).
|
||||
(merge 288fcb1c94 zk/push-use-bitmaps later to maint).
|
||||
(merge 42db324c0f km/merge-recursive-typofix later to maint).
|
@ -1,5 +0,0 @@
|
||||
Git v2.39.1 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges the security fix that appears in v2.30.7; see
|
||||
the release notes for that version for details.
|
@ -1,7 +0,0 @@
|
||||
Git v2.39.2 Release Notes
|
||||
=========================
|
||||
|
||||
This release merges up the fixes that appear in v2.30.8, v2.31.7,
|
||||
v2.32.6, v2.33.7, v2.34.7, v2.35.7, v2.36.5, v2.37.6 and v2.38.4
|
||||
to address the security issues CVE-2023-22490 and CVE-2023-23946;
|
||||
see the release notes for these versions for details.
|
@ -1,58 +0,0 @@
|
||||
Git v2.39.3 Release Notes
|
||||
=========================
|
||||
|
||||
This release is primarily to merge fixes accumulated on the 'master'
|
||||
front to prepare for 2.40 release that are still relevant to 2.39.x
|
||||
maintenance track.
|
||||
|
||||
Fixes since v2.39.2
|
||||
-------------------
|
||||
|
||||
* Stop running win+VS build by default.
|
||||
|
||||
* CI updates. We probably want a clean-up to move the long shell
|
||||
script embedded in yaml file into a separate file, but that can
|
||||
come later.
|
||||
|
||||
* Avoid unnecessary builds in CI, with settings configured in
|
||||
ci-config.
|
||||
|
||||
* Redefining system functions for a few functions did not follow our
|
||||
usual "implement git_foo() and #define foo(args) git_foo(args)"
|
||||
pattern, which has broken build for some folks.
|
||||
|
||||
* Deal with a few deprecation warning from cURL library.
|
||||
|
||||
* Newer regex library macOS stopped enabling GNU-like enhanced BRE,
|
||||
where '\(A\|B\)' works as alternation, unless explicitly asked with
|
||||
the REG_ENHANCED flag. "git grep" now can be compiled to do so, to
|
||||
retain the old behaviour.
|
||||
|
||||
* When given a pattern that matches an empty string at the end of a
|
||||
line, the code to parse the "git diff" line-ranges fell into an
|
||||
infinite loop, which has been corrected.
|
||||
|
||||
* Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to
|
||||
flush its output to the disk..
|
||||
|
||||
* "git diff --relative" did not mix well with "git diff --ext-diff",
|
||||
which has been corrected.
|
||||
|
||||
* The logic to see if we are using the "cone" mode by checking the
|
||||
sparsity patterns has been tightened to avoid mistaking a pattern
|
||||
that names a single file as specifying a cone.
|
||||
|
||||
* Doc update for environment variables set when hooks are invoked.
|
||||
|
||||
* Document ORIG_HEAD a bit more.
|
||||
|
||||
* "git ls-tree --format='%(path) %(path)' $tree $path" showed the
|
||||
path three times, which has been corrected.
|
||||
|
||||
* Document that "branch -f <branch>" disables only the safety to
|
||||
avoid recreating an existing branch.
|
||||
|
||||
* Clarify how "checkout -b/-B" and "git branch [-f]" are similar but
|
||||
different in the documentation.
|
||||
|
||||
Also contains minor documentation updates and code clean-ups.
|
@ -1,320 +0,0 @@
|
||||
Git v2.40 Release Notes
|
||||
=======================
|
||||
|
||||
UI, Workflows & Features
|
||||
|
||||
* "merge-tree" learns a new `--merge-base` option.
|
||||
|
||||
* "git jump" (in contrib/) learned to present the "quickfix list" to
|
||||
its standard output (instead of letting it consumed by the editor
|
||||
it invokes), and learned to also drive emacs/emacsclient.
|
||||
|
||||
* "git var UNKNOWN_VARIABLE" and "git var VARIABLE" with the variable
|
||||
given an empty value used to behave identically. Now the latter
|
||||
just gives an empty output, while the former still gives an error
|
||||
message.
|
||||
|
||||
* Introduce a case insensitive mode to the Bash completion helpers.
|
||||
|
||||
* The advice message given by "git status" when it takes long time to
|
||||
enumerate untracked paths has been updated.
|
||||
|
||||
* Just like "git var GIT_EDITOR" abstracts the complex logic to
|
||||
choose which editor gets used behind it, "git var" now give support
|
||||
to GIT_SEQUENCE_EDITOR.
|
||||
|
||||
* "git format-patch" learned to honor format.mboxrd even when sending
|
||||
patches to the standard output stream,
|
||||
|
||||
* 'cat-file' gains mailmap support for its '--batch-check' and '-s'
|
||||
options.
|
||||
|
||||
* Conditionally skip the pre-applypatch and applypatch-msg hooks when
|
||||
applying patches with 'git am'.
|
||||
|
||||
* Introduce an optional configuration to allow the trailing hash that
|
||||
protects the index file from bit flipping.
|
||||
|
||||
* "git check-attr" learned to take an optional tree-ish to read the
|
||||
.gitattributes file from.
|
||||
|
||||
* "scalar" learned to give progress bar.
|
||||
|
||||
* "grep -P" learned to use Unicode Character Property to grok
|
||||
character classes when processing \b and \w etc.
|
||||
|
||||
* "git rebase" often ignored incompatible options instead of
|
||||
complaining, which has been corrected.
|
||||
|
||||
* "scalar" warns but continues when its periodic maintenance
|
||||
feature cannot be enabled.
|
||||
|
||||
* The bundle-URI subsystem adds support for creation-token heuristics
|
||||
to help incremental fetches.
|
||||
|
||||
* Userdiff regexp update for Java language.
|
||||
|
||||
* "git fetch --jobs=0" used to hit a BUG(), which has been corrected
|
||||
to use the available CPUs.
|
||||
|
||||
* An invalid label or ref in the "rebase -i" todo file used to
|
||||
trigger an runtime error. SUch an error is now diagnosed while the
|
||||
todo file is parsed.
|
||||
|
||||
* The "diff" drivers specified by the "diff" attribute attached to
|
||||
paths can now specify which algorithm (e.g. histogram) to use.
|
||||
|
||||
* "git range-diff" learned --abbrev=<num> option.
|
||||
|
||||
* "git archive HEAD^{tree}" records the paths with the current
|
||||
timestamp in the archive, making it harder to obtain a stable
|
||||
output. The command learned the --mtime option to specify an
|
||||
arbitrary timestamp (e.g. --mtime="@0 +0000" for the epoch).
|
||||
|
||||
* The credential subsystem learned that a password may have an
|
||||
explicit expiration.
|
||||
|
||||
* The format.attach configuration variable lacked a way to override a
|
||||
value defined in a lower-priority configuration file (e.g. the
|
||||
system one) by redefining it in a higher-priority configuration
|
||||
file. Now, setting format.attach to an empty string means show the
|
||||
patch inline in the e-mail message, without using MIME attachment.
|
||||
|
||||
This is a backward incompatible change.
|
||||
|
||||
|
||||
Performance, Internal Implementation, Development Support etc.
|
||||
|
||||
* `git bisect` becomes a builtin.
|
||||
|
||||
* The pack-bitmap machinery is taught to log the paths of redundant
|
||||
bitmap(s) to trace2 instead of stderr.
|
||||
|
||||
* Use the SHA1DC implementation on macOS, just like other platforms,
|
||||
by default.
|
||||
|
||||
* Even in a repository with promisor remote, it is useless to
|
||||
attempt to lazily attempt fetching an object that is expected to be
|
||||
commit, because no "filter" mode omits commit objects. Take
|
||||
advantage of this assumption to fail fast on errors.
|
||||
|
||||
* Stop using "git --super-prefix" and narrow the scope of its use to
|
||||
the submodule--helper.
|
||||
|
||||
* Stop running win+VS build by default.
|
||||
|
||||
* CI updates. We probably want a clean-up to move the long shell
|
||||
script embedded in yaml file into a separate file, but that can
|
||||
come later.
|
||||
|
||||
* Use `git diff --no-index` as a test_cmp on Windows.
|
||||
|
||||
We'd probably need to revisit "do we really want to, and have to,
|
||||
lose CRLF vs LF?" later, at which time we may be able to further
|
||||
clean this up by replacing "git diff --no-index" with "diff -u".
|
||||
|
||||
* Avoid unnecessary builds in CI, with settings configured in
|
||||
ci-config.
|
||||
|
||||
* Plug leaks in sequencer subsystem and its users.
|
||||
|
||||
* In-tree .gitattributes update to match the way we recommend our
|
||||
users to mark a file as text.
|
||||
(merge 1f34e0cd3d po/attributes-text later to maint).
|
||||
|
||||
* Finally retire the scripted "git add -p/-i" implementation and have
|
||||
everybody use the one reimplemented in C.
|
||||
|
||||
|
||||
Fixes since v2.39
|
||||
-----------------
|
||||
|
||||
* Various leak fixes.
|
||||
|
||||
* Fix a bug where `pack-objects` would not respect multiple `--filter`
|
||||
arguments when invoked directly.
|
||||
(merge d4f7036887 rs/multi-filter-args later to maint).
|
||||
|
||||
* Make fsmonitor more robust to avoid the flakiness seen in t7527.
|
||||
(merge 6692d45477 jh/t7527-unflake-by-forcing-cookie later to maint).
|
||||
|
||||
* Stop using deprecated macOS API in fsmonitor.
|
||||
(merge b0226007f0 jh/fsmonitor-darwin-modernize later to maint).
|
||||
|
||||
* Redefining system functions for a few functions did not follow our
|
||||
usual "implement git_foo() and #define foo(args) git_foo(args)"
|
||||
pattern, which has broken build for some folks.
|
||||
|
||||
* The way the diff machinery prepares the options array for the
|
||||
parse_options API has been refactored to avoid resource leaks.
|
||||
(merge 189e97bc4b rs/diff-parseopts later to maint).
|
||||
|
||||
* Correct pthread API usage.
|
||||
(merge 786e67611d sx/pthread-error-check-fix later to maint).
|
||||
|
||||
* The code to auto-correct a misspelt subcommand unnecessarily called
|
||||
into git_default_config() from the early config codepath, which was
|
||||
a no-no. This has bee corrected.
|
||||
(merge 0918d08887 sg/help-autocorrect-config-fix later to maint).
|
||||
|
||||
* "git http-fetch" (which is rarely used) forgot to identify itself
|
||||
in the trace2 output.
|
||||
(merge 7abb43cbc8 jt/http-fetch-trace2-report-name later to maint).
|
||||
|
||||
* The output from "git diff --stat" on an unmerged path lost the
|
||||
terminating LF in Git 2.39, which has been corrected.
|
||||
(merge 209d9cb011 pg/diff-stat-unmerged-regression-fix later to maint).
|
||||
|
||||
* "git pull -v --recurse-submodules" attempted to pass "-v" down to
|
||||
underlying "git submodule update", which did not understand the
|
||||
request and barfed, which has been corrected.
|
||||
(merge 6f65f84766 ss/pull-v-recurse-fix later to maint).
|
||||
|
||||
* When given a pattern that matches an empty string at the end of a
|
||||
line, the code to parse the "git diff" line-ranges fell into an
|
||||
infinite loop, which has been corrected.
|
||||
|
||||
* Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to
|
||||
flush its output to the disk..
|
||||
|
||||
* Fix to a small regression in 2.38 days.
|
||||
|
||||
* "git diff --relative" did not mix well with "git diff --ext-diff",
|
||||
which has been corrected.
|
||||
|
||||
* The logic to see if we are using the "cone" mode by checking the
|
||||
sparsity patterns has been tightened to avoid mistaking a pattern
|
||||
that names a single file as specifying a cone.
|
||||
|
||||
* Deal with a few deprecation warning from cURL library.
|
||||
|
||||
* Doc update for environment variables set when hooks are invoked.
|
||||
|
||||
* Document ORIG_HEAD a bit more.
|
||||
|
||||
* "git ls-tree --format='%(path) %(path)' $tree $path" showed the
|
||||
path three times, which has been corrected.
|
||||
|
||||
* Remove "git env--helper" and demote it to a test-tool subcommand.
|
||||
(merge 4a1baacd46 ab/test-env-helper later to maint).
|
||||
|
||||
* Newer regex library macOS stopped enabling GNU-like enhanced BRE,
|
||||
where '\(A\|B\)' works as alternation, unless explicitly asked with
|
||||
the REG_ENHANCED flag. "git grep" now can be compiled to do so, to
|
||||
retain the old behaviour.
|
||||
|
||||
* Pthread emulation on Win32 leaked thread handle when a thread is
|
||||
joined.
|
||||
(merge 238a9dfe86 sk/win32-close-handle-upon-pthread-join later to maint).
|
||||
|
||||
* "git send-email -v 3" used to be expanded to "git send-email
|
||||
--validate 3" when the user meant to pass them down to
|
||||
"format-patch", which has been corrected.
|
||||
(merge 8774aa56ad km/send-email-with-v-reroll-count later to maint).
|
||||
|
||||
* Document that "branch -f <branch>" disables only the safety to
|
||||
avoid recreating an existing branch.
|
||||
|
||||
* "git fetch <group>", when "<group>" of remotes lists the same
|
||||
remote twice, unnecessarily failed when parallel fetching was
|
||||
enabled, which has been corrected.
|
||||
(merge 06a668cb90 cw/fetch-remote-group-with-duplication later to maint).
|
||||
|
||||
* Clarify how "checkout -b/-B" and "git branch [-f]" are similar but
|
||||
different in the documentation.
|
||||
|
||||
* "git hash-object" now checks that the resulting object is well
|
||||
formed with the same code as "git fsck".
|
||||
(merge 8e4309038f jk/hash-object-fsck later to maint).
|
||||
|
||||
* Improve the error message given when private key is not loaded in
|
||||
the ssh agent in the codepath to sign with an ssh key.
|
||||
(merge dce7b31126 as/ssh-signing-improve-key-missing-error later to maint).
|
||||
|
||||
* Adjust "git request-pull" to strip embedded signature from signed
|
||||
tags to notice non-PGP signatures.
|
||||
(merge a9cad02538 gm/request-pull-with-non-pgp-signed-tags later to maint).
|
||||
|
||||
* Remove support for MSys, which now lags way behind MSys2.
|
||||
(merge 2987407f3c hj/remove-msys-support later to maint).
|
||||
|
||||
* Fix use of CreateThread() API call made early in the windows
|
||||
start-up code.
|
||||
(merge 592bcab61b sk/winansi-createthread-fix later to maint).
|
||||
|
||||
* "git pack-objects" learned to release delta-island bitmap data when
|
||||
it is done using it, saving peak heap memory usage.
|
||||
(merge 647982bb71 ew/free-island-marks later to maint).
|
||||
|
||||
* In an environment where dynamically generated code is prohibited to
|
||||
run (e.g. SELinux), failure to JIT pcre patterns is expected. Fall
|
||||
back to interpreted execution in such a case.
|
||||
(merge 50b6ad55b0 cb/grep-fallback-failing-jit later to maint).
|
||||
|
||||
* "git name-rev" heuristics update.
|
||||
(merge b2182a8730 en/name-rev-make-taggerdate-much-less-important later to maint).
|
||||
|
||||
* Remove more remaining uses of macros that relies on the_index
|
||||
singleton instance without explicitly spelling it out.
|
||||
|
||||
* Remove unnecessary explicit sizing of strbuf.
|
||||
(merge 93ea118bed rs/cache-tree-strbuf-growth-fix later to maint).
|
||||
|
||||
* Doc update.
|
||||
(merge d9ec3b0dc0 jk/doc-ls-remote-matching later to maint).
|
||||
|
||||
* Error messages given upon a signature verification failure used to
|
||||
discard the errors from underlying gpg program, which has been
|
||||
corrected.
|
||||
(merge ad6b320756 js/gpg-errors later to maint).
|
||||
|
||||
* Update --date=default documentation.
|
||||
(merge 9deef088ae rd/doc-default-date-format later to maint).
|
||||
|
||||
* A test helper had a single write(2) of 256kB, which was too big for
|
||||
some platforms (e.g. NonStop), which has been corrected by using
|
||||
xwrite() wrapper appropriately.
|
||||
(merge 58eab6ff13 jc/genzeros-avoid-raw-write later to maint).
|
||||
|
||||
* sscanf(3) used in "git symbolic-ref --short" implementation found
|
||||
to be not working reliably on macOS in UTF-8 locales. Rewrite the
|
||||
code to avoid sscanf() altogether to work it around.
|
||||
(merge 613bef56b8 jk/shorten-unambiguous-ref-wo-sscanf later to maint).
|
||||
|
||||
* Various fix-ups on HTTP tests.
|
||||
(merge 8f2146dbf1 jk/http-test-fixes later to maint).
|
||||
|
||||
* Fixes to code that parses the todo file used in "rebase -i".
|
||||
(merge 666b6e1135 pw/rebase-i-parse-fix later to maint).
|
||||
|
||||
* Test library clean-up.
|
||||
(merge c600a91c94 ar/test-lib-remove-stale-comment later to maint).
|
||||
|
||||
* Other code cleanup, docfix, build fix, etc.
|
||||
(merge 4eb1ccecd4 dh/mingw-ownership-check-typofix later to maint).
|
||||
(merge f95526419b ar/typofix-gitattributes-doc later to maint).
|
||||
(merge 27875aeec9 km/doc-branch-start-point later to maint).
|
||||
(merge 35c194dc57 es/t1509-root-fixes later to maint).
|
||||
(merge 7b341645e3 pw/ci-print-failure-name-fix later to maint).
|
||||
(merge bcb71d45bf jx/t1301-updates later to maint).
|
||||
(merge ebdc46c242 jc/doc-diff-patch.txt later to maint).
|
||||
(merge a87a20cbb4 ar/test-cleanup later to maint).
|
||||
(merge f5156f1885 ar/bisect-doc-update later to maint).
|
||||
(merge fca2d86c97 jk/interop-error later to maint).
|
||||
(merge cf4936ed74 tl/ls-tree-code-clean-up later to maint).
|
||||
(merge dcb47e52b0 en/t6426-todo-cleanup later to maint).
|
||||
(merge 5b8db44bdd jc/format-patch-v-unleak later to maint).
|
||||
(merge 590b636737 jk/hash-object-literally-fd-leak later to maint).
|
||||
(merge 5458ba0a4d tb/t0003-invoke-dd-more-portably later to maint).
|
||||
(merge 70661d288b ar/markup-em-dash later to maint).
|
||||
(merge e750951e74 en/ls-files-doc-update later to maint).
|
||||
(merge 4f542975d1 mh/doc-credential-cache-only-in-core later to maint).
|
||||
(merge 3a2ebaebc7 gc/index-format-doc later to maint).
|
||||
(merge b08edf709d jk/httpd-test-updates later to maint).
|
||||
(merge d85e9448dd wl/new-command-doc later to maint).
|
||||
(merge d912a603ed kf/t5000-modernise later to maint).
|
||||
(merge e65b868d07 rs/size-t-fixes later to maint).
|
||||
(merge 3eb1e1ca9a ab/config-h-remove-unused later to maint).
|
||||
(merge d390e08076 cw/doc-pushurl-vs-url later to maint).
|
||||
(merge 567342fc77 rs/ctype-test later to maint).
|
||||
(merge d35d8f2e7a ap/t2015-style-update later to maint).
|
@ -38,10 +38,9 @@ while ($changed) {
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $text (sort keys %include) {
|
||||
my $included = $include{$text};
|
||||
while (my ($text, $included) = each %include) {
|
||||
if (! exists $included{$text} &&
|
||||
(my $base = $text) =~ s/\.txt$//) {
|
||||
print "$base.html $base.xml : ", join(" ", sort keys %$included), "\n";
|
||||
print "$base.html $base.xml : ", join(" ", keys %$included), "\n";
|
||||
}
|
||||
}
|
||||
|
@ -387,8 +387,6 @@ include::config/branch.txt[]
|
||||
|
||||
include::config/browser.txt[]
|
||||
|
||||
include::config/bundle.txt[]
|
||||
|
||||
include::config/checkout.txt[]
|
||||
|
||||
include::config/clean.txt[]
|
||||
@ -425,8 +423,6 @@ include::config/filter.txt[]
|
||||
|
||||
include::config/fsck.txt[]
|
||||
|
||||
include::config/fsmonitor--daemon.txt[]
|
||||
|
||||
include::config/gc.txt[]
|
||||
|
||||
include::config/gitcvs.txt[]
|
||||
|
@ -7,7 +7,6 @@ add.ignore-errors (deprecated)::
|
||||
variables.
|
||||
|
||||
add.interactive.useBuiltin::
|
||||
Unused configuration variable. Used in Git versions v2.25.0 to
|
||||
v2.36.0 to enable the built-in version of linkgit:git-add[1]'s
|
||||
interactive mode, which then became the default in Git
|
||||
versions v2.37.0 to v2.39.0.
|
||||
Set to `false` to fall back to the original Perl implementation of
|
||||
the interactive version of linkgit:git-add[1] instead of the built-in
|
||||
version. Is `true` by default.
|
||||
|
@ -1,31 +0,0 @@
|
||||
bundle.*::
|
||||
The `bundle.*` keys may appear in a bundle list file found via the
|
||||
`git clone --bundle-uri` option. These keys currently have no effect
|
||||
if placed in a repository config file, though this will change in the
|
||||
future. See link:technical/bundle-uri.html[the bundle URI design
|
||||
document] for more details.
|
||||
|
||||
bundle.version::
|
||||
This integer value advertises the version of the bundle list format
|
||||
used by the bundle list. Currently, the only accepted value is `1`.
|
||||
|
||||
bundle.mode::
|
||||
This string value should be either `all` or `any`. This value describes
|
||||
whether all of the advertised bundles are required to unbundle a
|
||||
complete understanding of the bundled information (`all`) or if any one
|
||||
of the listed bundle URIs is sufficient (`any`).
|
||||
|
||||
bundle.heuristic::
|
||||
If this string-valued key exists, then the bundle list is designed to
|
||||
work well with incremental `git fetch` commands. The heuristic signals
|
||||
that there are additional keys available for each bundle that help
|
||||
determine which subset of bundles the client should download. The
|
||||
only value currently understood is `creationToken`.
|
||||
|
||||
bundle.<id>.*::
|
||||
The `bundle.<id>.*` keys are used to describe a single item in the
|
||||
bundle list, grouped under `<id>` for identification purposes.
|
||||
|
||||
bundle.<id>.uri::
|
||||
This string value defines the URI by which Git can reach the contents
|
||||
of this `<id>`. This URI may be a bundle file or another bundle list.
|
@ -618,7 +618,7 @@ but risks losing recent work in the event of an unclean system shutdown.
|
||||
* `loose-object` hardens objects added to the repo in loose-object form.
|
||||
* `pack` hardens objects added to the repo in packfile form.
|
||||
* `pack-metadata` hardens packfile bitmaps and indexes.
|
||||
* `commit-graph` hardens the commit-graph file.
|
||||
* `commit-graph` hardens the commit graph file.
|
||||
* `index` hardens the index when it is modified.
|
||||
* `objects` is an aggregate option that is equivalent to
|
||||
`loose-object,pack`.
|
||||
|
@ -14,20 +14,12 @@ feature.experimental::
|
||||
+
|
||||
* `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
|
||||
skipping more commits at a time, reducing the number of round trips.
|
||||
+
|
||||
* `gc.cruftPacks=true` reduces disk space used by unreachable objects during
|
||||
garbage collection, preventing loose object explosions.
|
||||
|
||||
feature.manyFiles::
|
||||
Enable config options that optimize for repos with many files in the
|
||||
working directory. With many files, commands such as `git status` and
|
||||
`git checkout` may be slow and these new defaults improve performance:
|
||||
+
|
||||
* `index.skipHash=true` speeds up index writes by not computing a trailing
|
||||
checksum. Note that this will cause Git versions earlier than 2.13.0 to
|
||||
refuse to parse the index and Git versions earlier than 2.40.0 will report
|
||||
a corrupted index during `git fsck`.
|
||||
+
|
||||
* `index.version=4` enables path-prefix compression in the index.
|
||||
+
|
||||
* `core.untrackedCache=true` enables the untracked cache. This setting assumes
|
||||
|
@ -96,27 +96,3 @@ fetch.writeCommitGraph::
|
||||
merge and the write may take longer. Having an updated commit-graph
|
||||
file helps performance of many Git commands, including `git merge-base`,
|
||||
`git push -f`, and `git log --graph`. Defaults to false.
|
||||
|
||||
fetch.bundleURI::
|
||||
This value stores a URI for downloading Git object data from a bundle
|
||||
URI before performing an incremental fetch from the origin Git server.
|
||||
This is similar to how the `--bundle-uri` option behaves in
|
||||
linkgit:git-clone[1]. `git clone --bundle-uri` will set the
|
||||
`fetch.bundleURI` value if the supplied bundle URI contains a bundle
|
||||
list that is organized for incremental fetches.
|
||||
+
|
||||
If you modify this value and your repository has a `fetch.bundleCreationToken`
|
||||
value, then remove that `fetch.bundleCreationToken` value before fetching from
|
||||
the new bundle URI.
|
||||
|
||||
fetch.bundleCreationToken::
|
||||
When using `fetch.bundleURI` to fetch incrementally from a bundle
|
||||
list that uses the "creationToken" heuristic, this config value
|
||||
stores the maximum `creationToken` value of the downloaded bundles.
|
||||
This value is used to prevent downloading bundles in the future
|
||||
if the advertised `creationToken` is not strictly larger than this
|
||||
value.
|
||||
+
|
||||
The creation token values are chosen by the provider serving the specific
|
||||
bundle URI. If you modify the URI at `fetch.bundleURI`, then be sure to
|
||||
remove the value for the `fetch.bundleCreationToken` value before fetching.
|
||||
|
@ -3,8 +3,7 @@ format.attach::
|
||||
'format-patch'. The value can also be a double quoted string
|
||||
which will enable attachments as the default and set the
|
||||
value as the boundary. See the --attach option in
|
||||
linkgit:git-format-patch[1]. To countermand an earlier
|
||||
value, set it to an empty string.
|
||||
linkgit:git-format-patch[1].
|
||||
|
||||
format.from::
|
||||
Provides the default value for the `--from` option to format-patch.
|
||||
@ -140,7 +139,3 @@ For example,
|
||||
------------
|
||||
+
|
||||
will only show notes from `refs/notes/bar`.
|
||||
|
||||
format.mboxrd::
|
||||
A boolean value which enables the robust "mboxrd" format when
|
||||
`--stdout` is in use to escape "^>+From " lines.
|
||||
|
@ -35,10 +35,6 @@ allow new instances of the same breakages go unnoticed.
|
||||
Setting an unknown `fsck.<msg-id>` value will cause fsck to die, but
|
||||
doing the same for `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>`
|
||||
will only cause git to warn.
|
||||
+
|
||||
See `Fsck Messages` section of linkgit:git-fsck[1] for supported
|
||||
values of `<msg-id>`.
|
||||
|
||||
|
||||
fsck.skipList::
|
||||
The path to a list of object names (i.e. one unabbreviated SHA-1 per
|
||||
|
@ -1,11 +0,0 @@
|
||||
fsmonitor.allowRemote::
|
||||
By default, the fsmonitor daemon refuses to work against network-mounted
|
||||
repositories. Setting `fsmonitor.allowRemote` to `true` overrides this
|
||||
behavior. Only respected when `core.fsmonitor` is set to `true`.
|
||||
|
||||
fsmonitor.socketDir::
|
||||
This Mac OS-specific option, if set, specifies the directory in
|
||||
which to create the Unix domain socket used for communication
|
||||
between the fsmonitor daemon and various Git commands. The directory must
|
||||
reside on a native Mac OS filesystem. Only respected when `core.fsmonitor`
|
||||
is set to `true`.
|
@ -30,14 +30,3 @@ index.version::
|
||||
Specify the version with which new index files should be
|
||||
initialized. This does not affect existing repositories.
|
||||
If `feature.manyFiles` is enabled, then the default is 4.
|
||||
|
||||
index.skipHash::
|
||||
When enabled, do not compute the trailing hash for the index file.
|
||||
This accelerates Git commands that manipulate the index, such as
|
||||
`git add`, `git commit`, or `git status`. Instead of storing the
|
||||
checksum, write a trailing set of bytes with value zero, indicating
|
||||
that the computation was skipped.
|
||||
+
|
||||
If you enable `index.skipHash`, then Git clients older than 2.13.0 will
|
||||
refuse to parse the index and Git clients older than 2.40.0 will report an
|
||||
error during `git fsck`.
|
||||
|
@ -110,8 +110,18 @@ This will result in only b (a and c are cleared).
|
||||
----
|
||||
|
||||
push.recurseSubmodules::
|
||||
May be "check", "on-demand", "only", or "no", with the same behavior
|
||||
as that of "push --recurse-submodules".
|
||||
Make sure all submodule commits used by the revisions to be pushed
|
||||
are available on a remote-tracking branch. If the value is 'check'
|
||||
then Git will verify that all submodule commits that changed in the
|
||||
revisions to be pushed are available on at least one remote of the
|
||||
submodule. If any commits are missing, the push will be aborted and
|
||||
exit with non-zero status. If the value is 'on-demand' then all
|
||||
submodules that changed in the revisions to be pushed will be
|
||||
pushed. If on-demand was not able to push all necessary revisions
|
||||
it will also be aborted and exit with non-zero status. If the value
|
||||
is 'no' then default behavior of ignoring submodules when pushing
|
||||
is retained. You may override this configuration at time of push by
|
||||
specifying '--recurse-submodules=check|on-demand|no'.
|
||||
If not set, 'no' is used by default, unless 'submodule.recurse' is
|
||||
set (in which case a 'true' value means 'on-demand').
|
||||
|
||||
|
@ -115,9 +115,3 @@ transfer.unpackLimit::
|
||||
transfer.advertiseSID::
|
||||
Boolean. When true, client and server processes will advertise their
|
||||
unique session IDs to their remote counterpart. Defaults to false.
|
||||
|
||||
transfer.bundleURI::
|
||||
When `true`, local `git clone` commands will request bundle
|
||||
information from the remote server (if advertised) and download
|
||||
bundles before continuing the clone through the Git protocol.
|
||||
Defaults to `false`.
|
||||
|
@ -1,4 +1,3 @@
|
||||
[[generate_patch_text_with_p]]
|
||||
Generating patch text with -p
|
||||
-----------------------------
|
||||
|
||||
|
@ -22,13 +22,7 @@ ifndef::git-format-patch[]
|
||||
-p::
|
||||
-u::
|
||||
--patch::
|
||||
Generate patch (see section titled
|
||||
ifdef::git-log[]
|
||||
<<generate_patch_text_with_p, "Generating patch text with -p">>).
|
||||
endif::git-log[]
|
||||
ifndef::git-log[]
|
||||
"Generating patch text with -p").
|
||||
endif::git-log[]
|
||||
Generate patch (see section on generating patches).
|
||||
ifdef::git-diff[]
|
||||
This is the default.
|
||||
endif::git-diff[]
|
||||
|
@ -1,173 +0,0 @@
|
||||
`badDate`::
|
||||
(ERROR) Invalid date format in an author/committer line.
|
||||
|
||||
`badDateOverflow`::
|
||||
(ERROR) Invalid date value in an author/committer line.
|
||||
|
||||
`badEmail`::
|
||||
(ERROR) Invalid email format in an author/committer line.
|
||||
|
||||
`badFilemode`::
|
||||
(INFO) A tree contains a bad filemode entry.
|
||||
|
||||
`badName`::
|
||||
(ERROR) An author/committer name is empty.
|
||||
|
||||
`badObjectSha1`::
|
||||
(ERROR) An object has a bad sha1.
|
||||
|
||||
`badParentSha1`::
|
||||
(ERROR) A commit object has a bad parent sha1.
|
||||
|
||||
`badTagName`::
|
||||
(INFO) A tag has an invalid format.
|
||||
|
||||
`badTimezone`::
|
||||
(ERROR) Found an invalid time zone in an author/committer line.
|
||||
|
||||
`badTree`::
|
||||
(ERROR) A tree cannot be parsed.
|
||||
|
||||
`badTreeSha1`::
|
||||
(ERROR) A tree has an invalid format.
|
||||
|
||||
`badType`::
|
||||
(ERROR) Found an invalid object type.
|
||||
|
||||
`duplicateEntries`::
|
||||
(ERROR) A tree contains duplicate file entries.
|
||||
|
||||
`emptyName`::
|
||||
(WARN) A path contains an empty name.
|
||||
|
||||
`extraHeaderEntry`::
|
||||
(IGNORE) Extra headers found after `tagger`.
|
||||
|
||||
`fullPathname`::
|
||||
(WARN) A path contains the full path starting with "/".
|
||||
|
||||
`gitattributesBlob`::
|
||||
(ERROR) A non-blob found at `.gitattributes`.
|
||||
|
||||
`gitattributesLarge`::
|
||||
(ERROR) The `.gitattributes` blob is too large.
|
||||
|
||||
`gitattributesLineLength`::
|
||||
(ERROR) The `.gitattributes` blob contains too long lines.
|
||||
|
||||
`gitattributesMissing`::
|
||||
(ERROR) Unable to read `.gitattributes` blob.
|
||||
|
||||
`gitattributesSymlink`::
|
||||
(INFO) `.gitattributes` is a symlink.
|
||||
|
||||
`gitignoreSymlink`::
|
||||
(INFO) `.gitignore` is a symlink.
|
||||
|
||||
`gitmodulesBlob`::
|
||||
(ERROR) A non-blob found at `.gitmodules`.
|
||||
|
||||
`gitmodulesLarge`::
|
||||
(ERROR) The `.gitmodules` file is too large to parse.
|
||||
|
||||
`gitmodulesMissing`::
|
||||
(ERROR) Unable to read `.gitmodules` blob.
|
||||
|
||||
`gitmodulesName`::
|
||||
(ERROR) A submodule name is invalid.
|
||||
|
||||
`gitmodulesParse`::
|
||||
(INFO) Could not parse `.gitmodules` blob.
|
||||
|
||||
`gitmodulesLarge`;
|
||||
(ERROR) `.gitmodules` blob is too large to parse.
|
||||
|
||||
`gitmodulesPath`::
|
||||
(ERROR) `.gitmodules` path is invalid.
|
||||
|
||||
`gitmodulesSymlink`::
|
||||
(ERROR) `.gitmodules` is a symlink.
|
||||
|
||||
`gitmodulesUpdate`::
|
||||
(ERROR) Found an invalid submodule update setting.
|
||||
|
||||
`gitmodulesUrl`::
|
||||
(ERROR) Found an invalid submodule url.
|
||||
|
||||
`hasDot`::
|
||||
(WARN) A tree contains an entry named `.`.
|
||||
|
||||
`hasDotdot`::
|
||||
(WARN) A tree contains an entry named `..`.
|
||||
|
||||
`hasDotgit`::
|
||||
(WARN) A tree contains an entry named `.git`.
|
||||
|
||||
`mailmapSymlink`::
|
||||
(INFO) `.mailmap` is a symlink.
|
||||
|
||||
`missingAuthor`::
|
||||
(ERROR) Author is missing.
|
||||
|
||||
`missingCommitter`::
|
||||
(ERROR) Committer is missing.
|
||||
|
||||
`missingEmail`::
|
||||
(ERROR) Email is missing in an author/committer line.
|
||||
|
||||
`missingNameBeforeEmail`::
|
||||
(ERROR) Missing name before an email in an author/committer line.
|
||||
|
||||
`missingObject`::
|
||||
(ERROR) Missing `object` line in tag object.
|
||||
|
||||
`missingSpaceBeforeDate`::
|
||||
(ERROR) Missing space before date in an author/committer line.
|
||||
|
||||
`missingSpaceBeforeEmail`::
|
||||
(ERROR) Missing space before the email in author/committer line.
|
||||
|
||||
`missingTag`::
|
||||
(ERROR) Unexpected end after `type` line in a tag object.
|
||||
|
||||
`missingTagEntry`::
|
||||
(ERROR) Missing `tag` line in a tag object.
|
||||
|
||||
`missingTaggerEntry`::
|
||||
(INFO) Missing `tagger` line in a tag object.
|
||||
|
||||
`missingTree`::
|
||||
(ERROR) Missing `tree` line in a commit object.
|
||||
|
||||
`missingType`::
|
||||
(ERROR) Invalid type value on the `type` line in a tag object.
|
||||
|
||||
`missingTypeEntry`::
|
||||
(ERROR) Missing `type` line in a tag object.
|
||||
|
||||
`multipleAuthors`::
|
||||
(ERROR) Multiple author lines found in a commit.
|
||||
|
||||
`nulInCommit`::
|
||||
(WARN) Found a NUL byte in the commit object body.
|
||||
|
||||
`nulInHeader`::
|
||||
(FATAL) NUL byte exists in the object header.
|
||||
|
||||
`nullSha1`::
|
||||
(WARN) Tree contains entries pointing to a null sha1.
|
||||
|
||||
`treeNotSorted`::
|
||||
(ERROR) A tree is not properly sorted.
|
||||
|
||||
`unknownType`::
|
||||
(ERROR) Found an unknown object type.
|
||||
|
||||
`unterminatedHeader`::
|
||||
(FATAL) Missing end-of-line in the object header.
|
||||
|
||||
`zeroPaddedDate`::
|
||||
(ERROR) Found a zero padded date in an author/commiter line.
|
||||
|
||||
`zeroPaddedFilemode`::
|
||||
(WARN) Found a zero padded filemode in a tree.
|
@ -274,7 +274,7 @@ status::
|
||||
------------
|
||||
staged unstaged path
|
||||
1: binary nothing foo.png
|
||||
2: +403/-35 +1/-1 add-interactive.c
|
||||
2: +403/-35 +1/-1 git-add--interactive.perl
|
||||
------------
|
||||
+
|
||||
It shows that foo.png has differences from HEAD (but that is
|
||||
@ -282,7 +282,7 @@ binary so line count cannot be shown) and there is no
|
||||
difference between indexed copy and the working tree
|
||||
version (if the working tree version were also different,
|
||||
'binary' would have been shown in place of 'nothing'). The
|
||||
other file, add-interactive.c, has 403 lines added
|
||||
other file, git-add{litdd}interactive.perl, has 403 lines added
|
||||
and 35 lines deleted if you commit what is in the index, but
|
||||
working tree file has further modifications (one addition and
|
||||
one deletion).
|
||||
@ -303,7 +303,7 @@ like this:
|
||||
------------
|
||||
staged unstaged path
|
||||
1: binary nothing foo.png
|
||||
* 2: +403/-35 +1/-1 add-interactive.c
|
||||
* 2: +403/-35 +1/-1 git-add--interactive.perl
|
||||
------------
|
||||
+
|
||||
To remove selection, prefix the input with `-`
|
||||
|
@ -9,7 +9,7 @@ git-am - Apply a series of patches from a mailbox
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8] [--no-verify]
|
||||
'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]
|
||||
[--[no-]3way] [--interactive] [--committer-date-is-author-date]
|
||||
[--ignore-date] [--ignore-space-change | --ignore-whitespace]
|
||||
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
|
||||
@ -138,12 +138,6 @@ include::rerere-options.txt[]
|
||||
--interactive::
|
||||
Run interactively.
|
||||
|
||||
-n::
|
||||
--no-verify::
|
||||
By default, the pre-applypatch and applypatch-msg hooks are run.
|
||||
When any of `--no-verify` or `-n` is given, these are bypassed.
|
||||
See also linkgit:githooks[5].
|
||||
|
||||
--committer-date-is-author-date::
|
||||
By default the command records the date from the e-mail
|
||||
message as the commit author date, and uses the time of
|
||||
|
@ -8,7 +8,7 @@ git-annotate - Annotate file lines with commit information
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git annotate' [<options>] [<rev-opts>] [<rev>] [--] <file>
|
||||
'git annotate' [<options>] <file> [<revision>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -208,7 +208,7 @@ behavior:
|
||||
* `warn` outputs warnings for a few such errors, but applies the
|
||||
patch as-is (default).
|
||||
* `fix` outputs warnings for a few such errors, and applies the
|
||||
patch after fixing them (`strip` is a synonym -- the tool
|
||||
patch after fixing them (`strip` is a synonym --- the tool
|
||||
used to consider only trailing whitespace characters as errors, and the
|
||||
fix involved 'stripping' them, but modern Gits do more).
|
||||
* `error` outputs warnings for a few such errors, and refuses
|
||||
|
@ -86,11 +86,6 @@ cases, write an untracked file and use `--add-file` instead.
|
||||
Look for attributes in .gitattributes files in the working tree
|
||||
as well (see <<ATTRIBUTES>>).
|
||||
|
||||
--mtime=<time>::
|
||||
Set modification time of archive entries. Without this option
|
||||
the committer time is used if `<tree-ish>` is a commit or tag,
|
||||
and the current time if it is a tree.
|
||||
|
||||
<extra>::
|
||||
This can be any options that the archiver backend understands.
|
||||
See next section.
|
||||
|
@ -1347,8 +1347,8 @@ author to given a talk and for publishing this paper.
|
||||
References
|
||||
----------
|
||||
|
||||
- [[[1]]] https://web.archive.org/web/20091206032101/http://www.nist.gov/public_affairs/releases/n02-10.htm['Software Errors Cost U.S. Economy $59.5 Billion Annually'. Nist News Release.] See also https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf['The Economic Impacts of Inadequate Infratructure for Software Testing'. Nist Planning Report 02-3], Executive Summary and Chapter 8.
|
||||
- [[[2]]] https://www.oracle.com/java/technologies/javase/codeconventions-introduction.html['Code Conventions for the Java Programming Language: 1. Introduction'. Sun Microsystems.]
|
||||
- [[[1]]] https://www.nist.gov/sites/default/files/documents/director/planning/report02-3.pdf['The Economic Impacts of Inadequate Infratructure for Software Testing'. Nist Planning Report 02-3], see Executive Summary and Chapter 8.
|
||||
- [[[2]]] http://www.oracle.com/technetwork/java/codeconvtoc-136057.html['Code Conventions for the Java Programming Language'. Sun Microsystems.]
|
||||
- [[[3]]] https://en.wikipedia.org/wiki/Software_maintenance['Software maintenance'. Wikipedia.]
|
||||
- [[[4]]] https://lore.kernel.org/git/7vps5xsbwp.fsf_-_@assigned-by-dhcp.cox.net/[Junio C Hamano. 'Automated bisect success story'.]
|
||||
- [[[5]]] https://lwn.net/Articles/317154/[Christian Couder. 'Fully automated bisecting with "git bisect run"'. LWN.net.]
|
||||
|
@ -116,17 +116,13 @@ OPTIONS
|
||||
|
||||
-f::
|
||||
--force::
|
||||
Reset <branchname> to <start-point>, even if <branchname> exists
|
||||
Reset <branchname> to <startpoint>, even if <branchname> exists
|
||||
already. Without `-f`, 'git branch' refuses to change an existing branch.
|
||||
In combination with `-d` (or `--delete`), allow deleting the
|
||||
branch irrespective of its merged status, or whether it even
|
||||
points to a valid commit. In combination with
|
||||
`-m` (or `--move`), allow renaming the branch even if the new
|
||||
branch name already exists, the same applies for `-c` (or `--copy`).
|
||||
+
|
||||
Note that 'git branch -f <branchname> [<start-point>]', even with '-f',
|
||||
refuses to change an existing branch `<branchname>` that is checked out
|
||||
in another worktree linked to the same repository.
|
||||
|
||||
-m::
|
||||
--move::
|
||||
|
@ -45,9 +45,7 @@ OPTIONS
|
||||
|
||||
-s::
|
||||
Instead of the content, show the object size identified by
|
||||
`<object>`. If used with `--use-mailmap` option, will show
|
||||
the size of updated object after replacing idents using the
|
||||
mailmap mechanism.
|
||||
`<object>`.
|
||||
|
||||
-e::
|
||||
Exit with zero status if `<object>` exists and is a valid
|
||||
@ -92,53 +90,25 @@ OPTIONS
|
||||
--batch=<format>::
|
||||
Print object information and contents for each object provided
|
||||
on stdin. May not be combined with any other options or arguments
|
||||
except `--textconv`, `--filters`, or `--use-mailmap`.
|
||||
+
|
||||
--
|
||||
* When used with `--textconv` or `--filters`, the input lines
|
||||
must specify the path, separated by whitespace. See the section
|
||||
`BATCH OUTPUT` below for details.
|
||||
|
||||
* When used with `--use-mailmap`, for commit and tag objects, the
|
||||
contents part of the output shows the identities replaced using the
|
||||
mailmap mechanism, while the information part of the output shows
|
||||
the size of the object as if it actually recorded the replacement
|
||||
identities.
|
||||
--
|
||||
except `--textconv` or `--filters`, in which case the input lines
|
||||
also need to specify the path, separated by whitespace. See the
|
||||
section `BATCH OUTPUT` below for details.
|
||||
|
||||
--batch-check::
|
||||
--batch-check=<format>::
|
||||
Print object information for each object provided on stdin. May not be
|
||||
combined with any other options or arguments except `--textconv`, `--filters`
|
||||
or `--use-mailmap`.
|
||||
+
|
||||
--
|
||||
* When used with `--textconv` or `--filters`, the input lines must
|
||||
specify the path, separated by whitespace. See the section
|
||||
`BATCH OUTPUT` below for details.
|
||||
|
||||
* When used with `--use-mailmap`, for commit and tag objects, the
|
||||
printed object information shows the size of the object as if the
|
||||
identities recorded in it were replaced by the mailmap mechanism.
|
||||
--
|
||||
Print object information for each object provided on stdin. May
|
||||
not be combined with any other options or arguments except
|
||||
`--textconv` or `--filters`, in which case the input lines also
|
||||
need to specify the path, separated by whitespace. See the
|
||||
section `BATCH OUTPUT` below for details.
|
||||
|
||||
--batch-command::
|
||||
--batch-command=<format>::
|
||||
Enter a command mode that reads commands and arguments from stdin. May
|
||||
only be combined with `--buffer`, `--textconv`, `--use-mailmap` or
|
||||
`--filters`.
|
||||
+
|
||||
--
|
||||
* When used with `--textconv` or `--filters`, the input lines must
|
||||
specify the path, separated by whitespace. See the section
|
||||
`BATCH OUTPUT` below for details.
|
||||
|
||||
* When used with `--use-mailmap`, for commit and tag objects, the
|
||||
`contents` command shows the identities replaced using the
|
||||
mailmap mechanism, while the `info` command shows the size
|
||||
of the object as if it actually recorded the replacement
|
||||
identities.
|
||||
--
|
||||
only be combined with `--buffer`, `--textconv` or `--filters`. In the
|
||||
case of `--textconv` or `--filters`, the input lines also need to specify
|
||||
the path, separated by whitespace. See the section `BATCH OUTPUT` below
|
||||
for details.
|
||||
+
|
||||
`--batch-command` recognizes the following commands:
|
||||
+
|
||||
|
@ -9,8 +9,8 @@ git-check-attr - Display gitattributes information
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git check-attr' [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
|
||||
'git check-attr' --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
|
||||
'git check-attr' [-a | --all | <attr>...] [--] <pathname>...
|
||||
'git check-attr' --stdin [-z] [-a | --all | <attr>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -36,11 +36,6 @@ OPTIONS
|
||||
If `--stdin` is also given, input paths are separated
|
||||
with a NUL character instead of a linefeed character.
|
||||
|
||||
--source=<tree-ish>::
|
||||
Check attributes against the specified tree-ish. It is common to
|
||||
specify the source tree by naming a commit, branch or tag associated
|
||||
with it.
|
||||
|
||||
\--::
|
||||
Interpret all preceding arguments as attributes and all following
|
||||
arguments as path names.
|
||||
|
@ -146,16 +146,14 @@ on your side branch as `theirs` (i.e. "one contributor's work on top
|
||||
of it").
|
||||
|
||||
-b <new-branch>::
|
||||
Create a new branch named `<new-branch>`, start it at
|
||||
`<start-point>`, and check the resulting branch out;
|
||||
see linkgit:git-branch[1] for details.
|
||||
Create a new branch named `<new-branch>` and start it at
|
||||
`<start-point>`; see linkgit:git-branch[1] for details.
|
||||
|
||||
-B <new-branch>::
|
||||
Creates the branch `<new-branch>`, start it at `<start-point>`;
|
||||
if it already exists, then reset it to `<start-point>`. And then
|
||||
check the resulting branch out. This is equivalent to running
|
||||
"git branch" with "-f" followed by "git checkout" of that branch;
|
||||
see linkgit:git-branch[1] for details.
|
||||
Creates the branch `<new-branch>` and start it at `<start-point>`;
|
||||
if it already exists, then reset it to `<start-point>`. This is
|
||||
equivalent to running "git branch" with "-f"; see
|
||||
linkgit:git-branch[1] for details.
|
||||
|
||||
-t::
|
||||
--track[=(direct|inherit)]::
|
||||
@ -479,7 +477,7 @@ before that happens. If we have not yet moved away from commit `f`,
|
||||
any of these will create a reference to it:
|
||||
|
||||
------------
|
||||
$ git checkout -b foo # or "git switch -c foo" <1>
|
||||
$ git checkout -b foo <1>
|
||||
$ git branch foo <2>
|
||||
$ git tag foo <3>
|
||||
------------
|
||||
|
@ -219,7 +219,7 @@ again, this time exercising more care about matching up context lines.
|
||||
------------
|
||||
$ git cherry-pick topic^ <1>
|
||||
$ git diff <2>
|
||||
$ git cherry-pick --abort <3>
|
||||
$ git reset --merge ORIG_HEAD <3>
|
||||
$ git cherry-pick -Xpatience topic^ <4>
|
||||
------------
|
||||
<1> apply the change that would be shown by `git show topic^`.
|
||||
|
@ -8,7 +8,7 @@ git-clean - Remove untracked files from the working tree
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git clean' [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] [<pathspec>...]
|
||||
'git clean' [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -20,16 +20,16 @@ Normally, only files unknown to Git are removed, but if the `-x`
|
||||
option is specified, ignored files are also removed. This can, for
|
||||
example, be useful to remove all build products.
|
||||
|
||||
If any optional `<pathspec>...` arguments are given, only those paths
|
||||
that match the pathspec are affected.
|
||||
If any optional `<path>...` arguments are given, only those paths
|
||||
are affected.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-d::
|
||||
Normally, when no <pathspec> is specified, git clean will not
|
||||
Normally, when no <path> is specified, git clean will not
|
||||
recurse into untracked directories to avoid removing too much.
|
||||
Specify -d to have it recurse into such directories as well.
|
||||
If a <pathspec> is specified, -d is irrelevant; all untracked
|
||||
If any paths are specified, -d is irrelevant; all untracked
|
||||
files matching the specified paths (with exceptions for nested
|
||||
git directories mentioned under `--force`) will be removed.
|
||||
|
||||
|
@ -10,10 +10,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git commit-graph verify' [--object-dir <dir>] [--shallow] [--[no-]progress]
|
||||
'git commit-graph write' [--object-dir <dir>] [--append]
|
||||
[--split[=<strategy>]] [--reachable | --stdin-packs | --stdin-commits]
|
||||
[--changed-paths] [--[no-]max-new-filters <n>] [--[no-]progress]
|
||||
<split options>
|
||||
'git commit-graph write' <options> [--object-dir <dir>] [--[no-]progress]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -8,7 +8,7 @@ git-credential-cache--daemon - Temporarily store user credentials in memory
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git credential-cache{litdd}daemon' [--debug] <socket-path>
|
||||
'git credential-cache{litdd}daemon' [--debug] <socket>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -16,7 +16,7 @@ DESCRIPTION
|
||||
NOTE: You probably don't want to invoke this command yourself; it is
|
||||
started automatically when you use linkgit:git-credential-cache[1].
|
||||
|
||||
This command listens on the Unix domain socket specified by `<socket-path>`
|
||||
This command listens on the Unix domain socket specified by `<socket>`
|
||||
for `git-credential-cache` clients. Clients may store and retrieve
|
||||
credentials. Each credential is held for a timeout specified by the
|
||||
client; once no credentials are held, the daemon exits.
|
||||
|
@ -14,13 +14,10 @@ git config credential.helper 'cache [<options>]'
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
This command caches credentials for use by future Git programs.
|
||||
The stored credentials are kept in memory of the cache-daemon
|
||||
process (instead of written to a file) and are forgotten after a
|
||||
configurable timeout. Credentials are forgotten sooner if the
|
||||
cache-daemon dies, for example if the system restarts. The cache
|
||||
is accessible over a Unix domain socket, restricted to the current
|
||||
user by filesystem permissions.
|
||||
This command caches credentials in memory for use by future Git
|
||||
programs. The stored credentials never touch the disk, and are forgotten
|
||||
after a configurable timeout. The cache is accessible over a Unix
|
||||
domain socket, restricted to the current user by filesystem permissions.
|
||||
|
||||
You probably don't want to invoke this command directly; it is meant to
|
||||
be used as a credential helper by other parts of Git. See
|
||||
@ -72,10 +69,10 @@ $ git push http://example.com/repo.git
|
||||
------------------------------------
|
||||
|
||||
You can provide options via the credential.helper configuration
|
||||
variable (this example increases the cache time to 1 hour):
|
||||
variable (this example drops the cache time to 5 minutes):
|
||||
|
||||
-------------------------------------------------------
|
||||
$ git config credential.helper 'cache --timeout=3600'
|
||||
$ git config credential.helper 'cache --timeout=300'
|
||||
-------------------------------------------------------
|
||||
|
||||
GIT
|
||||
|
@ -144,12 +144,6 @@ Git understands the following attributes:
|
||||
|
||||
The credential's password, if we are asking it to be stored.
|
||||
|
||||
`password_expiry_utc`::
|
||||
|
||||
Generated passwords such as an OAuth access token may have an expiry date.
|
||||
When reading credentials from helpers, `git credential fill` ignores expired
|
||||
passwords. Represented as Unix time UTC, seconds since 1970.
|
||||
|
||||
`url`::
|
||||
|
||||
When this special attribute is read by `git credential`, the
|
||||
@ -166,8 +160,6 @@ empty string.
|
||||
Components which are missing from the URL (e.g., there is no
|
||||
username in the example above) will be left unset.
|
||||
|
||||
Unrecognised attributes are silently discarded.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -9,7 +9,7 @@ git-diff-files - Compares files in the working tree and the index
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git diff-files' [-q] [-0 | -1 | -2 | -3 | -c | --cc] [<common-diff-options>] [<path>...]
|
||||
'git diff-files' [-q] [-0|-1|-2|-3|-c|--cc] [<common-diff-options>] [<path>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -79,10 +79,10 @@ If --merge-base is given, use the merge base of the two commits for the
|
||||
|
||||
This form is to view the results of a merge commit. The first
|
||||
listed <commit> must be the merge itself; the remaining two or
|
||||
more commits should be its parents. Convenient ways to produce
|
||||
the desired set of revisions are to use the suffixes `^@` and
|
||||
`^!`. If A is a merge commit, then `git diff A A^@`,
|
||||
`git diff A^!` and `git show A` all give the same combined diff.
|
||||
more commits should be its parents. A convenient way to produce
|
||||
the desired set of revisions is to use the `^@` suffix.
|
||||
For instance, if `master` names a merge commit, `git diff master
|
||||
master^@` gives the same combined diff as `git show master`.
|
||||
|
||||
'git diff' [<options>] <commit>..<commit> [--] [<path>...]::
|
||||
|
||||
|
@ -9,7 +9,7 @@ git-fast-export - Git data exporter
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git fast-export' [<options>] | 'git fast-import'
|
||||
'git fast-export [<options>]' | 'git fast-import'
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -251,10 +251,10 @@ EXAMPLES
|
||||
$ git fetch origin
|
||||
------------------------------------------------
|
||||
+
|
||||
The above command copies all branches from the remote `refs/heads/`
|
||||
namespace and stores them to the local `refs/remotes/origin/` namespace,
|
||||
unless the `remote.<repository>.fetch` option is used to specify a
|
||||
non-default refspec.
|
||||
The above command copies all branches from the remote refs/heads/
|
||||
namespace and stores them to the local refs/remotes/origin/ namespace,
|
||||
unless the branch.<name>.fetch option is used to specify a non-default
|
||||
refspec.
|
||||
|
||||
* Using refspecs explicitly:
|
||||
+
|
||||
|
@ -152,18 +152,6 @@ hash mismatch <object>::
|
||||
object database value.
|
||||
This indicates a serious data integrity problem.
|
||||
|
||||
|
||||
FSCK MESSAGES
|
||||
-------------
|
||||
|
||||
The following lists the types of errors `git fsck` detects and what
|
||||
each error means, with their default severity. The severity of the
|
||||
error, other than those that are marked as "(FATAL)", can be tweaked
|
||||
by setting the corresponding `fsck.<msg-id>` configuration variable.
|
||||
|
||||
include::fsck-msgids.txt[]
|
||||
|
||||
|
||||
Environment Variables
|
||||
---------------------
|
||||
|
||||
|
@ -3,7 +3,7 @@ git-fsmonitor{litdd}daemon(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-fsmonitor--daemon - A Built-in Filesystem Monitor
|
||||
git-fsmonitor--daemon - A Built-in File System Monitor
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
@ -17,7 +17,7 @@ DESCRIPTION
|
||||
-----------
|
||||
|
||||
A daemon to watch the working directory for file and directory
|
||||
changes using platform-specific filesystem notification facilities.
|
||||
changes using platform-specific file system notification facilities.
|
||||
|
||||
This daemon communicates directly with commands like `git status`
|
||||
using the link:technical/api-simple-ipc.html[simple IPC] interface
|
||||
@ -63,44 +63,13 @@ CAVEATS
|
||||
-------
|
||||
|
||||
The fsmonitor daemon does not currently know about submodules and does
|
||||
not know to filter out filesystem events that happen within a
|
||||
not know to filter out file system events that happen within a
|
||||
submodule. If fsmonitor daemon is watching a super repo and a file is
|
||||
modified within the working directory of a submodule, it will report
|
||||
the change (as happening against the super repo). However, the client
|
||||
will properly ignore these extra events, so performance may be affected
|
||||
but it will not cause an incorrect result.
|
||||
|
||||
By default, the fsmonitor daemon refuses to work against network-mounted
|
||||
repositories; this may be overridden by setting `fsmonitor.allowRemote` to
|
||||
`true`. Note, however, that the fsmonitor daemon is not guaranteed to work
|
||||
correctly with all network-mounted repositories and such use is considered
|
||||
experimental.
|
||||
|
||||
On Mac OS, the inter-process communication (IPC) between various Git
|
||||
commands and the fsmonitor daemon is done via a Unix domain socket (UDS) -- a
|
||||
special type of file -- which is supported by native Mac OS filesystems,
|
||||
but not on network-mounted filesystems, NTFS, or FAT32. Other filesystems
|
||||
may or may not have the needed support; the fsmonitor daemon is not guaranteed
|
||||
to work with these filesystems and such use is considered experimental.
|
||||
|
||||
By default, the socket is created in the `.git` directory, however, if the
|
||||
`.git` directory is on a network-mounted filesystem, it will be instead be
|
||||
created at `$HOME/.git-fsmonitor-*` unless `$HOME` itself is on a
|
||||
network-mounted filesystem in which case you must set the configuration
|
||||
variable `fsmonitor.socketDir` to the path of a directory on a Mac OS native
|
||||
filesystem in which to create the socket file.
|
||||
|
||||
If none of the above directories (`.git`, `$HOME`, or `fsmonitor.socketDir`)
|
||||
is on a native Mac OS file filesystem the fsmonitor daemon will report an
|
||||
error that will cause the daemon and the currently running command to exit.
|
||||
|
||||
CONFIGURATION
|
||||
-------------
|
||||
|
||||
include::includes/cmd-config-section-all.txt[]
|
||||
|
||||
include::config/fsmonitor--daemon.txt[]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
|
@ -9,8 +9,7 @@ git-hash-object - Compute object ID and optionally creates a blob from a file
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git hash-object' [-t <type>] [-w] [--path=<file> | --no-filters]
|
||||
[--stdin [--literally]] [--] <file>...
|
||||
'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin [--literally]] [--] <file>...
|
||||
'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters]
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -8,7 +8,7 @@ git-hook - Run git hooks
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git hook' run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-args>]
|
||||
'git hook' run [--ignore-missing] <hook-name> [-- <hook-args>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -31,11 +31,6 @@ linkgit:githooks[5] for arguments hooks might expect (if any).
|
||||
OPTIONS
|
||||
-------
|
||||
|
||||
--to-stdin::
|
||||
For "run"; Specify a file which will be streamed into the
|
||||
hook's stdin. The hook will receive the entire file from
|
||||
beginning to EOF.
|
||||
|
||||
--ignore-missing::
|
||||
Ignore any missing hook by quietly returning zero. Used for
|
||||
tools that want to do a blind one-shot run of a hook that may
|
||||
|
@ -8,9 +8,8 @@ git-interpret-trailers - Add or parse structured information in commit messages
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git interpret-trailers' [--in-place] [--trim-empty]
|
||||
[(--trailer <token>[(=|:)<value>])...]
|
||||
[--parse] [<file>...]
|
||||
'git interpret-trailers' [<options>] [(--trailer <token>[(=|:)<value>])...] [<file>...]
|
||||
'git interpret-trailers' [<options>] [--parse] [<file>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -10,9 +10,8 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git ls-files' [-z] [-t] [-v] [-f]
|
||||
[-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]
|
||||
[-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]
|
||||
[--resolve-undo]
|
||||
[-c|--cached] [-d|--deleted] [-o|--others] [-i|--|ignored]
|
||||
[-s|--stage] [-u|--unmerged] [-k|--|killed] [-m|--modified]
|
||||
[--directory [--no-empty-directory]] [--eol]
|
||||
[--deduplicate]
|
||||
[-x <pattern>|--exclude=<pattern>]
|
||||
@ -29,26 +28,21 @@ This merges the file listing in the index with the actual working
|
||||
directory list, and shows different combinations of the two.
|
||||
|
||||
One or more of the options below may be used to determine the files
|
||||
shown, and each file may be printed multiple times if there are
|
||||
multiple entries in the index or multiple statuses are applicable for
|
||||
the relevant file selection options.
|
||||
shown:
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-c::
|
||||
--cached::
|
||||
Show all files cached in Git's index, i.e. all tracked files.
|
||||
(This is the default if no -c/-s/-d/-o/-u/-k/-m/--resolve-undo
|
||||
options are specified.)
|
||||
Show cached files in the output (default)
|
||||
|
||||
-d::
|
||||
--deleted::
|
||||
Show files with an unstaged deletion
|
||||
Show deleted files in the output
|
||||
|
||||
-m::
|
||||
--modified::
|
||||
Show files with an unstaged modification (note that an unstaged
|
||||
deletion also counts as an unstaged modification)
|
||||
Show modified files in the output
|
||||
|
||||
-o::
|
||||
--others::
|
||||
@ -56,14 +50,11 @@ OPTIONS
|
||||
|
||||
-i::
|
||||
--ignored::
|
||||
Show only ignored files in the output. Must be used with
|
||||
either an explicit '-c' or '-o'. When showing files in the
|
||||
index (i.e. when used with '-c'), print only those files
|
||||
matching an exclude pattern. When showing "other" files
|
||||
(i.e. when used with '-o'), show only those matched by an
|
||||
exclude pattern. Standard ignore rules are not automatically
|
||||
activated, therefore at least one of the `--exclude*` options
|
||||
is required.
|
||||
Show only ignored files in the output. When showing files in the
|
||||
index, print only those matched by an exclude pattern. When
|
||||
showing "other" files, show only those matched by an exclude
|
||||
pattern. Standard ignore rules are not automatically activated,
|
||||
therefore at least one of the `--exclude*` options is required.
|
||||
|
||||
-s::
|
||||
--stage::
|
||||
@ -72,29 +63,19 @@ OPTIONS
|
||||
--directory::
|
||||
If a whole directory is classified as "other", show just its
|
||||
name (with a trailing slash) and not its whole contents.
|
||||
Has no effect without -o/--others.
|
||||
|
||||
--no-empty-directory::
|
||||
Do not list empty directories. Has no effect without --directory.
|
||||
|
||||
-u::
|
||||
--unmerged::
|
||||
Show information about unmerged files in the output, but do
|
||||
not show any other tracked files (forces --stage, overrides
|
||||
--cached).
|
||||
Show unmerged files in the output (forces --stage)
|
||||
|
||||
-k::
|
||||
--killed::
|
||||
Show untracked files on the filesystem that need to be removed
|
||||
due to file/directory conflicts for tracked files to be able to
|
||||
be written to the filesystem.
|
||||
|
||||
--resolve-undo::
|
||||
Show files having resolve-undo information in the index
|
||||
together with their resolve-undo information. (resolve-undo
|
||||
information is what is used to implement "git checkout -m
|
||||
$PATH", i.e. to recreate merge conflicts that were
|
||||
accidentally resolved)
|
||||
Show files on the filesystem that need to be removed due
|
||||
to file/directory conflicts for checkout-index to
|
||||
succeed.
|
||||
|
||||
-z::
|
||||
\0 line termination on output and do not quote filenames.
|
||||
@ -119,8 +100,7 @@ OPTIONS
|
||||
|
||||
--exclude-per-directory=<file>::
|
||||
Read additional exclude patterns that apply only to the
|
||||
directory and its subdirectories in <file>. Deprecated; use
|
||||
--exclude-standard instead.
|
||||
directory and its subdirectories in <file>.
|
||||
|
||||
--exclude-standard::
|
||||
Add the standard Git exclusions: .git/info/exclude, .gitignore
|
||||
@ -138,27 +118,24 @@ OPTIONS
|
||||
with `-s` or `-u` options does not make any sense.
|
||||
|
||||
-t::
|
||||
Show status tags together with filenames. Note that for
|
||||
scripting purposes, linkgit:git-status[1] `--porcelain` and
|
||||
This feature is semi-deprecated. For scripting purpose,
|
||||
linkgit:git-status[1] `--porcelain` and
|
||||
linkgit:git-diff-files[1] `--name-status` are almost always
|
||||
superior alternatives, and users should look at
|
||||
linkgit:git-status[1] `--short` or linkgit:git-diff[1]
|
||||
`--name-status` for more user-friendly alternatives.
|
||||
+
|
||||
--
|
||||
This option provides a reason for showing each filename, in the form
|
||||
of a status tag (which is followed by a space and then the filename).
|
||||
The status tags are all single characters from the following list:
|
||||
This option identifies the file status with the following tags (followed by
|
||||
a space) at the start of each line:
|
||||
|
||||
H:: tracked file that is not either unmerged or skip-worktree
|
||||
S:: tracked file that is skip-worktree
|
||||
M:: tracked file that is unmerged
|
||||
R:: tracked file with unstaged removal/deletion
|
||||
C:: tracked file with unstaged modification/change
|
||||
K:: untracked paths which are part of file/directory conflicts
|
||||
which prevent checking out tracked files
|
||||
?:: untracked file
|
||||
U:: file with resolve-undo information
|
||||
H:: cached
|
||||
S:: skip-worktree
|
||||
M:: unmerged
|
||||
R:: removed/deleted
|
||||
C:: modified/changed
|
||||
K:: to be killed
|
||||
?:: other
|
||||
--
|
||||
|
||||
-v::
|
||||
@ -292,9 +269,7 @@ traversing the directory tree and finding files to show when the
|
||||
flags --others or --ignored are specified. linkgit:gitignore[5]
|
||||
specifies the format of exclude patterns.
|
||||
|
||||
Generally, you should just use --exclude-standard, but for historical
|
||||
reasons the exclude patterns can be specified from the following
|
||||
places, in order:
|
||||
These exclude patterns come from these places, in order:
|
||||
|
||||
1. The command-line flag --exclude=<pattern> specifies a
|
||||
single pattern. Patterns are ordered in the same order
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git ls-remote' [--heads] [--tags] [--refs] [--upload-pack=<exec>]
|
||||
[-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]
|
||||
[--symref] [<repository> [<patterns>...]]
|
||||
[--symref] [<repository> [<refs>...]]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -85,32 +85,25 @@ OPTIONS
|
||||
either a URL or the name of a remote (see the GIT URLS and
|
||||
REMOTES sections of linkgit:git-fetch[1]).
|
||||
|
||||
<patterns>...::
|
||||
<refs>...::
|
||||
When unspecified, all references, after filtering done
|
||||
with --heads and --tags, are shown. When <patterns>... are
|
||||
specified, only references matching one or more of the given
|
||||
patterns are displayed. Each pattern is interpreted as a glob
|
||||
(see `glob` in linkgit:gitglossary[7]) which is matched against
|
||||
the "tail" of a ref, starting either from the start of the ref
|
||||
(so a full name like `refs/heads/foo` matches) or from a slash
|
||||
separator (so `bar` matches `refs/heads/bar` but not
|
||||
`refs/heads/foobar`).
|
||||
with --heads and --tags, are shown. When <refs>... are
|
||||
specified, only references matching the given patterns
|
||||
are displayed.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
----
|
||||
$ git ls-remote --tags .
|
||||
$ git ls-remote --tags ./.
|
||||
d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
|
||||
f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1
|
||||
7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3
|
||||
c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2
|
||||
0918385dbd9656cab0d1d81ba7453d49bbc16250 refs/tags/junio-gpg-pub
|
||||
|
||||
$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master seen rc
|
||||
5fe978a5381f1fbad26a80e682ddd2a401966740 refs/heads/master
|
||||
c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/seen
|
||||
|
||||
$ git remote add korg http://www.kernel.org/pub/scm/git/git.git
|
||||
$ git ls-remote --tags korg v\*
|
||||
d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99
|
||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
||||
[verse]
|
||||
'git maintenance' run [<options>]
|
||||
'git maintenance' start [--scheduler=<scheduler>]
|
||||
'git maintenance' (stop|register|unregister) [<options>]
|
||||
'git maintenance' (stop|register|unregister)
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@ -50,13 +50,13 @@ stop::
|
||||
the background maintenance is restarted later.
|
||||
|
||||
register::
|
||||
Initialize Git config values so any scheduled maintenance will start
|
||||
running on this repository. This adds the repository to the
|
||||
`maintenance.repo` config variable in the current user's global config,
|
||||
or the config specified by --config-file option, and enables some
|
||||
recommended configuration values for `maintenance.<task>.schedule`. The
|
||||
tasks that are enabled are safe for running in the background without
|
||||
disrupting foreground processes.
|
||||
Initialize Git config values so any scheduled maintenance will
|
||||
start running on this repository. This adds the repository to the
|
||||
`maintenance.repo` config variable in the current user's global
|
||||
config and enables some recommended configuration values for
|
||||
`maintenance.<task>.schedule`. The tasks that are enabled are safe
|
||||
for running in the background without disrupting foreground
|
||||
processes.
|
||||
+
|
||||
The `register` subcommand will also set the `maintenance.strategy` config
|
||||
value to `incremental`, if this value is not previously set. The
|
||||
@ -79,10 +79,6 @@ unregister::
|
||||
Remove the current repository from background maintenance. This
|
||||
only removes the repository from the configured list. It does not
|
||||
stop the background maintenance processes from running.
|
||||
+
|
||||
The `unregister` subcommand will report an error if the current repository
|
||||
is not already registered. Use the `--force` option to return success even
|
||||
when the current repository is not registered.
|
||||
|
||||
TASKS
|
||||
-----
|
||||
|
@ -9,8 +9,8 @@ git-merge-base - Find as good common ancestors as possible for a merge
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git merge-base' [-a | --all] <commit> <commit>...
|
||||
'git merge-base' [-a | --all] --octopus <commit>...
|
||||
'git merge-base' [-a|--all] <commit> <commit>...
|
||||
'git merge-base' [-a|--all] --octopus <commit>...
|
||||
'git merge-base' --is-ancestor <commit> <commit>
|
||||
'git merge-base' --independent <commit>...
|
||||
'git merge-base' --fork-point <ref> [<commit>]
|
||||
|
@ -64,11 +64,6 @@ OPTIONS
|
||||
share no common history. This flag can be given to override that
|
||||
check and make the merge proceed anyway.
|
||||
|
||||
--merge-base=<commit>::
|
||||
Instead of finding the merge-bases for <branch1> and <branch2>,
|
||||
specify a merge-base for the merge, and specifying multiple bases is
|
||||
currently not supported. This option is incompatible with `--stdin`.
|
||||
|
||||
[[OUTPUT]]
|
||||
OUTPUT
|
||||
------
|
||||
@ -86,31 +81,6 @@ Whereas for a conflicted merge, the output is by default of the form:
|
||||
|
||||
These are discussed individually below.
|
||||
|
||||
However, there is an exception. If `--stdin` is passed, then there is
|
||||
an extra section at the beginning, a NUL character at the end, and then
|
||||
all the sections repeat for each line of input. Thus, if the first merge
|
||||
is conflicted and the second is clean, the output would be of the form:
|
||||
|
||||
<Merge status>
|
||||
<OID of toplevel tree>
|
||||
<Conflicted file info>
|
||||
<Informational messages>
|
||||
NUL
|
||||
<Merge status>
|
||||
<OID of toplevel tree>
|
||||
NUL
|
||||
|
||||
[[MS]]
|
||||
Merge status
|
||||
~~~~~~~~~~~~
|
||||
|
||||
This is an integer status followed by a NUL character. The integer status is:
|
||||
|
||||
0: merge had conflicts
|
||||
1: merge was clean
|
||||
<0: something prevented the merge from running (e.g. access to repository
|
||||
objects denied by filesystem)
|
||||
|
||||
[[OIDTLT]]
|
||||
OID of toplevel tree
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
@ -138,50 +108,18 @@ character instead of a newline character.
|
||||
Informational messages
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section provides informational messages, typically about
|
||||
conflicts. The format of the section varies significantly depending
|
||||
on whether `-z` is passed.
|
||||
|
||||
If `-z` is passed:
|
||||
|
||||
The output format is zero or more conflict informational records, each
|
||||
of the form:
|
||||
|
||||
<list-of-paths><conflict-type>NUL<conflict-message>NUL
|
||||
|
||||
where <list-of-paths> is of the form
|
||||
|
||||
<number-of-paths>NUL<path1>NUL<path2>NUL...<pathN>NUL
|
||||
|
||||
and includes paths (or branch names) affected by the conflict or
|
||||
informational message in <conflict-message>. Also, <conflict-type> is a
|
||||
stable string explaining the type of conflict, such as
|
||||
|
||||
* "Auto-merging"
|
||||
* "CONFLICT (rename/delete)"
|
||||
* "CONFLICT (submodule lacks merge base)"
|
||||
* "CONFLICT (binary)"
|
||||
|
||||
and <conflict-message> is a more detailed message about the conflict which often
|
||||
(but not always) embeds the <stable-short-type-description> within it. These
|
||||
strings may change in future Git versions. Some examples:
|
||||
This always starts with a blank line (or NUL if `-z` is passed) to
|
||||
separate it from the previous sections, and then has free-form
|
||||
messages about the merge, such as:
|
||||
|
||||
* "Auto-merging <file>"
|
||||
* "CONFLICT (rename/delete): <oldfile> renamed...but deleted in..."
|
||||
* "Failed to merge submodule <submodule> (no merge base)"
|
||||
* "Failed to merge submodule <submodule> (<reason>)"
|
||||
* "Warning: cannot merge binary files: <filename>"
|
||||
|
||||
If `-z` is NOT passed:
|
||||
|
||||
This section starts with a blank line to separate it from the previous
|
||||
sections, and then only contains the <conflict-message> information
|
||||
from the previous section (separated by newlines). These are
|
||||
non-stable strings that should not be parsed by scripts, and are just
|
||||
meant for human consumption. Also, note that while <conflict-message>
|
||||
strings usually do not contain embedded newlines, they sometimes do.
|
||||
(However, the free-form messages will never have an embedded NUL
|
||||
character). So, the entire block of information is meant for human
|
||||
readers as an agglomeration of all conflict messages.
|
||||
Note that these free-form messages will never have a NUL character
|
||||
in or between them, even if -z is passed. It is simply a large block
|
||||
of text taking up the remainder of the output.
|
||||
|
||||
EXIT STATUS
|
||||
-----------
|
||||
@ -189,10 +127,7 @@ EXIT STATUS
|
||||
For a successful, non-conflicted merge, the exit status is 0. When the
|
||||
merge has conflicts, the exit status is 1. If the merge is not able to
|
||||
complete (or start) due to some kind of error, the exit status is
|
||||
something other than 0 or 1 (and the output is unspecified). When
|
||||
--stdin is passed, the return status is 0 for both successful and
|
||||
conflicted merges, and something other than 0 or 1 if it cannot complete
|
||||
all the requested merges.
|
||||
something other than 0 or 1 (and the output is unspecified).
|
||||
|
||||
USAGE NOTES
|
||||
-----------
|
||||
@ -221,17 +156,6 @@ with linkgit:git-merge[1]:
|
||||
* any messages that would have been printed to stdout (the
|
||||
<<IM,Informational messages>>)
|
||||
|
||||
INPUT FORMAT
|
||||
------------
|
||||
'git merge-tree --stdin' input format is fully text based. Each line
|
||||
has this format:
|
||||
|
||||
[<base-commit> -- ]<branch1> <branch2>
|
||||
|
||||
If one line is separated by `--`, the string before the separator is
|
||||
used for specifying a merge-base for the merge and the string after
|
||||
the separator describes the branches to be merged.
|
||||
|
||||
MISTAKES TO AVOID
|
||||
-----------------
|
||||
|
||||
|
@ -37,8 +37,7 @@ Then "`git merge topic`" will replay the changes made on the
|
||||
`topic` branch since it diverged from `master` (i.e., `E`) until
|
||||
its current commit (`C`) on top of `master`, and record the result
|
||||
in a new commit along with the names of the two parent commits and
|
||||
a log message from the user describing the changes. Before the operation,
|
||||
`ORIG_HEAD` is set to the tip of the current branch (`C`).
|
||||
a log message from the user describing the changes.
|
||||
|
||||
------------
|
||||
A---B---C topic
|
||||
|
@ -9,7 +9,7 @@ git-mv - Move or rename a file, a directory, or a symlink
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git mv' [<options>] <source>... <destination>
|
||||
'git mv' <options>... <args>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -30,7 +30,7 @@ OPTIONS
|
||||
-------
|
||||
-f::
|
||||
--force::
|
||||
Force renaming or moving of a file even if the <destination> exists.
|
||||
Force renaming or moving of a file even if the target exists
|
||||
-k::
|
||||
Skip move or rename actions which would lead to an error
|
||||
condition. An error happens when a source is neither existing nor
|
||||
|
@ -9,7 +9,7 @@ git-pack-redundant - Find redundant pack files
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git pack-redundant' [--verbose] [--alt-odb] (--all | <pack-filename>...)
|
||||
'git pack-redundant' [ --verbose ] [ --alt-odb ] ( --all | <pack-filename>... )
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -34,7 +34,7 @@ OPTIONS
|
||||
|
||||
--alt-odb::
|
||||
Don't require objects present in packs from alternate object
|
||||
database (odb) directories to be present in local packs.
|
||||
directories to be present in local packs.
|
||||
|
||||
--verbose::
|
||||
Outputs some statistics to stderr. Has a small performance penalty.
|
||||
|
@ -8,18 +8,18 @@ git-patch-id - Compute unique ID for a patch
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git patch-id' [--stable | --unstable | --verbatim]
|
||||
'git patch-id' [--stable | --unstable]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Read a patch from the standard input and compute the patch ID for it.
|
||||
|
||||
A "patch ID" is nothing but a sum of SHA-1 of the file diffs associated with a
|
||||
patch, with line numbers ignored. As such, it's "reasonably stable", but at
|
||||
the same time also reasonably unique, i.e., two patches that have the same
|
||||
"patch ID" are almost guaranteed to be the same thing.
|
||||
patch, with whitespace and line numbers ignored. As such, it's "reasonably
|
||||
stable", but at the same time also reasonably unique, i.e., two patches that
|
||||
have the same "patch ID" are almost guaranteed to be the same thing.
|
||||
|
||||
The main usecase for this command is to look for likely duplicate commits.
|
||||
IOW, you can use this thing to look for likely duplicate commits.
|
||||
|
||||
When dealing with 'git diff-tree' output, it takes advantage of
|
||||
the fact that the patch is prefixed with the object name of the
|
||||
@ -30,12 +30,6 @@ This can be used to make a mapping from patch ID to commit ID.
|
||||
OPTIONS
|
||||
-------
|
||||
|
||||
--verbatim::
|
||||
Calculate the patch-id of the input as it is given, do not strip
|
||||
any whitespace.
|
||||
|
||||
This is the default if patchid.verbatim is true.
|
||||
|
||||
--stable::
|
||||
Use a "stable" sum of hashes as the patch ID. With this option:
|
||||
- Reordering file diffs that make up a patch does not affect the ID.
|
||||
@ -51,16 +45,14 @@ OPTIONS
|
||||
of "-O<orderfile>", thereby making existing databases storing such
|
||||
"unstable" or historical patch-ids unusable.
|
||||
|
||||
- All whitespace within the patch is ignored and does not affect the id.
|
||||
|
||||
This is the default if patchid.stable is set to true.
|
||||
|
||||
--unstable::
|
||||
Use an "unstable" hash as the patch ID. With this option,
|
||||
the result produced is compatible with the patch-id value produced
|
||||
by git 1.9 and older and whitespace is ignored. Users with pre-existing
|
||||
databases storing patch-ids produced by git 1.9 and older (who do not deal
|
||||
with reordered patches) may want to use this option.
|
||||
by git 1.9 and older. Users with pre-existing databases storing
|
||||
patch-ids produced by git 1.9 and older (who do not deal with reordered
|
||||
patches) may want to use this option.
|
||||
|
||||
This is the default.
|
||||
|
||||
|
@ -9,7 +9,7 @@ git-prune-packed - Remove extra objects that are already in pack files
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git prune-packed' [-n | --dry-run] [-q | --quiet]
|
||||
'git prune-packed' [-n|--dry-run] [-q|--quiet]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -409,14 +409,10 @@ Specifying `--no-force-if-includes` disables this behavior.
|
||||
all submodules that changed in the revisions to be pushed will be
|
||||
pushed. If on-demand was not able to push all necessary revisions it will
|
||||
also be aborted and exit with non-zero status. If 'only' is used all
|
||||
submodules will be pushed while the superproject is left
|
||||
submodules will be recursively pushed while the superproject is left
|
||||
unpushed. A value of 'no' or using `--no-recurse-submodules` can be used
|
||||
to override the push.recurseSubmodules configuration variable when no
|
||||
submodule recursion is required.
|
||||
+
|
||||
When using 'on-demand' or 'only', if a submodule has a
|
||||
"push.recurseSubmodules={on-demand,only}" or "submodule.recurse" configuration,
|
||||
further recursion will occur. In this case, "only" is treated as "on-demand".
|
||||
|
||||
--[no-]verify::
|
||||
Toggle the pre-push hook (see linkgit:githooks[5]). The
|
||||
|
@ -9,7 +9,7 @@ git-read-tree - Reads tree information into the index
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git read-tree' [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>)
|
||||
'git read-tree' [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>]
|
||||
[-u | -i]] [--index-output=<file>] [--no-sparse-checkout]
|
||||
(--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])
|
||||
|
||||
@ -219,7 +219,7 @@ see which of the "local changes" that you made were carried forward by running
|
||||
`git diff-index --cached $M`. Note that this does not
|
||||
necessarily match what `git diff-index --cached $H` would have
|
||||
produced before such a two tree merge. This is because of cases
|
||||
18 and 19 -- if you already had the changes in $M (e.g. maybe
|
||||
18 and 19 --- if you already had the changes in $M (e.g. maybe
|
||||
you picked it up via e-mail in a patch form), `git diff-index
|
||||
--cached $H` would have told you about the change before this
|
||||
merge, but it would not show in `git diff-index --cached $M`
|
||||
|
@ -38,13 +38,6 @@ The current branch is reset to `<upstream>` or `<newbase>` if the
|
||||
`git reset --hard <upstream>` (or `<newbase>`). `ORIG_HEAD` is set
|
||||
to point at the tip of the branch before the reset.
|
||||
|
||||
[NOTE]
|
||||
`ORIG_HEAD` is not guaranteed to still point to the previous branch tip
|
||||
at the end of the rebase if other commands that write that pseudo-ref
|
||||
(e.g. `git reset`) are used during the rebase. The previous branch tip,
|
||||
however, is accessible using the reflog of the current branch
|
||||
(i.e. `@{1}`, see linkgit:gitrevisions[7]).
|
||||
|
||||
The commits that were previously saved into the temporary area are
|
||||
then reapplied to the current branch, one by one, in order. Note that
|
||||
any commits in `HEAD` which introduce the same textual changes as a commit
|
||||
@ -208,39 +201,6 @@ Alternatively, you can undo the 'git rebase' with
|
||||
|
||||
git rebase --abort
|
||||
|
||||
MODE OPTIONS
|
||||
------------
|
||||
|
||||
The options in this section cannot be used with any other option,
|
||||
including not with each other:
|
||||
|
||||
--continue::
|
||||
Restart the rebasing process after having resolved a merge conflict.
|
||||
|
||||
--skip::
|
||||
Restart the rebasing process by skipping the current patch.
|
||||
|
||||
--abort::
|
||||
Abort the rebase operation and reset HEAD to the original
|
||||
branch. If `<branch>` was provided when the rebase operation was
|
||||
started, then `HEAD` will be reset to `<branch>`. Otherwise `HEAD`
|
||||
will be reset to where it was when the rebase operation was
|
||||
started.
|
||||
|
||||
--quit::
|
||||
Abort the rebase operation but `HEAD` is not reset back to the
|
||||
original branch. The index and working tree are also left
|
||||
unchanged as a result. If a temporary stash entry was created
|
||||
using `--autostash`, it will be saved to the stash list.
|
||||
|
||||
--edit-todo::
|
||||
Edit the todo list during an interactive rebase.
|
||||
|
||||
--show-current-patch::
|
||||
Show the current patch in an interactive rebase or when rebase
|
||||
is stopped because of conflicts. This is the equivalent of
|
||||
`git show REBASE_HEAD`.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
--onto <newbase>::
|
||||
@ -258,14 +218,12 @@ leave out at most one of A and B, in which case it defaults to HEAD.
|
||||
merge base of `<upstream>` and `<branch>`. Running
|
||||
`git rebase --keep-base <upstream> <branch>` is equivalent to
|
||||
running
|
||||
`git rebase --reapply-cherry-picks --no-fork-point --onto <upstream>...<branch> <upstream> <branch>`.
|
||||
`git rebase --onto <upstream>...<branch> <upstream> <branch>`.
|
||||
+
|
||||
This option is useful in the case where one is developing a feature on
|
||||
top of an upstream branch. While the feature is being worked on, the
|
||||
upstream branch may advance and it may not be the best idea to keep
|
||||
rebasing on top of the upstream but to keep the base commit as-is. As
|
||||
the base commit is unchanged this option implies `--reapply-cherry-picks`
|
||||
to avoid losing commits.
|
||||
rebasing on top of the upstream but to keep the base commit as-is.
|
||||
+
|
||||
Although both this option and `--fork-point` find the merge base between
|
||||
`<upstream>` and `<branch>`, this option uses the merge base as the _starting
|
||||
@ -282,6 +240,22 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
<branch>::
|
||||
Working branch; defaults to `HEAD`.
|
||||
|
||||
--continue::
|
||||
Restart the rebasing process after having resolved a merge conflict.
|
||||
|
||||
--abort::
|
||||
Abort the rebase operation and reset HEAD to the original
|
||||
branch. If `<branch>` was provided when the rebase operation was
|
||||
started, then `HEAD` will be reset to `<branch>`. Otherwise `HEAD`
|
||||
will be reset to where it was when the rebase operation was
|
||||
started.
|
||||
|
||||
--quit::
|
||||
Abort the rebase operation but `HEAD` is not reset back to the
|
||||
original branch. The index and working tree are also left
|
||||
unchanged as a result. If a temporary stash entry was created
|
||||
using `--autostash`, it will be saved to the stash list.
|
||||
|
||||
--apply::
|
||||
Use applying strategies to rebase (calling `git-am`
|
||||
internally). This option may become a no-op in the future
|
||||
@ -304,8 +278,7 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
Note that commits which start empty are kept (unless `--no-keep-empty`
|
||||
is specified), and commits which are clean cherry-picks (as determined
|
||||
by `git log --cherry-mark ...`) are detected and dropped as a
|
||||
preliminary step (unless `--reapply-cherry-picks` or `--keep-base` is
|
||||
passed).
|
||||
preliminary step (unless `--reapply-cherry-picks` is passed).
|
||||
+
|
||||
See also INCOMPATIBLE OPTIONS below.
|
||||
|
||||
@ -338,14 +311,13 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
upstream changes, the behavior towards them is controlled by
|
||||
the `--empty` flag.)
|
||||
+
|
||||
In the absence of `--keep-base` (or if `--no-reapply-cherry-picks` is
|
||||
given), these commits will be automatically dropped. Because this
|
||||
necessitates reading all upstream commits, this can be expensive in
|
||||
repositories with a large number of upstream commits that need to be
|
||||
read. When using the 'merge' backend, warnings will be issued for each
|
||||
dropped commit (unless `--quiet` is given). Advice will also be issued
|
||||
unless `advice.skippedCherryPicks` is set to false (see
|
||||
linkgit:git-config[1]).
|
||||
By default (or if `--no-reapply-cherry-picks` is given), these commits
|
||||
will be automatically dropped. Because this necessitates reading all
|
||||
upstream commits, this can be expensive in repos with a large number
|
||||
of upstream commits that need to be read. When using the 'merge'
|
||||
backend, warnings will be issued for each dropped commit (unless
|
||||
`--quiet` is given). Advice will also be issued unless
|
||||
`advice.skippedCherryPicks` is set to false (see linkgit:git-config[1]).
|
||||
+
|
||||
`--reapply-cherry-picks` allows rebase to forgo reading all upstream
|
||||
commits, potentially improving performance.
|
||||
@ -360,6 +332,17 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
+
|
||||
See also INCOMPATIBLE OPTIONS below.
|
||||
|
||||
--skip::
|
||||
Restart the rebasing process by skipping the current patch.
|
||||
|
||||
--edit-todo::
|
||||
Edit the todo list during an interactive rebase.
|
||||
|
||||
--show-current-patch::
|
||||
Show the current patch in an interactive rebase or when rebase
|
||||
is stopped because of conflicts. This is the equivalent of
|
||||
`git show REBASE_HEAD`.
|
||||
|
||||
-m::
|
||||
--merge::
|
||||
Using merging strategies to rebase (default).
|
||||
@ -460,9 +443,9 @@ When `--fork-point` is active, 'fork_point' will be used instead of
|
||||
<branch>` command (see linkgit:git-merge-base[1]). If 'fork_point'
|
||||
ends up being empty, the `<upstream>` will be used as a fallback.
|
||||
+
|
||||
If `<upstream>` or `--keep-base` is given on the command line, then
|
||||
the default is `--no-fork-point`, otherwise the default is
|
||||
`--fork-point`. See also `rebase.forkpoint` in linkgit:git-config[1].
|
||||
If `<upstream>` is given on the command line, then the default is
|
||||
`--no-fork-point`, otherwise the default is `--fork-point`. See also
|
||||
`rebase.forkpoint` in linkgit:git-config[1].
|
||||
+
|
||||
If your branch was based on `<upstream>` but `<upstream>` was rewound and
|
||||
your branch contains commits which were dropped, this option can be used
|
||||
@ -578,7 +561,10 @@ See also INCOMPATIBLE OPTIONS below.
|
||||
--root::
|
||||
Rebase all commits reachable from `<branch>`, instead of
|
||||
limiting them with an `<upstream>`. This allows you to rebase
|
||||
the root commit(s) on a branch.
|
||||
the root commit(s) on a branch. When used with `--onto`, it
|
||||
will skip changes already contained in `<newbase>` (instead of
|
||||
`<upstream>`) whereas without `--onto` it will operate on every
|
||||
change.
|
||||
+
|
||||
See also INCOMPATIBLE OPTIONS below.
|
||||
|
||||
@ -631,8 +617,6 @@ start would be overridden by the presence of
|
||||
+
|
||||
If the configuration variable `rebase.updateRefs` is set, then this option
|
||||
can be used to override and disable this setting.
|
||||
+
|
||||
See also INCOMPATIBLE OPTIONS below.
|
||||
|
||||
INCOMPATIBLE OPTIONS
|
||||
--------------------
|
||||
@ -648,15 +632,17 @@ are incompatible with the following options:
|
||||
* --merge
|
||||
* --strategy
|
||||
* --strategy-option
|
||||
* --autosquash
|
||||
* --allow-empty-message
|
||||
* --[no-]autosquash
|
||||
* --rebase-merges
|
||||
* --interactive
|
||||
* --exec
|
||||
* --no-keep-empty
|
||||
* --empty=
|
||||
* --[no-]reapply-cherry-picks when used without --keep-base
|
||||
* --reapply-cherry-picks
|
||||
* --edit-todo
|
||||
* --update-refs
|
||||
* --root when used without --onto
|
||||
* --root when used in combination with --onto
|
||||
|
||||
In addition, the following pairs of options are incompatible:
|
||||
|
||||
|
@ -9,7 +9,7 @@ git-receive-pack - Receive what is pushed into the repository
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git receive-pack' <git-dir>
|
||||
'git-receive-pack' <directory>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -38,7 +38,7 @@ its behavior, see linkgit:git-config[1].
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
<git-dir>::
|
||||
<directory>::
|
||||
The repository to sync into.
|
||||
|
||||
--http-backend-info-refs::
|
||||
|
@ -9,7 +9,15 @@ git-reflog - Manage reflog information
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git reflog' [show] [<log-options>] [<ref>]
|
||||
'git reflog' <subcommand> <options>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The command takes various subcommands, and different options
|
||||
depending on the subcommand:
|
||||
|
||||
[verse]
|
||||
'git reflog' ['show'] [<log-options>] [<ref>]
|
||||
'git reflog expire' [--expire=<time>] [--expire-unreachable=<time>]
|
||||
[--rewrite] [--updateref] [--stale-fix]
|
||||
[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]
|
||||
@ -17,10 +25,6 @@ SYNOPSIS
|
||||
[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
|
||||
'git reflog exists' <ref>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
This command manages the information recorded in the reflogs.
|
||||
|
||||
Reference logs, or "reflogs", record when the tips of branches and
|
||||
other references were updated in the local repository. Reflogs are
|
||||
useful in various Git commands, to specify the old value of a
|
||||
@ -29,8 +33,7 @@ moves ago", `master@{one.week.ago}` means "where master used to point
|
||||
to one week ago in this local repository", and so on. See
|
||||
linkgit:gitrevisions[7] for more details.
|
||||
|
||||
The command takes various subcommands, and different options
|
||||
depending on the subcommand:
|
||||
This command manages the information recorded in the reflogs.
|
||||
|
||||
The "show" subcommand (which is also the default, in the absence of
|
||||
any subcommands) shows the log of the reference provided in the
|
||||
|
@ -74,12 +74,6 @@ to the new separate pack will be written.
|
||||
immediately instead of waiting for the next `git gc` invocation.
|
||||
Only useful with `--cruft -d`.
|
||||
|
||||
--expire-to=<dir>::
|
||||
Write a cruft pack containing pruned objects (if any) to the
|
||||
directory `<dir>`. This option is useful for keeping a copy of
|
||||
any pruned objects in a separate directory as a backup. Only
|
||||
useful with `--cruft -d`.
|
||||
|
||||
-l::
|
||||
Pass the `--local` option to 'git pack-objects'. See
|
||||
linkgit:git-pack-objects[1].
|
||||
|
@ -8,7 +8,7 @@ git-rerere - Reuse recorded resolution of conflicted merges
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git rerere' [clear | forget <pathspec>... | diff | status | remaining | gc]
|
||||
'git rerere' ['clear'|'forget' <pathspec>|'diff'|'remaining'|'status'|'gc']
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -49,8 +49,7 @@ section of linkgit:git-add[1] to learn how to operate the `--patch` mode.
|
||||
'git reset' [<mode>] [<commit>]::
|
||||
This form resets the current branch head to `<commit>` and
|
||||
possibly updates the index (resetting it to the tree of `<commit>`) and
|
||||
the working tree depending on `<mode>`. Before the operation, `ORIG_HEAD`
|
||||
is set to the tip of the current branch. If `<mode>` is omitted,
|
||||
the working tree depending on `<mode>`. If `<mode>` is omitted,
|
||||
defaults to `--mixed`. The `<mode>` must be one of the following:
|
||||
+
|
||||
--
|
||||
|
@ -9,7 +9,7 @@ git-rev-list - Lists commit objects in reverse chronological order
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git rev-list' [<options>] <commit>... [--] [<path>...]
|
||||
'git rev-list' [<options>] <commit>... [[--] <path>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -197,13 +197,6 @@ respectively, and they must begin with `refs/` when applied to `--glob`
|
||||
or `--all`. If a trailing '/{asterisk}' is intended, it must be given
|
||||
explicitly.
|
||||
|
||||
--exclude-hidden=[receive|uploadpack]::
|
||||
Do not include refs that would be hidden by `git-receive-pack` or
|
||||
`git-upload-pack` by consulting the appropriate `receive.hideRefs` or
|
||||
`uploadpack.hideRefs` configuration along with `transfer.hideRefs` (see
|
||||
linkgit:git-config[1]). This option affects the next pseudo-ref option
|
||||
`--all` or `--glob` and is cleared after processing them.
|
||||
|
||||
--disambiguate=<prefix>::
|
||||
Show every object whose name begins with the given prefix.
|
||||
The <prefix> must be at least 4 hexadecimal digits long to
|
||||
|
@ -8,7 +8,7 @@ git-revert - Revert some existing commits
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git revert' [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] <commit>...
|
||||
'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<keyid>]] <commit>...
|
||||
'git revert' (--continue | --skip | --abort | --quit)
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -178,18 +178,9 @@ Sending
|
||||
for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH.
|
||||
|
||||
--smtp-encryption=<encryption>::
|
||||
Specify in what way encrypting begins for the SMTP connection.
|
||||
Valid values are 'ssl' and 'tls'. Any other value reverts to plain
|
||||
(unencrypted) SMTP, which defaults to port 25.
|
||||
Despite the names, both values will use the same newer version of TLS,
|
||||
but for historic reasons have these names. 'ssl' refers to "implicit"
|
||||
encryption (sometimes called SMTPS), that uses port 465 by default.
|
||||
'tls' refers to "explicit" encryption (often known as STARTTLS),
|
||||
that uses port 25 by default. Other ports might be used by the SMTP
|
||||
server, which are not the default. Commonly found alternative port for
|
||||
'tls' and unencrypted is 587. You need to check your provider's
|
||||
documentation or your server configuration to make sure
|
||||
for your own case. Default is the value of `sendemail.smtpEncryption`.
|
||||
Specify the encryption to use, either 'ssl' or 'tls'. Any other
|
||||
value reverts to plain SMTP. Default is the value of
|
||||
`sendemail.smtpEncryption`.
|
||||
|
||||
--smtp-domain=<FQDN>::
|
||||
Specifies the Fully Qualified Domain Name (FQDN) used in the
|
||||
|
@ -9,10 +9,9 @@ git-send-pack - Push objects over Git protocol to another repository
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git send-pack' [--mirror] [--dry-run] [--force]
|
||||
[--receive-pack=<git-receive-pack>]
|
||||
'git send-pack' [--dry-run] [--force] [--receive-pack=<git-receive-pack>]
|
||||
[--verbose] [--thin] [--atomic]
|
||||
[--[no-]signed | --signed=(true|false|if-asked)]
|
||||
[--[no-]signed|--signed=(true|false|if-asked)]
|
||||
[<host>:]<directory> (--all | <ref>...)
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -47,11 +47,6 @@ OPTIONS
|
||||
|
||||
Each pretty-printed commit will be rewrapped before it is shown.
|
||||
|
||||
--date=<format>::
|
||||
Show dates formatted according to the given date string. (See
|
||||
the `--date` option in the "Commit Formatting" section of
|
||||
linkgit:git-log[1]). Useful with `--group=format:<format>`.
|
||||
|
||||
--group=<type>::
|
||||
Group commits based on `<type>`. If no `--group` option is
|
||||
specified, the default is `author`. `<type>` is one of:
|
||||
@ -64,9 +59,6 @@ OPTIONS
|
||||
example, if your project uses `Reviewed-by` trailers, you might want
|
||||
to see who has been reviewing with
|
||||
`git shortlog -ns --group=trailer:reviewed-by`.
|
||||
- `format:<format>`, any string accepted by the `--format` option of
|
||||
'git log'. (See the "PRETTY FORMATS" section of
|
||||
linkgit:git-log[1].)
|
||||
+
|
||||
Note that commits that do not include the trailer will not be counted.
|
||||
Likewise, commits with multiple trailers (e.g., multiple signoffs) may
|
||||
|
@ -8,12 +8,12 @@ git-show-branch - Show branches and their commits
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git show-branch' [-a | --all] [-r | --remotes] [--topo-order | --date-order]
|
||||
'git show-branch' [-a|--all] [-r|--remotes] [--topo-order | --date-order]
|
||||
[--current] [--color[=<when>] | --no-color] [--sparse]
|
||||
[--more=<n> | --list | --independent | --merge-base]
|
||||
[--no-name | --sha1-name] [--topics]
|
||||
[(<rev> | <glob>)...]
|
||||
'git show-branch' (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]
|
||||
'git show-branch' (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -8,8 +8,8 @@ git-show-ref - List references in a local repository
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git show-ref' [-q | --quiet] [--verify] [--head] [-d | --dereference]
|
||||
[-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags]
|
||||
'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]
|
||||
[-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]
|
||||
[--heads] [--] [<pattern>...]
|
||||
'git show-ref' --exclude-existing[=<pattern>]
|
||||
|
||||
|
@ -9,7 +9,7 @@ git-sparse-checkout - Reduce your working tree to a subset of tracked files
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git sparse-checkout' (init | list | set | add | reapply | disable) [<options>]
|
||||
'git sparse-checkout <subcommand> [<options>]'
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
|
@ -9,20 +9,17 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git stash' list [<log-options>]
|
||||
'git stash' show [-u | --include-untracked | --only-untracked] [<diff-options>] [<stash>]
|
||||
'git stash' drop [-q | --quiet] [<stash>]
|
||||
'git stash' pop [--index] [-q | --quiet] [<stash>]
|
||||
'git stash' apply [--index] [-q | --quiet] [<stash>]
|
||||
'git stash' show [-u|--include-untracked|--only-untracked] [<diff-options>] [<stash>]
|
||||
'git stash' drop [-q|--quiet] [<stash>]
|
||||
'git stash' ( pop | apply ) [--index] [-q|--quiet] [<stash>]
|
||||
'git stash' branch <branchname> [<stash>]
|
||||
'git stash' [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]
|
||||
[-u | --include-untracked] [-a | --all] [(-m | --message) <message>]
|
||||
'git stash' [push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-q|--quiet]
|
||||
[-u|--include-untracked] [-a|--all] [-m|--message <message>]
|
||||
[--pathspec-from-file=<file> [--pathspec-file-nul]]
|
||||
[--] [<pathspec>...]]
|
||||
'git stash' save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]
|
||||
[-u | --include-untracked] [-a | --all] [<message>]
|
||||
'git stash' clear
|
||||
'git stash' create [<message>]
|
||||
'git stash' store [(-m | --message) <message>] [-q | --quiet] <commit>
|
||||
'git stash' store [-m|--message <message>] [-q|--quiet] <commit>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -50,7 +47,7 @@ stash index (e.g. the integer `n` is equivalent to `stash@{n}`).
|
||||
COMMANDS
|
||||
--------
|
||||
|
||||
push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [(-m|--message) <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]::
|
||||
push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [-m|--message <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]::
|
||||
|
||||
Save your local modifications to a new 'stash entry' and roll them
|
||||
back to HEAD (in the working tree and in the index).
|
||||
|
@ -9,7 +9,7 @@ git-status - Show the working tree status
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git status' [<options>] [--] [<pathspec>...]
|
||||
'git status' [<options>...] [--] [<pathspec>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -457,66 +457,6 @@ during the write may conflict with other simultaneous processes, causing
|
||||
them to fail. Scripts running `status` in the background should consider
|
||||
using `git --no-optional-locks status` (see linkgit:git[1] for details).
|
||||
|
||||
UNTRACKED FILES AND PERFORMANCE
|
||||
-------------------------------
|
||||
|
||||
`git status` can be very slow in large worktrees if/when it
|
||||
needs to search for untracked files and directories. There are
|
||||
many configuration options available to speed this up by either
|
||||
avoiding the work or making use of cached results from previous
|
||||
Git commands. There is no single optimum set of settings right
|
||||
for everyone. We'll list a summary of the relevant options to help
|
||||
you, but before going into the list, you may want to run `git status`
|
||||
again, because your configuration may already be caching `git status`
|
||||
results, so it could be faster on subsequent runs.
|
||||
|
||||
* The `--untracked-files=no` flag or the
|
||||
`status.showUntrackedfiles=false` config (see above for both):
|
||||
indicate that `git status` should not report untracked
|
||||
files. This is the fastest option. `git status` will not list
|
||||
the untracked files, so you need to be careful to remember if
|
||||
you create any new files and manually `git add` them.
|
||||
|
||||
* `advice.statusUoption=false` (see linkgit:git-config[1]):
|
||||
setting this variable to `false` disables the warning message
|
||||
given when enumerating untracked files takes more than 2
|
||||
seconds. In a large project, it may take longer and the user
|
||||
may have already accepted the trade off (e.g. using "-uno" may
|
||||
not be an acceptable option for the user), in which case, there
|
||||
is no point issuing the warning message, and in such a case,
|
||||
disabling the warning may be the best.
|
||||
|
||||
* `core.untrackedCache=true` (see linkgit:git-update-index[1]):
|
||||
enable the untracked cache feature and only search directories
|
||||
that have been modified since the previous `git status` command.
|
||||
Git remembers the set of untracked files within each directory
|
||||
and assumes that if a directory has not been modified, then
|
||||
the set of untracked files within has not changed. This is much
|
||||
faster than enumerating the contents of every directory, but still
|
||||
not without cost, because Git still has to search for the set of
|
||||
modified directories. The untracked cache is stored in the
|
||||
`.git/index` file. The reduced cost of searching for untracked
|
||||
files is offset slightly by the increased size of the index and
|
||||
the cost of keeping it up-to-date. That reduced search time is
|
||||
usually worth the additional size.
|
||||
|
||||
* `core.untrackedCache=true` and `core.fsmonitor=true` or
|
||||
`core.fsmonitor=<hook_command_pathname>` (see
|
||||
linkgit:git-update-index[1]): enable both the untracked cache
|
||||
and FSMonitor features and only search directories that have
|
||||
been modified since the previous `git status` command. This
|
||||
is faster than using just the untracked cache alone because
|
||||
Git can also avoid searching for modified directories. Git
|
||||
only has to enumerate the exact set of directories that have
|
||||
changed recently. While the FSMonitor feature can be enabled
|
||||
without the untracked cache, the benefits are greatly reduced
|
||||
in that case.
|
||||
|
||||
Note that after you turn on the untracked cache and/or FSMonitor
|
||||
features it may take a few `git status` commands for the various
|
||||
caches to warm up before you see improved command times. This is
|
||||
normal.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:gitignore[5]
|
||||
|
@ -9,7 +9,7 @@ SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git symbolic-ref' [-m <reason>] <name> <ref>
|
||||
'git symbolic-ref' [-q] [--short] [--no-recurse] <name>
|
||||
'git symbolic-ref' [-q] [--short] <name>
|
||||
'git symbolic-ref' --delete [-q] <name>
|
||||
|
||||
DESCRIPTION
|
||||
@ -46,15 +46,6 @@ OPTIONS
|
||||
When showing the value of <name> as a symbolic ref, try to shorten the
|
||||
value, e.g. from `refs/heads/master` to `master`.
|
||||
|
||||
--recurse::
|
||||
--no-recurse::
|
||||
When showing the value of <name> as a symbolic ref, if
|
||||
<name> refers to another symbolic ref, follow such a chain
|
||||
of symbolic refs until the result no longer points at a
|
||||
symbolic ref (`--recurse`, which is the default).
|
||||
`--no-recurse` stops after dereferencing only a single level
|
||||
of symbolic ref.
|
||||
|
||||
-m::
|
||||
Update the reflog for <name> with <reason>. This is valid only
|
||||
when creating or updating a symbolic ref.
|
||||
|
@ -9,7 +9,7 @@ git-tag - Create, list, delete or verify a tag object signed with GPG
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git tag' [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] [-e]
|
||||
'git tag' [-a | -s | -u <keyid>] [-f] [-m <msg> | -F <file>] [-e]
|
||||
<tagname> [<commit> | <object>]
|
||||
'git tag' -d <tagname>...
|
||||
'git tag' [-n[<num>]] -l [--contains <commit>] [--no-contains <commit>]
|
||||
@ -26,19 +26,19 @@ to delete, list or verify tags.
|
||||
|
||||
Unless `-f` is given, the named tag must not yet exist.
|
||||
|
||||
If one of `-a`, `-s`, or `-u <key-id>` is passed, the command
|
||||
If one of `-a`, `-s`, or `-u <keyid>` is passed, the command
|
||||
creates a 'tag' object, and requires a tag message. Unless
|
||||
`-m <msg>` or `-F <file>` is given, an editor is started for the user to type
|
||||
in the tag message.
|
||||
|
||||
If `-m <msg>` or `-F <file>` is given and `-a`, `-s`, and `-u <key-id>`
|
||||
If `-m <msg>` or `-F <file>` is given and `-a`, `-s`, and `-u <keyid>`
|
||||
are absent, `-a` is implied.
|
||||
|
||||
Otherwise, a tag reference that points directly at the given object
|
||||
(i.e., a lightweight tag) is created.
|
||||
|
||||
A GnuPG signed tag object will be created when `-s` or `-u
|
||||
<key-id>` is used. When `-u <key-id>` is not used, the
|
||||
<keyid>` is used. When `-u <keyid>` is not used, the
|
||||
committer identity for the current user is used to find the
|
||||
GnuPG key for signing. The configuration variable `gpg.program`
|
||||
is used to specify custom GnuPG binary.
|
||||
@ -72,8 +72,8 @@ OPTIONS
|
||||
Override `tag.gpgSign` configuration variable that is
|
||||
set to force each and every tag to be signed.
|
||||
|
||||
-u <key-id>::
|
||||
--local-user=<key-id>::
|
||||
-u <keyid>::
|
||||
--local-user=<keyid>::
|
||||
Make a GPG-signed tag, using the given key.
|
||||
|
||||
-f::
|
||||
@ -164,14 +164,14 @@ This option is only applicable when listing tags without annotation lines.
|
||||
Use the given tag message (instead of prompting).
|
||||
If multiple `-m` options are given, their values are
|
||||
concatenated as separate paragraphs.
|
||||
Implies `-a` if none of `-a`, `-s`, or `-u <key-id>`
|
||||
Implies `-a` if none of `-a`, `-s`, or `-u <keyid>`
|
||||
is given.
|
||||
|
||||
-F <file>::
|
||||
--file=<file>::
|
||||
Take the tag message from the given file. Use '-' to
|
||||
read the message from the standard input.
|
||||
Implies `-a` if none of `-a`, `-s`, or `-u <key-id>`
|
||||
Implies `-a` if none of `-a`, `-s`, or `-u <keyid>`
|
||||
is given.
|
||||
|
||||
-e::
|
||||
@ -220,7 +220,7 @@ it in the repository configuration as follows:
|
||||
|
||||
-------------------------------------
|
||||
[user]
|
||||
signingKey = <gpg-key_id>
|
||||
signingKey = <gpg-keyid>
|
||||
-------------------------------------
|
||||
|
||||
`pager.tag` is only respected when listing tags, i.e., when `-l` is
|
||||
|
@ -9,7 +9,7 @@ git-update-server-info - Update auxiliary info file to help dumb servers
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git update-server-info' [-f | --force]
|
||||
'git update-server-info'
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -19,12 +19,6 @@ $GIT_OBJECT_DIRECTORY/info directories to help clients discover
|
||||
what references and packs the server has. This command
|
||||
generates such auxiliary files.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-f::
|
||||
--force::
|
||||
update the info files from scratch.
|
||||
|
||||
OUTPUT
|
||||
------
|
||||
|
||||
|
@ -9,7 +9,7 @@ git-upload-archive - Send archive back to git-archive
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git upload-archive' <repository>
|
||||
'git upload-archive' <directory>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@ -54,7 +54,7 @@ access via non-smart-http.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
<repository>::
|
||||
<directory>::
|
||||
The repository to get a tar archive from.
|
||||
|
||||
GIT
|
||||
|
@ -9,12 +9,11 @@ git-var - Show a Git logical variable
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git var' (-l | <variable>)
|
||||
'git var' ( -l | <variable> )
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Prints a Git logical variable. Exits with code 1 if the variable has
|
||||
no value.
|
||||
Prints a Git logical variable.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
@ -50,14 +49,6 @@ ifdef::git-default-editor[]
|
||||
The build you are using chose '{git-default-editor}' as the default.
|
||||
endif::git-default-editor[]
|
||||
|
||||
GIT_SEQUENCE_EDITOR::
|
||||
Text editor used to edit the 'todo' file while running `git rebase
|
||||
-i`. Like `GIT_EDITOR`, the value is meant to be interpreted by
|
||||
the shell when it is used. The order of preference is the
|
||||
`$GIT_SEQUENCE_EDITOR` environment variable, then
|
||||
`sequence.editor` configuration, and then the value of `git var
|
||||
GIT_EDITOR`.
|
||||
|
||||
GIT_PAGER::
|
||||
Text viewer for use by Git commands (e.g., 'less'). The value
|
||||
is meant to be interpreted by the shell. The order of preference
|
||||
|
@ -8,7 +8,7 @@ git-verify-commit - Check the GPG signature of commits
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git verify-commit' [-v | --verbose] [--raw] <commit>...
|
||||
'git verify-commit' <commit>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user