-
-
Save johnpolacek/69604a1f6861129ef088 to your computer and use it in GitHub Desktop.
[alias] | |
recent = "!git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)' | head -n 10" | |
co = checkout | |
cob = checkout -b | |
coo = !git fetch && git checkout | |
br = branch | |
brd = branch -d | |
brD = branch -D | |
merged = branch --merged | |
st = status | |
aa = add -A . | |
cm = commit -m | |
aacm = !git add -A . && git commit | |
aacm = !git add -A . && git commit -m | |
cp = cherry-pick | |
amend = commit --amend -m | |
dev = !git checkout dev && git pull origin dev | |
staging = !git checkout staging && git pull origin staging | |
main = !git checkout main && git pull origin | |
master = !git checkout master && git pull origin | |
po = push origin | |
pu = !git push origin `git branch --show-current` | |
pod = push origin dev | |
pos = push origin staging | |
pom = push origin main | |
poh = push origin HEAD | |
pogm = !git push origin gh-pages && git checkout master && git pull origin master && git rebase gh-pages && git push origin master && git checkout gh-pages | |
pomg = !git push origin master && git checkout gh-pages && git pull origin gh-pages && git rebase master && git push origin gh-pages && git checkout master | |
plo = pull origin | |
plod = pull origin dev | |
plos = pull origin staging | |
plom = pull origin main | |
ploh = pull origin HEAD | |
unstage = reset --soft HEAD^ | |
ls = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate | |
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat | |
f = "!git ls-files | grep -i" | |
gr = grep -Ii | |
la = "!git config -l | grep alias | cut -c 7-" |
thanks for sharing these man, there are some gems in here 👍
trying to figure out how to have my gh-pages be a build folder inside the repo that is .gitignored from other branches.
breaks on gitignore
git push --force origin $(git commit-tree -m "auto" master:dist):gh-pages
hmmm
tree="$(export GIT_INDEX_FILE="$(mktemp)"; cat .git/index >"$GIT_INDEX_FILE"; git add -f dist && git write-tree --prefix=dist)"
after that, imo you should do something like
git update-ref refs/heads/gh-pages "$(git commit-tree -p gh-pages -m auto "$tree")"
I have attempted to create a repository using curl and the RESTful Github API, The libcurl command works in the bash shell but not as an alias could somebody help me with this? Sorry in advance for necro'ing an old post but it is the most relevant to the work i am doing :)
create = !curl -H 'Authorization: token <My_Access_Token>' -d '{ "name": "<Repo_Name>", "private": false }' https://api.github.com/user/repos
Before anyone asks, Yes i have interchanged <My_Access_Token> with my actual developer token, same with <Repo_Name>
Thanks for sharing!
Gracias por compartir tu configuracion
A SUPER valuable one I use EVERY DAY as team lead both for myself and others, is:
redate = rebase --committer-date-is-author-date
After a rebase, when you run it, it resets all of the commit dates to the author dates so your commit logs on github / gitlab show up in proper chronological order, instead of the moment of the rebase.
To use, when you're in a feature branch:
git rebase origin/master
dmerged = "git branch --merged | grep -v '\*' | xargs -n 1 git branch -d"
missing "!" ?
should be:
dmerged = "!git branch --merged | grep -v '\*' | xargs -n 1 git branch -d"
or better use egrep -v '(^\*|master|dev)'
to avoid accident
@qins I decided to remove that one altogether as I never use it.
I have attempted to create a repository using curl and the RESTful Github API, The libcurl command works in the bash shell but not as an alias could somebody help me with this? Sorry in advance for necro'ing an old post but it is the most relevant to the work i am doing :)
create = !curl -H 'Authorization: token <My_Access_Token>' -d '{ "name": "<Repo_Name>", "private": false }' https://api.github.com/user/repos
Before anyone asks, Yes i have interchanged <My_Access_Token> with my actual developer token, same with <Repo_Name>
@JamesLaneProgramming , have you solved this problem? I'm trying to create the following alias (in the ~/.gitconfig
file) for getting the default Python's .gitignore
file:
[alias]
...
ignore_python = "!wget -O ./.gitignore https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore"
Share
pu = !git push origin `git branch --show-current`
Push current branch to origin with the same name.
Hi!
I've been looking for days for a fetch+checkout (to the new branch) alias, couldn't find it. And I'm not experienced enough to write it myself.
All the time I'm doing
git fetch origin master:examplename
And then
git checkout examplename
Can any of you guys give me a hand?
Cheers
coom = "!f() { git fetch origin master:\"$1\"; git checkout \"$1\";}; f"
usage: git coom examplename
Thank you very much @weibangtuo . I would love to know all this stuff. That's amazing. I really appreciate this.
Again, I'm really new to all this world.
Is there any chance you could write exactly the command for me to create this alias? Like... exactly. I keep getting this
-bash: !f: event not found
Thank you in advance. Regards
@martinmana
you can edit gitconfig file vi ~/.gitconfig
and add line to [alias]
section.
or command
git config --global alias.coom "\!f() { git fetch origin master:\"\$1\"; git checkout \"\$1\";}; f"
You could change the co
to always do a full fetch first. I don't see what that would hurt.
co = fetch && checkout
thank you for the great list of git alias!G
Any idea how to make those aliases to work with both master
and main
branch names? So that for example if main
branch exists, pom
pushes to main
, if not, it pushes it to master
.
pu = !git push origin
git branch --show-current
Thanks for this one!
pu
is simpler via git push -u origin HEAD
:-)
update = "!fn() { \
repo=${2:-origin}; \
if [[ $(git rev-parse --abbrev-ref HEAD) = \"$1\" ]]; \
then \
git pull \"${repo}\"; \
else \
git fetch \"${repo}\" \"$1\":\"$1\"; \
fi; \
}; fn"
update master without checkout: git update master
update develop from upstream remote: get update develop upstream
Any idea how to make those aliases to work with both
master
andmain
branch names? So that for example ifmain
branch exists,pom
pushes tomain
, if not, it pushes it tomaster
.
git symbolic-ref refs/heads/master refs/heads/main
will alias master
to main
. Not quite the answer I think you were looking for, but it should work.
I have following alias now: main = !git symbolic-ref refs/remotes/origin/HEAD | cut -d'/' -f4
git main
returns main
or master
or any other default branch name for the origin/HEAD
.
Then I use it in my aliases like this:
com = "!f(){ git checkout $(git main) $@;}; f"
Which for example is an alias for checking out the default branch.
I have attempted to create a repository using curl and the RESTful Github API, The libcurl command works in the bash shell but not as an alias could somebody help me with this? Sorry in advance for necro'ing an old post but it is the most relevant to the work i am doing :)
create = !curl -H 'Authorization: token <My_Access_Token>' -d '{ "name": "<Repo_Name>", "private": false }' https://api.github.com/user/repos
Before anyone asks, Yes i have interchanged <My_Access_Token> with my actual developer token, same with <Repo_Name>
Look who I've found :O
Thank you for share this.
Use Oh My Zsh
Another one, with arguments.
[alias]
# Add all files in staging + commit with message + push to remote
acp = "!f() { git add -A ; git commit -m '$1'; git push; }; f"
Example:
git acp "Fixing the bug"
Got a bunch of these from http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/