Quick Notes

Things that came on the way

Setting Up to Contribute Using Git

Basic steps if you are planning to contribute to an existing project currently on GitHub.

  • Create an account on GitHub.
  • Create a fork of the project repository on GitHub.
  • Create a Git repository on your local machine. This requires Git to be available on the machine
git clone https://github.com/your-user-name/repository-name -b branch-name
  • Note the -b option is used to specify a particular branch you want to work on in the project. You can verify the branch the local repository is pointing to by
git branch
  • The repository created locally by the clone points to the fork which was created by you on GitHub
  • You would also want to pull in all the changes happening in the project repository like changes from other contributers
  • Inorder to be able to pull the changes, set “upstream” to point to the project repository. CD to your local repository and issue the following command.
git remote add upstream https://github.com/project-or-user-name/repository-name
  • You can verify the “origin” and the “upstream” repositories your local repository is pointing to by issuing the following command
git remote -v
  • Inorder to update your local repository with any changes in the project repository, issue the following command
git pull upstream
  • Git wll perform automerge of changes where possible and if there are any conflicts they need to be resolved manually
  • Make the changes you wish to make to the project repository on your local machine and once satisfied follow these steps
  • Perform a pull upstream to make sure that your repository is upto date with project repository
git pull upstream
  • Commit all your changes to the local respository. This step will ask to enter comments about the change etc.
git commit -a
  • Push the changes to GitHub which will update the fork you had created initially. This step will prompt for your GitHub user-id and password
git push -u branch-name
  • You can verify that the changes are on your fork by browsing the changed components through GitHub web interface
  • Once satisfied with your changes, you can make a pull request using the pull request icon on the GitHub web interface
  • If the project owner is fine with the changes, the changes will get merged into the project repository. Then the changes will be available for everyone to use.
  • Few other useful commands
git stash

This will revert back all the changes made in the local repository

git rebase -i HEAD~n

Where n is a number and this will help in merging multiple commits into fewer so that the change history is much cleaner. - This is a very quick summary of steps. Git documents provide details, options and other useful commands which you may want to look at