Git Workflow - An Update
Now that Drupal have moved from CVS to the git versioning system, I realised that my github workflow can get even more of a workout and is doubly useful to me as I can now use it for Drupal contributions as well. The previous workflow is here: Github Workflow.
There are only a couple of differences between using Drupal's git and github.
- The url I will be cloning from and pushing to
- The fact that I more often that not be creating a patch to provide the issue queue.
Obviously this means that workflow will have to change slightly, so I'll do a new one here just for Drupal patches.
- Step 0: Get the project information from drupal.org
- Go to the project (drupal.org/project/) you are planning on making a patch for and take a note of a couple of things. Right underneath the page title which should be the project name, you will find a link that says Git instructions follow that and then choose the version of the project you wil be updating. It should look similar to 7.x-1.x. That will update the page and give you your clone url.
- Step 1. Setting up a local copy of the project (Do this first time only)
- git clone --branch [version] http://git.drupal.org/project/[project_name].git
- Step 1a. If there is a branch saved to github - now redundant as the branch gets pulled and tracked during the clone
- Step 2. Ensuring you have the latest code changes (Usual starting point)
- git branch -a
- git checkout [version]
- git pull
- Step 3. Create a safe place to work locally
- git branch [local_branchName] - Drupal.org seem to be recommending that you use the issue number and a short description
- Step 4. Move to the safe haven
- git checkout [local_branchName]
- Step 3&4 Combined. You can now combine steps 3&4 into one quicker step
- git checkout -b [issue-number]-[short description]
- Step 5. Do some work
- Step 6. Log any new files created
- git add .
- Step 7. Log any changes to existing files
- git commit -am "[Your comments]"
- Again Drupal has some recommendations about comment formatting. It should be: "Issue #[issue number] by [comma-separated usernames]: [Short summary of the change]."
- Step 8. Flip into the branch for the version you are working to
- git checkout [version]
- Step 9. Check the master records are up to date
- git pull
- git checkout [local_branchName]
- Step 8&9 combined. Another different step to the original article that replaces the last 2 steps
- git fetch origin
- git rebase origin/[version]
- Step 10. Do this only if new changes have been pulled through otherwise skip to Step 14.
- Step 11. Bring the new changes into your local safe haven
- git merge [version]
- Step 12. Only If git reports any conflicts do this
- git mergetool
- &
- git commit -am "[A new comment]"
- Step 13. Go back to Step 8.
- Step 14. It's at this point things get very different. For Drupal I will be mostly creating patches which I will then upload to drupal.org
- git diff origin/[version] > [description]-[issue-number]-[comment-number].patch
- Step 15. Upload to the issue queue and mark the issue as "needs review"
- Step 16. Remove your temporary workspace
- git checkout [version]
- git branch -d [local_branchName]
Comments
look what I found (not verified)
Sat, 03/11/2012 - 07:49
Permalink
Git Workflow - An Update | Tech | Gareth Alexander
Just want to say your article is as astonishing.
The clearness in your put up is just cool and i can
assume you are a professional on this subject.
Well together with your permission let me to grab
your feed to keep up to date with imminent post.
Thank you a million and please carry on the enjoyable work.
her response (not verified)
Mon, 05/11/2012 - 04:14
Permalink
Git Workflow - An Update | Tech | Gareth Alexander
Hello, just wanted to say, I enjoyed this blog post.
It was inspiring. Keep on posting!
wiccan love spe... (not verified)
Tue, 13/11/2012 - 05:25
Permalink
Git Workflow - An Update | Gareth Alexander
That is really fascinating, You're an overly professional blogger. I've joined your rss feed and
stay up for in quest of more of your great post.
Additionally, I've shared your web site in my social networks
desaai (not verified)
Thu, 27/02/2014 - 07:19
Permalink
great ways to tell a story
great ways to tell a story mate, thanks
Add new comment