Speed ► Simple design ► Strong support for non-linear development (thousands of parallel branches) ► Fully distributed ► Able to handle large projects like the Linux kernel efficiently (speed and data size)
a repository in an existing directory ► git init . ► git clone https://github.com/username/repo-name.git ► Adding a file ► git add README ► Checking the status of your files ► git status ► Commit and push your files ► git commit –m “message content” ► git push ► Get your latest source version ► git pull
with a capitalized letter ► Have a subject that does not exceed 50 chars ► Have a thourough message body that explains in detail what was changed and why. This message is linewrapped at 72 chars.
by git ► Tracked ► unmodified - no changes since last snapshot ► modified - modified since last snapshot ► staged - a modified snapshot which is ready for commit
► git log ► Removing a file from the staging area ► git reset <filename> ► Undo file changes ► git checkout <filename> ► Save a pointer to a specific commit ► git tag <tagname>
git branch <branch_name> ► Delete a branch ► git branch -d <branch_name> ► Move to another branch ► git checkout <branch_name> ► Create a branch and switch to it ► git checkout -b <branch_name> ► List branches ► git branch
a branch and all its commit to an other starting point ► git merge ► Move all commits of feature branch to a new commit to current branch https://www.atlassian.com/git/tutorials/merging-vs-rebasing