⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⣿⣿⣷⣼⣿⠀⣴⠾⠷⠶⠦⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⡤⢶⣦⣾⣿⣿⣿⣿⣿⣿⣿⠀⣿⣶⣶⣦⣄⠳⣤⣤⠄⠀⠀⠀
⠀⠀⠀⢀⣼⣳⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣗⠈⠙⠻⣶⣄⡀⠀⠀⠀
⠀⠀⠀⣰⠿⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠈⠳⣤⠀⠀
⠀⠀⢀⡟⠀⢰⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠁⠈⠻⣶⣄⠀⠀⠈⠛⢦   
⠀⣀⡼⠃⠀⣼⡟⠀⠀⢸⣿⡿⠉⣿⡿⠿⠛⣿⡄⠀⠀⠀⠙⠿⣆⠀⠀⠀⠈
⠈⠁⠀⠀⢸⡟⠀⠀⠀⢸⣿⠀⠀⣿⠁⠀⠀⠈⠃⠀⠀⠀⠀⠀⠘⢷⡄⠀⠀
⠀⠀⠀⠀⣼⠃⠀⠀⠀⢸⡟⠀⠀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡆⠀
⠀⠀⠀⣠⡏⠀⠀⠀⠀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠻⠃⠀⠀⠀⠀⣻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

Current Dir: /usr/libexec/git-core/

