Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 2.13 KB

git.md

File metadata and controls

60 lines (45 loc) · 2.13 KB

Git

Learn Git

Name Comments
git-scm The best place (imho) to learn everything about Git (through reading)
Interactive Git Branching Learning Visual and interactive way to learn Git branching
Learn git concepts, not commands Article on Git concepts
Codeacademy Learn Git Not Free
Git for Computer Scientists
shortcutfoo interactive learning

Best Practices

  • Use a descriptive commit message
  • Make each commit a logical unit
  • Incorporate others' changes frequently
  • Share your changes frequently
  • Coordinate with your co-workers
  • Don't commit generated files

CheatSheet

  • Clone a repository: git clone https://github.com/bregman-arie/devops-resources.git
  • Pull changes from remote repository: git pull
  • Pull changes without trying to merge the changes between the local branch and the remote one: git pull --ff-only

Branches

  • Switch to a branch called "main": git checkout main
  • Create (if doesn't exists) and switch to a branch called devel: git checkout -b devel
  • List branches: git branch
  • Update based on status of remote branches: git remote prune origin
  • Delete local branch: git branch -d some-branch
  • What are the changes if merging branch y into x: git merge-tree $(git merge-base x y) x y

Staging

  • See what the current status in the repository: git status
  • Add changes to the staging area: git add <FILE> or git add . to add everything

Commits

  • Create a commit: git commit
  • List of latest commits: git log --oneline
  • Push commits to the remote branch: git push origin main
  • Revert to commit X
git revert --no-commit X..HEAD
git commit

References

  • All references in current repository: find .git/refs/
  • Update master reference: git update-ref refs/heads/master <SOME_COMMIT>

Tags

  • Create a new tag: git tag -a "v0.0.1" -m "First release...yay