-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgit
More file actions
27 lines (23 loc) · 1.45 KB
/
git
File metadata and controls
27 lines (23 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
alias gac='git add . && git commit -m'
alias gfy='git add . && git commit --amend --no-edit'
alias grm='git fetch origin master:master && git rebase master'
alias gum='git checkout master && git pull'
function git_reset_origin_to_upstream() {
remote=${1:-upstream}
git fetch $remote master:master
git checkout master
git reset --hard $remote/master
ggpush
}
function git_fetch_upstream_and_rebase() {
current_branch=$(current_branch)
git_reset_origin_to_upstream $1 || exit 1
git checkout $current_branch
git rebase master
}
alias delete_branches='xargs -n 1 git branch -D'
alias show_merged='git branch --merged | grep -v "\*" | grep -v master | grep -v main'
alias delete_merged='show_merged | xargs -n 1 git branch -d'
alias delete_dev_branches='git branch | grep -v master | grep -v main | delete_branches'
alias gdsm_dryrun='git checkout -q master && git for-each-ref refs/heads/ "--format=%(refname:short)" | while read branch; do mergeBase=$(git merge-base master $branch) && [[ $(git cherry master $(git commit-tree $(git rev-parse "$branch^{tree}") -p $mergeBase -m _)) == "-"* ]] && echo "$branch is merged into master and can be deleted"; done'
alias gdsm='git checkout -q master && git for-each-ref refs/heads/ "--format=%(refname:short)" | while read branch; do mergeBase=$(git merge-base master $branch) && [[ $(git cherry master $(git commit-tree $(git rev-parse "$branch^{tree}") -p $mergeBase -m _)) == "-"* ]] && git branch -D $branch; done'