-
Notifications
You must be signed in to change notification settings - Fork 26
GIT Workflow
- We use Github only for pull requests and patch reviews.
- The deltacloud/deltacloud-core repository is just a mirror for the official ASF GIT repository.
- The mirror script runs every 2 minutes so please be patient.
- In order to have your patch accepted and pushed, you need to have signed the Apache Individual Contributor License Agreement
- We use the official ASF repository for pushing patches (you need to be an ASF contributor with push rights for this), or you need to ask somebody with push rights to do so. If you are not Deltacloud API ASF project member with push rights, please ignore this information :-)
-
Fork the "deltacloud/deltacloud-core" repository
-
Clone your fork (
git clone https://github.com/YOUR_USERNAME/core.git
) -
Configure remotes
$ cd core
$ git remote add upstream https://github.com/deltacloud/deltacloud-core.git
$ git fetch upstream
-
More details: Official Github Guide
$ git checkout -b my_work_topic
- Here comes the fun part... coding
$ git commit -m "Commit message"
(Tip: If there is a JIRA ticket for the topic you are working on, please add the JIRA ID into the commit message, for example, DTACLOUD-123)
- Repeat the previous step until you finish the work on 'my_work_topic'
This will avoid possible merge conflicts and problems with applying your patches.
$ git checkout master
$ git pull
$ git checkout my_work_topic
-
$ git rebase -i master
(Tip: You can rename/squash commits at this point) $ git push origin my_work_topic
- Navigate to your forked Github repository and open a pull request (Pro Tip: You can use hub to automate this step)
- Your pull request will appear here
- All subscribers should be notified by email about your new pull request
- Please follow our coding guidelines
- In case nobody is taking the action of reviewing your pull request, please join the #deltacloud channel on irc.freenode.org and ask for review.
- Once your pull request gets reviewed and ACK'ed, the person who did the review should close the pull request without merging it. Instead of merging, this person should push it into the official Apache GIT repository, or ask somebody with push rights to do so.
$ git remote add apache https://git-wip-us.apache.org/repos/asf/deltacloud.git
$ git fetch apache
$ git checkout -b apache apache/master
Tip: To make all pull requests appear in your local GIT repository, you can follow this instructions. Then all you need to do is git fetch origin
to get all pull requests locally and then you can checkout the single pull request directly by git checkout pr/NUMBER
instead of git checkout topic_you_want_to_push
$ git checkout topic_you_want_to_push
$ git rebase -i apache
$ git checkout apache
$ git merge topic_you_want_to_push
$ git push apache refs/heads/apache:master
Note: Don't forget to git pull
for 'apache' branch before merging changes :)