Merge branch 'tj:main' into absolute-browse-path

This commit is contained in:
Matthew Cengia 2026-05-13 21:58:06 +10:00 committed by GitHub
commit 16fb892d8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
163 changed files with 3851 additions and 1894 deletions

View file

@ -20,3 +20,11 @@ trim_trailing_whitespace = false
[*.py]
indent_size = 4
[*.bats]
indent_style = tab
indent_size = 4
[tests/*.sh]
indent_style = tab
indent_size = 4

View file

@ -1 +1,2 @@
gool
Cant

View file

@ -6,53 +6,109 @@ on:
branches: [main]
jobs:
lint:
runs-on: 'ubuntu-latest'
runs-on: ubuntu-latest
steps:
- name: Check out code.
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: 'Get Changed Files'
id: 'files'
uses: 'masesgroup/retrieve-changed-files@v3'
with:
format: 'json'
# a force push will cause the action above to fail. Don't do force push when people are
# reviewing!
- name: Check out code.
uses: actions/checkout@v4
- uses: 'actions/setup-go@v5'
run: |
CHANGED_FILES=$(git diff --name-only "${BASE_SHA:-$BEFORE_SHA}...${HEAD_SHA:-$GITHUB_REF}")
echo "::notice::Changed files: $CHANGED_FILES"
{
echo "added_modified<<EOF"
echo "$CHANGED_FILES"
echo "EOF"
} >> "$GITHUB_OUTPUT"
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
BEFORE_SHA: "${{ github.event.before }}"
- uses: 'actions/setup-go@v6'
with:
go-version: '1.20'
- name: 'Install EditorConfig Lint'
run: go install 'github.com/editorconfig-checker/editorconfig-checker/cmd/editorconfig-checker@latest'
- name: 'Check EditorConfig Lint'
run: |
sudo apt install -y jq
go install 'github.com/editorconfig-checker/editorconfig-checker/cmd/editorconfig-checker@latest'
readarray -t changed_files <<<"$(jq -r '.[]' <<<'${{ steps.files.outputs.added_modified }}')"
~/go/bin/editorconfig-checker ${changed_files[@]}
run: echo "$FILES" | xargs ~/go/bin/editorconfig-checker
env:
# NOTE: use env to pass the output in order to avoid possible injection attacks
FILES: "${{ steps.files.outputs.added_modified }}"
- name: checkstyle
run: ./scripts/checkstyle.py
- name: Shellcheck
run: shellcheck --severity=error bin/* ./*.sh
- name: Lint and format Python with Ruff
uses: astral-sh/ruff-action@v3
typo:
runs-on: ubuntu-latest
steps:
- name: Check out code.
uses: actions/checkout@v4
- name: spell check
run: |
pip install codespell==2.2
git grep --cached -l '' | grep -v -e 'History\.md' -e 'AUTHORS' -e 'man/.*\.1' -e 'man/.*\.html' | xargs codespell --ignore-words=.github/.ignore_words
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
uses: actions/checkout@v6
- name: Install poetry
run: pip install poetry
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
cache: 'poetry'
cache-dependency-path: "tests/pyproject.toml"
python-version-file: "tests/pyproject.toml"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest==8.1.2 GitPython==3.1.43 testpath==0.6.0
- name: Unit test
run: make test
cd tests || exit
poetry install --only dev
- name: spell check
run: |
cd tests
git grep --cached -l '' .. | \
grep -v -e 'History\.md' -e 'AUTHORS' -e 'man/.*\.1' -e 'man/.*\.html' | \
xargs poetry run codespell --ignore-words=../.github/.ignore_words
test-pytest:
name: 'Test with Pytest'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Install poetry
run: pip install poetry
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
cache: 'poetry'
cache-dependency-path: "tests/pyproject.toml"
python-version-file: "tests/pyproject.toml"
- name: Install Python Dependencies
run: |
cd tests || exit
poetry install --only test
- name: Test with Pytest
run: |
cd tests
poetry run pytest
test-bats:
name: 'Test with Bats'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup Bats
id: setup-bats
uses: bats-core/bats-action@4.0.0
with:
bats-version: 'v1.8.1'
- name: Test with Bats
env:
BATS_LIB_PATH: ${{ steps.setup-bats.outputs.lib-path }}
TERM: xterm
run: bats ./tests
build:
strategy:
@ -64,14 +120,12 @@ jobs:
runs-on: ${{ matrix.platform }}
steps:
- name: Check out code.
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Linux Install
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get install -y bsdmainutils
run: sudo apt-get install -y bsdmainutils
- name: Script
run: |
./check_integrity.sh $(find bin | cut -b 5- | xargs)
run: ./check_integrity.sh
- name: Brew release
if: matrix.platform == 'macos-latest'
run: |

18
.github/workflows/stale.yaml vendored Normal file
View file

@ -0,0 +1,18 @@
name: "Maintenance: Close Stale PRs"
on:
schedule:
- cron: "30 1 * * *"
permissions:
pull-requests: "write"
jobs:
stale:
runs-on: "ubuntu-latest"
if: github.repository_owner == 'tj'
steps:
- uses: "actions/stale@v10"
with:
close-pr-message: "This PR was closed because it has been stalled for 365 days with no activity. Feel free to make a new PR if you wish to continue"
days-before-pr-stale: 350
days-before-pr-close: 15

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
.venv/
__pycache__/
coverage/

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "vendor/bats-all"]
path = vendor/bats-all
url = https://github.com/hyperupcall/bats-all

30
AUTHORS
View file

@ -1,12 +1,8 @@
git-extras is written and maintained by TJ Holowaychuk and
various contributors:
Development Lead
````````````````
- TJ Holowaychuk <tj@vision-media.ca>
git-extras is written and maintained by various contributors:
Maintainers
```````````
- TJ Holowaychuk <tj@vision-media.ca>
- Hemanth.HM <hemanth.hm@gmail.com>
- Nimit Kalra <me@nimit.io>
- Nicolai Skogheim <nicolai.skogheim@gmail.com>
@ -43,12 +39,15 @@ Patches and Suggestions
- Luke Childs
- Sasha Khamkov
- equt
- oikarinen
- vyas
- Don Harper
- Pierre Ayoub
- Robin Winslow
- Ross Smith II
- Yi EungJun
- grindhold
- wyattscarpenter
- Aggelos Orfanakos
- Camille Reynders
- Carlos Prado
@ -65,11 +64,13 @@ Patches and Suggestions
- Dominik Gedon
- Hogan Long
- Ivan Malopinsky
- John Bachir
- Jonathan "Duke" Leto
- Julio Napurí
- Justin Dugger
- Nils Winkler
- Philipp Klose
- Raphael Boidol
- Richard Russon
- Sam Bostock
- Vladimir Jimenez
@ -85,6 +86,7 @@ Patches and Suggestions
- Beth Skurrie
- Brice Dutheil
- Curtis McEnroe
- Daniele Paolella
- David Rogers
- Devin Withers
- Domenico Rotiroti
@ -129,6 +131,7 @@ Patches and Suggestions
- Andrew Griffiths
- Andrew Marcinkevičius
- Andrew Starr-Bochicchio
- Andrew Sullivan Cant
- Andrey Elizarov
- Angel Aguilera
- Antoine Beaupré
@ -146,6 +149,7 @@ Patches and Suggestions
- Christophe Badoit
- Ciro Nunes
- CleanMachine1
- CodeByZach
- Craig MacGregor
- Dan Goodliffe
- Dan Jackson
@ -160,20 +164,24 @@ Patches and Suggestions
- Edward Betts
- Eli Schwartz
- Emil Kjelsrud
- Erik Skultety
- François M
- George Crabtree
- Gerrit-K
- Greg Allen
- Guilhem Saurel
- Guillermo Rauch
- Gunnlaugur Thor Briem
- Hasse Ramlev Hansen
- Heiko Becker
- Hugo Ruiz-Mireles
- Isaac Mungai
- J.C. Yamokoski
- Jack O. Wasey
- James Manning
- James Zhu
- Jan Krueger
- Jared Baur
- Jarod Stewart
- Jason Young
- Jens K. Mueller
@ -201,7 +209,9 @@ Patches and Suggestions
- Mathieu D. (MatToufoutu)
- Matt
- Matt Colyer
- Matt Headley
- Matthew Avant
- Mattias Andersson
- Michael Komitee
- Michael Matuzak
- Michele Bologna
@ -224,9 +234,12 @@ Patches and Suggestions
- Raphael Fleischlin
- Rasmus Wriedt Larsen
- René
- Revisor
- Ricardo Fernández Serrata
- Riceball LEE
- Rob Kennedy
- Robin von Bülow
- Russ
- Ryan Bohn
- Sachin Gupta
- Sam Thursfield
@ -254,6 +267,8 @@ Patches and Suggestions
- Vitaly Chikunov
- Wei Lee
- Wei Wu
- Wen Sun
- Wiktor Żurawik
- Xavier Krantz
- Xiaopei Li
- Zeeshan Ahmed
@ -262,15 +277,16 @@ Patches and Suggestions
- dead-horse
- eszabpt
- fengkx
- johnpyp
- jykntr
- kang
- meza
- neydroid
- nulltask
- phanium
- sgleizes
- tfendin
- tiemonl
- Zachary Miller
- zentarul
- zeroDivisible
- zhiyanfoo

View file

@ -25,7 +25,7 @@ Let's say you wish to add a new command. Assuming your new command is named `foo
5. (Optional) Update `./etc/bash_completion.sh`.
6. (Optional) Update `./etc/git-extras.fish`.
7. (Optional) Add a test under `./tests`.
8. Run `./check_integrity.sh foo` to check if all done.
8. Run `./check_integrity.sh foo` to check if all done. (You may also run `./check_integrity.sh` to check all commands.)
You are welcome to open up an issue to discuss new commands or features before opening a pull request.

View file

@ -12,6 +12,7 @@
- [`git clear-soft`](#git-clear-soft)
- [`git coauthor`](#git-coauthor)
- [`git commits-since`](#git-commits-since)
- [`git continue`](#git-continue)
- [`git contrib`](#git-contrib)
- [`git count`](#git-count)
- [`git cp`](#git-cp)
@ -74,6 +75,8 @@
- [`git undo`](#git-undo)
- [`git unlock`](#git-unlock)
- [`git utimes`](#git-utimes)
- [`git unwip`](#git-unwip)
- [`git wip`](#git-wip)
## git extras
@ -279,11 +282,20 @@ usage: git bulk [-g] ([-a]|[-w <ws-name>]) <git command>
git bulk --listall
```
Register a workspace so that `git bulk` knows about it (notice that <ws-root-directory> must be absolute path):
Register a workspace so that `git bulk` knows about it (it will be registered in your `.gitconfig`):
```bash
$ git bulk --addworkspace personal ~/workspaces/personal
```
Notice that `<ws-root-directory>` must be an absolute path (or an environment variable pointing to an absolute path).
In the case of a **single quoted environment variable**, it will be dereferenced at `git-bulk` runtime, suitable for dynamic workspaces (*e.g.*, defined in your `.bashrc`).
As an illustration:
```bash
$ git bulk --addworkspace personal '$PERSONAL_WORKSPACE'
```
With option `--from` the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace. Suitable for the initial setup of a multi-repo project.
```bash
@ -375,14 +387,53 @@ Git read-eval-print-loop. Lets you run `git` commands without typing 'git'.
Commands can be prefixed with an exclamation mark (!) to be interpreted as
a regular command.
Type `exit` or `quit` to end the repl session.
Type `exit`, `quit`, or `q` to end the repl session.
Any arguments to git repl will be taken as the first command to execute in
the repl.
### CONFIGURATION
Commands entered in a repl session will be saved to a history file and be available in
future sessions, similar to a shell or programming language repl. By default,
there is one global history file, ~/.git_repl_history. You can specify that your projects
each have their own independent history file. This file will be saved in .git_repl_history
at the top level of the repo, and will need to be added to the repo or global .gitignore.
```bash
# remove the --global flag to configure only an individual project to have its own history file
git config --global git-extras.repl.use-local-history "true"
```
You can specify a default command to run when hitting enter:
```bash
git config --global git-extras.repl.on-enter-command "git status -sb"
```
You can configure which character is used at the end of the prompt: (default `>`):
```bash
git config --global git-extras.repl.prompt-character "±"
```
You can specify the prefix for the prompt, or remove it (default `git`):
```bash
git config --global git-extras.repl.prefix ""
```
You can have the name of the current git repo shown in the prompt (default `false`):
```bash
git config --global git-extras.repl.show-project-name "true"
```
```bash
$ git repl
git version 2.9.2
git-extras version 3.0.0
type 'ls' to ls files below current directory,
'!command' to execute any command or just 'subcommand' to execute any git subcommand
git version 2.34.1
git-extras version 7.3.0
Type 'ls' to ls files below current directory; '!command' to execute any command or just 'subcommand' to execute any git subcommand; 'quit', 'exit', 'q', ^D, or ^C to exit the git repl.
git (master)> ls-files
History.md
@ -413,9 +464,9 @@ $ git coauthor user user@email.com
2 files changed, 145 insertions(+), 0 deletions(-)
create mode 100644 README.md
create mode 100644 CONTRIBUTING.md
$ git log -1
commit b62ceae2685e6ece071f3c3754e9b77fd0a35c88 (HEAD -> master)
Author: user person <userperson@email.com>
Date: Sat Aug 17 17:33:53 2019 -0500
@ -1296,7 +1347,7 @@ Creates a zip archive of the current git repository. The name of the archive wil
## git missing
Print out which commits are on one branch or the other but not both.
Print out which commits are on one branch or the other but not both. Optionally, you can specify a path to limit the comparison to a specific directory or file.
```bash
$ git missing master
@ -1304,6 +1355,12 @@ $ git missing master
> 97ef387 only on master
```
```bash
$ git missing master -- src/
< ed52989 only on current branch, in src/ directory
> 7988c4b only on master, in src/ directory
```
## git lock
Lock a local file `filename`:
@ -1360,7 +1417,7 @@ Switched to branch 'mr/51'
With full URL, the head is fetched from a temporary remote pointing to the base URL.
``` bash
$ git mr https://gitlab.com/owner/repository/merge_requests/51
$ git mr https://gitlab.com/owner/repository/merge_requests/51
From gitlab.com:owner/repository
* [new ref] refs/merge-requests/51/head -> mr/51
Switched to branch 'mr/51'
@ -1615,3 +1672,25 @@ Abort current revert, rebase, merge or cherry-pick, without the need to find exa
## git magic
Commits changes with a generated message.
## git continue
Continue current revert, rebase, merge or cherry-pick, without the need to find exact command in history.
## git wip
Create a Work In Progress(WIP) commit, which will include all changes in the
working directory. (i.e., changes to existing files, new files, removed files)
```bash
$ git wip
```
## git unwip
Undo a Work In Progress(WIP) commit and put all of those changes back into the
working directory.
```bash
$ git unwip
```

View file

@ -1,4 +1,83 @@
7.5.0 / 2026-05-09
==================
* Use standard prefix for home dir installs (#1248)
* refactor(abort): common `gitdir` (#1244)
* Fix man page usage docs (#1241)
* Fix `git-changelog` to handle whitespace in command arguments (#1232)
* chore(deps): bump bats-core/bats-action from 3.0.1 to 4.0.0 (#1230)
* add details when multiple active operations found (#1229)
* Add persistent history to `git-repl` (#1226)
* Support passing ref to `git-commits-since` (#1228)
* ability to specify command when hitting enter (#1223)
* Improve `git-repl` prompt (#1224)
* feat: `delete-branch` multiple unique branch names completions (#1221)
* chore(deps): bump actions/checkout from 5 to 6 (#1219)
* Made Git Magic use `--force-with-lease` (#1218)
* chore(deps): bump actions/stale from 9 to 10 (#1214)
* chore(deps): bump actions/setup-go from 5 to 6 (#1215)
* chore(deps): bump actions/setup-python from 5 to 6 (#1216)
* Fix minor typo in `git rename-branch` man page (#1211)
* Improvements to Bash completion (#1210)
* Fix use of `git-whatchanged` to `git-log` (#1212)
* chore(deps): bump actions/checkout from 4 to 5 (#1209)
* Bump version to 7.5.0-dev (#1207)
7.4.0 / 2025-06-19
==================
* Format comparisons, functions, and redirections to be consistent (#1201)
* add git-wip and git-unwip (#669)
* chore(deps): bump bats-core/bats-action from 3.0.0 to 3.0.1
* Mostly finish pytest to Bats conversion (#1200)
* Implement half of tests in Bats (#1187)
* Add stale bot for old PRs (#1186)
* feat(git-bulk): add new option to not follow hidden directories (#1195)
* Feat: allow git-summary showing full path of repository (#1193)
* feat(git-bulk): add new option to no follow symlinks (#1194)
* docs(git-bulk): Add zsh completion (#1190)
* fix(git-bulk): fix workspace selection when cd fails (#1197)
* fix(git-bulk): quiet find errors by default (#1196)
* fix(git-bulk): fix a bad integer expression (#1198)
* chore(deps): bump astral-sh/ruff-action from 2 to 3 (#1189)
* Fix all ShellCheck errors and add to CI (#1179)
* chore(deps): bump astral-sh/ruff-action from 1 to 2 (#1188)
* fix(ci): use poetry (#1183)
* Delete etc/test.fish (#1185)
* feat: add git-continue (#1176)
* feat: add ruff linter with ci check (#1182)
* fix(ci): missing dollar sign (#1184)
* fix(github-actions): changed files output for editorcondig-checker (#1180)
* Revert "feat: add ruff linter with ci check (#1178)" (#1181)
* feat: add ruff linter with ci check (#1178)
* Support `GITHUB_TOKEN` var for `git-fork` and `git-pull-request` (#1177)
* Bump version to 7.4.0-dev (#1175)
7.3.0 / 2024-10-20
==================
* Fix stripping trailing forward slash for git-get (#1172)
* Change git-cp to use cleaner branch approach (#1169)
* Improve warning for `git clear` (#1168)
* Enhance `git-repl` (#1160)
* Update some documentation that was out of sync (#1164)
* Use filetimes in check_integrity (#1162)
* Update git-alias.md: add brs to prevent incorrect line behavior (#1161)
* Update git-bulk.md: use correct stylization in synopsis (#1163)
* Update git-repl.md: typo: "let's" for "lets" (#1158)
* Update instructions for the OpenSUSE installation (#1157)
* Add pathspec support in `git-missing` (#1156)
* feat: add rename-file command (#1149)
* Update Commands.md (#1148)
* fix: git-summary commit count (#1147)
* tests: update dependencies (#1142)
* chore(deps): bump masesgroup/retrieve-changed-files from 2 to 3 (#1144)
* chore(deps): bump actions/setup-go from 4 to 5 (#1143)
* ci: add dependabot update for GitHub actions (#1141)
* ci: update actions (#1140)
* Bump version to 7.3.0-dev (#1139)
7.2.0 / 2024-04-21
==================

View file

@ -41,10 +41,10 @@ $ sudo dnf install git-extras
### openSUSE
Substitute your openSUSE version in the command below (in this case we are considering openSUSE Leap 15.2):
Substitute your openSUSE version in the command below (in this case we are considering openSUSE Leap 15.6):
```bash
$ sudo zypper ar https://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_Leap_15.2/devel:tools:scm.repo
$ sudo zypper ar https://download.opensuse.org/repositories/devel:/tools:/scm/15.6/devel:tools:scm.repo
```
and install it:
@ -144,7 +144,7 @@ alternate location, specify a `PREFIX` when calling `make`.
```bash
# Non-root users can install under their home directory
make install PREFIX=$HOME/software
make install PREFIX=$HOME/.local
# For third-party software kept under /opt
make install PREFIX=/opt

View file

@ -1,17 +1,45 @@
#!/usr/bin/env bash
set -euo pipefail
# git rev-parse emits an error if not in a git repo so only need to bail out
gitdir="$(git rev-parse --git-dir)" || exit
opfound=
fcnt=
for i in cherry-pick merge rebase revert; do
f=${i^^}
f=${f/-/_}
test -f "${gitdir}/${f}_HEAD" && fcnt=1$fcnt && opfound=$i
done
if [ "${fcnt}" != 1 ]; then
echo "I don't know what to abort" >&2
exit 1
fi
discover_op() {
local op
for op in cherry_pick merge rebase revert ; do
if [ -f "${gitdir}/${op^^}_HEAD" ]; then
echo "${op/_/-}"
fi
done
}
git "${opfound}" --abort
validate_op() {
local op="$1"
if [ -z "$op" ]; then
echo "No active operation found" >&2
exit 1
fi
if [[ "$(echo "$op" | wc -l)" -gt 1 ]]; then
echo "Multiple active operations found:" >&2
for o in $op; do
echo " - $o: HEAD: $(cat "${gitdir}/${o}_HEAD")" >&2
done
exit 1
fi
}
discover_action() {
local action=${1/git-/}
if [ "$action" != "abort" ] && [ "$action" != "continue" ]; then
echo "Invalid action: $1" >&2
exit 1
fi
echo "$action"
}
action=$(discover_action "$(basename "$0")")
op=$(discover_op)
validate_op "$op"
git "$op" "--$action"

View file

@ -9,12 +9,14 @@ guardedmode=false
singlemode=false
allwsmode=false
quiet=false
no_follow_symlinks=false
no_follow_hidden=false
#
# print usage message
#
usage() {
echo 1>&2 "usage: git bulk [-q|--quiet] [-g] ([-a]|[-w <ws-name>]) <git command>"
echo 1>&2 "usage: git bulk [--no-follow-symlinks] [--no-follow-hidden] [-q|--quiet] [-g] ([-a]|[-w <ws-name>]) <git command>"
echo 1>&2 " git bulk --addworkspace <ws-name> <ws-root-directory> (--from <URL or file>)"
echo 1>&2 " git bulk --removeworkspace <ws-name>"
echo 1>&2 " git bulk --addcurrent <ws-name>"
@ -28,7 +30,7 @@ cdfail() {
}
# add another workspace to global git config
function addworkspace {
addworkspace() {
git config --global bulkworkspaces."$wsname" "$wsdir";
if [ -n "$source" ]; then
if [ ! -d "$wsdir" ]; then echo 1>&2 "Path of workspace doesn't exist, make it first."; exit 1; fi
@ -57,19 +59,19 @@ function addworkspace {
}
# add current directory
function addcurrent { git config --global bulkworkspaces."$wsname" "$PWD"; }
addcurrent() { git config --global bulkworkspaces."$wsname" "$PWD"; }
# remove workspace from global git config
function removeworkspace { checkWSName && git config --global --unset bulkworkspaces."$wsname"; }
removeworkspace() { checkWSName && git config --global --unset bulkworkspaces."$wsname"; }
# remove workspace from global git config
function purge { git config --global --remove-section bulkworkspaces; }
purge() { git config --global --remove-section bulkworkspaces; }
# list all current workspace locations defined
function listall { git config --global --get-regexp bulkworkspaces; }
listall() { git config --global --get-regexp bulkworkspaces; }
# guarded execution of a git command in one specific repository
function guardedExecution () {
guardedExecution () {
if [ "${quiet?}" != "true" ] || $guardedmode; then
echo 1>&2 "${bldred}->${reset} executing ${inverse}git $gitcommand${reset} in repository ${leadingpath%/*}/${bldred}${curdir##*/}${reset}"
fi
@ -86,7 +88,7 @@ function guardedExecution () {
}
# check if the passed command is known as a core git command
function checkGitCommand () {
checkGitCommand () {
if git help -a | grep -o -q "\b${corecommand}\b"; then
echo 1>&2 "Core command \"$corecommand\" accepted."
else
@ -99,7 +101,7 @@ function checkGitCommand () {
}
# check if workspace name is registered
function checkWSName () {
checkWSName () {
while read -r workspace; do
parseWsName "$workspace"
if [[ $rwsname == "$wsname" ]]; then return; fi
@ -109,14 +111,24 @@ function checkWSName () {
}
# parse out wsname from workspacespec
function parseWsName () {
parseWsName () {
local wsspec="$1"
# Get the workspace value from its specification in the `.gitconfig`.
# May be an absolute path or a variable name of the form: `$VARNAME`
rwsdir=${wsspec#* }
if [[ ${rwsdir:0:1} == '$' ]]; then
# Dereference the `rwsdir` value which is a variable name.
rwsdir_varname=${rwsdir:1}
rwsdir=${!rwsdir_varname}
if [[ -z "${rwsdir}" ]]; then
echo 1>&2 "error: bad environment variable: $rwsdir_varname" && exit 1
fi
fi
rwsname=${wsspec#*.} && rwsname=${rwsname%% *}
}
# detects the wsname of the current directory
function wsnameToCurrent () {
wsnameToCurrent () {
while read -r workspace; do
if [ -z "$workspace" ]; then continue; fi
parseWsName "$workspace"
@ -128,33 +140,44 @@ function wsnameToCurrent () {
}
# helper to check number of arguments.
function allowedargcount () {
if [ "$paramcount" -ne "$1" ] && [ "$paramcount" -ne "$2" ]; then
allowedargcount () {
if [ "$paramcount" -ne "${1:-0}" ] && [ "$paramcount" -ne "${2:-0}" ]; then
echo 1>&2 "error: wrong number of arguments" && usage;
exit 1;
fi
}
# execute the bulk operation
function executBulkOp () {
executBulkOp () {
checkGitCommand
if ! $allwsmode && ! $singlemode; then wsnameToCurrent; fi # by default git bulk works within the 'current' workspace
listall | while read -r workspacespec; do
parseWsName "$workspacespec"
if [[ -n $wsname ]] && [[ $rwsname != "$wsname" ]]; then continue; fi
eval cd "\"$rwsdir\""
cd "$rwsdir" || exit 1
local actual=$PWD
[ "${quiet?}" != "true" ] && echo 1>&2 "Executing bulk operation in workspace ${inverse}$actual${reset}"
allGitFolders=( $(eval find -L . -name ".git") )
# build `find` flags depending on command-line options
local find_flags=()
if [[ "$no_follow_symlinks" == true ]]; then
find_flags+=(-P)
else
find_flags+=(-L)
fi
# find all git repositories under the workspace on which we want to operate
readarray allGitFolders < <(find "${find_flags[@]}" . -name ".git" 2>/dev/null)
for line in "${allGitFolders[@]}"; do
local gitrepodir=${line::${#line}-5} # cut the .git part of find results to have the root git directory of that repository
eval cd "\"$gitrepodir\"" # into git repo location
cd "$gitrepodir" || exit 1 # into git repo location
local curdir=$PWD
local leadingpath=${curdir#"${actual}"}
guardedExecution "$@"
eval cd "\"$rwsdir\"" # back to origin location of last find command
# do not execute if we do not want to consider a ".git" directory under a hidden directory
if [ $no_follow_hidden = false ] || ! [[ "$leadingpath" =~ "/." ]]; then
guardedExecution "$@"
fi
cd "$rwsdir" || exit 1 # back to origin location of last find command
done
done
}
@ -171,7 +194,11 @@ while [ "${#}" -ge 1 ] ; do
--listall|--purge)
butilcommand="${1:2}" && break ;;
--removeworkspace|--addcurrent|--addworkspace)
butilcommand="${1:2}" && wsname="$2" && wsdir="$3" && if [ "$4" == "--from" ]; then source="$5"; fi && break ;;
butilcommand="${1:2}" && wsname="$2" && wsdir="$3" && if [ "$4" = "--from" ]; then source="$5"; fi && break ;;
--no-follow-symlinks)
no_follow_symlinks=true ;;
--no-follow-hidden)
no_follow_hidden=true ;;
-a)
allwsmode=true ;;
-g)

View file

@ -9,6 +9,15 @@ GIT_MERGELOG_FORMAT="$(git config changelog.mergeformat)"
GIT_EDITOR="$(git var GIT_EDITOR)"
PROGNAME="git-changelog"
git_editor() {
if test -z "${GIT_EDITOR:+set}"
then
GIT_EDITOR="$(git var GIT_EDITOR)" || return $?
fi
eval "$GIT_EDITOR" '"$@"'
}
_usage() {
cat << EOF
usage: $PROGNAME options [file]
@ -574,7 +583,7 @@ main() {
rm -f "$tmpfile"
if [[ -n "$GIT_EDITOR" ]]; then
$GIT_EDITOR "$changelog" || _exit
git_editor "$changelog" || _exit
else
less "$changelog" || _exit
fi

View file

@ -2,7 +2,7 @@
PROGNAME="git-clear"
FORCE=0
function _usage() {
_usage() {
cat << EOF
usage: $PROGNAME options
usage: $PROGNAME -h|help|?
@ -32,12 +32,12 @@ done
# Only wait for answer if not forced by user
if [[ $FORCE == 0 ]]; then
echo -n "Sure? - This command may delete files that cannot be recovered, including those in .gitignore [y/N]: "
echo -n "Sure? - THIS COMMAND MAY DELETE FILES THAT CANNOT BE RECOVERED, including those in .gitignore [y/N]: "
read -r clean
else
clean=y
fi
if [ "$clean" == "y" ]; then
if [ "$clean" = "y" ]; then
git clean -d -f -x && git reset --hard
fi

View file

@ -2,6 +2,6 @@
echo -n "Sure? - This command may delete files that cannot be recovered. Files and directories in .gitignore will be preserved [y/N]: "
read -r answer
if [ "$answer" == "y" ]
if [ "$answer" = "y" ]
then git clean -d -f && git reset --hard
fi

View file

@ -1,6 +1,36 @@
#!/usr/bin/env bash
SINCE="last week"
test $# -ne 0 && SINCE=$*
echo "... commits since $SINCE" >&2
git log --pretty='%an - %s' --after="@{$SINCE}"
REF=""
SINCE=""
while [[ $# -gt 0 ]]; do
case "$1" in
-r|--ref)
if [[ -z "$2" ]]; then
echo "error: option $1 requires an argument" >&2
exit 1
fi
REF="$2"
shift
shift
;;
*)
# non-flag args accumulation, e.g. "last " + "week" -> "last week"
SINCE="${SINCE:+$SINCE }$1"
shift
;;
esac
done
if [[ -n "$REF" && -n "$SINCE" ]]; then
echo "error: '--ref <ref>' and '<date>' are mutually exclusive" >&2
exit 1
fi
SINCE="${SINCE:-last week}"
if [[ -n "$REF" ]]; then
git log --pretty='%h %an - %s' "$REF..HEAD"
else
git log --pretty='%h %an - %s' --after="@{$SINCE}"
fi

1
bin/git-continue Symbolic link
View file

@ -0,0 +1 @@
git-abort

View file

@ -50,37 +50,29 @@ else
fi
fi
MERGE_OPT=
ff=$(git config --get merge.ff || true)
if [[ "$ff" == "only" ]]; then
MERGE_OPT="--ff"
fi
echo "Copying $CURRENT_FILENAME into $DESTINATION_FILENAME"
INTERMEDIATE_FILENAME="${CURRENT_FILENAME//\//__}-move-to-${DESTINATION_FILENAME//\//__}"
# Pre-check that the source and destination will work
git mv --dry-run "${CURRENT_FILENAME}" "${DESTINATION_FILENAME}"
# We keep the existing file on the side in a commit
git mv "${CURRENT_FILENAME}" "${INTERMEDIATE_FILENAME}"
git commit -nm "Keep $CURRENT_FILENAME"
# Make a new branch and switch to it
BRANCH_NAME="git-cp-$(date +%s)"
git checkout -b "$BRANCH_NAME"
# We come back to the previous state and revert that change
INTERMEDIATE_SAVED=$(git rev-parse HEAD)
git reset --hard HEAD^
# We move the file to its new destination
# Move the original file to the new destination, in this branch
git mv "${CURRENT_FILENAME}" "${DESTINATION_FILENAME}"
git commit -nm "Copy $CURRENT_FILENAME into $DESTINATION_FILENAME"
git commit -nm "--Duplicate $CURRENT_FILENAME history into $DESTINATION_FILENAME"
# We come back to the previous state and revert that change again
DESTINATION_SAVED=$(git rev-parse HEAD)
git reset --hard HEAD^
# Restore the original file to keep it in the history
git checkout HEAD~ "${CURRENT_FILENAME}"
git commit -nm "--Restore $CURRENT_FILENAME"
# We keep both files
# shellcheck disable=SC2086
git merge $MERGE_OPT "${DESTINATION_SAVED}" "${INTERMEDIATE_SAVED}" -m "Duplicate ${CURRENT_FILENAME} history."
# Switch to the original branch and merge this back in.
git checkout -
git merge --no-ff "$BRANCH_NAME" -m "Copy $CURRENT_FILENAME into $DESTINATION_FILENAME"
# We get back our original name
git mv "${INTERMEDIATE_FILENAME}" "${CURRENT_FILENAME}"
git commit -nm "Set back ${CURRENT_FILENAME} file"
# We're now done with the branch, so delete it.
# We shouldn't need -D here, as we've already merged it back in.
git branch -d "$BRANCH_NAME"
fi

View file

@ -39,7 +39,7 @@ then
REMOTE=origin
fi
test -z $BRANCH && echo "branch argument required." 1>&2 && exit 1
test -z "$BRANCH" && echo "branch argument required." 1>&2 && exit 1
if [[ -n $REMOTE ]]
then

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
VERSION="7.3.0-dev"
VERSION="7.6.0-dev"
INSTALL_SCRIPT="https://raw.githubusercontent.com/tj/git-extras/main/install.sh"
update() {

View file

@ -17,9 +17,9 @@ read -r user
# personal access token
# config name is github-personal-access-token '_' is not allowed in git config
github_personal_access_token=$(git config git-extras.github-personal-access-token)
github_personal_access_token=$(git config --default "$GITHUB_TOKEN" git-extras.github-personal-access-token)
test -z "$github_personal_access_token" && abort "git config git-extras.github-personal-access-token required"
test -z "$github_personal_access_token" && abort "GITHUB_TOKEN, or git config git-extras.github-personal-access-token required"
# extract owner + project from repo url
project=${url##*/}
@ -61,7 +61,7 @@ else
# clone forked repo into current dir
git clone "${remote_prefix}${user}/${project}.git" "$project"
# add reference to origin fork so can merge in upstream changes
cd "$project"
cd "$project" || exit
git remote add upstream "${remote_prefix}${owner}/${project}.git"
git fetch upstream
fi

View file

@ -33,7 +33,7 @@ if [ -z "$clone_path" ]; then
fi
dirname=${url%/}
dirname=${url%.git}
dirname=${dirname%.git}
dirname=${dirname##*/}
mkdir -p "$clone_path"

View file

@ -31,7 +31,7 @@ do
esac
done
cd "$(git-root)" # cd for git blame
cd "$(git-root)" || exit # cd for git blame
MERGED_LOG=$(git_extra_mktemp)
if [[ $EMAIL == '-e' ]]
then
@ -44,9 +44,11 @@ for file in $(git diff --name-only "$@")
do
test -n "$DEBUG" && echo "git blame $file"
# $1 - since $2 - until
# shellcheck disable=SC2086
git blame $NOT_WHITESPACE --line-porcelain "$1" -- "$file" 2> /dev/null |
LC_ALL=C sed -n "$PATTERN" | sort | uniq -c | LC_ALL=C sed 's/^\(.\)/- \1/' >> "$MERGED_LOG"
# if $2 not given, use current commit as "until"
# shellcheck disable=SC2086
git blame $NOT_WHITESPACE --line-porcelain "${2-@}" -- "$file" 2> /dev/null |
LC_ALL=C sed -n "$PATTERN" | sort | uniq -c | LC_ALL=C sed 's/^\(.\)/+ \1/' >> "$MERGED_LOG"
done
@ -71,7 +73,7 @@ END {
printf("%d %s\n", contributors[people], people)
}
}
}' $MERGED_LOG | sort -nr | # only gawk supports built-in sort function
}' "$MERGED_LOG" | sort -nr | # only gawk supports built-in sort function
while read -r line
do
people=${line#* }
@ -103,7 +105,7 @@ do
do
printf "-"
done
printf "(%s)" $num
printf "(%s)" "$num"
else
for (( i = 0; i > num; i-- ))
do

View file

@ -2,7 +2,7 @@
GIT_DIR=$(git rev-parse --git-dir 2>/dev/null)
function show_contents {
show_contents() {
local file="${2/#~/$HOME}"
if [ -f "$file" ]; then
echo "$1 gitignore: $2" && cat "$file"
@ -11,7 +11,7 @@ function show_contents {
fi
}
function cd_to_git_root {
cd_to_git_root() {
local error_level="$1"
if ! git rev-parse --git-dir &>/dev/null; then
@ -29,7 +29,7 @@ function cd_to_git_root {
fi
}
function global_ignore() {
global_ignore() {
if ! git config --global core.excludesFile 2>/dev/null; then
if [ -f "$HOME/.gitignore" ]; then
echo "$HOME/.gitignore"
@ -39,11 +39,11 @@ function global_ignore() {
fi
}
function show_global {
show_global() {
show_contents Global "$(global_ignore)"
}
function add_global {
add_global() {
local global_gitignore
global_gitignore="$(global_ignore)"
if [ -z "$global_gitignore" ]; then
@ -56,28 +56,28 @@ function add_global {
fi
}
function show_local {
show_local() {
cd_to_git_root --warn
show_contents Local .gitignore
}
function add_local {
add_local() {
cd_to_git_root --warn
add_patterns .gitignore "$@"
}
function show_private {
show_private() {
cd_to_git_root --error
show_contents Private "${GIT_DIR}/info/exclude"
}
function add_private {
add_private() {
cd_to_git_root --error
test -d "${GIT_DIR}/info" || mkdir -p "${GIT_DIR}/info"
add_patterns "${GIT_DIR}/info/exclude" "$@"
}
function add_patterns {
add_patterns() {
echo "Adding pattern(s) to: $1"
local file="${1/#~/$HOME}"
dir_name=$(dirname "$file")

View file

@ -30,7 +30,7 @@ while getopts "m:eapfh" arg; do
PUSH=true
;;
f)
FORCE='-f'
FORCE='--force-with-lease'
;;
h)
echo "$USAGE"

View file

@ -18,7 +18,7 @@ then
git stash
fi
if [ "${!#}" == '--ff-only' ]; then
if [ "${!#}" = '--ff-only' ]; then
case $# in
2 ) # dest --ff
git push "$(git rev-parse --show-toplevel)" "$cur_branch":"$1";;

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
usage() {
echo 1>&2 "usage: git missing [<first branch>] <second branch> [<git log options>]"
echo 1>&2 "usage: git missing [<first branch>] <second branch> [<git log options>] [[--] <path>...]"
}
if [ "${#}" -lt 1 ]
@ -12,9 +12,20 @@ fi
declare -a git_log_args=()
declare -a branches=()
declare -a pathspec=()
declare parse_path=false
for arg in "$@" ; do
if [[ $parse_path == true ]]; then
pathspec+=("$@")
break
fi
case "$arg" in
--)
parse_path=true
;;
--*)
git_log_args+=( "$arg" )
;;
@ -38,4 +49,4 @@ else
exit 1
fi
git log "${git_log_args[@]}" "$firstbranch"..."$secondbranch" --format="%m %h %s" --left-right
git log "${git_log_args[@]}" "$firstbranch"..."$secondbranch" --format="%m %h %s" --left-right -- "${pathspec[@]}"

View file

@ -9,15 +9,15 @@ do
file="$file"' '"$i"
shift
done
test -n "$*" && range="$*"
test -n "$*" && range=("$@")
test -z "$file" && echo "file required." 1>&2 && exit 1
if [ -z "$range" ]
if [ -z "${range[*]}" ]
then
git filter-branch -f --index-filter "git rm -r --cached ""$file"" --ignore-unmatch" \
--prune-empty --tag-name-filter cat -- --all
else
# don't quote $range so that we can forward multiple rev-list arguments
# $range is an array so that we can forward multiple rev-list arguments
git filter-branch -f --index-filter "git rm -r --cached ""$file"" --ignore-unmatch" \
--prune-empty --tag-name-filter cat -- $range
--prune-empty --tag-name-filter cat -- "${range[@]}"
fi

View file

@ -2,7 +2,7 @@
set -e
set -o pipefail
if ! command -v pastebinit >/dev/null 2>&1; then
if ! command -v pastebinit &>/dev/null; then
echo >&2 "To run 'git paste', you need to install pastebinit in your system"
exit 1
fi

View file

@ -5,7 +5,7 @@ SECONDARY_BRANCH=""
FF="--ff"
CONTINUE="no"
function current_branch() {
current_branch() {
git rev-parse --abbrev-ref HEAD
}

View file

@ -31,9 +31,9 @@ EOF
# personal access token
# config name is github-personal-access-token '_' is not allowed in git config
github_personal_access_token=$(git config git-extras.github-personal-access-token)
github_personal_access_token=$(git config --default "$GITHUB_TOKEN" git-extras.github-personal-access-token)
test -z "$github_personal_access_token" && abort "git config git-extras.github-personal-access-token required"
test -z "$github_personal_access_token" && abort "GITHUB_TOKEN or git config git-extras.github-personal-access-token required"
# branch
@ -43,7 +43,7 @@ if [ -z "$remote" ]; then
echo 'no upstream found, push to origin as default'
remote="origin"
fi
[ "$remote" == "." ] && abort "the upstream should be a remote branch."
[ "$remote" = "." ] && abort "the upstream should be a remote branch."
# make sure it's pushed

View file

@ -30,7 +30,7 @@ do
GIT_INDEX_FILE=$index git read-tree "$rev"
# Try to apply the patch.
GIT_INDEX_FILE=$index git apply --cached "$1" >/dev/null 2>&1
GIT_INDEX_FILE=$index git apply --cached "$1" &>/dev/null
patch_failed=$?
# Do it again, but show the error, if the problem is the patch itself.

View file

@ -119,7 +119,7 @@ if test $# -gt 0; then
fi
declare -a sign_args
if [ "$sign" == true ]; then
if [ "$sign" = true ]; then
sign_args=("-s")
fi

View file

@ -1,8 +1,25 @@
#!/usr/bin/env bash
shopt -s extglob
git version
echo "git-extras version ""$(git-extras -v)"
echo "type 'ls' to ls files below current directory, '!command' to execute any command or just 'subcommand' to execute any git subcommand"
echo "Type 'ls' to ls files below current directory; '!command' to execute any command or just 'subcommand' to execute any git subcommand; 'quit', 'exit', 'q', ^D, or ^C to exit the git repl."
HISTIGNORE=${HISTIGNORE:-+([[:space:]])}
HISTCONTROL=${HISTCONTROL:-ignoredups}
use_local_history=$(git config --get --default 'false' git-extras.repl.use-local-history)
if [[ "$use_local_history" == "true" ]]; then
HISTFILE="$(git rev-parse --show-toplevel)/.git_extras_repl_history"
else
HISTFILE=${XDG_STATE_HOME:-$HOME/.local/state}/git_extras_repl_history
fi
# file doesn't exist, is empty, or contains only whitespace
if [[ ! -f "$HISTFILE" ]] || [[ ! -s "$HISTFILE" ]] || ! grep -q '[^[:space:]]' "$HISTFILE"; then
# `history -r` .... `history -a` are not happy with an empty initial file in bash 3.2.57, which is what MacOS 26 ships with
echo '!echo welcome to git-repl!' >> "$HISTFILE"
fi
history -r
while true; do
# Current branch
@ -10,34 +27,73 @@ while true; do
# Prompt
if test -n "$cur"; then
prompt="git ($cur)> "
cur_string=" ($cur)"
else
prompt="git> "
cur_string=""
fi
if test -n "$exit_status" && test "$exit_status" -ne 0; then
es_string=$' \e[31m['"$exit_status"$']\e[0m'
else
es_string=""
fi
prompt_character=$(git config --get --default '>' git-extras.repl.prompt-character)
prefix=$(git config --get --default 'git' git-extras.repl.prefix)
show_project_name=$(git config --get --default 'false' git-extras.repl.show-project-name)
if [[ "$show_project_name" == "true" ]]; then
project_name=" $(basename "$(git rev-parse --show-toplevel)" .git)"
else
project_name=""
fi
# Readline
read -e -r -p "$prompt" cmd
prompt_base="$prefix$project_name$cur_string$es_string$prompt_character"
prompt_base_stripped=$(echo "$prompt_base" | awk '{$1=$1};1')
prompt="$prompt_base_stripped "
# EOF
test $? -ne 0 && break
# Use arguments as a command if any are provided.
if [ $# -ne 0 ]; then
cmd=$*
set --
echo "$prompt" "$cmd" # It is as though you had entered a command.
else
# Readline
read -e -r -p "$prompt" cmd
# Check for EOF, and end the program if so (handles ^D).
test $? -ne 0 && break
fi
# History
history -s "$cmd"
# Add command to history if it is not all whitespace
if [[ ! "$cmd" =~ ^[[:space:]]*$ ]]; then
history -s "$cmd"
fi
# Built-in commands
case $cmd in
ls) cmd=ls-files;;
"") continue;;
quit|exit) break;;
"")
on_enter_cmd=$(git config --get --default '' git-extras.repl.on-enter-command)
if test -n "$on_enter_cmd"; then
cmd="$on_enter_cmd"
else
continue
fi
;;
quit|exit|q) break;;
esac
history -a
if [[ $cmd == !* ]]; then
eval ${cmd:1}
# shellcheck disable=SC2086
eval ${cmd:1}
elif [[ $cmd == git* ]]; then
# shellcheck disable=SC2086
eval $cmd
else
eval git "$cmd"
fi
exit_status=$?
done
echo

View file

@ -59,7 +59,7 @@ function php_lint()
function _dos2unix()
{
command -v dos2unix > /dev/null && dos2unix $@
command -v dos2unix > /dev/null && dos2unix "$@"
return 0
}
@ -68,8 +68,8 @@ function _sanitize()
git config --get-all extras.scp.sanitize | while read -r i
do
case $i in
php_lint) php_lint $@;; # git config --global --add extras.scp.sanitize php_lint
dos2unix) _dos2unix $@;; # git config --global --add extras.scp.sanitize dos2unix
php_lint) php_lint "$@";; # git config --global --add extras.scp.sanitize php_lint
dos2unix) _dos2unix "$@";; # git config --global --add extras.scp.sanitize dos2unix
esac
done
return $?
@ -107,6 +107,7 @@ function scp_and_stage
if [ -n "$list" ]
then
local _TMP=${0///}
# shellcheck disable=SC2086
echo "$list" > "$_TMP" &&
_sanitize $list &&
_info "Pushing to $remote ($(git config "remote.$remote.url"))" &&
@ -131,7 +132,7 @@ function reverse_scp()
shift
local _TMP=${0///}
echo $@ > "$_TMP" &&
echo "$@" > "$_TMP" &&
rsync -rlDv --files-from="$_TMP" "$(git config "remote.$remote.url")/" ./ &&
rm "$_TMP"
}
@ -173,8 +174,8 @@ case $(basename "$0") in
git-scp)
case $1 in
''|-h|'?'|help|--help) shift; _test_git_scp; _usage "$@";;
*) scp_and_stage $@;;
*) scp_and_stage "$@";;
esac
;;
git-rscp) reverse_scp $@;;
git-rscp) reverse_scp "$@";;
esac

View file

@ -2,7 +2,7 @@
COMMIT_MESSAGE='Initial commit'
if [ "$1" == "-m" ]; then
if [ "$1" = "-m" ]; then
COMMIT_MESSAGE=$2
shift; shift
fi

View file

@ -35,7 +35,7 @@ in_git_repo=$?
# Use colors, but only if connected to a terminal, and that terminal
# supports them.
if command -v tput >/dev/null 2>&1; then
if command -v tput &>/dev/null; then
ncolors=$(tput colors)
fi
if [[ -t 1 ]] && [[ -n "$ncolors" ]] && [[ "$ncolors" -ge 8 ]] ; then

View file

@ -3,12 +3,16 @@
cd "$(git root)" || { echo "Can't cd to top level directory";exit 1; }
PROJECT_FULL_PATH=
SUMMARY_BY_LINE=
DEDUP_BY_EMAIL=
MERGES_ARG=
OUTPUT_STYLE=
for arg in "$@"; do
case "$arg" in
--full-path)
PROJECT_FULL_PATH=1
;;
--line)
SUMMARY_BY_LINE=1
;;
@ -51,7 +55,12 @@ if [ -n "$SUMMARY_BY_LINE" ]; then
else
[ $# -ne 0 ] && commit=$*
fi
project=${PWD##*/}
if [[ -n "$PROJECT_FULL_PATH" ]]; then
project=${PWD/${HOME}/\~}
else
project=${PWD##*/}
fi
#
# get date for the given <commit>
@ -197,10 +206,10 @@ COLUMN_CMD_DELIMTER="¬" # Hopefully, this symbol is not used in branch names...
SP="$COLUMN_CMD_DELIMTER|"
print_summary_by_line() {
if [ "$OUTPUT_STYLE" == "tabular" ]; then
if [ "$OUTPUT_STYLE" = "tabular" ]; then
tabular_headers="# Repo $SP Lines"
echo -e "$tabular_headers\n$project $SP $(line_count "${paths[@]}")" | column -t -s "$COLUMN_CMD_DELIMTER"
elif [ "$OUTPUT_STYLE" == "oneline" ]; then
elif [ "$OUTPUT_STYLE" = "oneline" ]; then
echo "$project / lines: $(line_count "${paths[@]}")"
elif [ -n "$SUMMARY_BY_LINE" ]; then
echo
@ -212,10 +221,10 @@ print_summary_by_line() {
}
print_summary() {
if [ "$OUTPUT_STYLE" == "tabular" ]; then
if [ "$OUTPUT_STYLE" = "tabular" ]; then
tabular_headers="# Repo $SP Age $SP Last active $SP Active on $SP Commits $SP Uncommitted $SP Branch"
echo -e "$tabular_headers\n$project $SP $(repository_age) $SP $(last_active) $SP $(active_days "$commit") days $SP $(commit_count "$commit") $SP $(uncommitted_changes_count) $SP $(current_branch_name)" | column -t -s "$COLUMN_CMD_DELIMTER"
elif [ "$OUTPUT_STYLE" == "oneline" ]; then
elif [ "$OUTPUT_STYLE" = "oneline" ]; then
echo "$project / age: $(repository_age) / last active: $(last_active) / active on $(active_days "$commit") days / commits: $(commit_count "$commit") / uncommitted: $(uncommitted_changes_count) / branch: $(current_branch_name)"
else
echo
@ -227,7 +236,7 @@ print_summary() {
echo " commits : $(commit_count "$commit")"
# The file count doesn't support passing a git ref so ignore it if a ref is given
if [ "$commit" == "HEAD" ]; then
if [ "$commit" = "HEAD" ]; then
echo " files : $(file_count)"
fi
echo " uncommitted : $(uncommitted_changes_count)"

14
bin/git-unwip Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Based on scripts from git-utils:
# * https://github.com/ddollar/git-utils/blob/master/git-unwip
# Check if the last commit is a 'WIP' commit
LAST_COMMIT=`git log -1 --pretty=%B | tr -d '[:space:]'`
if [ 'WIP' != $LAST_COMMIT ]; then
echo 'Last commit is not a WIP commit, so it will not be unWIP-ed.'
exit 1
fi
git undo --soft

View file

@ -34,10 +34,10 @@ fi
status_opts=(--porcelain --short)
# %ct: committer date, UNIX timestamp / %at: author date, UNIX timestamp
whatchanged_opts=(--format='%ct')
log_opts=(--format='%ct')
if git status --help 2>&1 | grep -q -- "--no-renames"; then
status_opts+=(--no-renames)
whatchanged_opts+=(--no-renames)
log_opts+=(--no-renames)
fi
if git status --help 2>&1 | grep -q -- "--untracked-files"; then
status_opts+=(--untracked-files=no)
@ -126,6 +126,6 @@ git --no-pager status "${status_opts[@]}" . \
| cut -c 4- >"${tmpfile}"
# prefix is not stripped:
git --no-pager whatchanged "${whatchanged_opts[@]}" . \
git --no-pager log --raw --no-merges "${log_opts[@]}" . \
| awk "${awk_flags[@]}" "${awk_script}" "${tmpfile}" - \
| BASH_ENV='' bash "${bash_opts[@]}" -

8
bin/git-wip Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
# Based on scripts from git-utils:
# * https://github.com/ddollar/git-utils/blob/master/git-wip
# * https://github.com/ddollar/git-utils/blob/master/git-addremove
git add --all
git commit --all --message="WIP"

View file

@ -6,7 +6,7 @@ err() {
}
make_doc() {
echo "'touch man/git-$1.md && make man/git-$1.{1,html}'"
echo "touch man/git-$1.md && make man/git-$1.{1,html}"
}
check_bash_script() {
@ -47,6 +47,11 @@ check_documentation() {
err "Create man/$cmd.1 and man/$cmd.html via $(make_doc "$1")"
fi
if [ "man/$cmd.md" -nt "man/$cmd.1" ] || [ "man/$cmd.md" -nt "man/$cmd.html" ]
then
err "man/$cmd.md, man/$cmd.1, and man/$cmd.html all exist, but man/$cmd.md is newer. You should rm man/$cmd.{1,html} && $(make_doc "$1")"
fi
check_git_extras_cmd_list "$@"
check_man_page_index "$@"
}
@ -77,12 +82,9 @@ check() {
check_completion "$1"
}
usage() {
echo >&2 "Usage: ./check_integrity.sh <command-name> [<command-name2> ...]"
exit 0
}
test $# == 0 && set -- $(find bin | cut -b 5- | xargs)
test $# == 0 && usage
./bin/git-utimes --newer
for name in "$@"; do
name=${name#git-}

View file

@ -1,6 +1,29 @@
# shellcheck shell=bash
# bash completion support for git-extras.
__gitex_heads_unique() {
local branch specified=("${COMP_WORDS[@]:2}")
for branch in $(__git_heads); do
[[ " ${specified[*]} " == *" $branch "* ]] || printf '%s\n' "$branch"
done
}
_git_authors(){
__gitcomp "-l --list --no-email"
}
_git_browse(){
__git_complete_remote_or_refspec
}
_git_browse_ci(){
__git_complete_remote_or_refspec
}
_git_brv(){
__gitcomp "-r --reverse"
}
_git_changelog(){
local s_opts=( '-a' '-l' '-t' '-f' '-s' '-n' '-p' '-x' '-h' '?' )
local l_opts=(
@ -22,14 +45,6 @@ _git_changelog(){
__gitcomp "$merged_opts_str"
}
_git_authors(){
__gitcomp "-l --list --no-email"
}
_git_brv(){
__gitcomp "-r --reverse"
}
_git_coauthor(){
local oldIfs=$IFS
IFS=$'\n'
@ -67,6 +82,10 @@ _git_contrib(){
COMPREPLY=($(compgen -W "$all" -- "$cur"))
}
_git_commits_since(){
__gitcomp "-r --ref"
}
_git_count(){
__gitcomp "--all"
}
@ -76,7 +95,7 @@ __git_cp(){
}
_git_delete_branch(){
__gitcomp "$(__git_heads)"
__gitcomp "$(__gitex_heads_unique)"
}
_git_delete_squashed_branches(){
@ -136,6 +155,10 @@ _git_ignore(){
esac
}
_git_info(){
__gitcomp "--color -c --no-config"
}
_git_missing(){
# Suggest all known refs
__gitcomp "$(git for-each-ref --format='%(refname:short)')"
@ -158,38 +181,40 @@ _git_reauthor(){
__gitcomp "${comp}"
}
_git_scp(){
__git_complete_remote_or_refspec
__git_extras_rename(){
if ((COMP_CWORD == 2 || COMP_CWORD == 3)); then
__gitcomp "$1"
fi
}
_git_stamp(){
__gitcomp '--replace -r'
_git_rename_branch(){
__git_extras_rename "$(__git_heads)"
}
_git_rename_remote(){
__git_extras_rename "$(__git_remotes)"
}
_git_rename_tag(){
__git_extras_rename "$(__git_tags)"
}
_git_rscp(){
__git_complete_remote_or_refspec
}
_git_scp(){
__git_complete_remote_or_refspec
}
_git_squash(){
__gitcomp "$(__git_heads)"
}
_git_stamp(){
__gitcomp '--replace -r'
}
_git_undo(){
__gitcomp "--hard --soft -h -s"
}
_git_info(){
__gitcomp "--color -c --no-config"
}
_git_browse(){
__git_complete_remote_or_refspec
}
_git_browse_ci(){
__git_complete_remote_or_refspec
}
_git_rename_file() {
__gitcomp "-h --help"
}

View file

@ -72,6 +72,15 @@ __gitex_branch_names() {
_wanted branch-names expl branch-name compadd $* - $branch_names
}
__gitex_branch_names_unique() {
local expl
declare -a branch_names already_specified
branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/})
__gitex_command_successful || return
already_specified=(${words[2,-1]})
_wanted branch-names expl branch-name compadd -F already_specified $* - $branch_names
}
__gitex_specific_branch_names() {
local expl
declare -a branch_names
@ -92,6 +101,13 @@ __gitex_submodule_names() {
_wanted submodule-names expl submodule-name compadd $* - $submodule_names
}
__gitex_workspace_names() {
local expl
declare -a workspace_names
workspace_names=($(git bulk --listall | awk '{print $1}' | cut -d "." -f 2))
__gitex_command_successful || return
_wanted workspace-names expl workspace-names compadd $* - $workspace_names
}
__gitex_author_names() {
local expl
@ -122,6 +138,22 @@ _git-brv() {
'(-r --reverse)'{-r,--reverse}'[reverse order]'
}
_git-bulk() {
_arguments \
'-a[Run a git command on all workspaces and their repositories.]' \
'-g[Ask the user for confirmation on every execution (guarded mode).]' \
'-w[Run the git command on the specified workspace.]:workspace-name:__gitex_workspace_names' \
'-q[Suppress bulk output about current execution (quiet mode).]' \
'--no-follow-symlinks[Do not traverse symbolic links when searching for git repositories.]' \
'--no-follow-hidden[Do not traverse hidden directories when searching for git repositories.]' \
'--addworkspace[Register a workspace for bulk operations.]' \
'--removeworkspace[Remove the specified workspace.]:workspace-name:__gitex_workspace_names' \
'--addcurrent[Adds the current directory as workspace to git bulk operations]' \
'--purge[Removes all defined repository locations.]' \
'--listall[List all registered repositories.]' \
'--help[Show the help.]'
}
_git-changelog() {
_arguments \
'(-l --list)'{-l,--list}'[list commits]' \
@ -139,6 +171,11 @@ _git-coauthor() {
':co-author-email[email address of co-author to add]:__gitex_author_emails'
}
_git-commits-since() {
_arguments \
'(-r --ref)'{-r,--ref}'[show commits since ref]'
}
_git-contrib() {
_arguments \
':author:__gitex_author_names'
@ -173,8 +210,7 @@ _git-create-branch() {
}
_git-delete-branch() {
_arguments \
':branch-name:__gitex_branch_names'
__gitex_branch_names_unique
}
_git-delete-squashed-branches() {
@ -349,6 +385,7 @@ _git-standup() {
}
_git-summary() {
_arguments '--full-path[show repository full path]'
_arguments '--line[summarize with lines rather than commits]'
_arguments '--dedup-by-email[remove duplicate users by the email address]'
_arguments '--no-merges[exclude merge commits]'
@ -379,6 +416,7 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \
clear:'rigorously clean up a repository' \
coauthor:'add a co-author to the last commit' \
commits-since:'show commit logs since some date' \
continue:'continue current revert, merge, rebase, or cherry-pick process' \
contrib:'show user contributions' \
count:'show commit count' \
create-branch:'create branches' \
@ -439,4 +477,6 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \
touch:'touch and add file to the index' \
undo:'remove latest commits' \
unlock:'unlock a file excluded from version control' \
utimes:'change files modification time to their last commit date'
utimes:'change files modification time to their last commit date' \
unwip:'undo a WIP commit' \
wip:'create a WIP commit'

View file

@ -131,6 +131,8 @@ function __fish_git_extra_coauthor_email
end
complete -c git -f -n '__fish_git_using_command coauthor; and __fish_git_arg_number 2' -a '(__fish_git_extra_coauthor_name)'
complete -c git -f -n '__fish_git_using_command coauthor; and __fish_git_arg_number 3' -a '(__fish_git_extra_coauthor_email)'
# commits-since
complete -c git -f -n '__fish_git_using_command commits-since' -s r -l ref -d 'show commits since ref'
# count
complete -c git -f -n '__fish_git_using_command count' -l all -d 'detailed commit count'
# create-branch

View file

@ -1,20 +0,0 @@
complete -e blah
function __fish_git_arg_number -a number
set -l cmd (commandline -opc)
test (count $cmd) -eq $number
end
function __fish_git_extra_coauthor_name
printf '%s\n' 'a' 'apple' 'ann'
end
function __fish_git_extra_coauthor_email
set -l cmd (commandline -opc)
set -l value $cmd[3]
printf '%s\n' 'n' 'n1' 'n2' "$value"
end
complete -c blah -f -n '__fish_git_using_command coauthor; and __fish_git_arg_number 2' -a '(__fish_git_extra_coauthor_name)'
complete -c blah -f -n '__fish_git_using_command coauthor; and __fish_git_arg_number 3' -a '(__fish_git_extra_coauthor_email)'

View file

@ -1,10 +1,27 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-ALIAS" "1" "September 2023" "" "Git Extras"
.TH "GIT\-ALIAS" "1" "September 2024" "" "Git Extras"
.SH "NAME"
\fBgit\-alias\fR \- Define, search and show aliases
.SH "SYNOPSIS"
\fBgit\-alias\fR \fBgit\-alias\fR <search\-pattern> \fBgit\-alias\fR <alias\-name> <command> \fBgit\-alias\fR [\-\-global] \fBgit\-alias\fR [\-\-local] \fBgit\-alias\fR [\-\-global] <search\-pattern> \fBgit\-alias\fR [\-\-local] <search\-pattern> \fBgit\-alias\fR [\-\-global] <alias\-name> <command> \fBgit\-alias\fR [\-\-local] <alias\-name> <command>
\fBgit\-alias\fR
.br
\fBgit\-alias\fR <search\-pattern>
.br
\fBgit\-alias\fR <alias\-name> <command>
.br
\fBgit\-alias\fR [\-\-global]
.br
\fBgit\-alias\fR [\-\-local]
.br
\fBgit\-alias\fR [\-\-global] <search\-pattern>
.br
\fBgit\-alias\fR [\-\-local] <search\-pattern>
.br
\fBgit\-alias\fR [\-\-global] <alias\-name> <command>
.br
\fBgit\-alias\fR [\-\-local] <alias\-name> <command>
.br
.SH "DESCRIPTION"
List all aliases, show one alias, or set one (global or local) alias\.
.SH "OPTIONS"
@ -50,8 +67,8 @@ $ git alias
s = status
amend = commit \-\-amend
rank = shortlog \-sn \-\-no\-merges
whatis = show \-s \-\-pretty=\'tformat:%h (%s, %ad)\' \-\-date=short
whois = !sh \-c \'git log \-i \-1 \-\-pretty="format:%an <%ae>
whatis = show \-s \-\-pretty='tformat:%h (%s, %ad)' \-\-date=short
whois = !sh \-c 'git log \-i \-1 \-\-pretty="format:%an <%ae>
.fi
.IP "" 0
.SH "AUTHOR"

View file

@ -77,15 +77,15 @@
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-alias</code>
<code>git-alias</code> &lt;search-pattern&gt;
<code>git-alias</code> &lt;alias-name&gt; &lt;command&gt;
<code>git-alias</code> [--global]
<code>git-alias</code> [--local]
<code>git-alias</code> [--global] &lt;search-pattern&gt;
<code>git-alias</code> [--local] &lt;search-pattern&gt;
<code>git-alias</code> [--global] &lt;alias-name&gt; &lt;command&gt;
<code>git-alias</code> [--local] &lt;alias-name&gt; &lt;command&gt;</p>
<p><code>git-alias</code> <br>
<code>git-alias</code> &lt;search-pattern&gt; <br>
<code>git-alias</code> &lt;alias-name&gt; &lt;command&gt; <br>
<code>git-alias</code> [--global] <br>
<code>git-alias</code> [--local] <br>
<code>git-alias</code> [--global] &lt;search-pattern&gt; <br>
<code>git-alias</code> [--local] &lt;search-pattern&gt; <br>
<code>git-alias</code> [--global] &lt;alias-name&gt; &lt;command&gt; <br>
<code>git-alias</code> [--local] &lt;alias-name&gt; &lt;command&gt; <br></p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -150,7 +150,7 @@ whois = !sh -c 'git log -i -1 --pretty="format:%an &lt;%ae&gt;
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>September 2023</li>
<li class='tc'>September 2024</li>
<li class='tr'>git-alias(1)</li>
</ol>

View file

@ -3,15 +3,15 @@ git-alias(1) -- Define, search and show aliases
## SYNOPSIS
`git-alias`
`git-alias` &lt;search-pattern&gt;
`git-alias` &lt;alias-name&gt; &lt;command&gt;
`git-alias` [--global]
`git-alias` [--local]
`git-alias` [--global] &lt;search-pattern&gt;
`git-alias` [--local] &lt;search-pattern&gt;
`git-alias` [--global] &lt;alias-name&gt; &lt;command&gt;
`git-alias` [--local] &lt;alias-name&gt; &lt;command&gt;
`git-alias` <br>
`git-alias` &lt;search-pattern&gt; <br>
`git-alias` &lt;alias-name&gt; &lt;command&gt; <br>
`git-alias` [--global] <br>
`git-alias` [--local] <br>
`git-alias` [--global] &lt;search-pattern&gt; <br>
`git-alias` [--local] &lt;search-pattern&gt; <br>
`git-alias` [--global] &lt;alias-name&gt; &lt;command&gt; <br>
`git-alias` [--local] &lt;alias-name&gt; &lt;command&gt; <br>
## DESCRIPTION

View file

@ -1,6 +1,6 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-ARCHIVE\-FILE" "1" "May 2020" "" "Git Extras"
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-ARCHIVE\-FILE" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-archive\-file\fR \- Export the current HEAD of the git repository to an archive
.SH "SYNOPSIS"
@ -14,11 +14,11 @@ Archive naming conventions:
.P
On any branch: \fBgit\-extras\.1\.7\.0\-110\-gafefba7\.branch\-name\.zip\fR
.P
On master branch: \fBgit\-extras\.1\.7\.0\-110\-gafefba7\.zip\fR
On the default branch: \fBgit\-extras\.1\.7\.0\-110\-gafefba7\.zip\fR
.P
On a detached HEAD (e\.g\. a tag): \fBgit\-extras\.1\.7\.0\.zip\fR
.P
The \'/\' and \'\e\' in the branch name will be converted into \'\-\'\.
The '/' and '\e' in the branch name will be converted into '\-'\.
.SH "AUTHOR"
Written by Philipp Klose <\fIme@thehippo\.de\fR>
.SH "REPORTING BUGS"

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-archive-file(1) - Export the current HEAD of the git repository to an archive</title>
<style type='text/css' media='all'>
/* style: man */
@ -93,7 +93,7 @@
<p>On any branch: <code>git-extras.1.7.0-110-gafefba7.branch-name.zip</code></p>
<p>On master branch: <code>git-extras.1.7.0-110-gafefba7.zip</code></p>
<p>On the default branch: <code>git-extras.1.7.0-110-gafefba7.zip</code></p>
<p>On a detached HEAD (e.g. a tag): <code>git-extras.1.7.0.zip</code></p>
@ -113,7 +113,7 @@
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>May 2020</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-archive-file(1)</li>
</ol>

View file

@ -20,7 +20,7 @@ Archive naming conventions:
On any branch: `git-extras.1.7.0-110-gafefba7.branch-name.zip`
On master branch: `git-extras.1.7.0-110-gafefba7.zip`
On the default branch: `git-extras.1.7.0-110-gafefba7.zip`
On a detached HEAD (e.g. a tag): `git-extras.1.7.0.zip`

View file

@ -1,34 +1,23 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-BROWSE\-CI" "1" "March 2022" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-BROWSE\-CI" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-browse\-ci\fR \-
.
\fBgit\-browse\-ci\fR \- View the CI page for the current repository
.SH "SYNOPSIS"
\fBgit\-browse\-ci\fR [remote_name]
.
\fBgit\-browse\-ci\fR [<remote_name>]
.SH "DESCRIPTION"
Opens the current git repository CI page in your default web browser\.
.
.SH "OPTIONS"
<remote_name>
.
.P
The name of the remote you wish to browse to\. Defaults to the first remote if not specified\.
.
The name of the remote you wish to browse to\. Defaults to the current branch's configured remote, or \fBorigin\fR if not specified\.
.SH "EXAMPLES"
$ git browse\-ci
.
.P
$ git browse\-ci upstream
.
.SH "AUTHOR"
Written by Peter Benjamin <\fIhttps://github\.com/pbnj\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<title>git-browse-ci(1) - &lt;View the web page for the current repository&gt;</title>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-browse-ci(1) - View the CI page for the current repository</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
@ -69,14 +69,15 @@
<li class='tr'>git-browse-ci(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-browse-ci</code> - <span class="man-whatis"><view the web page for current repository /></span>
</p>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-browse-ci</code> - <span class="man-whatis">View the CI page for the current repository</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-browse-ci</code> [remote_name]</p>
<p><code>git-browse-ci</code> [&lt;remote_name&gt;]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -86,14 +87,14 @@
<p>&lt;remote_name&gt;</p>
<p>The name of the remote you wish to browse to. Defaults to
the first remote if not specified.</p>
<p>The name of the remote you wish to browse to. Defaults to the current
branch's configured remote, or <code>origin</code> if not specified.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> $ git browse-ci</p>
<p>$ git browse-ci</p>
<p> $ git browse-ci upstream</p>
<p>$ git browse-ci upstream</p>
<h2 id="AUTHOR">AUTHOR</h2>
@ -107,10 +108,9 @@ the first remote if not specified.</p>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>March 2022</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-browse-ci(1)</li>
</ol>

View file

@ -1,9 +1,9 @@
git-browse-ci(1) -- <View the web page for the current repository>
git-browse-ci(1) -- View the CI page for the current repository
================================
## SYNOPSIS
`git-browse-ci` [remote_name]
`git-browse-ci` [&lt;remote_name&gt;]
## DESCRIPTION
@ -13,8 +13,8 @@ Opens the current git repository CI page in your default web browser.
&lt;remote_name&gt;
The name of the remote you wish to browse to. Defaults to
the first remote if not specified.
The name of the remote you wish to browse to. Defaults to the current
branch's configured remote, or `origin` if not specified.
## EXAMPLES

View file

@ -1,61 +1,41 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-BROWSE" "1" "June 2022" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-BROWSE" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-browse\fR \-
.
\fBgit\-browse\fR \- View the web page for the current repository
.SH "SYNOPSIS"
\fBgit\-browse\fR [remote_name] [file_name] [line_1] [line_2]
.
\fBgit\-browse\fR [REMOTE\-NAME] [FILE\-NAME] [LINE\-1] [LINE\-2]
.SH "DESCRIPTION"
Opens the current git repository website in your default web browser\.
.
.SH "OPTIONS"
<remote_name>
.
REMOTE\-NAME
.P
The name of the remote you wish to browse to\. Defaults to the first remote if not specified\.
.
.P
<file_name>
.
FILE\-NAME
.P
The name of the file you wish to browse to\.
.
.P
<line_1>
.
LINE\-1
.P
The line number of the file you wish to browse to\.
.
.P
<line_2>
.
LINE\-2
.P
The line range (from <line_1> to <line_2>) of the file you wish to browse to\.
.
The line range (from LINE\-1 to LINE\-2) of the file you wish to browse to\.
.SH "EXAMPLES"
$ git browse
.
.P
$ git browse upstream
.
.P
$ git browse upstream bin/git\-browse
.
.P
$ git browse upstream bin/git\-browse 42
.
.P
$ git browse upstream bin/git\-browse 1 42
.
.SH "AUTHOR"
Written by Mark Pitman <\fIhttps://github\.com/mapitman\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<title>git-browse(1) - &lt;View the web page for the current repository&gt;</title>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-browse(1) - View the web page for the current repository</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
@ -69,14 +69,15 @@
<li class='tr'>git-browse(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-browse</code> - <span class="man-whatis"><view the web page for current repository /></span>
</p>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-browse</code> - <span class="man-whatis">View the web page for the current repository</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-browse</code> [remote_name] [file_name] [line_1] [line_2]</p>
<p><code>git-browse</code> [REMOTE-NAME] [FILE-NAME] [LINE-1] [LINE-2]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -84,35 +85,35 @@
<h2 id="OPTIONS">OPTIONS</h2>
<p>&lt;remote_name&gt;</p>
<p>REMOTE-NAME</p>
<p>The name of the remote you wish to browse to. Defaults to
the first remote if not specified.</p>
<p>&lt;file_name&gt;</p>
<p>FILE-NAME</p>
<p>The name of the file you wish to browse to.</p>
<p>&lt;line_1&gt;</p>
<p>LINE-1</p>
<p>The line number of the file you wish to browse to.</p>
<p>&lt;line_2&gt;</p>
<p>LINE-2</p>
<p>The line range (from &lt;line_1&gt; to &lt;line_2&gt;) of the file you wish to
<p>The line range (from LINE-1 to LINE-2) of the file you wish to
browse to.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> $ git browse</p>
<p>$ git browse</p>
<p> $ git browse upstream</p>
<p>$ git browse upstream</p>
<p> $ git browse upstream bin/git-browse</p>
<p>$ git browse upstream bin/git-browse</p>
<p> $ git browse upstream bin/git-browse 42</p>
<p>$ git browse upstream bin/git-browse 42</p>
<p> $ git browse upstream bin/git-browse 1 42</p>
<p>$ git browse upstream bin/git-browse 1 42</p>
<h2 id="AUTHOR">AUTHOR</h2>
@ -126,10 +127,9 @@ browse to.</p>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>June 2022</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-browse(1)</li>
</ol>

View file

@ -1,9 +1,9 @@
git-browse(1) -- <View the web page for the current repository>
git-browse(1) -- View the web page for the current repository
================================
## SYNOPSIS
`git-browse` [remote_name] [file_name] [line_1] [line_2]
`git-browse` [REMOTE-NAME] [FILE-NAME] [LINE-1] [LINE-2]
## DESCRIPTION
@ -11,22 +11,22 @@ Opens the current git repository website in your default web browser.
## OPTIONS
&lt;remote_name&gt;
REMOTE-NAME
The name of the remote you wish to browse to. Defaults to
the first remote if not specified.
&lt;file_name&gt;
FILE-NAME
The name of the file you wish to browse to.
&lt;line_1&gt;
LINE-1
The line number of the file you wish to browse to.
&lt;line_2&gt;
LINE-2
The line range (from &lt;line_1&gt; to &lt;line_2&gt;) of the file you wish to
The line range (from LINE-1 to LINE-2) of the file you wish to
browse to.
## EXAMPLES

View file

@ -1,108 +1,82 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-BULK" "1" "August 2020" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-BULK" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-bulk\fR \- Run git commands on multiple repositories
.
.SH "SYNOPSIS"
git bulk [\-g] ([\-a]|[\-w <ws\-name>]) <git command>
.
.br
git bulk \-\-addworkspace <ws\-name> <ws\-root\-directory> (\-\-from <URL or file>)
.
.br
git bulk \-\-removeworkspace <ws\-name>
.
.br
git bulk \-\-addcurrent <ws\-name>
.
.br
git bulk \-\-purge
.
.br
git bulk \-\-listall
.
.nf
git\-bulk [\-q|\-\-quiet] [\-g] [\-\-no\-follow\-symlinks] [\-\-no\-follow\-hidden] ([\-a]|[\-w WS\-NAME]) GIT\-COMMAND
git\-bulk \-\-addworkspace WS\-NAME WS\-ROOT\-DIRECTORY (\-\-from URL\-OR\-FILE)
git\-bulk \-\-removeworkspace WS\-NAME
git\-bulk \-\-addcurrent WS\-NAME
git\-bulk \-\-purge
git\-bulk \-\-listall
.fi
.SH "DESCRIPTION"
git bulk adds convenient support for operations that you want to execute on multiple git repositories\.
.
.IP "\(bu" 4
simply register workspaces that contain multiple git repos in their directory structure
.
.IP "\(bu" 4
run any git command on the repositories of the registered workspaces in one command to \fBgit bulk\fR
.
.IP "\(bu" 4
use the "guarded mode" to check on each execution
.
.IP "" 0
.
.SH "OPTIONS"
\-a
.
.P
Run a git command on all workspaces and their repositories\.
.
.P
\-g
.
.P
Ask the user for confirmation on every execution\.
.
.P
\-w <ws\-name>
.
\-\-no\-follow\-symlinks
.P
Do not traverse symbolic links under the workspace when searching for git repositories\.
.P
\-\-no\-follow\-hidden
.P
Do not traverse hidden (dotted) directories under the workspace when searching for git repositories\.
.P
\-w WS\-NAME
.P
Run the git command on the specified workspace\. The workspace must be registered\.
.
.P
<git command>
.
GIT\-COMMAND
.P
Any git Command you wish to execute on the repositories\.
.
.P
\-\-addworkspace <ws\-name> <ws\-root\-directory> (\-\-from <URL or file&rt;gt;)
.
\-\-addworkspace WS\-NAME WS\-ROOT\-DIRECTORY (\-\-from URL\-OR\-FILE)
.P
Register a workspace for bulk operations\. All repositories in the directories below <ws\-root\-directory> get registered under this workspace with the name <ws\-name>\. <ws\-root\-directory> must be absolute path\.
.
Register a workspace for bulk operations\. All repositories in the directories below WS\-ROOT\-DIRECTORY get registered under this workspace with the name WS\-NAME\. WS\-ROOT\-DIRECTORY must be an absolute path\.
.P
With option \'\-\-from\' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace\. Suitable for the initial setup of a multi\-repo project\.
.
With option '\-\-from' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace\. Suitable for the initial setup of a multi\-repo project\.
.P
\-\-removeworkspace <ws\-name>
.
\-\-removeworkspace WS\-NAME
.P
Remove the workspace with the logical name <ws\-name>\.
.
Remove the workspace with the logical name WS\-NAME\.
.P
\-\-addcurrent <ws\-name>
.
\-\-addcurrent WS\-NAME
.P
Adds the current directory as workspace to git bulk operations\. The workspace is referenced with its logical name <ws\-name>\.
.
Adds the current directory as workspace to git bulk operations\. The workspace is referenced with its logical name WS\-NAME\.
.P
git bulk \-\-purge
.
.P
Removes all defined repository locations\.
.
.P
git bulk \-\-listall
.
.P
List all registered repositories\.
.
.SH "EXAMPLES"
.
.nf
Register a workspace so that git bulk knows about it:
Register a workspace so that git bulk knows about it using an absolute path:
$ git bulk \-\-addworkspace personal ~/workspaces/personal
Or register a workspace using an environment variable pointing to an absolute path:
$ git bulk \-\-addworkspace personal '$PERSONAL_WORKSPACE'
Use option \-\-from in order to directly clone a repository or multiple repositories
$ git bulk \-\-addworkspace personal ~/workspaces/personal \-\-from https://github\.com/tj/git\-extras\.git
@ -142,14 +116,14 @@ $ git bulk \-\-removeworkspace personal
Remove all registered workspaces:
$ git bulk \-\-purge
.
.fi
.
.SH "FILES"
.IP "\(bu" 4
\fB\.gitconfig\fR: Store the \fBgit\-bulk\fR registered workspaces under the \fBbulkworkspaces\fR key\.
.IP "" 0
.SH "AUTHOR"
Written by Niklas Schlimm <\fIns103@hotmail\.de\fR>
.
.SH "REPORTING BUGS"
<https://github\.com/nschlimm/git\-bulk>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-bulk(1) - Run git commands on multiple repositories</title>
<style type='text/css' media='all'>
/* style: man */
@ -58,6 +58,7 @@
<a href="#DESCRIPTION">DESCRIPTION</a>
<a href="#OPTIONS">OPTIONS</a>
<a href="#EXAMPLES">EXAMPLES</a>
<a href="#FILES">FILES</a>
<a href="#AUTHOR">AUTHOR</a>
<a href="#REPORTING-BUGS">REPORTING BUGS</a>
<a href="#SEE-ALSO">SEE ALSO</a>
@ -69,77 +70,91 @@
<li class='tr'>git-bulk(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-bulk</code> - <span class="man-whatis">Run git commands on multiple repositories</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p>git bulk [-g] ([-a]|[-w &lt;ws-name&gt;]) &lt;git command&gt; <br />
git bulk --addworkspace &lt;ws-name&gt; &lt;ws-root-directory&gt; (--from &lt;URL or file&gt;) <br />
git bulk --removeworkspace &lt;ws-name&gt; <br />
git bulk --addcurrent &lt;ws-name&gt; <br />
git bulk --purge <br />
git bulk --listall</p>
<pre><code>git-bulk [-q|--quiet] [-g] [--no-follow-symlinks] [--no-follow-hidden] ([-a]|[-w WS-NAME]) GIT-COMMAND
git-bulk --addworkspace WS-NAME WS-ROOT-DIRECTORY (--from URL-OR-FILE)
git-bulk --removeworkspace WS-NAME
git-bulk --addcurrent WS-NAME
git-bulk --purge
git-bulk --listall
</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>git bulk adds convenient support for operations that you want to execute on multiple git repositories.</p>
<ul>
<li>simply register workspaces that contain multiple git repos in their directory structure</li>
<li>run any git command on the repositories of the registered workspaces in one command to <code>git bulk</code></li>
<li>use the "guarded mode" to check on each execution</li>
<li>simply register workspaces that contain multiple git repos in their directory structure</li>
<li>run any git command on the repositories of the registered workspaces in one command to <code>git bulk</code>
</li>
<li>use the "guarded mode" to check on each execution</li>
</ul>
<h2 id="OPTIONS">OPTIONS</h2>
<p> -a</p>
<p>-a</p>
<p> Run a git command on all workspaces and their repositories.</p>
<p>Run a git command on all workspaces and their repositories.</p>
<p> -g</p>
<p>-g</p>
<p> Ask the user for confirmation on every execution.</p>
<p>Ask the user for confirmation on every execution.</p>
<p> -w &lt;ws-name&gt;</p>
<p>--no-follow-symlinks</p>
<p> Run the git command on the specified workspace. The workspace must be registered.</p>
<p>Do not traverse symbolic links under the workspace when searching for git repositories.</p>
<p> &lt;git command&gt;</p>
<p>--no-follow-hidden</p>
<p> Any git Command you wish to execute on the repositories.</p>
<p>Do not traverse hidden (dotted) directories under the workspace when searching for git repositories.</p>
<p> --addworkspace &lt;ws-name&gt; &lt;ws-root-directory&gt; (--from &lt;URL or file&rt;gt;)</p>
<p>-w WS-NAME</p>
<p> Register a workspace for bulk operations. All repositories in the directories below &lt;ws-root-directory&gt; get registered under this workspace with the name &lt;ws-name&gt;. &lt;ws-root-directory&gt; must be absolute path.</p>
<p>Run the git command on the specified workspace. The workspace must be registered.</p>
<p> With option '--from' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace. Suitable for the initial setup of a multi-repo project.</p>
<p>GIT-COMMAND</p>
<p> --removeworkspace &lt;ws-name&gt;</p>
<p>Any git Command you wish to execute on the repositories.</p>
<p> Remove the workspace with the logical name &lt;ws-name&gt;.</p>
<p>--addworkspace WS-NAME WS-ROOT-DIRECTORY (--from URL-OR-FILE)</p>
<p> --addcurrent &lt;ws-name&gt;</p>
<p>Register a workspace for bulk operations. All repositories in the directories below WS-ROOT-DIRECTORY get registered under this workspace with the name WS-NAME. WS-ROOT-DIRECTORY must be an absolute path.</p>
<p> Adds the current directory as workspace to git bulk operations. The workspace is referenced with its logical name &lt;ws-name&gt;.</p>
<p>With option '--from' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace. Suitable for the initial setup of a multi-repo project.</p>
<p> git bulk --purge</p>
<p>--removeworkspace WS-NAME</p>
<p> Removes all defined repository locations.</p>
<p>Remove the workspace with the logical name WS-NAME.</p>
<p> git bulk --listall</p>
<p>--addcurrent WS-NAME</p>
<p> List all registered repositories.</p>
<p>Adds the current directory as workspace to git bulk operations. The workspace is referenced with its logical name WS-NAME.</p>
<p>git bulk --purge</p>
<p>Removes all defined repository locations.</p>
<p>git bulk --listall</p>
<p>List all registered repositories.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<pre><code>Register a workspace so that git bulk knows about it:
<pre><code>Register a workspace so that git bulk knows about it using an absolute path:
$ git bulk --addworkspace personal ~/workspaces/personal
Or register a workspace using an environment variable pointing to an absolute path:
$ git bulk --addworkspace personal '$PERSONAL_WORKSPACE'
Use option --from in order to directly clone a repository or multiple repositories
$ git bulk --addworkspace personal ~/workspaces/personal --from https://github.com/tj/git-extras.git
@ -181,9 +196,16 @@ Remove all registered workspaces:
$ git bulk --purge
</code></pre>
<h2 id="FILES">FILES</h2>
<ul>
<li>
<code>.gitconfig</code>: Store the <code>git-bulk</code> registered workspaces under the <code>bulkworkspaces</code> key.</li>
</ul>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Niklas Schlimm &lt;<a href="&#x6d;&#x61;&#105;&#108;&#x74;&#111;&#58;&#x6e;&#x73;&#x31;&#48;&#51;&#x40;&#x68;&#111;&#116;&#x6d;&#97;&#105;&#108;&#x2e;&#100;&#101;" data-bare-link="true">&#110;&#x73;&#x31;&#x30;&#51;&#x40;&#104;&#111;&#116;&#x6d;&#97;&#105;&#108;&#46;&#x64;&#x65;</a>&gt;</p>
<p>Written by Niklas Schlimm &lt;<a href="mailto:ns103@hotmail.de" data-bare-link="true">ns103@hotmail.de</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
@ -193,10 +215,9 @@ $ git bulk --purge
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>August 2020</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-bulk(1)</li>
</ol>

View file

@ -3,12 +3,12 @@ git-bulk(1) -- Run git commands on multiple repositories
## SYNOPSIS
git bulk [-g] ([-a]|[-w &lt;ws-name&gt;]) &lt;git command&gt; <br/>
git bulk --addworkspace &lt;ws-name&gt; &lt;ws-root-directory&gt; (--from &lt;URL or file&gt;) <br/>
git bulk --removeworkspace &lt;ws-name&gt; <br/>
git bulk --addcurrent &lt;ws-name&gt; <br/>
git bulk --purge <br/>
git bulk --listall
git-bulk [-q|--quiet] [-g] [--no-follow-symlinks] [--no-follow-hidden] ([-a]|[-w WS-NAME]) GIT-COMMAND
git-bulk --addworkspace WS-NAME WS-ROOT-DIRECTORY (--from URL-OR-FILE)
git-bulk --removeworkspace WS-NAME
git-bulk --addcurrent WS-NAME
git-bulk --purge
git-bulk --listall
## DESCRIPTION
@ -28,27 +28,35 @@ git bulk adds convenient support for operations that you want to execute on mult
Ask the user for confirmation on every execution.
-w &lt;ws-name&gt;
--no-follow-symlinks
Do not traverse symbolic links under the workspace when searching for git repositories.
--no-follow-hidden
Do not traverse hidden (dotted) directories under the workspace when searching for git repositories.
-w WS-NAME
Run the git command on the specified workspace. The workspace must be registered.
&lt;git command&gt;
GIT-COMMAND
Any git Command you wish to execute on the repositories.
--addworkspace &lt;ws-name&gt; &lt;ws-root-directory&gt; (--from &lt;URL or file&rt;gt;)
--addworkspace WS-NAME WS-ROOT-DIRECTORY (--from URL-OR-FILE)
Register a workspace for bulk operations. All repositories in the directories below &lt;ws-root-directory&gt; get registered under this workspace with the name &lt;ws-name&gt;. &lt;ws-root-directory&gt; must be absolute path.
Register a workspace for bulk operations. All repositories in the directories below WS-ROOT-DIRECTORY get registered under this workspace with the name WS-NAME. WS-ROOT-DIRECTORY must be an absolute path.
With option '--from' the URL to a single repository or a file containing multiple URLs can be added and they will be cloned directly into the workspace. Suitable for the initial setup of a multi-repo project.
--removeworkspace &lt;ws-name&gt;
--removeworkspace WS-NAME
Remove the workspace with the logical name &lt;ws-name&gt;.
Remove the workspace with the logical name WS-NAME.
--addcurrent &lt;ws-name&gt;
--addcurrent WS-NAME
Adds the current directory as workspace to git bulk operations. The workspace is referenced with its logical name &lt;ws-name&gt;.
Adds the current directory as workspace to git bulk operations. The workspace is referenced with its logical name WS-NAME.
git bulk --purge
@ -60,10 +68,14 @@ git bulk adds convenient support for operations that you want to execute on mult
## EXAMPLES
Register a workspace so that git bulk knows about it:
Register a workspace so that git bulk knows about it using an absolute path:
$ git bulk --addworkspace personal ~/workspaces/personal
Or register a workspace using an environment variable pointing to an absolute path:
$ git bulk --addworkspace personal '$PERSONAL_WORKSPACE'
Use option --from in order to directly clone a repository or multiple repositories
$ git bulk --addworkspace personal ~/workspaces/personal --from https://github.com/tj/git-extras.git
@ -104,6 +116,10 @@ git bulk adds convenient support for operations that you want to execute on mult
$ git bulk --purge
## FILES
- `.gitconfig`: Store the `git-bulk` registered workspaces under the `bulkworkspaces` key.
## AUTHOR
Written by Niklas Schlimm &lt;<ns103@hotmail.de>&gt;

View file

@ -1,57 +1,52 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-COMMITS\-SINCE" "1" "October 2017" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-COMMITS\-SINCE" "1" "January 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-commits\-since\fR \- Show commit logs since some date
.
.SH "SYNOPSIS"
\fBgit\-commits\-since\fR [<date>]
.
.TS
allbox;
\fBgit\-commits\-since\fR [\-r \-\-ref <ref>] [<date>]
.TE
.SH "DESCRIPTION"
List of commits since the given \fIdate\fR\.
.
List of commits since the given \fIdate\fR or \fIref\fR\.
.SH "OPTIONS"
<date>
.
.P
Show commits more recent than \fIdate\fR\. By default, the command shows the commit logs since "last week"\.
.
Show commits more recent than <date>\. By default, the command shows the commit logs since "last week"\.
.P
\-r, \-\-ref <ref>
.P
Show commits since the given ref (tag, branch, or commit)\. When specified, the command uses \fBref\.\.HEAD\fR instead of date\-based filtering\.
.SH "EXAMPLES"
It is really flexible and these are only 3 of the options, go ahead give it a try:
.
.IP "" 4
.
.nf
$ git commits\-since yesterday
\.\.\. commits since yesterday
nickl\- \- Merge branch upstream master\.
nickl\- \- Rebase bolshakov with master
TJ Holowaychuk \- Merge pull request #128 from nickl\-/git\-extras\-html\-hyperlinks
TJ Holowaychuk \- Merge pull request #129 from nickl\-/develop
nickl\- \- Fix #127 git\-ignore won\'t add duplicates\.
aa084d9 TweeKane \- Add global gitignore to git\-ignore output
515e94a TJ Holowaychuk \- Merge pull request #128 from nickl\-/git\-extras\-html\-hyperlinks
5f86b54 TJ Holowaychuk \- Merge pull request #129 from nickl\-/develop
7398d10 nickl\- \- Fix #127 git\-ignore won\'t add duplicates\.
$ git commits\-since 3 o clock pm
\.\.\. commits since 3 o clock pm
nickl\- \- Merge branch upstream master\.
aa084d9 TweeKane \- Add global gitignore to git\-ignore output
$ git commits\-since 2 hour ago
\.\.\. commits since 2 hour ago
nickl\- \- Merge branch upstream master\.
TJ Holowaychuk \- Merge pull request #128 from nickl\-/git\-extras\-html\-hyperlinks
TJ Holowaychuk \- Merge pull request #129 from nickl\-/develop
.
aa084d9 TweeKane \- Add global gitignore to git\-ignore output
515e94a TJ Holowaychuk \- Merge pull request #128 from nickl\-/git\-extras\-html\-hyperlinks
5f86b54 TJ Holowaychuk \- Merge pull request #129 from nickl\-/develop
$ git commits\-since \-\-ref 7\.4\.0
6ed2643 John Bachir \- ability to specify command when hitting enter (#1223)
b9bd309 John Bachir \- Improve `git\-repl` prompt (#1224)
6f4cf0c johnpyp \- feat: `delete\-branch` multiple unique branch names completions (#1221)
\|\.\|\.\|\.
215382b 罗泽轩 \- Bump version to 7\.5\.0\-dev (#1207)
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Tj Holowaychuk <\fItj@vision\-media\.ca\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<title>git-commits-since(1) - Show commit logs since some date</title>
<style type='text/css' media='all'>
/* style: man */
@ -69,51 +69,67 @@
<li class='tr'>git-commits-since(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-commits-since</code> - <span class="man-whatis">Show commit logs since some date</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-commits-since</code> [&lt;date&gt;]</p>
<table>
<tbody>
<tr>
<td>
<code>git-commits-since</code> [-r</td>
<td>--ref &lt;ref&gt;] [&lt;date&gt;]</td>
</tr>
</tbody>
</table>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p> List of commits since the given <em>date</em>.</p>
<p>List of commits since the given <em>date</em> or <em>ref</em>.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p> &lt;date&gt;</p>
<p>&lt;date&gt;</p>
<p> Show commits more recent than <var>date</var>. By default, the command shows the commit logs since "last week".</p>
<p>Show commits more recent than &lt;date&gt;. By default, the command shows the commit logs since "last week".</p>
<p>-r, --ref &lt;ref&gt;</p>
<p>Show commits since the given ref (tag, branch, or commit). When specified, the command uses <code>ref..HEAD</code> instead of date-based filtering.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> It is really flexible and these are only 3 of the options, go ahead give it a try:</p>
<p>It is really flexible and these are only 3 of the options, go ahead give it a try:</p>
<pre><code>$ git commits-since yesterday
... commits since yesterday
nickl- - Merge branch upstream master.
nickl- - Rebase bolshakov with master
TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
TJ Holowaychuk - Merge pull request #129 from nickl-/develop
nickl- - Fix #127 git-ignore won't add duplicates.
aa084d9 TweeKane - Add global gitignore to git-ignore output
515e94a TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
5f86b54 TJ Holowaychuk - Merge pull request #129 from nickl-/develop
7398d10 nickl- - Fix #127 git-ignore won't add duplicates.
$ git commits-since 3 o clock pm
... commits since 3 o clock pm
nickl- - Merge branch upstream master.
aa084d9 TweeKane - Add global gitignore to git-ignore output
$ git commits-since 2 hour ago
... commits since 2 hour ago
nickl- - Merge branch upstream master.
TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
TJ Holowaychuk - Merge pull request #129 from nickl-/develop
aa084d9 TweeKane - Add global gitignore to git-ignore output
515e94a TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
5f86b54 TJ Holowaychuk - Merge pull request #129 from nickl-/develop
$ git commits-since --ref 7.4.0
6ed2643 John Bachir - ability to specify command when hitting enter (#1223)
b9bd309 John Bachir - Improve `git-repl` prompt (#1224)
6f4cf0c johnpyp - feat: `delete-branch` multiple unique branch names completions (#1221)
...
215382b 罗泽轩 - Bump version to 7.5.0-dev (#1207)
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Tj Holowaychuk &lt;<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#116;&#x6a;&#x40;&#x76;&#105;&#x73;&#x69;&#x6f;&#110;&#45;&#109;&#x65;&#x64;&#105;&#x61;&#x2e;&#99;&#97;" data-bare-link="true">&#x74;&#106;&#64;&#x76;&#x69;&#115;&#105;&#111;&#x6e;&#x2d;&#x6d;&#x65;&#x64;&#x69;&#97;&#46;&#x63;&#97;</a>&gt;</p>
<p>Written by Tj Holowaychuk &lt;<a href="mailto:tj@vision-media.ca" data-bare-link="true">tj@vision-media.ca</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
@ -123,10 +139,9 @@ TJ Holowaychuk - Merge pull request #129 from nickl-/develop
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>October 2017</li>
<li class='tc'>January 2026</li>
<li class='tr'>git-commits-since(1)</li>
</ol>

View file

@ -3,40 +3,46 @@ git-commits-since(1) -- Show commit logs since some date
## SYNOPSIS
`git-commits-since` [&lt;date&gt;]
`git-commits-since` [-r|--ref &lt;ref&gt;] [&lt;date&gt;]
## DESCRIPTION
List of commits since the given _date_.
List of commits since the given _date_ or _ref_.
## OPTIONS
&lt;date&gt;
Show commits more recent than <date>. By default, the command shows the commit logs since "last week".
Show commits more recent than &lt;date&gt;. By default, the command shows the commit logs since "last week".
-r, --ref &lt;ref&gt;
Show commits since the given ref (tag, branch, or commit). When specified, the command uses `ref..HEAD` instead of date-based filtering.
## EXAMPLES
It is really flexible and these are only 3 of the options, go ahead give it a try:
$ git commits-since yesterday
... commits since yesterday
nickl- - Merge branch upstream master.
nickl- - Rebase bolshakov with master
TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
TJ Holowaychuk - Merge pull request #129 from nickl-/develop
nickl- - Fix #127 git-ignore won't add duplicates.
aa084d9 TweeKane - Add global gitignore to git-ignore output
515e94a TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
5f86b54 TJ Holowaychuk - Merge pull request #129 from nickl-/develop
7398d10 nickl- - Fix #127 git-ignore won't add duplicates.
$ git commits-since 3 o clock pm
... commits since 3 o clock pm
nickl- - Merge branch upstream master.
aa084d9 TweeKane - Add global gitignore to git-ignore output
$ git commits-since 2 hour ago
... commits since 2 hour ago
nickl- - Merge branch upstream master.
TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
TJ Holowaychuk - Merge pull request #129 from nickl-/develop
aa084d9 TweeKane - Add global gitignore to git-ignore output
515e94a TJ Holowaychuk - Merge pull request #128 from nickl-/git-extras-html-hyperlinks
5f86b54 TJ Holowaychuk - Merge pull request #129 from nickl-/develop
$ git commits-since --ref 7.4.0
6ed2643 John Bachir - ability to specify command when hitting enter (#1223)
b9bd309 John Bachir - Improve `git-repl` prompt (#1224)
6f4cf0c johnpyp - feat: `delete-branch` multiple unique branch names completions (#1221)
...
215382b 罗泽轩 - Bump version to 7.5.0-dev (#1207)
## AUTHOR

19
man/git-continue.1 Normal file
View file

@ -0,0 +1,19 @@
.\" generated with Ronn-NG/v0.8.0
.\" http://github.com/apjanke/ronn-ng/tree/0.8.0
.TH "GIT\-CONTINUE" "1" "November 2024" "" "Git Extras"
.SH "NAME"
\fBgit\-continue\fR \- Continue current git operation
.SH "SYNOPSIS"
\fBgit\-continue\fR
.SH "DESCRIPTION"
Continue current git revert, rebase, merge or cherry\-pick process\.
.SH "OPTIONS"
There are no options, it just continues current operation\.
.SH "EXAMPLES"
\fBgit\-continue\fR
.SH "AUTHOR"
Written by oikarinen
.SH "REPORTING BUGS"
<\fI\%https://github\.com/tj/git\-extras/issues\fR>
.SH "SEE ALSO"
<\fI\%https://github\.com/tj/git\-extras\fR>

114
man/git-continue.html Normal file
View file

@ -0,0 +1,114 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.8.0 (http://github.com/apjanke/ronn-ng/tree/0.8.0)'>
<title>git-continue(1) - Continue current git operation</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
.mp h2 {margin:10px 0 0 0}
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
.mp h3 {margin:0 0 0 4ex}
.mp dt {margin:0;clear:left}
.mp dt.flush {float:left;width:8ex}
.mp dd {margin:0 0 0 9ex}
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
.mp pre {margin-bottom:20px}
.mp pre+h2,.mp pre+h3 {margin-top:22px}
.mp h2+pre,.mp h3+pre {margin-top:5px}
.mp img {display:block;margin:auto}
.mp h1.man-title {display:none}
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
.mp h2 {font-size:16px;line-height:1.25}
.mp h1 {font-size:20px;line-height:2}
.mp {text-align:justify;background:#fff}
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
.mp u {text-decoration:underline}
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
.mp b.man-ref {font-weight:normal;color:#434241}
.mp pre {padding:0 4ex}
.mp pre code {font-weight:normal;color:#434241}
.mp h2+pre,h3+pre {padding-left:0}
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
ol.man-decor {width:100%}
ol.man-decor li.tl {text-align:left}
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
ol.man-decor li.tr {text-align:right;float:right}
</style>
</head>
<!--
The following styles are deprecated and will be removed at some point:
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
.man-navigation should be used instead.
-->
<body id='manpage'>
<div class='mp' id='man'>
<div class='man-navigation' style='display:none'>
<a href="#NAME">NAME</a>
<a href="#SYNOPSIS">SYNOPSIS</a>
<a href="#DESCRIPTION">DESCRIPTION</a>
<a href="#OPTIONS">OPTIONS</a>
<a href="#EXAMPLES">EXAMPLES</a>
<a href="#AUTHOR">AUTHOR</a>
<a href="#REPORTING-BUGS">REPORTING BUGS</a>
<a href="#SEE-ALSO">SEE ALSO</a>
</div>
<ol class='man-decor man-head man head'>
<li class='tl'>git-continue(1)</li>
<li class='tc'>Git Extras</li>
<li class='tr'>git-continue(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-continue</code> - <span class="man-whatis">Continue current git operation</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-continue</code></p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p> Continue current git revert, rebase, merge or cherry-pick process.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p> There are no options, it just continues current operation.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> <code>git-continue</code></p>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by oikarinen</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>November 2024</li>
<li class='tr'>git-continue(1)</li>
</ol>
</div>
</body>
</html>

30
man/git-continue.md Normal file
View file

@ -0,0 +1,30 @@
git-continue(1) -- Continue current git operation
================================
## SYNOPSIS
`git-continue`
## DESCRIPTION
Continue current git revert, rebase, merge or cherry-pick process.
## OPTIONS
There are no options, it just continues current operation.
## EXAMPLES
`git-continue`
## AUTHOR
Written by oikarinen
## REPORTING BUGS
&lt;<https://github.com/tj/git-extras/issues>&gt;
## SEE ALSO
&lt;<https://github.com/tj/git-extras>&gt;

View file

@ -1,30 +1,19 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-DELETE\-MERGED\-BRANCHES" "1" "October 2017" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-DELETE\-MERGED\-BRANCHES" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-delete\-merged\-branches\fR \- Delete merged branches
.
.SH "SYNOPSIS"
\fBgit\-delete\-merged\-branches\fR
.
.SH "DESCRIPTION"
Deletes all branches merged in to current HEAD\. Does not delete \fImaster\fR, even if run from a branch that is a descendant of \fImaster\fR\.
.
Deletes all branches merged in to current HEAD\. Does not delete the default branch, even if run from a branch that is a descendant of it\.
.SH "EXAMPLES"
.
.nf
$ git delete\-merged\-branches
.
.fi
.
.SH "AUTHOR"
Written by Jesús Espino <\fIjespinog@gmail\.com\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-delete-merged-branches(1) - Delete merged branches</title>
<style type='text/css' media='all'>
/* style: man */
@ -68,19 +68,20 @@
<li class='tr'>git-delete-merged-branches(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-delete-merged-branches</code> - <span class="man-whatis">Delete merged branches</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-delete-merged-branches</code></p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p> Deletes all branches merged in to current HEAD. Does not delete <em>master</em>, even if run from a branch that is
a descendant of <em>master</em>.</p>
<p>Deletes all branches merged in to current HEAD. Does not delete the default branch, even if run from a branch that is
a descendant of it.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
@ -89,7 +90,7 @@
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Jesús Espino &lt;<a href="&#x6d;&#97;&#105;&#108;&#116;&#111;&#58;&#106;&#x65;&#x73;&#x70;&#105;&#110;&#111;&#x67;&#64;&#x67;&#x6d;&#x61;&#x69;&#108;&#x2e;&#x63;&#111;&#109;" data-bare-link="true">&#x6a;&#x65;&#115;&#112;&#105;&#110;&#x6f;&#x67;&#64;&#x67;&#x6d;&#97;&#x69;&#x6c;&#x2e;&#x63;&#111;&#109;</a>&gt;</p>
<p>Written by Jesús Espino &lt;<a href="mailto:jespinog@gmail.com" data-bare-link="true">jespinog@gmail.com</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
@ -99,10 +100,9 @@
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>October 2017</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-delete-merged-branches(1)</li>
</ol>

View file

@ -7,8 +7,8 @@ git-delete-merged-branches(1) -- Delete merged branches
## DESCRIPTION
Deletes all branches merged in to current HEAD. Does not delete *master*, even if run from a branch that is
a descendant of *master*.
Deletes all branches merged in to current HEAD. Does not delete the default branch, even if run from a branch that is
a descendant of it.
## EXAMPLES

View file

@ -1,48 +1,29 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-DELTA" "1" "October 2017" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-DELTA" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-delta\fR \- Lists changed files
.
.SH "SYNOPSIS"
\fBgit\-delta\fR [<branch>] [<filter>]
.
.SH "DESCRIPTION"
Lists all files that differ from a branch\. By default, lists files that have been added, copied, or modified as compared to the \fBmaster\fR branch\.
.
Lists all files that differ from a branch\. By default, lists files that have been added, copied, or modified as compared to the configured default branch\.
.SH "EXAMPLES"
Lists all modified and renamed files vs\. \fBmaster\fR:
.
Lists all modified and renamed files vs\. \fBmain\fR:
.IP "" 4
.
.nf
$ git delta master MR
.
$ git delta main MR
.fi
.
.IP "" 0
.
.P
Lists all deleted files vs\. \fBexample\fR:
.
.IP "" 4
.
.nf
$ git delta example D
.
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Ivan Malopinsky <\fIhello@imsky\.co\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-delta(1) - Lists changed files</title>
<style type='text/css' media='all'>
/* style: man */
@ -68,34 +68,35 @@
<li class='tr'>git-delta(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-delta</code> - <span class="man-whatis">Lists changed files</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-delta</code> [&lt;branch&gt;] [&lt;filter&gt;]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Lists all files that differ from a branch. By default, lists files that have been added, copied, or modified as compared to the <code>master</code> branch.</p>
<p>Lists all files that differ from a branch. By default, lists files that have been added, copied, or modified as compared to the configured default branch.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> Lists all modified and renamed files vs. <code>master</code>:</p>
<p>Lists all modified and renamed files vs. <code>main</code>:</p>
<pre><code>$ git delta master MR
<pre><code>$ git delta main MR
</code></pre>
<p> Lists all deleted files vs. <code>example</code>:</p>
<p>Lists all deleted files vs. <code>example</code>:</p>
<pre><code>$ git delta example D
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Ivan Malopinsky &lt;<a href="&#109;&#97;&#x69;&#108;&#x74;&#x6f;&#58;&#104;&#x65;&#x6c;&#x6c;&#x6f;&#64;&#x69;&#x6d;&#x73;&#x6b;&#x79;&#46;&#99;&#x6f;" data-bare-link="true">&#x68;&#x65;&#x6c;&#x6c;&#x6f;&#64;&#x69;&#x6d;&#115;&#x6b;&#x79;&#x2e;&#99;&#111;</a>&gt;</p>
<p>Written by Ivan Malopinsky &lt;<a href="mailto:hello@imsky.co" data-bare-link="true">hello@imsky.co</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
@ -105,10 +106,9 @@
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>October 2017</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-delta(1)</li>
</ol>

View file

@ -7,13 +7,13 @@ git-delta(1) -- Lists changed files
## DESCRIPTION
Lists all files that differ from a branch. By default, lists files that have been added, copied, or modified as compared to the `master` branch.
Lists all files that differ from a branch. By default, lists files that have been added, copied, or modified as compared to the configured default branch.
## EXAMPLES
Lists all modified and renamed files vs. `master`:
Lists all modified and renamed files vs. `main`:
$ git delta master MR
$ git delta main MR
Lists all deleted files vs. `example`:

View file

@ -1,175 +0,0 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-EXTRAS" "1" "May 2023" "" "Git Extras"
.SH "NAME"
\fBgit\-extras\fR \- Awesome GIT utilities
.SH "SYNOPSIS"
\fBgit\-extras\fR [\-v,\-\-version] [\-h,\-\-help] [update]
.SH "OPTIONS"
\-v, \-\-version
.P
Show git\-extras version number\.
.P
\-h, \-\-help
.P
Show this help\. This option can also be used for any of the extras commands\.
.P
update
.P
Self update\.
.SH "ENVIRONMENT AND CONFIGURATION VARIABLES"
\fBgit config \-\-add git\-extras\.default\-branch $BRANCH\fR
.P
Change the default branch to \fB$BRANCH\fR\. If \fBgit\-extras\.default\-branch\fR isn't set, \fBinit\.defaultBranch\fR is used instead\. If none of them are set it defaults to \fBmain\fR\.
.SH "COMMANDS"
.IP "\[ci]" 4
\fBgit\-abort(1)\fR Abort current git operation
.IP "\[ci]" 4
\fBgit\-alias(1)\fR Define, search and show aliases
.IP "\[ci]" 4
\fBgit\-archive\-file(1)\fR Export the current HEAD of the git repository to an archive
.IP "\[ci]" 4
\fBgit\-authors(1)\fR Generate authors report
.IP "\[ci]" 4
\fBgit\-browse\-ci(1)\fR \fIView the web page for the current repository\fR
.IP "\[ci]" 4
\fBgit\-browse(1)\fR \fIView the web page for the current repository\fR
.IP "\[ci]" 4
\fBgit\-brv(1)\fR List branches sorted by their last commit date
.IP "\[ci]" 4
\fBgit\-bulk(1)\fR Run git commands on multiple repositories
.IP "\[ci]" 4
\fBgit\-changelog(1)\fR Generate a changelog report
.IP "\[ci]" 4
\fBgit\-clear\-soft(1)\fR Soft clean up a repository
.IP "\[ci]" 4
\fBgit\-clear(1)\fR Rigorously clean up a repository
.IP "\[ci]" 4
\fBgit\-coauthor(1)\fR Add a co\-author to the last commit
.IP "\[ci]" 4
\fBgit\-commits\-since(1)\fR Show commit logs since some date
.IP "\[ci]" 4
\fBgit\-contrib(1)\fR Show user's contributions
.IP "\[ci]" 4
\fBgit\-count(1)\fR Show commit count
.IP "\[ci]" 4
\fBgit\-cp(1)\fR Copy a file keeping its history
.IP "\[ci]" 4
\fBgit\-create\-branch(1)\fR Create branches
.IP "\[ci]" 4
\fBgit\-delete\-branch(1)\fR Delete branches
.IP "\[ci]" 4
\fBgit\-delete\-merged\-branches(1)\fR Delete merged branches
.IP "\[ci]" 4
\fBgit\-delete\-squashed\-branches(1)\fR Delete branches that were squashed
.IP "\[ci]" 4
\fBgit\-delete\-submodule(1)\fR Delete submodules
.IP "\[ci]" 4
\fBgit\-delete\-tag(1)\fR Delete tags
.IP "\[ci]" 4
\fBgit\-delta(1)\fR Lists changed files
.IP "\[ci]" 4
\fBgit\-effort(1)\fR Show effort statistics on file(s)
.IP "\[ci]" 4
\fBgit\-feature(1)\fR Create/Merge feature branch
.IP "\[ci]" 4
\fBgit\-force\-clone(1)\fR overwrite local repositories with clone
.IP "\[ci]" 4
\fBgit\-fork(1)\fR Fork a repo on github
.IP "\[ci]" 4
\fBgit\-fresh\-branch(1)\fR Create fresh branches
.IP "\[ci]" 4
\fBgit\-get(1)\fR Clone a Git repository under a configured directory
.IP "\[ci]" 4
\fBgit\-gh\-pages(1)\fR Create the GitHub Pages branch
.IP "\[ci]" 4
\fBgit\-graft(1)\fR Merge and destroy a given branch
.IP "\[ci]" 4
\fBgit\-guilt(1)\fR calculate change between two revisions
.IP "\[ci]" 4
\fBgit\-ignore\-io(1)\fR Get sample gitignore file
.IP "\[ci]" 4
\fBgit\-ignore(1)\fR Add \.gitignore patterns
.IP "\[ci]" 4
\fBgit\-info(1)\fR Returns information on current repository
.IP "\[ci]" 4
\fBgit\-local\-commits(1)\fR List local commits
.IP "\[ci]" 4
\fBgit\-lock(1)\fR Lock a file excluded from version control
.IP "\[ci]" 4
\fBgit\-locked(1)\fR ls files that have been locked
.IP "\[ci]" 4
\fBgit\-magic(1)\fR Automate add/commit/push routines
.IP "\[ci]" 4
\fBgit\-merge\-into(1)\fR Merge one branch into another
.IP "\[ci]" 4
\fBgit\-merge\-repo(1)\fR Merge two repo histories
.IP "\[ci]" 4
\fBgit\-missing(1)\fR Show commits missing from another branch
.IP "\[ci]" 4
\fBgit\-mr(1)\fR Checks out a merge request locally
.IP "\[ci]" 4
\fBgit\-obliterate(1)\fR rewrite past commits to remove some files
.IP "\[ci]" 4
\fBgit\-paste(1)\fR Send patches to pastebin for chat conversations
.IP "\[ci]" 4
\fBgit\-pr(1)\fR Checks out a pull request locally
.IP "\[ci]" 4
\fBgit\-psykorebase(1)\fR Rebase a branch with a merge commit
.IP "\[ci]" 4
\fBgit\-pull\-request(1)\fR Create pull request for GitHub project
.IP "\[ci]" 4
\fBgit\-reauthor(1)\fR Rewrite history to change author's identity
.IP "\[ci]" 4
\fBgit\-rebase\-patch(1)\fR Rebases a patch
.IP "\[ci]" 4
\fBgit\-release(1)\fR Commit, tag and push changes to the repository
.IP "\[ci]" 4
\fBgit\-rename\-branch(1)\fR rename local branch and push to remote
.IP "\[ci]" 4
\fBgit\-rename\-remote(1)\fR Rename a remote
.IP "\[ci]" 4
\fBgit\-rename\-tag(1)\fR Rename a tag
.IP "\[ci]" 4
\fBgit\-repl(1)\fR git read\-eval\-print\-loop
.IP "\[ci]" 4
\fBgit\-reset\-file(1)\fR Reset one file
.IP "\[ci]" 4
\fBgit\-root(1)\fR show path of root
.IP "\[ci]" 4
\fBgit\-scp(1)\fR Copy files to SSH compatible \fBgit\-remote\fR
.IP "\[ci]" 4
\fBgit\-sed(1)\fR replace patterns in git\-controlled files
.IP "\[ci]" 4
\fBgit\-setup(1)\fR Set up a git repository
.IP "\[ci]" 4
\fBgit\-show\-merged\-branches(1)\fR Show merged branches
.IP "\[ci]" 4
\fBgit\-show\-tree(1)\fR show branch tree of commit history
.IP "\[ci]" 4
\fBgit\-show\-unmerged\-branches(1)\fR Show unmerged branches
.IP "\[ci]" 4
\fBgit\-squash(1)\fR squash N last changes up to a ref'ed commit
.IP "\[ci]" 4
\fBgit\-stamp(1)\fR Stamp the last commit message
.IP "\[ci]" 4
\fBgit\-standup(1)\fR Recall the commit history
.IP "\[ci]" 4
\fBgit\-summary(1)\fR Show repository summary
.IP "\[ci]" 4
\fBgit\-sync(1)\fR Sync local branch with remote branch
.IP "\[ci]" 4
\fBgit\-touch(1)\fR Touch and add file to the index
.IP "\[ci]" 4
\fBgit\-undo(1)\fR Remove latest commits
.IP "\[ci]" 4
\fBgit\-unlock(1)\fR Unlock a file excluded from version control
.IP "\[ci]" 4
\fBgit\-utimes(1)\fR Change files modification time to their last commit date
.IP "" 0
.SH "AUTHOR"
Written by Tj Holowaychuk <\fItj@vision\-media\.ca\fR>
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-extras(1) - Awesome GIT utilities</title>
<style type='text/css' media='all'>
/* style: man */
@ -131,6 +131,8 @@
<li>
<strong><a class="man-ref" href="git-commits-since.html">git-commits-since<span class="s">(1)</span></a></strong> Show commit logs since some date</li>
<li>
<strong><a class="man-ref" href="git-continue.html">git-continue<span class="s">(1)</span></a></strong> Continue current git operation</li>
<li>
<strong><a class="man-ref" href="git-contrib.html">git-contrib<span class="s">(1)</span></a></strong> Show user's contributions</li>
<li>
<strong><a class="man-ref" href="git-count.html">git-count<span class="s">(1)</span></a></strong> Show commit count</li>
@ -209,6 +211,8 @@
<li>
<strong><a class="man-ref" href="git-rename-branch.html">git-rename-branch<span class="s">(1)</span></a></strong> rename local branch and push to remote</li>
<li>
<strong><a class="man-ref" href="git-rename-file.html">git-rename-file<span class="s">(1)</span></a></strong> Rename a file or directory and ensure Git recognizes the change, regardless of filesystem case-sensitivity.</li>
<li>
<strong><a class="man-ref" href="git-rename-remote.html">git-rename-remote<span class="s">(1)</span></a></strong> Rename a remote</li>
<li>
<strong><a class="man-ref" href="git-rename-tag.html">git-rename-tag<span class="s">(1)</span></a></strong> Rename a tag</li>
@ -248,7 +252,11 @@
<li>
<strong><a class="man-ref" href="git-unlock.html">git-unlock<span class="s">(1)</span></a></strong> Unlock a file excluded from version control</li>
<li>
<strong><a class="man-ref" href="git-unwip.html">git-unwip<span class="s">(1)</span></a></strong> Undo a Work In Progress commit</li>
<li>
<strong><a class="man-ref" href="git-utimes.html">git-utimes<span class="s">(1)</span></a></strong> Change files modification time to their last commit date</li>
<li>
<strong><a class="man-ref" href="git-wip.html">git-wip<span class="s">(1)</span></a></strong> Create a Work In Progress commit</li>
</ul>
<h2 id="AUTHOR">AUTHOR</h2>
@ -265,7 +273,7 @@
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>May 2023</li>
<li class='tc'>February 2026</li>
<li class='tr'>git-extras(1)</li>
</ol>

View file

@ -40,6 +40,7 @@ git-extras(1) -- Awesome GIT utilities
- **git-clear(1)** Rigorously clean up a repository
- **git-coauthor(1)** Add a co-author to the last commit
- **git-commits-since(1)** Show commit logs since some date
- **git-continue(1)** Continue current git operation
- **git-contrib(1)** Show user's contributions
- **git-count(1)** Show commit count
- **git-cp(1)** Copy a file keeping its history
@ -79,7 +80,7 @@ git-extras(1) -- Awesome GIT utilities
- **git-rebase-patch(1)** Rebases a patch
- **git-release(1)** Commit, tag and push changes to the repository
- **git-rename-branch(1)** rename local branch and push to remote
- **git-rename-file(1)** CRename a file or directory and ensure Git recognizes the change, regardless of filesystem case-sensitivity.
- **git-rename-file(1)** Rename a file or directory and ensure Git recognizes the change, regardless of filesystem case-sensitivity.
- **git-rename-remote(1)** Rename a remote
- **git-rename-tag(1)** Rename a tag
- **git-repl(1)** git read-eval-print-loop
@ -99,7 +100,9 @@ git-extras(1) -- Awesome GIT utilities
- **git-touch(1)** Touch and add file to the index
- **git-undo(1)** Remove latest commits
- **git-unlock(1)** Unlock a file excluded from version control
- **git-unwip(1)** Undo a Work In Progress commit
- **git-utimes(1)** Change files modification time to their last commit date
- **git-wip(1)** Create a Work In Progress commit
## AUTHOR

View file

@ -1,33 +1,33 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-FORCE\-CLONE" "1" "August 2021" "" "Git Extras"
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-FORCE\-CLONE" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-force\-clone\fR \- overwrite local repositories with clone
.SH "SYNOPSIS"
\fBforce\-clone \-\-help\fR
\fBgit\-force\-clone \-\-help\fR
.br
\fBforce\-clone {remote_url} {destination_path}\fR
\fBgit\-force\-clone {remote_url} {destination_path}\fR
.br
\fBforce\-clone \-\-branch {branch_name} {remote_url} {destination_path}\fR
\fBgit\-force\-clone \-\-branch {branch_name} {remote_url} {destination_path}\fR
.SH "DESCRIPTION"
Provides the basic functionality of \fBgit clone\fR, but if the destination git repository already exists it will force\-reset it to resemble a clone of the remote\.
.P
Because it doesn\'t actually delete the directory, it is usually significantly faster than the alternative of deleting the directory and cloning the repository from scratch\.
Because it doesn't actually delete the directory, it is usually significantly faster than the alternative of deleting the directory and cloning the repository from scratch\.
.P
\fBCAUTION\fR: If the repository exists, this will destroy \fIall\fR local work: changed files will be reset, local branches and other remotes will be removed\.
.SH "PROCESS"
If \fBtarget\-directory\fR doesn\'t exist or isn\'t a git repository then the arguments will simply be passed through to \fBgit clone\fR\.
If \fBtarget\-directory\fR doesn't exist or isn't a git repository then the arguments will simply be passed through to \fBgit clone\fR\.
.P
If \fBtarget\-directory\fR exists and is a git repository then this will:
.IP "\[ci]" 4
.IP "\(bu" 4
Remove all remotes
.IP "\[ci]" 4
.IP "\(bu" 4
Set the origin remote to \fB{remote_url}\fR and fetch the remote
.IP "\[ci]" 4
.IP "\(bu" 4
Discover the default branch, if no branch was specified
.IP "\[ci]" 4
.IP "\(bu" 4
Check out the selected branch
.IP "\[ci]" 4
.IP "\(bu" 4
Delete all other local branches
.IP "" 0
.SH "OPTIONS"

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-force-clone(1) - overwrite local repositories with clone</title>
<style type='text/css' media='all'>
/* style: man */
@ -78,9 +78,9 @@
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>force-clone --help</code><br>
<code>force-clone {remote_url} {destination_path}</code><br>
<code>force-clone --branch {branch_name} {remote_url} {destination_path}</code></p>
<p><code>git-force-clone --help</code><br>
<code>git-force-clone {remote_url} {destination_path}</code><br>
<code>git-force-clone --branch {branch_name} {remote_url} {destination_path}</code></p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -134,7 +134,7 @@ arguments will simply be passed through to <code>git clone</code>.</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>August 2021</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-force-clone(1)</li>
</ol>

View file

@ -3,9 +3,9 @@ git-force-clone(1) -- overwrite local repositories with clone
## SYNOPSIS
`force-clone --help`
`force-clone {remote_url} {destination_path}`
`force-clone --branch {branch_name} {remote_url} {destination_path}`
`git-force-clone --help`
`git-force-clone {remote_url} {destination_path}`
`git-force-clone --branch {branch_name} {remote_url} {destination_path}`
## DESCRIPTION

View file

@ -49,7 +49,7 @@ A personal access token is required for making the API call to create a new fork
Make sure the personal access token has the right \fBOAuth\fR scopes for the repo(s)
.
.P
Use \fBgit config \-\-global \-\-add git\-extras\.github\-personal\-access\-token <your\-personal\-access\-token>\fR
Use \fBGITHUB_TOKEN\fR environment variable, or \fBgit config \-\-global \-\-add git\-extras\.github\-personal\-access\-token <your\-personal\-access\-token>\fR
.
.P
If using multiple accounts, override the global value in the specific repo using \fBgit config git\-extras\.github\-personal\-access\-token <other\-acc\-personal\-access\-token>\fR

View file

@ -105,7 +105,7 @@
<p>Make sure the personal access token has the right <code>OAuth</code> scopes for the repo(s)</p>
<p>Use <code>git config --global --add git-extras.github-personal-access-token &lt;your-personal-access-token></code></p>
<p>Use <code>GITHUB_TOKEN</code> environment variable, or <code>git config --global --add git-extras.github-personal-access-token &lt;your-personal-access-token></code></p>
<p>If using multiple accounts, override the global value in the specific repo using <code>git config git-extras.github-personal-access-token &lt;other-acc-personal-access-token></code></p>

View file

@ -27,7 +27,7 @@ git-fork(1) -- Fork a repo on github
Make sure the personal access token has the right `OAuth` scopes for the repo(s)
Use `git config --global --add git-extras.github-personal-access-token <your-personal-access-token>`
Use `GITHUB_TOKEN` environment variable, or `git config --global --add git-extras.github-personal-access-token <your-personal-access-token>`
If using multiple accounts, override the global value in the specific repo using `git config git-extras.github-personal-access-token <other-acc-personal-access-token>`

View file

@ -1,10 +1,10 @@
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-GET" "1" "May 2023" "" "Git Extras"
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-GET" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-get\fR \- Clone a Git repository under a directory
\fBgit\-get\fR \- Clone a Git repository under a configured directory
.SH "SYNOPSIS"
\fBgit\-get\fR
\fBgit\-get\fR <url>
.SH "DESCRIPTION"
Clones a Git repository under the directory specified by the Git configuration \fBgit\-extras\.get\.clone\-path\fR
.SH "EXAMPLES"

View file

@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<title>git-get(1) - Clone a Git repository under a directory</title>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-get(1) - Clone a Git repository under a configured directory</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
@ -72,11 +72,11 @@
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-get</code> - <span class="man-whatis">Clone a Git repository under a directory</span>
<code>git-get</code> - <span class="man-whatis">Clone a Git repository under a configured directory</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-get</code></p>
<p><code>git-get</code> &lt;url&gt;</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -110,7 +110,7 @@ $
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>May 2023</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-get(1)</li>
</ol>

View file

@ -3,7 +3,7 @@ git-get(1) -- Clone a Git repository under a configured directory
## SYNOPSIS
`git-get`
`git-get` &lt;url&gt;
## DESCRIPTION

View file

@ -1,102 +1,71 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-MAGIC" "1" "May 2023" "" "Git Extras"
.
.SH "NAME"
\fBgit\-magic\fR \- Automate add/commit/push routines
.
.SH "SYNOPSIS"
\fBgit\-magic\fR [\-a] [\-m \fImsg\fR] [\-e] [\-p] [\-f]
.
.SH "DESCRIPTION"
Produces summary of changes for commit message from \fBgit status \-\-porcelain\fR output\. Commits staged changes with the generated commit message and opens editor to modify generated commit message optionally\. Also staging and pushing can be automated optionally\.
.
.SH "OPTIONS"
\-a
.
.P
Adds everything including untracked files\.
.
.P
\-m \fImsg\fR
.
.P
Use the given \fImsg\fR as the commit message\. If multiple \-m options are given, their values are concatenated as separate paragraphs\. Passed to git commit command\. The generated is appended to user\-given messages\.
.
.P
\-e
.
.P
This option lets you further edit the generated message\. Passed to git commit command\.
.
.P
\-p
.
.P
Runs \fBgit push\fR after commit\.
.
.P
\-f
.
.P
Adds \fB\-f\fR option to \fBgit push\fR command\.
.
.P
\-h
.
.P
Prints synopsis\.
.
.SH "EXAMPLES"
This example stages all changes then commits with automatic commit message\.
.
.IP "" 4
.
.nf
$ git magic \-a
[feature/magic dc2a11e] A man/git\-magic\.md
1 file changed, 37 insertions(+)
create mode 100644 man/git\-auto\.md
# git log
Author: overengineer <54alpersaid@gmail\.com>
Date: Thu Sep 30 20:14:22 2021 +0300
M man/git\-magic\.md
.
.fi
.
.IP "" 0
.
.P
\fB\-m\fR option PREPENDS generated message\.
.
.IP "" 4
.
.nf
$ git magic \-am "Added documentation for git magic"
[feature/magic dc2a11e] Added documentation for git magic
1 file changed, 42 insertions(+), 0 deletions(\-)
create mode 100644 A man/git\-auto\.md
$ git log
Author: overengineer <54alpersaid@gmail\.com>
Date: Thu Sep 30 20:14:22 2021 +0300
Added documentation for git magic
M man/git\-magic\.md
.
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Alper S\. Soylu <54alpersaid@gmail\.com>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-MAGIC" "1" "September 2025" "" "Git Extras"
.SH "NAME"
\fBgit\-magic\fR \- Automate add/commit/push routines
.SH "SYNOPSIS"
\fBgit\-magic\fR [\-a] [\-m \fImsg\fR] [\-e] [\-p] [\-f]
.SH "DESCRIPTION"
Produces summary of changes for commit message from \fBgit status \-\-porcelain\fR output\. Commits staged changes with the generated commit message and opens editor to modify generated commit message optionally\. Also staging and pushing can be automated optionally\.
.SH "OPTIONS"
\-a
.P
Adds everything including untracked files\.
.P
\-m \fImsg\fR
.P
Use the given \fImsg\fR as the commit message\. If multiple \-m options are given, their values are concatenated as separate paragraphs\. Passed to git commit command\. The generated is appended to user\-given messages\.
.P
\-e
.P
This option lets you further edit the generated message\. Passed to git commit command\.
.P
\-p
.P
Runs \fBgit push\fR after commit\.
.P
\-f
.P
Adds \fB\-\-force\-with\-lease\fR option to \fBgit push\fR command for safer force pushing\.
.P
\-h
.P
Prints synopsis\.
.SH "EXAMPLES"
This example stages all changes then commits with automatic commit message\.
.IP "" 4
.nf
$ git magic \-a
[feature/magic dc2a11e] A man/git\-magic\.md
1 file changed, 37 insertions(+)
create mode 100644 man/git\-auto\.md
# git log
Author: overengineer <54alpersaid@gmail\.com>
Date: Thu Sep 30 20:14:22 2021 +0300
M man/git\-magic\.md
.fi
.IP "" 0
.P
\fB\-m\fR option PREPENDS generated message\.
.IP "" 4
.nf
$ git magic \-am "Added documentation for git magic"
[feature/magic dc2a11e] Added documentation for git magic
1 file changed, 42 insertions(+), 0 deletions(\-)
create mode 100644 A man/git\-auto\.md
$ git log
Author: overengineer <54alpersaid@gmail\.com>
Date: Thu Sep 30 20:14:22 2021 +0300
Added documentation for git magic
M man/git\-magic\.md
.fi
.IP "" 0
.SH "AUTHOR"
Written by Alper S\. Soylu \fI54alpersaid@gmail\.com\fR
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,167 +1,167 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<title>git-magic(1) - Automate add/commit/push routines</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
.mp h2 {margin:10px 0 0 0}
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
.mp h3 {margin:0 0 0 4ex}
.mp dt {margin:0;clear:left}
.mp dt.flush {float:left;width:8ex}
.mp dd {margin:0 0 0 9ex}
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
.mp pre {margin-bottom:20px}
.mp pre+h2,.mp pre+h3 {margin-top:22px}
.mp h2+pre,.mp h3+pre {margin-top:5px}
.mp img {display:block;margin:auto}
.mp h1.man-title {display:none}
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
.mp h2 {font-size:16px;line-height:1.25}
.mp h1 {font-size:20px;line-height:2}
.mp {text-align:justify;background:#fff}
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
.mp u {text-decoration:underline}
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
.mp b.man-ref {font-weight:normal;color:#434241}
.mp pre {padding:0 4ex}
.mp pre code {font-weight:normal;color:#434241}
.mp h2+pre,h3+pre {padding-left:0}
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
ol.man-decor {width:100%}
ol.man-decor li.tl {text-align:left}
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
ol.man-decor li.tr {text-align:right;float:right}
</style>
</head>
<!--
The following styles are deprecated and will be removed at some point:
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
.man-navigation should be used instead.
-->
<body id='manpage'>
<div class='mp' id='man'>
<div class='man-navigation' style='display:none'>
<a href="#NAME">NAME</a>
<a href="#SYNOPSIS">SYNOPSIS</a>
<a href="#DESCRIPTION">DESCRIPTION</a>
<a href="#OPTIONS">OPTIONS</a>
<a href="#EXAMPLES">EXAMPLES</a>
<a href="#AUTHOR">AUTHOR</a>
<a href="#REPORTING-BUGS">REPORTING BUGS</a>
<a href="#SEE-ALSO">SEE ALSO</a>
</div>
<ol class='man-decor man-head man head'>
<li class='tl'>git-magic(1)</li>
<li class='tc'>Git Extras</li>
<li class='tr'>git-magic(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-magic</code> - <span class="man-whatis">Automate add/commit/push routines</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-magic</code> [-a] [-m <var>msg</var>] [-e] [-p] [-f]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Produces summary of changes for commit message from <code>git status --porcelain</code> output.
Commits staged changes with the generated commit message and
opens editor to modify generated commit message optionally.
Also staging and pushing can be automated optionally.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p>-a</p>
<p>Adds everything including untracked files.</p>
<p>-m <var>msg</var></p>
<p>Use the given <var>msg</var> as the commit message. If multiple -m options are given, their values are concatenated as separate paragraphs.
Passed to git commit command. The generated is appended to user-given messages.</p>
<p>-e</p>
<p>This option lets you further edit the generated message.
Passed to git commit command.</p>
<p>-p</p>
<p>Runs <code>git push</code> after commit.</p>
<p>-f</p>
<p>Adds <code>-f</code> option to <code>git push</code> command.</p>
<p>-h</p>
<p>Prints synopsis.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p>This example stages all changes then commits with automatic commit message.</p>
<pre><code>$ git magic -a
[feature/magic dc2a11e] A man/git-magic.md
1 file changed, 37 insertions(+)
create mode 100644 man/git-auto.md
# git log
Author: overengineer &lt;54alpersaid@gmail.com&gt;
Date: Thu Sep 30 20:14:22 2021 +0300
M man/git-magic.md
</code></pre>
<p><code>-m</code> option PREPENDS generated message.</p>
<pre><code>$ git magic -am "Added documentation for git magic"
[feature/magic dc2a11e] Added documentation for git magic
1 file changed, 42 insertions(+), 0 deletions(-)
create mode 100644 A man/git-auto.md
$ git log
Author: overengineer &lt;54alpersaid@gmail.com&gt;
Date: Thu Sep 30 20:14:22 2021 +0300
Added documentation for git magic
M man/git-magic.md
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Alper S. Soylu &lt;54alpersaid@gmail.com></p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>May 2023</li>
<li class='tr'>git-magic(1)</li>
</ol>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-magic(1) - Automate add/commit/push routines</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
.mp h2 {margin:10px 0 0 0}
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
.mp h3 {margin:0 0 0 4ex}
.mp dt {margin:0;clear:left}
.mp dt.flush {float:left;width:8ex}
.mp dd {margin:0 0 0 9ex}
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
.mp pre {margin-bottom:20px}
.mp pre+h2,.mp pre+h3 {margin-top:22px}
.mp h2+pre,.mp h3+pre {margin-top:5px}
.mp img {display:block;margin:auto}
.mp h1.man-title {display:none}
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
.mp h2 {font-size:16px;line-height:1.25}
.mp h1 {font-size:20px;line-height:2}
.mp {text-align:justify;background:#fff}
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
.mp u {text-decoration:underline}
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
.mp b.man-ref {font-weight:normal;color:#434241}
.mp pre {padding:0 4ex}
.mp pre code {font-weight:normal;color:#434241}
.mp h2+pre,h3+pre {padding-left:0}
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
ol.man-decor {width:100%}
ol.man-decor li.tl {text-align:left}
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
ol.man-decor li.tr {text-align:right;float:right}
</style>
</head>
<!--
The following styles are deprecated and will be removed at some point:
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
.man-navigation should be used instead.
-->
<body id='manpage'>
<div class='mp' id='man'>
<div class='man-navigation' style='display:none'>
<a href="#NAME">NAME</a>
<a href="#SYNOPSIS">SYNOPSIS</a>
<a href="#DESCRIPTION">DESCRIPTION</a>
<a href="#OPTIONS">OPTIONS</a>
<a href="#EXAMPLES">EXAMPLES</a>
<a href="#AUTHOR">AUTHOR</a>
<a href="#REPORTING-BUGS">REPORTING BUGS</a>
<a href="#SEE-ALSO">SEE ALSO</a>
</div>
<ol class='man-decor man-head man head'>
<li class='tl'>git-magic(1)</li>
<li class='tc'>Git Extras</li>
<li class='tr'>git-magic(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-magic</code> - <span class="man-whatis">Automate add/commit/push routines</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-magic</code> [-a] [-m <var>msg</var>] [-e] [-p] [-f]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Produces summary of changes for commit message from <code>git status --porcelain</code> output.
Commits staged changes with the generated commit message and
opens editor to modify generated commit message optionally.
Also staging and pushing can be automated optionally.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p>-a</p>
<p>Adds everything including untracked files.</p>
<p>-m <var>msg</var></p>
<p>Use the given <var>msg</var> as the commit message. If multiple -m options are given, their values are concatenated as separate paragraphs.
Passed to git commit command. The generated is appended to user-given messages.</p>
<p>-e</p>
<p>This option lets you further edit the generated message.
Passed to git commit command.</p>
<p>-p</p>
<p>Runs <code>git push</code> after commit.</p>
<p>-f</p>
<p>Adds <code>--force-with-lease</code> option to <code>git push</code> command for safer force pushing.</p>
<p>-h</p>
<p>Prints synopsis.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p>This example stages all changes then commits with automatic commit message.</p>
<pre><code>$ git magic -a
[feature/magic dc2a11e] A man/git-magic.md
1 file changed, 37 insertions(+)
create mode 100644 man/git-auto.md
# git log
Author: overengineer &lt;54alpersaid@gmail.com&gt;
Date: Thu Sep 30 20:14:22 2021 +0300
M man/git-magic.md
</code></pre>
<p><code>-m</code> option PREPENDS generated message.</p>
<pre><code>$ git magic -am "Added documentation for git magic"
[feature/magic dc2a11e] Added documentation for git magic
1 file changed, 42 insertions(+), 0 deletions(-)
create mode 100644 A man/git-auto.md
$ git log
Author: overengineer &lt;54alpersaid@gmail.com&gt;
Date: Thu Sep 30 20:14:22 2021 +0300
Added documentation for git magic
M man/git-magic.md
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Alper S. Soylu <a href="mailto:54alpersaid@gmail.com" data-bare-link="true">54alpersaid@gmail.com</a></p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>September 2025</li>
<li class='tr'>git-magic(1)</li>
</ol>
</div>
</body>
</html>

View file

@ -34,7 +34,7 @@ Runs `git push` after commit.
-f
Adds `-f` option to `git push` command.
Adds `--force-with-lease` option to `git push` command for safer force pushing.
-h

View file

@ -1,16 +1,16 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-MISSING" "1" "April 2018" "" "Git Extras"
.TH "GIT\-MISSING" "1" "August 2024" "" "Git Extras"
.
.SH "NAME"
\fBgit\-missing\fR \- Show commits missing from another branch
.
.SH "SYNOPSIS"
\fBgit\-missing\fR [<first branch>] <second branch> [<git log options>]
\fBgit\-missing\fR [<first branch>] <second branch> [<git log options>] [[\-\-] <path>\.\.\.]
.
.SH "DESCRIPTION"
Shows commits that are in either of two branches but not both\. Useful for seeing what would come across in a merge or push\.
Shows commits that are in either of two branches but not both\. Useful for seeing what would come across in a merge or push\. Optionally, the comparison can be limited to specific paths\.
.
.SH "OPTIONS"
[<first branch>]
@ -30,6 +30,12 @@ Second branch to compare\.
.P
Any flags that should be passed to \'git log\', such as \-\-no\-merges\.
.
.P
[[\-\-] <path>\.\.\.]
.
.P
Optional path specifications (pathspec) to limit the comparison to specific files or directories\. For more details about the pathspec syntax, see the pathspec entry in gitglossary[7] \fIhttps://git\-scm\.com/docs/gitglossary#Documentation/gitglossary\.txt\-aiddefpathspecapathspec\fR\.
.
.SH "EXAMPLES"
Show commits on either my current branch or master but not both:
.
@ -60,11 +66,26 @@ $ git missing foo bar
.
.IP "" 0
.
.P
Show commits on either my current branch or master but not both, limited to the src/ directory:
.
.IP "" 4
.
.nf
$ git missing master \-\- src/
< ed52989 only on current checked out branch, in src/ directory
> 7988c4b only on master, in src/ directory
.
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Nate Jones <\fInate@endot\.org\fR>
.
.SH "REPORTING BUGS"
<\fIhttp://github\.com/tj/git\-extras/issues\fR>
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttp://github\.com/tj/git\-extras\fR>
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -76,12 +76,13 @@
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-missing</code> [&lt;first branch&gt;] &lt;second branch&gt; [&lt;git log options&gt;]</p>
<p><code>git-missing</code> [&lt;first branch&gt;] &lt;second branch&gt; [&lt;git log options&gt;] [[--] &lt;path&gt;...]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p> Shows commits that are in either of two branches but not both. Useful for
seeing what would come across in a merge or push.</p>
<p> Shows commits that are in either of two branches but not both. Useful for
seeing what would come across in a merge or push. Optionally, the comparison
can be limited to specific paths.</p>
<h2 id="OPTIONS">OPTIONS</h2>
@ -97,6 +98,12 @@
<p> Any flags that should be passed to 'git log', such as --no-merges.</p>
<p> [[--] &lt;path&gt;...]</p>
<p> Optional path specifications (pathspec) to limit the comparison to specific
files or directories. For more details about the pathspec syntax, see the
pathspec entry in <a href="https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec">gitglossary[7]</a>.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> Show commits on either my current branch or master but not both:</p>
@ -113,22 +120,30 @@
> f38797e only on bar
</code></pre>
<p> Show commits on either my current branch or master but not both, limited to the
src/ directory:</p>
<pre><code>$ git missing master -- src/
&lt; ed52989 only on current checked out branch, in src/ directory
&gt; 7988c4b only on master, in src/ directory
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Nate Jones &lt;<a href="&#x6d;&#x61;&#x69;&#108;&#116;&#111;&#58;&#x6e;&#x61;&#116;&#101;&#x40;&#101;&#110;&#x64;&#111;&#x74;&#46;&#111;&#x72;&#x67;" data-bare-link="true">&#x6e;&#97;&#116;&#x65;&#64;&#101;&#x6e;&#100;&#111;&#116;&#x2e;&#x6f;&#x72;&#x67;</a>&gt;</p>
<p>Written by Nate Jones &lt;<a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#111;&#x3a;&#110;&#x61;&#x74;&#101;&#64;&#x65;&#110;&#x64;&#x6f;&#116;&#46;&#x6f;&#x72;&#103;" data-bare-link="true">&#x6e;&#97;&#116;&#101;&#x40;&#101;&#110;&#100;&#111;&#116;&#46;&#x6f;&#114;&#x67;</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="http://github.com/tj/git-extras/issues" data-bare-link="true">http://github.com/tj/git-extras/issues</a>&gt;</p>
<p>&lt;<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="http://github.com/tj/git-extras" data-bare-link="true">http://github.com/tj/git-extras</a>&gt;</p>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>April 2018</li>
<li class='tc'>August 2024</li>
<li class='tr'>git-missing(1)</li>
</ol>

View file

@ -3,12 +3,13 @@ git-missing(1) -- Show commits missing from another branch
## SYNOPSIS
`git-missing` [&lt;first branch&gt;] &lt;second branch&gt; [&lt;git log options&gt;]
`git-missing` [&lt;first branch&gt;] &lt;second branch&gt; [&lt;git log options&gt;] [[--] &lt;path&gt;...]
## DESCRIPTION
Shows commits that are in either of two branches but not both. Useful for
seeing what would come across in a merge or push.
Shows commits that are in either of two branches but not both. Useful for
seeing what would come across in a merge or push. Optionally, the comparison
can be limited to specific paths.
## OPTIONS
@ -24,6 +25,12 @@ git-missing(1) -- Show commits missing from another branch
Any flags that should be passed to 'git log', such as --no-merges.
[[--] &lt;path&gt;...]
Optional path specifications (pathspec) to limit the comparison to specific
files or directories. For more details about the pathspec syntax, see the
pathspec entry in [gitglossary[7]](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec).
## EXAMPLES
Show commits on either my current branch or master but not both:
@ -38,6 +45,13 @@ git-missing(1) -- Show commits missing from another branch
< b8f0d14 only on foo
> f38797e only on bar
Show commits on either my current branch or master but not both, limited to the
src/ directory:
$ git missing master -- src/
< ed52989 only on current checked out branch, in src/ directory
> 7988c4b only on master, in src/ directory
## AUTHOR
Written by Nate Jones &lt;<nate@endot.org>&gt;

View file

@ -1,58 +1,41 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-PULL\-REQUEST" "1" "August 2020" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-PULL\-REQUEST" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-pull\-request\fR \- Create pull request for GitHub project
.
.SH "SYNOPSIS"
\fBgit\-pull\-request\fR [<target branch>]
.
\fBgit\-pull\-request\fR [<branch>]
.SH "DESCRIPTION"
Create pull request for a project on GitHub via command line\.
.
.P
A personal access token is required for making the API call to open the pull request(s) in GitHub\. API Documentation here \fIhttps://docs\.github\.com/en/rest/reference/pulls#create\-a\-pull\-request\fR
.
.P
Make sure the personal access token has the right \fBOAuth\fR scopes for the repo(s)
.
.P
Use \fBgit config \-\-global \-\-add git\-extras\.github\-personal\-access\-token <your\-personal\-access\-token>\fR
.
Use \fBGITHUB_TOKEN\fR environment variable, or \fBgit config \-\-global \-\-add git\-extras\.github\-personal\-access\-token <your\-personal\-access\-token>\fR
.P
If using multiple accounts, override the global value in the specific repo using \fBgit config git\-extras\.github\-personal\-access\-token <other\-acc\-personal\-access\-token>\fR
.
.SH "OPTIONS"
<target branch>
.
<branch>
.P
The target branch you want to send pull request to\.
.
The local branch to push and use as the pull request head\. The base branch is prompted separately\.
.SH "EXAMPLES"
.
.nf
$ git pull\-request master
Everything up\-to\-date
create pull\-request for spacewander/spacewander\-toolbox \'master\'
create pull\-request for spacewander/spacewander\-toolbox 'master'
title: test
body:
base [master]:
GitHub two\-factor authentication code (leave blank if not set up):
\.\.\.
.
\|\.\|\.\|\.
.fi
.
.SH "AUTHOR"
Written by Tj Holowaychuk <\fItj@vision\-media\.ca\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<meta name='generator' content='Ronn-NG/v0.10.1 (http://github.com/apjanke/ronn-ng/tree/0.10.1)'>
<title>git-pull-request(1) - Create pull request for GitHub project</title>
<style type='text/css' media='all'>
/* style: man */
@ -69,14 +69,15 @@
<li class='tr'>git-pull-request(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-pull-request</code> - <span class="man-whatis">Create pull request for GitHub project</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-pull-request</code> [&lt;target branch&gt;]</p>
<p><code>git-pull-request</code> [&lt;branch&gt;]</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -86,15 +87,15 @@
<p>Make sure the personal access token has the right <code>OAuth</code> scopes for the repo(s)</p>
<p>Use <code>git config --global --add git-extras.github-personal-access-token &lt;your-personal-access-token></code></p>
<p>Use <code>GITHUB_TOKEN</code> environment variable, or <code>git config --global --add git-extras.github-personal-access-token &lt;your-personal-access-token&gt;</code></p>
<p>If using multiple accounts, override the global value in the specific repo using <code>git config git-extras.github-personal-access-token &lt;other-acc-personal-access-token></code></p>
<p>If using multiple accounts, override the global value in the specific repo using <code>git config git-extras.github-personal-access-token &lt;other-acc-personal-access-token&gt;</code></p>
<h2 id="OPTIONS">OPTIONS</h2>
<p>&lt;target branch&gt;</p>
<p>&lt;branch&gt;</p>
<p>The target branch you want to send pull request to.</p>
<p>The local branch to push and use as the pull request head. The base branch is prompted separately.</p>
<h2 id="EXAMPLES">EXAMPLES</h2>
@ -113,7 +114,7 @@ Everything up-to-date
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Tj Holowaychuk &lt;<a href="&#109;&#97;&#105;&#108;&#x74;&#111;&#x3a;&#x74;&#x6a;&#64;&#118;&#x69;&#x73;&#105;&#x6f;&#x6e;&#x2d;&#109;&#x65;&#x64;&#x69;&#97;&#46;&#99;&#97;" data-bare-link="true">&#116;&#x6a;&#x40;&#118;&#x69;&#x73;&#105;&#x6f;&#x6e;&#45;&#109;&#x65;&#x64;&#x69;&#97;&#x2e;&#x63;&#97;</a>&gt;</p>
<p>Written by Tj Holowaychuk &lt;<a href="mailto:tj@vision-media.ca" data-bare-link="true">tj@vision-media.ca</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
@ -123,10 +124,9 @@ Everything up-to-date
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>August 2020</li>
<li class='tc'>March 2026</li>
<li class='tr'>git-pull-request(1)</li>
</ol>

View file

@ -3,7 +3,7 @@ git-pull-request(1) -- Create pull request for GitHub project
## SYNOPSIS
`git-pull-request` [&lt;target branch&gt;]
`git-pull-request` [&lt;branch&gt;]
## DESCRIPTION
@ -13,15 +13,15 @@ A personal access token is required for making the API call to open the pull req
Make sure the personal access token has the right `OAuth` scopes for the repo(s)
Use `git config --global --add git-extras.github-personal-access-token <your-personal-access-token>`
Use `GITHUB_TOKEN` environment variable, or `git config --global --add git-extras.github-personal-access-token <your-personal-access-token>`
If using multiple accounts, override the global value in the specific repo using `git config git-extras.github-personal-access-token <other-acc-personal-access-token>`
## OPTIONS
&lt;target branch&gt;
&lt;branch&gt;
The target branch you want to send pull request to.
The local branch to push and use as the pull request head. The base branch is prompted separately.
## EXAMPLES

View file

@ -1,198 +1,121 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-REAUTHOR" "1" "October 2017" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-REAUTHOR" "1" "September 2019" "" "Git Extras"
.SH "NAME"
\fBgit\-reauthor\fR \- Rewrite history to change author\'s identity
.
\fBgit\-reauthor\fR \- Rewrite history to change author's identity
.SH "SYNOPSIS"
\fBgit reauthor [<options>]\fR
.
.SH "DESCRIPTION"
Lets you replace the author and/or committer identities in commits and tags\.
.
.P
The command goes through all existing commits and tags in all local branches to selectively modify the identities present in those objects\. All the other information such as dates, messages,\.\. are preserved\.
.
.P
You can rewrite all the identities in the commits and tags objects by using the \-\-all flag, or only replace the identities whose email matches the value of the \-\-old\-email option\. It is also possible to limit the rewrite to a certain type of identity: the author or the committer identity\. By default, both of them are affected\.
.
.br
For each of those identities to update, the command will replace the name and/or email with the new correct values as defined via the options\. If the new identity name to set is not defined, the current one will be kept (and vice\-versa with the email)\.
.
.P
\fBWARNING!\fR This command rewrites history and as a result you will not able to push your branch to the remote without using the \-\-force option\.
.
.br
See more information with \fBgit help filter\-branch\fR\.
.
.SH "OPTIONS"
\-a, \-\-all
.
.IP "" 4
.
.nf
Rewrite ALL identities in commits and tags\.
.
.fi
.
.IP "" 0
.
.P
\-c, \-\-use\-config
.
.IP "" 4
.
.nf
Define correct values from user Git config
Values of \-\-correct\-email and \-\-correct\-name options take precedence over the ones from the config if specified as well
.
.fi
.
.IP "" 0
.
.P
\-e, \-\-correct\-email <\fIemail\fR>
.
.IP "" 4
.
.nf
Define the correct email to set
Empty email \'\' is allowed
.
Empty email '' is allowed
.fi
.
.IP "" 0
.
.P
\-n, \-\-correct\-name <\fIname\fR>
.
.IP "" 4
.
.nf
Define the correct name to set
Empty name \'\' is not allowed
.
Empty name '' is not allowed
.fi
.
.IP "" 0
.
.P
\-o, \-\-old\-email <\fIemail\fR>
.
.IP "" 4
.
.nf
Rewrite identities matching old email in commits and tags
Empty email \'\' is allowed
.
Empty email '' is allowed
.fi
.
.IP "" 0
.
.P
\-t, \-\-type <\fIid\fR>
.
.IP "" 4
.
.nf
Define the type of identities affected by the rewrite
Possible type identifiers are: author, committer, both (default)
.
.fi
.
.IP "" 0
.
.SH "EXAMPLES"
Replace the personal email and name of Jack to his work ones
.
.IP "" 4
.
.nf
$ git reauthor \-\-old\-email jack@perso\.me \-\-correct\-email jack@work\.com \-\-correct\-name \'Jack Foobar\'
.
$ git reauthor \-\-old\-email jack@perso\.me \-\-correct\-email jack@work\.com \-\-correct\-name 'Jack Foobar'
.fi
.
.IP "" 0
.
.P
Replace the email and name of Jack to the ones defined in the Git config
.
.IP "" 4
.
.nf
$ git reauthor \-\-old\-email jack@perso\.me \-\-use\-config
.
.fi
.
.IP "" 0
.
.P
Replace only the email of Jack (keep the name already used)
.
.IP "" 4
.
.nf
$ git reauthor \-\-old\-email jack@perso \-\-correct\-email jack@perso\.me
.
.fi
.
.IP "" 0
.
.P
Change only the committer email of Jack (keep the author email already used)
.
.IP "" 4
.
.nf
$ git reauthor \-\-old\-email jack@perso\.me \-\-correct\-email jack@work\.com \-\-type committer
.
.fi
.
.IP "" 0
.
.P
Set Jack\'s identity as the only one of the whole repository
.
Change only the name and keep email to merge one user with multiple pseudonyms\.
.IP "" 4
.
.nf
$ git reauthor \-\-all \-\-correct\-email jack@perso\.me \-\-correct\-name Jack
.
$ git reauthor \-\-old\-email jack@perso\.me \-\-correct\-name Jack
.fi
.IP "" 0
.P
Set Jack's identity as the only one of the whole repository
.IP "" 4
.nf
$ git reauthor \-\-all \-\-correct\-email jack@perso\.me \-\-correct\-name Jack
.fi
.
.IP "" 0
.
.P
Set Jack as the only committer of the whole repository (keeps authors)
.
.IP "" 4
.
.nf
$ git reauthor \-\-all \-\-correct\-email jack@perso\.me \-\-correct\-name Jack \-\-type committer
.
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Damien Tardy\-Panis <\fIdamien@tardypad\.me\fR>
.
.SH "REPORTING BUGS"
<\fIhttp://github\.com/tj/git\-extras/issues\fR>
.
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<title>git-reauthor(1) - Rewrite history to change author&#39;s identity</title>
<style type='text/css' media='all'>
/* style: man */
@ -69,14 +69,15 @@
<li class='tr'>git-reauthor(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-reauthor</code> - <span class="man-whatis">Rewrite history to change author's identity</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git reauthor [&lt;options>]</code></p>
<p><code>git reauthor [&lt;options&gt;]</code></p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
@ -84,44 +85,44 @@
<p>The command goes through all existing commits and tags in all local branches to selectively modify the identities present in those objects. All the other information such as dates, messages,.. are preserved.</p>
<p>You can rewrite all the identities in the commits and tags objects by using the --all flag, or only replace the identities whose email matches the value of the --old-email option. It is also possible to limit the rewrite to a certain type of identity: the author or the committer identity. By default, both of them are affected.<br />
<p>You can rewrite all the identities in the commits and tags objects by using the --all flag, or only replace the identities whose email matches the value of the --old-email option. It is also possible to limit the rewrite to a certain type of identity: the author or the committer identity. By default, both of them are affected.<br>
For each of those identities to update, the command will replace the name and/or email with the new correct values as defined via the options. If the new identity name to set is not defined, the current one will be kept (and vice-versa with the email).</p>
<p><code>WARNING!</code> This command rewrites history and as a result you will not able to push your branch to the remote without using the --force option.<br />
<p><code>WARNING!</code> This command rewrites history and as a result you will not able to push your branch to the remote without using the --force option.<br>
See more information with <code>git help filter-branch</code>.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p> -a, --all</p>
<p>-a, --all</p>
<pre><code>Rewrite ALL identities in commits and tags.
</code></pre>
<p> -c, --use-config</p>
<p>-c, --use-config</p>
<pre><code>Define correct values from user Git config
Values of --correct-email and --correct-name options take precedence over the ones from the config if specified as well
</code></pre>
<p> -e, --correct-email &lt;<var>email</var>&gt;</p>
<p>-e, --correct-email &lt;<var>email</var>&gt;</p>
<pre><code>Define the correct email to set
Empty email '' is allowed
</code></pre>
<p> -n, --correct-name &lt;<var>name</var>&gt;</p>
<p>-n, --correct-name &lt;<var>name</var>&gt;</p>
<pre><code>Define the correct name to set
Empty name '' is not allowed
</code></pre>
<p> -o, --old-email &lt;<var>email</var>&gt;</p>
<p>-o, --old-email &lt;<var>email</var>&gt;</p>
<pre><code>Rewrite identities matching old email in commits and tags
Empty email '' is allowed
</code></pre>
<p> -t, --type &lt;<var>id</var>&gt;</p>
<p>-t, --type &lt;<var>id</var>&gt;</p>
<pre><code>Define the type of identities affected by the rewrite
Possible type identifiers are: author, committer, both (default)
@ -149,6 +150,11 @@ Possible type identifiers are: author, committer, both (default)
<pre><code>$ git reauthor --old-email jack@perso.me --correct-email jack@work.com --type committer
</code></pre>
<p>Change only the name and keep email to merge one user with multiple pseudonyms.</p>
<pre><code>$ git reauthor --old-email jack@perso.me --correct-name Jack
</code></pre>
<p>Set Jack's identity as the only one of the whole repository</p>
<pre><code>$ git reauthor --all --correct-email jack@perso.me --correct-name Jack
@ -161,20 +167,19 @@ Possible type identifiers are: author, committer, both (default)
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Damien Tardy-Panis &lt;<a href="&#x6d;&#97;&#x69;&#108;&#x74;&#111;&#58;&#100;&#x61;&#109;&#x69;&#x65;&#x6e;&#x40;&#116;&#x61;&#114;&#100;&#x79;&#x70;&#97;&#x64;&#x2e;&#x6d;&#x65;" data-bare-link="true">&#100;&#x61;&#109;&#105;&#x65;&#x6e;&#x40;&#x74;&#97;&#x72;&#100;&#121;&#x70;&#97;&#x64;&#46;&#109;&#101;</a>&gt;</p>
<p>Written by Damien Tardy-Panis &lt;<a href="mailto:damien@tardypad.me" data-bare-link="true">damien@tardypad.me</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="http://github.com/tj/git-extras/issues" data-bare-link="true">http://github.com/tj/git-extras/issues</a>&gt;</p>
<p>&lt;<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>October 2017</li>
<li class='tc'>September 2019</li>
<li class='tr'>git-reauthor(1)</li>
</ol>

View file

@ -1,63 +1,41 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-REBASE\-PATCH" "1" "October 2017" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-REBASE\-PATCH" "1" "September 2019" "" "Git Extras"
.SH "NAME"
\fBgit\-rebase\-patch\fR \- Rebases a patch
.
.SH "SYNOPSIS"
\fBgit\-rebase\-patch\fR <patch\-file>
.
.SH "DESCRIPTION"
Given you have a patch that doesn\'t apply to the current HEAD, but you know it applied to some commit in the past, \fBgit\-rebase\-patch\fR will help you find that commit and do a rebase\.
.
Given you have a patch that doesn't apply to the current HEAD, but you know it applied to some commit in the past, \fBgit\-rebase\-patch\fR will help you find that commit and do a rebase\.
.SH "OPTIONS"
.
.TP
<patch\-file>
The patch to be applied\.
.
.SH "EXAMPLES"
Executing
.
.IP "" 4
.
.nf
$ git rebase\-patch test\.patch
.
.fi
.
.IP "" 0
.
.P
could give you something like that:
.
.IP "" 4
.
.nf
Trying to find a commit the patch applies to\.\.\.
Trying to find a commit the patch applies to\|\.\|\.\|\.
Patch applied to dbcf408dd26 as 7dc8b23ae1a
First, rewinding head to replay your work on top of it\.\.\.
First, rewinding head to replay your work on top of it\|\.\|\.\|\.
Applying: test\.patch
Using index info to reconstruct a base tree\.\.\.
Falling back to patching base and 3\-way merge\.\.\.
Using index info to reconstruct a base tree\|\.\|\.\|\.
Falling back to patching base and 3\-way merge\|\.\|\.\|\.
Auto\-merging README\.txt
.
.fi
.
.IP "" 0
.
.P
Then your last commit has the changes of the patch and is named \fItest\.patch\fR\.
.
.SH "AUTHOR"
Written by Niklas Fiekas <\fIniklas\.fiekas@tu\-clausthal\.de\fR>
.
.SH "REPORTING BUGS"
<\fIhttp://github\.com/tj/git\-extras/issues\fR>
.
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.SH "SEE ALSO"
<\fIhttp://github\.com/tj/git\-extras\fR>
<\fIhttps://github\.com/tj/git\-extras\fR>

View file

@ -1,8 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<meta http-equiv='content-type' content='text/html;charset=utf8'>
<meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
<title>git-rebase-patch(1) - Rebases a patch</title>
<style type='text/css' media='all'>
/* style: man */
@ -69,11 +69,12 @@
<li class='tr'>git-rebase-patch(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-rebase-patch</code> - <span class="man-whatis">Rebases a patch</span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<p><code>git-rebase-patch</code> &lt;patch-file&gt;</p>
@ -87,18 +88,18 @@ commit and do a rebase.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<dl>
<dt>&lt;patch-file&gt;</dt><dd> The patch to be applied.</dd>
<dt>&lt;patch-file&gt;</dt>
<dd> The patch to be applied.</dd>
</dl>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> Executing</p>
<p>Executing</p>
<pre><code>$ git rebase-patch test.patch
</code></pre>
<p> could give you something like that:</p>
<p>could give you something like that:</p>
<pre><code>Trying to find a commit the patch applies to...
Patch applied to dbcf408dd26 as 7dc8b23ae1a
@ -109,24 +110,23 @@ Falling back to patching base and 3-way merge...
Auto-merging README.txt
</code></pre>
<p> Then your last commit has the changes of the patch and is named <em>test.patch</em>.</p>
<p>Then your last commit has the changes of the patch and is named <em>test.patch</em>.</p>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Niklas Fiekas &lt;<a href="&#x6d;&#x61;&#x69;&#108;&#116;&#111;&#58;&#x6e;&#x69;&#107;&#108;&#x61;&#115;&#46;&#x66;&#105;&#x65;&#107;&#97;&#x73;&#x40;&#x74;&#117;&#45;&#x63;&#108;&#97;&#x75;&#115;&#116;&#104;&#x61;&#x6c;&#x2e;&#x64;&#x65;" data-bare-link="true">&#x6e;&#x69;&#107;&#108;&#x61;&#115;&#46;&#x66;&#x69;&#x65;&#107;&#97;&#x73;&#64;&#x74;&#117;&#x2d;&#x63;&#x6c;&#97;&#117;&#x73;&#116;&#104;&#x61;&#108;&#46;&#100;&#x65;</a>&gt;</p>
<p>Written by Niklas Fiekas &lt;<a href="mailto:niklas.fiekas@tu-clausthal.de" data-bare-link="true">niklas.fiekas@tu-clausthal.de</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="http://github.com/tj/git-extras/issues" data-bare-link="true">http://github.com/tj/git-extras/issues</a>&gt;</p>
<p>&lt;<a href="https://github.com/tj/git-extras/issues" data-bare-link="true">https://github.com/tj/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="http://github.com/tj/git-extras" data-bare-link="true">http://github.com/tj/git-extras</a>&gt;</p>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>October 2017</li>
<li class='tc'>September 2019</li>
<li class='tr'>git-rebase-patch(1)</li>
</ol>

View file

@ -1,131 +1,90 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-RELEASE" "1" "April 2022" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.10.1
.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
.TH "GIT\-RELEASE" "1" "March 2026" "" "Git Extras"
.SH "NAME"
\fBgit\-release\fR \- Commit, tag and push changes to the repository
.
.SH "SYNOPSIS"
\fBgit\-release\fR [<tagname> | \-\-semver <name>] [\-r <remote>] [\-m <commit info>] [\-\-no\-empty\-commit] [\-c] [\-s] [\-u <key\-id>] [\-\-prefix <tag prefix>] [[\-\-] <hook arguments\.\.\.>]
.
.TS
allbox;
\fBgit\-release\fR [<tagname> \-\-semver <name>] [\-r <remote>] [\-m <commit info>] [\-\-no\-empty\-commit] [\-c] [\-s] [\-u <key\-id>] [\-\-prefix <tag prefix>] [[\-\-] <hook arguments\|\.\|\.\|\.>]
.TE
.SH "DESCRIPTION"
Commits changes with message "Release <tagname>" or custom commit information, tags with the given <tagname> and pushes the branch / tags\.
.
.P
This command always creates a release commit, which could be empty if nothing changed\. It works like \fBgit merge \-\-no\-ff\fR\. If you don\'t like the behavior, you could add \fB\-\-no\-empty\-commit\fR to skip it\.
.
This command always creates a release commit, which could be empty if nothing changed\. It works like \fBgit merge \-\-no\-ff\fR\. If you don't like the behavior, you could add \fB\-\-no\-empty\-commit\fR to skip it\.
.P
Optionally it generates a changelog (see git\-changelog) and a remote can be defined\. The order of first \-c or \-r does not matter\.
.
.P
If \fB\.git/hook/pre\-release\fR or \fB\.git/hook/post\-release\fR exist, they will be triggered with \fBtagname\fR and extra hook arguments before/after the release\.
.
If \fB\.git/hooks/pre\-release\fR or \fB\.git/hooks/post\-release\fR exist, they will be triggered with \fBtagname\fR and extra hook arguments before/after the release\.
.SH "OPTIONS"
\-\-semver <name>
.
.P
If the latest tag in your repo matches the semver format requirement, you could increase part of it as the new release tag with this option\. The name must be one of the \fBmajor\fR, \fBminor\fR, \fBpatch\fR\. For example, assumed the latest tag is \fB4\.4\.0\fR, with \fBgit release \-\-semver minor\fR you will make a new release with tag \fB4\.5\.0\fR\. Use \fB\-\-prefix\fR if tag has a character before semver\.
.
.P
<tagname>
.
.P
The name of the newly created tag\. Also used in tag comment\.
.
.P
\-\-prefix <tag prefix>
.
.P
Use a prefix with a semver tag\. \fBgit release \-\-semver minor \-\-prefix r\fR would increment the latest tag r4\.4\.0 to r4\.5\.0\. This prefix can be any length, without spaces\.
.
.P
\-r <remote>
.
.P
The "remote" repository that is destination of a push operation: it is passed to git push\.
.
.P
\-m <commit info>
.
.P
use the custom commit information instead of the default message "Release <tagname>" \.
.
.P
\-\-no\-empty\-commit
.
.P
Avoid creating empty commit if nothing could be committed\.
.
.P
\-c
.
.P
Generates or populates the changelog with all commit message since the last tag\. For more info see git\-changelog\.\.
.
.P
\-s
.
.P
Create a signed and annotated tag\.
.
.P
\-u <key\-id>
.
.P
Create a tag, annotated and signed with the given key\.
.
.P
[\-\-] hook arguments\.\.\.
.
[\-\-] hook arguments\|\.\|\.\|\.
.P
The arguments listed after "\-\-" separator will be passed to pre/post\-release hook following the \fBtagname\fR\.
.
.SH "EXAMPLES"
.
.IP "\(bu" 4
Release commit with the given <tagname>\.
.
.IP
$ git release 0\.1\.0
.
.IP "\(bu" 4
Release commit with the given <tagname> and custom commit message\.
.
.IP
$ git release 0\.1\.0 \-m "+ powerful feature added\."
.
.IP "\(bu" 4
Release commit with the given <tagname> and push to specific remote\.
.
.IP
$ git release 0\.1\.0 \-r github
.
.IP "\(bu" 4
Release commit with the given <tagname> and populate changelog\.
.
.IP
$ git release 0\.1\.0 \-c
.
.IP "\(bu" 4
Release commit with the given <tagname>, populate changelog, and push to specific remote\.
.
.IP
$ git release 0\.1\.0 \-r github \-c
.
.IP "\(bu" 4
Release commit with the given <tagname>, pass <tagname> and extra argument to release hook, populate changelog, and push to specific remote\.
.
.IP
$ git release 0\.1\.0 \-r github \-c \-\- \-\-signature\-required
.
.IP "" 0
.
.SH "AUTHOR"
Written by Tj Holowaychuk <\fItj@vision\-media\.ca\fR> Extended by David Hartmann <\fIdh@tsl\.io\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

Some files were not shown because too many files have changed in this diff Show more