mirror of
https://github.com/Stunkymonkey/dotfiles.git
synced 2025-09-13 22:12:04 +02:00
Compare commits
3 commits
21c425b441
...
808243babc
Author | SHA1 | Date | |
---|---|---|---|
![]() |
808243babc | ||
![]() |
ad24ebe4a2 | ||
![]() |
72ceb16f5f |
4 changed files with 60 additions and 2 deletions
23
bin/git-ard.sh
Executable file
23
bin/git-ard.sh
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Git automatic range diff
|
||||
|
||||
# Enforce being in a git repository
|
||||
git rev-parse --is-inside-work-tree >/dev/null || exit $?
|
||||
|
||||
# We actually should check out the head branch via `git remote show ${REMOTE}`,
|
||||
# but this requires active connection and active 2FA verification. Tedious to
|
||||
# have multiple calls for this
|
||||
if git rev-parse --verify main &>/dev/null; then
|
||||
MAIN_BRANCH=main
|
||||
else
|
||||
MAIN_BRANCH=master
|
||||
fi
|
||||
|
||||
CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
||||
GIT_REMOTE=origin
|
||||
|
||||
# Show the next command
|
||||
set -x
|
||||
|
||||
git range-diff "${GIT_REMOTE}/${MAIN_BRANCH}..${GIT_REMOTE}/${CURRENT_BRANCH}" "${MAIN_BRANCH}..${CURRENT_BRANCH}"
|
|
@ -1,5 +1,8 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Enforce being in a git repository
|
||||
git rev-parse --is-inside-work-tree >/dev/null || exit $?
|
||||
|
||||
# save as i.e.: git-authors and set the executable flag
|
||||
git ls-tree -r -z --name-only HEAD -- "${1}" \
|
||||
| xargs -0 -n1 git blame --line-porcelain HEAD \
|
||||
|
@ -7,4 +10,3 @@ git ls-tree -r -z --name-only HEAD -- "${1}" \
|
|||
| sort \
|
||||
| uniq -c \
|
||||
| sort -nr
|
||||
|
||||
|
|
32
bin/git-rewrite-commits.sh
Executable file
32
bin/git-rewrite-commits.sh
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Automatically start a rebase for all commits between HEAD and the main
|
||||
# branch without integrating new commits from the main branch
|
||||
#
|
||||
# Technically it's a git rebase without rebasing any commits.
|
||||
|
||||
# Enforce being in a git repository
|
||||
git rev-parse --is-inside-work-tree >/dev/null || exit $?
|
||||
|
||||
# We actually should check out the head branch via `git remote show ${REMOTE}`,
|
||||
# but this requires active connection and active 2FA verification. Tedious to
|
||||
# have multiple calls for this
|
||||
if git rev-parse --verify main &>/dev/null; then
|
||||
MAIN_BRANCH=main
|
||||
else
|
||||
MAIN_BRANCH=master
|
||||
fi
|
||||
|
||||
CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
||||
|
||||
if [ "${CURRENT_BRANCH}" = "${MAIN_BRANCH}" ]; then
|
||||
echo "Cannot rebase commits from '${CURRENT_BRANCH}' (HEAD) onto '${MAIN_BRANCH}'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MERGE_BASE="$(git merge-base "${MAIN_BRANCH}" HEAD)"
|
||||
|
||||
# Show the next command
|
||||
set -x
|
||||
|
||||
git rebase --interactive "${MERGE_BASE}"
|
|
@ -76,6 +76,8 @@
|
|||
- link:
|
||||
~/.local/bin/host-is-on: bin/host-is-on.sh
|
||||
~/.local/bin/git-authors: bin/git-authors.sh
|
||||
~/.local/bin/git-ard: bin/git-ard.sh
|
||||
~/.local/bin/git-rewrite-commits: bin/git-rewrite-commits.sh
|
||||
~/.local/bin/clean: bin/clean.sh
|
||||
|
||||
# systemd
|
||||
|
@ -88,4 +90,3 @@
|
|||
|
||||
- link:
|
||||
~/.local/bin/diff-so-fancy: git/diff-so-fancy/diff-so-fancy
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue