Commit Graph

92 Commits

Author SHA1 Message Date
6c545ab8b0 git:alias: Add recommit and last-msg 2024-01-29 04:17:17 +01:00
700c661e04 git:alias: Add clm for commit-last-msg 2024-01-25 17:45:00 +01:00
4fceae683f git: Turn on diff.colorMoved 2023-11-18 13:36:34 +01:00
d38ee159ed git: Add perm-stash to save a stash to a file 2023-07-18 14:30:09 +02:00
3ecea7923a git: Disable renameLimit
I want all the renames pls
2023-07-10 16:33:34 +02:00
c83c793a1a git: Disable fetch.pruneTags
This leads to problems in repositories with multiple remotes that do not
share the same tags. A fetch --all will then fetch and delete a tag at
the same time. Tags are also way less often deleted in my experience so
that an automatic pruning is not necessary.
2023-07-09 00:03:44 +02:00
51249568ce git:interactive.diffFilter: Activate diff-so-fancy
This reverts commit 43bf8801f9.

diff-so-fancy was disabled as the interactive diff-filter in
43bf8801f9 ("git:interactive.diffFilter: Disable diff-so-fancy")
because of the rewrite in C of `git add -p`.

This was fixed in v2.38.0[^1].

[^1]: https://github.com/git/git/blob/v2.38.0/Documentation/RelNotes/2.38.0.txt#L353-L356
2023-02-24 10:45:14 +01:00
05f2857d3c git: Add installation note for Term::ReadKey 2023-02-24 10:22:45 +01:00
25243e5ee6 git:last-changed: Fix execution in subdir
git aliases are executed in the repository root.

Fix the output of git-last-changed by first cd-ing into the current
working directory.
2023-02-13 16:37:05 +01:00
805180be5d git:alias: Reorder auto{squash,fixup}
As the flag is called `--autosquash`, the order makes more sense like
this.
2023-01-17 16:34:05 +01:00
f317ed81c2 git: Add last-changed to mimic github file browser
List all files and directories but include the latest commits date and
subject, similar to the file browser in web-UIs of services like GitHub.
Also sort the entries by the commits date and time to see the most
recent changed files/folders at the bottom.
2023-01-17 01:38:17 +01:00
73c0864c8b git: Add https-and-ssh to setup origin
Sets up origin so that it fetches over https but pushes over ssh. This
way unlocking the ssh key is only needed when really necessary.
2022-12-01 01:27:28 +01:00
d99118646c git:alias: Add more short-hands 2022-10-20 16:40:16 +02:00
861b159c78 git:alias: Add multiple short-hand versions 2022-10-20 16:39:23 +02:00
e15fc71054 zsh,git: Add git-make-fork 2022-10-17 17:28:31 +02:00
0ad0ccb0c8 git: Make commit-last-msg available as alias
Move `git-commit-last-msg` into an autoloadable function. This way it
can also be executed as external script and thus in a git alias. This
makes it additionally possible to call it in vim over fugitive's `:Git`.
2022-08-30 19:52:24 +02:00
43bf8801f9 git:interactive.diffFilter: Disable diff-so-fancy
Disable diff-so-fancy as `interactive.diffFilter` for now, as it is
incompatible with git version `v2.37`.[1]

[1] - https://github.com/so-fancy/diff-so-fancy/issues/437
2022-07-12 21:00:12 +02:00
e949ffefef git: Set interactive.singleKey
In interactive commands, allow the user to provide one-letter input with
a single key (i.e., without hitting enter). Currently this is used by
the --patch mode of git-add(1), git-checkout(1), git-restore(1),
git-commit(1), git-reset(1), and git-stash(1). Note that this setting is
silently ignored if portable keystroke input is not available; requires
the Perl module Term::ReadKey.[1]

[1] - git-config(1)
2022-07-12 21:00:12 +02:00
0faf19ad3d git:alias: Add git-submodule-rm for function
Just add a git alias to the already existing zsh function to make it
easier to call it.
2022-07-12 21:00:09 +02:00
13ebd97d8e git: Set interactive.diffFilter to diff-so-fancy
Pipe patches through diff-so-fancy in interactive commands (e.g. `git
add -p`) too.
2022-07-12 21:00:03 +02:00
d136658888 git: Update alias section
Move `signoff` out of the 'external' subsection as the script [got
replaced by the native way][1].

Update 'external' subsection's comment as it does not contain only zsh
functions.

[1]: bb21c4df7844 ("git: Replace git-signoff with `rebase --signoff`")
2022-07-12 21:00:02 +02:00
03163a92a4 git:filter-repo: Add to $PATH 2022-07-12 21:00:02 +02:00
09ef4d4d93 git: Replace git-signoff with rebase --signoff
Replace my custom git-signoff script with the native `--signoff` flag
for `git rebase`.
2022-07-12 21:00:00 +02:00
ac0987719f git:submodule: Parallel with a reasonable amount
Git should decide on a reasonable default for how many fetch/clone jobs
should run in parallel.
2022-07-12 21:00:00 +02:00
3512199fce git:spull: Rename to ssync
As I rarely use git-pull(1) and instead fetch and act manually, I'd
rather have it to just sync the submodules.
2022-07-12 20:59:59 +02:00
706c55acc1 git:alias: Reorder zsh functions into own block 2022-07-12 20:59:59 +02:00
c22fcf5fce git,zsh:autoload: Move spull into own function
Move `git-track` into its own autoloadable function.

