While in the past I've held a pretty high opinion to using mercurial for version control, the majority of version control these days seems to done in git. Here were the commands I found most useful to get productive with git right away.
# Clone a repository from an origin, i.e. my github MaskingUtils repository
git clone git@github.com:caelumvox/masking-utils.git
# Add a file after it's been updated to stage it for commit, or add a new file
git add filename
# Commit the file to local repo
git commit
# Push the file to the origin so the rest of the team can see it
git push
# List all locally tracked branches
git branch
git branch --list
# Get a list of all branches from the remote
git branch -r
# Create branch locally
git branch develop
# Push the branch to the origin repository to make sure it is tracked there
git push --set-upstream origin develop
# Pulls latest from all local branches tracked from origin; won't pull non-tracked branches
git pull --all
# Fetch the branch list, remove any '->' entries, and then track them locally
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
# Revert all local changes
git checkout -- .
git reset --hard
# Deleted latest commit at head on a branch, and then pushing that delete
git reset --hard HEAD~1
git push origin HEAD --force
# Create a tag
git tag 2.0.5-RC1
# Push the tag
git push origin 2.0.5-RC1
# Cherry pick certain items from one branch and committed to another
# 1. check out target branch
# 2. cherry pick by selecting commit IDs from the source. The IDs can be partial, like the first part.
#
# The challenge is that this is prone to some strange conflicts.
#
# Example:
git cherry-pick ac2bdbdf
# git move tag
git tag -f tag
# git checkout to a revision using its hash
git checkout 658185132b81702da6bfe68d6bcdba568d8b378f
# git checkout to head, just checkout to branch name
git checkout master
# Getting number of commits by author excluding merges
git log --no-merges --since=2020-03-31 | grep "Author:" | sort | uniq -c
Comments
Post a Comment