Showing posts with label copyleft. Show all posts
Showing posts with label copyleft. Show all posts

Tuesday, May 10, 2016

Git Pull request Kung Fu

TL;DR

Merging via command line

If you do not want to use the merge button or an automatic merge cannot be performed, you can perform a manual merge on the command line.
Step 1: From your project repository, bring in the changes and test.
git fetch origin
git checkout -b tscalf-unit_tests origin/tscalf-unit_tests
git merge master
Step 2: Merge the changes and update.
git checkout master
git merge --no-ff tscalf-unit_tests
git push origin master

Monday, April 4, 2016

Git Fork Workflow

TL; DR
GitHUB Fork
git clone
git checkout -b <username>-<feature>
git commit -am "This is what I did to your code."
git push origin <username>-<feature>
GitHUB create Pull request.

Now for the longer Story
Learning my way through getting better at Git. I'm working with the copyleft.io team. We are a group of  daytime DevOps engineeers and evening development hobbyists.  As such, we use github for all our amazing ideas. Today, in order to be a better github citizen, I decided to learn how to work in the Git Fork Workflow that is common on Github.

The Gitfork workflow works as follows. Copyleft has a project I like, so, I click "Fork". That give me a copy of the master branch in my personal Github account.. Woohoo, I have source code. Next, Let's make some changes. 'git clone' is my tool of choice there. So I clone it locally. Now, let's change something. I should put it in a branch so the rest of my Copyleft friends know what I have done. 'git checkout -b <branch_name>' That's my ticket. As a courtesy I throw my username into my branch name, then some feature name.

Now for some code hacking... All finished there. It looks pretty? Good! Did you write tests? Be kind. Test your stuff. It makes us all better. Commit your changes with a good commit comment or few. 'git commit -am "This is my Feature" -m "This is more about what I did to your code and why.' It is important to describe your code well. Then I push it to my personal repo. 'git push origin <username>-<feature>'. If the organization is using tags, add a tag "git tag". Then push your tags "git push --tags".

Finally you are ready for that all important Pull Request. In the GitHub UI, you will see your branch and a button that prompts you to create a pull request from Master. Go for it. Verfiy your commit message is well formatted and displayed. Then commit.