This is an old revision of the document!
Everyday Git Usage
This page describes a very simple git workflow that can be used with most projects.
Steps
Clone the repository
git clone [email protected]:some-user/some-repo.git
Create a branch
git checkout -b branch_name
-Name your branch something descriptive: test-sampler, add-ga-comments
Update from the remote master
(Do this often if you're working on a branch for a while)
git fetch
git rebase origin/master
Committing your changes
git add filenames.c
git commit
In case you forgot to add something to your commit
git add filenames.c
git commit –amend
Submit a pull request on github
git push origin branch name
- Go to the github repository, click on 'branches', and click on “new pull request”
- Have someone review your code. If new changes need to be made, make them.
- Click on 'squash and merge'
Switch back to the master branch and update
git checkout master
git fetch
git rebase origin/master
Definitions
git clone - Clone a repository into a new directory. Details
git fetch - Download objects and refs from another repository. details
git rebase - Reapply commits on top of another base tip. Details
git add - Add file contents to the index Details
git commit - Record changes to the repository. Details
git push - Update remote refs along with associated objects. Details
Notes
[0] Read the git output - it's normally pretty useful and will tell you what to do. If you get stuck in a state where you have no idea what is happening, try to think about what you did last and how that affects the git data model.
[1] We use rebasing to keep the history linear and clean. By doing this, we can make sure that every commit is well documented; this also has the added advantage of making code reviews easier as well.