Skip to content

Latest commit

 

History

History
35 lines (35 loc) · 3.47 KB

gitconfiguration.md

File metadata and controls

35 lines (35 loc) · 3.47 KB

Git commands

Configuring remotes

When a repository is cloned, it has a default remote called origin that points to your fork on GitHub, not the original repository it was forked from. To keep track of the original repository, you should add another remote named upstream:

  1. Get the path where you have your git repository on your machine. Go to that path in Terminal using cd. Alternatively, Right click on project in Github Desktop and hit ‘Open in Terminal’.
  2. Run git remote -v to check the status of current remotes, you should see something like the following:

origin https://github.com/YOUR_USERNAME/susi_iOS.git(fetch)
origin https://github.com/YOUR_USERNAME/susi_iOS.git(push)

  1. Set the remote of orignal repository as upstream:
    git remote add upstream https://github.com/fossasia/susi_iOS.git
  2. Run git remote -v again to check the status of current remotes, you should see something like the following:

origin https://github.com/YOUR_USERNAME/susi_iOS.git (fetch)
origin https://github.com/YOUR_USERNAME/susi_iOS.git (push)
upstream https://github.com/fossasia/susi_iOS.git (fetch)
upstream https://github.com/fossasia/susi_iOS.git (push)

  1. To update your local copy with remote changes, run the following:
    git fetch upstream master
    git rebase upstream/master
    This will give you an exact copy of the current remote, make sure you don't have any local changes.
  2. Project set-up is complete.

Developing a feature

  1. Make sure you are in the master branch git checkout master.
  2. Sync your copy git pull --rebase upstream master.
  3. Create a new branch with a meaningful name git checkout -b branch_name.
  4. Develop your feature on Xcode IDE and run it using the simulator or connecting your own iphone.
  5. Add the files you changed git add file_name (avoid using git add .).
  6. Commit your changes git commit -m "Message briefly explaining the feature".
  7. Keep one commit per feature. If you forgot to add changes, you can edit the previous commit git commit --amend.
  8. Push to your repo git push origin branch-name.
  9. Go into the Github repo and create a pull request explaining your changes.
  10. If you are requested to make changes, edit your commit using git commit --amend, push again and the pull request will edit automatically.
  11. If you have more than one commit try squashing them into single commit by following command:
    git rebase -i HEAD~n (having n number of commits).
  12. Once you've run a git rebase -i command, text editor will open with a file that lists all the commits in current branch, and in front of each commit is the word "pick". For every line except the first, replace the word "pick" with the word "squash".
  13. Save and close the file, and a moment later a new file should pop up in editor, combining all the commit messages of all the commits. Reword this commit message into meaningful one briefly explaining all the features, and then save and close that file as well. This commit message will be the commit message for the one, big commit that you are squashing all of your larger commits into. Once you've saved and closed that file, your commits of current branch have been squashed together.
  14. Force push to update your pull request with command git push origin branchname --force.