[DIR] mergetools [ delete | rename ]
[FILE] git [ edit | delete | rename | download ]
[FILE] git-add [ edit | delete | rename | download ]
[FILE] git-add--interactive [ edit | delete | rename | download ]
[FILE] git-am [ edit | delete | rename | download ]
[FILE] git-annotate [ edit | delete | rename | download ]
[FILE] git-apply [ edit | delete | rename | download ]
[FILE] git-archive [ edit | delete | rename | download ]
[FILE] git-bisect [ edit | delete | rename | download ]
[FILE] git-bisect--helper [ edit | delete | rename | download ]
[FILE] git-blame [ edit | delete | rename | download ]
[FILE] git-branch [ edit | delete | rename | download ]
[FILE] git-bundle [ edit | delete | rename | download ]
[FILE] git-cat-file [ edit | delete | rename | download ]
[FILE] git-check-attr [ edit | delete | rename | download ]
[FILE] git-check-ignore [ edit | delete | rename | download ]
[FILE] git-check-ref-format [ edit | delete | rename | download ]
[FILE] git-checkout [ edit | delete | rename | download ]
[FILE] git-checkout-index [ edit | delete | rename | download ]
[FILE] git-cherry [ edit | delete | rename | download ]
[FILE] git-cherry-pick [ edit | delete | rename | download ]
[FILE] git-clean [ edit | delete | rename | download ]
[FILE] git-clone [ edit | delete | rename | download ]
[FILE] git-column [ edit | delete | rename | download ]
[FILE] git-commit [ edit | delete | rename | download ]
[FILE] git-commit-tree [ edit | delete | rename | download ]
[FILE] git-config [ edit | delete | rename | download ]
[FILE] git-count-objects [ edit | delete | rename | download ]
[FILE] git-credential [ edit | delete | rename | download ]
[FILE] git-credential-cache [ edit | delete | rename | download ]
[FILE] git-credential-cache--daemon [ edit | delete | rename | download ]
[FILE] git-credential-store [ edit | delete | rename | download ]
[FILE] git-describe [ edit | delete | rename | download ]
[FILE] git-diff [ edit | delete | rename | download ]
[FILE] git-diff-files [ edit | delete | rename | download ]
[FILE] git-diff-index [ edit | delete | rename | download ]
[FILE] git-diff-tree [ edit | delete | rename | download ]
[FILE] git-difftool [ edit | delete | rename | download ]
[FILE] git-difftool--helper [ edit | delete | rename | download ]
[FILE] git-fast-export [ edit | delete | rename | download ]
[FILE] git-fast-import [ edit | delete | rename | download ]
[FILE] git-fetch [ edit | delete | rename | download ]
[FILE] git-fetch-pack [ edit | delete | rename | download ]
[FILE] git-filter-branch [ edit | delete | rename | download ]
[FILE] git-fmt-merge-msg [ edit | delete | rename | download ]
[FILE] git-for-each-ref [ edit | delete | rename | download ]
[FILE] git-format-patch [ edit | delete | rename | download ]
[FILE] git-fsck [ edit | delete | rename | download ]
[FILE] git-fsck-objects [ edit | delete | rename | download ]
[FILE] git-gc [ edit | delete | rename | download ]
[FILE] git-get-tar-commit-id [ edit | delete | rename | download ]
[FILE] git-grep [ edit | delete | rename | download ]
[FILE] git-hash-object [ edit | delete | rename | download ]
[FILE] git-help [ edit | delete | rename | download ]
[FILE] git-http-backend [ edit | delete | rename | download ]
[FILE] git-http-fetch [ edit | delete | rename | download ]
[FILE] git-http-push [ edit | delete | rename | download ]
[FILE] git-imap-send [ edit | delete | rename | download ]
[FILE] git-index-pack [ edit | delete | rename | download ]
[FILE] git-init [ edit | delete | rename | download ]
[FILE] git-init-db [ edit | delete | rename | download ]
[FILE] git-log [ edit | delete | rename | download ]
[FILE] git-lost-found [ edit | delete | rename | download ]
[FILE] git-ls-files [ edit | delete | rename | download ]
[FILE] git-ls-remote [ edit | delete | rename | download ]
[FILE] git-ls-tree [ edit | delete | rename | download ]
[FILE] git-mailinfo [ edit | delete | rename | download ]
[FILE] git-mailsplit [ edit | delete | rename | download ]
[FILE] git-merge [ edit | delete | rename | download ]
[FILE] git-merge-base [ edit | delete | rename | download ]
[FILE] git-merge-file [ edit | delete | rename | download ]
[FILE] git-merge-index [ edit | delete | rename | download ]
[FILE] git-merge-octopus [ edit | delete | rename | download ]
[FILE] git-merge-one-file [ edit | delete | rename | download ]
[FILE] git-merge-ours [ edit | delete | rename | download ]
[FILE] git-merge-recursive [ edit | delete | rename | download ]
[FILE] git-merge-resolve [ edit | delete | rename | download ]
[FILE] git-merge-subtree [ edit | delete | rename | download ]
[FILE] git-merge-tree [ edit | delete | rename | download ]
[FILE] git-mergetool [ edit | delete | rename | download ]
[FILE] git-mergetool--lib [ edit | delete | rename | download ]
[FILE] git-mktag [ edit | delete | rename | download ]
[FILE] git-mktree [ edit | delete | rename | download ]
[FILE] git-mv [ edit | delete | rename | download ]
[FILE] git-name-rev [ edit | delete | rename | download ]
[FILE] git-notes [ edit | delete | rename | download ]
[FILE] git-pack-objects [ edit | delete | rename | download ]
[FILE] git-pack-redundant [ edit | delete | rename | download ]
[FILE] git-pack-refs [ edit | delete | rename | download ]
[FILE] git-parse-remote [ edit | delete | rename | download ]
[FILE] git-patch-id [ edit | delete | rename | download ]
[FILE] git-peek-remote [ edit | delete | rename | download ]
[FILE] git-prune [ edit | delete | rename | download ]
[FILE] git-prune-packed [ edit | delete | rename | download ]
[FILE] git-pull [ edit | delete | rename | download ]
[FILE] git-push [ edit | delete | rename | download ]
[FILE] git-quiltimport [ edit | delete | rename | download ]
[FILE] git-read-tree [ edit | delete | rename | download ]
[FILE] git-rebase [ edit | delete | rename | download ]
[FILE] git-rebase--am [ edit | delete | rename | download ]
[FILE] git-rebase--interactive [ edit | delete | rename | download ]
[FILE] git-rebase--merge [ edit | delete | rename | download ]
[FILE] git-receive-pack [ edit | delete | rename | download ]
[FILE] git-reflog [ edit | delete | rename | download ]
[FILE] git-relink [ edit | delete | rename | download ]
[FILE] git-remote [ edit | delete | rename | download ]
[FILE] git-remote-ext [ edit | delete | rename | download ]
[FILE] git-remote-fd [ edit | delete | rename | download ]
[FILE] git-remote-ftp [ edit | delete | rename | download ]
[FILE] git-remote-ftps [ edit | delete | rename | download ]
[FILE] git-remote-http [ edit | delete | rename | download ]
[FILE] git-remote-https [ edit | delete | rename | download ]
[FILE] git-remote-testpy [ edit | delete | rename | download ]
[FILE] git-repack [ edit | delete | rename | download ]
[FILE] git-replace [ edit | delete | rename | download ]
[FILE] git-repo-config [ edit | delete | rename | download ]
[FILE] git-request-pull [ edit | delete | rename | download ]
[FILE] git-rerere [ edit | delete | rename | download ]
[FILE] git-reset [ edit | delete | rename | download ]
[FILE] git-rev-list [ edit | delete | rename | download ]
[FILE] git-rev-parse [ edit | delete | rename | download ]
[FILE] git-revert [ edit | delete | rename | download ]
[FILE] git-rm [ edit | delete | rename | download ]
[FILE] git-send-pack [ edit | delete | rename | download ]
[FILE] git-sh-i18n [ edit | delete | rename | download ]
[FILE] git-sh-i18n--envsubst [ edit | delete | rename | download ]
[FILE] git-sh-setup [ edit | delete | rename | download ]
[FILE] git-shell [ edit | delete | rename | download ]
[FILE] git-shortlog [ edit | delete | rename | download ]
[FILE] git-show [ edit | delete | rename | download ]
[FILE] git-show-branch [ edit | delete | rename | download ]
[FILE] git-show-index [ edit | delete | rename | download ]
[FILE] git-show-ref [ edit | delete | rename | download ]
[FILE] git-stage [ edit | delete | rename | download ]
[FILE] git-stash [ edit | delete | rename | download ]
[FILE] git-status [ edit | delete | rename | download ]
[FILE] git-stripspace [ edit | delete | rename | download ]
[FILE] git-submodule [ edit | delete | rename | download ]
[FILE] git-submodule--helper [ edit | delete | rename | download ]
[FILE] git-subtree [ edit | delete | rename | download ]
[FILE] git-symbolic-ref [ edit | delete | rename | download ]
[FILE] git-tag [ edit | delete | rename | download ]
[FILE] git-tar-tree [ edit | delete | rename | download ]
[FILE] git-unpack-file [ edit | delete | rename | download ]
[FILE] git-unpack-objects [ edit | delete | rename | download ]
[FILE] git-update-index [ edit | delete | rename | download ]
[FILE] git-update-ref [ edit | delete | rename | download ]
[FILE] git-update-server-info [ edit | delete | rename | download ]
[FILE] git-upload-archive [ edit | delete | rename | download ]
[FILE] git-upload-pack [ edit | delete | rename | download ]
[FILE] git-var [ edit | delete | rename | download ]
[FILE] git-verify-pack [ edit | delete | rename | download ]
[FILE] git-verify-tag [ edit | delete | rename | download ]
[FILE] git-web--browse [ edit | delete | rename | download ]
[FILE] git-whatchanged [ edit | delete | rename | download ]
[FILE] git-write-tree [ edit | delete | rename | download ]

