Files
DevOps-Bash-tools/git/git_origin_log_to_push.sh
2025-03-10 21:00:50 +08:00

60 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# vim:ts=4:sts=4:sw=4:et
#
# Author: Hari Sekhon
# Date: 2025-01-23 03:23:55 +0700 (Thu, 23 Jan 2025)
#
# https///github.com/HariSekhon/DevOps-Bash-tools
#
# License: see accompanying Hari Sekhon LICENSE file
#
# If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish
#
# https://www.linkedin.com/in/HariSekhon
#
set -euo pipefail
[ -n "${DEBUG:-}" ] && set -x
srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck disable=SC1090,SC1091
. "$srcdir/lib/git.sh"
# shellcheck disable=SC2034,SC2154
usage_description="
Shows the Git log in local branch that would be pushed to remote origin
You can give git log options like --oneline
Example:
${0##*/} --oneline | wc -l
"
# used by usage() in lib/utils.sh
# shellcheck disable=SC2034
usage_args="[<git_log_options>]"
help_usage "$@"
#min_args 1 "$@"
log "Determining current branch"
current_branch="$(current_branch)"
log "Current branch: $current_branch"
log "Checking we have an origin"
git remote get-url origin >/dev/null
#git log "origin/$current_branch.."
# these next two work even if you haven't pushed this branch yet, but the first one can result in the following error
#
#git log "$@" "origin.."
#
# fatal: ambiguous argument 'origin..': unknown revision or path not in the working tree.
# Use '--' to separate paths from revisions, like this:
# 'git <command> [<revision>...] -- [<file>...]'
git log "$@" "FETCH_HEAD..HEAD"