* feat(scp): add -v/--verbose and -i/--interactive flags git scp/git rscp printed a diff via plain `git diff`/`git diff --stat` with no `--no-pager` and no TTY check, blocking on the user's pager. Add -v/--verbose to print the diff via --no-pager before syncing, and -i/--interactive to also prompt for confirmation before the real push/copy. Both apply to git scp and git rscp, and must precede <remote>. Updates man/git-scp.md and Commands.md. * feat(scp): add -n/--dry-run flag Add -n/--dry-run to preview a sync without changing anything: rsync runs with -n, and git add --force / ssh ... rm are skipped outright. Implies --verbose, since confirming or previewing with nothing shown is useless. Also restructures scp_and_stage's push/delete blocks from `&&`-chains into if/then, needed to branch on dry-run, which incidentally fixes a latent bug where a non-TTY COLOR_RESET could silently skip the real rsync/git add/ssh rm calls. Updates man/git-scp.md and Commands.md. * test(scp): add coverage for -n/--dry-run and -i/--interactive abort git-scp had no test coverage at all. Cover the two paths that need no real remote destination: dry-run must preview without touching the index, working tree, or remote path, and declining the interactive confirmation must abort before anything syncs. * feat(scp): Code review * feat(scp): Code review |
||
|---|---|---|
| .github | ||
| bin | ||
| etc | ||
| helper | ||
| man | ||
| scripts | ||
| tests | ||
| vendor | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmodules | ||
| .pytest.ini | ||
| AUTHORS | ||
| brew-release.patch | ||
| check_dependencies.sh | ||
| check_integrity.sh | ||
| Commands.md | ||
| CONTRIBUTING.md | ||
| History.md | ||
| install.cmd | ||
| install.sh | ||
| Installation.md | ||
| LICENSE | ||
| Makefile | ||
| need_git_commit | ||
| not_need_git_repo | ||
| Readme.md | ||
Git Extras
Little git extras.
Screencasts
Just getting started? Check out these screencasts:
- introduction (archive.org link) -- covers
git-ignore,git-setup,git-changelog,git-release,git-effortand more
Installation
See the Installation page.
Commands
Go to the Commands page for basic usage and examples.
GIT utilities -- repo summary, repl, changelog population, author commit percentages and more
Contributing
Interested in contributing? Awesome!
Please read Contributing before you make a PR, thanks!
The change of the default branch
As of Git Extras 6.4 the assumed default branch name changed from master to main.
This affects the Git Extras commands git archive-file, git delete-merged-branches, git delta, git pull-request, git show-merged-branches, git show-unmerged-branches, and git squash.
To change the default branch name to master: change either the configuration git-extras.default-branch or init.defaultBranch to master; the former takes precedence.
For example, git config git-extras.default-branch master.