This way it is better maintainable as in one-liner format and brings the
possibility of having more complexity (e.g. for better portability).

By that it is also now executable as `git-spull` as well as `git spull`
as before.
2022-07-12 20:59:59 +02:00
0146956dd4 git:core.pager:,less: Use long flag variants 2022-07-12 20:59:59 +02:00
c86b1b765a git:core.pager: Update flags
Remove `-g` as it was put in place for a better experience with the
search pattern that `less` was started with.

Readd `-F` as it was explicitly unset when the search pattern was
introduced.

Do not readd `-X` as I like output that is too long (e.g. `log`, `show`)
to be kept in alternate mode and out of my scrollback buffer.

See:

- 17433d0528 ("git:core.pager: Remove the search pattern")

> This gets really annoying as it complains in many cases that it cannot
> find a match for the pattern when the pager is used for other things
> than commits.

- 093c3a6f9c ("git: Highlight current match in pager")

- 7e0e0f5baf ("git: Enable jumps between different files in diff")

> Jump between file sections and commits by using n and N. Taken from:
> https://github.com/so-fancy/diff-so-fancy/blob/eef379ee43f/pro-tips.md
>
> Remove FX flags since they are incompatible with the pattern search:
> When showing a small change that fits on less than the screen height,
> the rest of the screen is filled with ~ lines instead of quitting the
> pager. This behaviour is annoying and thus the flags are deactivated.
> Since git adds them per default they have to be explicitly disabled.
2022-06-23 23:59:02 +02:00
d51cf9d5e1 git: Set some fetch options
Use [compact output][1]:

> In compact output mode, specified with configuration variable
> fetch.output, if either entire <from> or <to> is found in the other
> string, it will be substituted with * in the other string. For
> example, master -> origin/master becomes master -> origin/*.

Automatically prune branches and tags.

Set parallelization to use a value set by git as otherwise it defaults
to 1.

[1]: git-fetch(1)
2022-06-23 23:58:57 +02:00
25771018a8 git: Alias changes to log HEAD...FETCH_HEAD
I would have liked to call the alias `whatchanged` but am not able to as
git brings a command named liked that (for backwards compatibility) and
alias cannot override builtins.
2022-06-23 23:58:56 +02:00
bea16a170c git: Add alias to glog 2022-06-23 23:58:56 +02:00
020b39887e gpg,git: Move gpg.loopback into PATH
Move gpg.loopback into PATH as git's `gpg.program` does not handle paths
with `~` or other environment variables very well.
2022-06-23 23:58:54 +02:00
ef3e3387b7 git: Remove core.excludesfile option
Remove the `core.excludesfile` option as it only sets the default value
`${XDG_CONFIG_HOME:-$HOME/.config}/git/ignore` but while hardcoding the
default value `~/.config` for `XDG_CONFIG_HOME`.
2022-06-23 23:58:53 +02:00
476081e2a2 git: Set log.follow
I always want to 'follow' if possible.
2022-06-23 23:58:37 +02:00
1149424d0d git:alias: Add autofixup and autosquash
Automatically fixup/squash marked commits without opening the
git-rebase-todo.
2022-06-23 23:58:36 +02:00
f76d16f01b git: Move user.config include block to EOF 2022-06-23 23:58:35 +02:00
c2390f5fcd vim:fugitive: Fix committing with locked gpg-key 2022-06-23 23:58:34 +02:00
f44125937f git:alias: Add checkout-worktree
Reuse the autoloadable function as git alias. This way
`git-checkout-worktree` as well as `git checkout-worktree` are possible.
2022-03-31 15:21:22 +02:00
869a1bce6e git: Readd function in spull alias
This reverts commit 54d716510b ("git: Drop function in `spull`").

I apparently oversaw the use of arguments passed to `git pull`. This
makes the function necessary.
2022-03-31 14:20:09 +02:00
70b9a74029 git: Add signoff alias to git-signoff 2022-03-30 03:01:19 +02:00
2495dc7b2d git: Remove nvimdiff as merge.tool 2022-03-30 03:00:46 +02:00
71f41ab994 git: Set blame.date to short 2022-03-20 17:30:48 +01:00
17433d0528 git:core.pager: Remove the search pattern
This gets really annoying as it complains in many cases that it cannot
find a match for the pattern when the pager is used for other things
than commits.
2022-02-03 18:59:00 +01:00
54d716510b git: Drop function in spull
The function is not needed as git can just execute chains of commands.
2022-02-03 18:56:38 +01:00
7252bee741 git: Add filter-repo as alias 2022-02-03 18:47:24 +01:00
00355ec6f7 git: Enable rerere
Activate recording of resolved conflicts, so that identical conflict
hunks can be resolved automatically, should they be encountered again.
2022-02-03 18:31:20 +01:00
48090260aa git: Set branch.autosetuprebase to always 2022-02-01 01:10:56 +01:00
8da651fd27 LICENSE,git: Use real name instead of pseudonym
Also specify email address in the LICENSE.
2022-01-31 13:04:43 +01:00
7f52c7a4cb git,zsh:autoload: Move git-track into own function
Move `git-track` into its own autoloadable function.
This way it is
better maintainable as in one-liner format and brings the possibility of
having more complexity (e.g. for better portability).
By that it is also now executable as `git-track` as well as `git track`
as before.
2022-01-31 12:50:54 +01:00