Viewing: /usr/libexec/git-core/git-parse-remote

#!/bin/sh

# git-ls-remote could be called from outside a git managed repository;
# this would fail in that case and would issue an error message.
GIT_DIR=$(git rev-parse -q --git-dir) || :;

get_default_remote () {
	curr_branch=$(git symbolic-ref -q HEAD)
	curr_branch="${curr_branch#refs/heads/}"
	origin=$(git config --get "branch.$curr_branch.remote")
	echo ${origin:-origin}
}

get_remote_merge_branch () {
	case "$#" in
	0|1)
	    origin="$1"
	    default=$(get_default_remote)
	    test -z "$origin" && origin=$default
	    curr_branch=$(git symbolic-ref -q HEAD) &&
	    [ "$origin" = "$default" ] &&
	    echo $(git for-each-ref --format='%(upstream)' $curr_branch)
	    ;;
	*)
	    repo=$1
	    shift
	    ref=$1
	    # FIXME: It should return the tracking branch
	    #        Currently only works with the default mapping
	    case "$ref" in
	    +*)
		ref=$(expr "z$ref" : 'z+\(.*\)')
		;;
	    esac
	    expr "z$ref" : 'z.*:' >/dev/null || ref="${ref}:"
	    remote=$(expr "z$ref" : 'z\([^:]*\):')
	    case "$remote" in
	    '' | HEAD ) remote=HEAD ;;
	    heads/*) remote=${remote#heads/} ;;
	    refs/heads/*) remote=${remote#refs/heads/} ;;
	    refs/* | tags/* | remotes/* ) remote=
	    esac
	    [ -n "$remote" ] && case "$repo" in
		.)
		    echo "refs/heads/$remote"
		    ;;
		*)
		    echo "refs/remotes/$repo/$remote"
		    ;;
	    esac
	esac
}

error_on_missing_default_upstream () {
	cmd="$1"
	op_type="$2"
	op_prep="$3"
	example="$4"
	branch_name=$(git symbolic-ref -q HEAD)
	# If there's only one remote, use that in the suggestion
	remote="<remote>"
	if test $(git remote | wc -l) = 1
	then
		remote=$(git remote)
	fi

	if test -z "$branch_name"
	then
		echo "You are not currently on a branch. Please specify which
branch you want to $op_type $op_prep. See git-${cmd}(1) for details.

    $example
"
	else
		echo "There is no tracking information for the current branch.
Please specify which branch you want to $op_type $op_prep.
See git-${cmd}(1) for details

    $example

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=$remote/<branch> ${branch_name#refs/heads/}
"
	fi
	exit 1
}

Upload File: