{"action":"created","comment":{"url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/comments/31214652","id":31214652,"diff_hunk":"@@ -0,0 +1,318 @@\n+# On boarding guide to git flow used by Valor Software\n+\n+## Overview\n+\n+Most important thing you should take from this guide is an understanding that `git`, `Github` and `gitflow` is only a `tools` to achieve your/project goals!\n+  Goal of this guide is to explain `gitflow`, show pros and cons of this approach, and how to prevent possible issues.\n+\n+### Meaning\n+\n+So the very important thing is to understand main concepts:\n+- `feature` - is a complete peace of functionality, it could be a new feature, hotfix, doc, test, refactoring, etc...\n+- `branches` - should serve to separate your work by type of goals you want to achieve or to react on issues in production, like `hotfixes`, with corresponding flows and actions\n+- `pull request` - is designed to share the knowledge of what you done with team, to take in count code review comments as a source of knowledge sharing,  and last and not least is to check that you did not forgot to add anything :)\n+\n+### Pros and cons\n+\n+Gitflow is a way to develop things in a team and has it strong and weak parts.\n+\n+#### Pros:\n+* separation of concepts - each branch has clear purpose and flow how to work with it\n+* confidence - at any given point of time `master` and `release` branches are stable and ready for production\n+* isolation - you develop independent and isolated feature, so you can focus on problem\n+* continuous processes - continuous deployment and testing for feature branches, continuous integration for `master` branch\n+* code review - pull request allows to increase code quality and knowledge rotation in team, and as a consequence reduce \"bus factor\"\n+\n+#### Cons:\n+* \"scary merge\" - well illustrated problem by Fowler, to avoid it keep semantic changes as separate branches(explained later)\n+* \"afraid of refactoring\" - semantic changes(refacroring, renaming) leads to \"scary merges\", so try to do it when code targeted by refactoring is not changed by any other branches\n+* dependencies(libraries) update - makes Pull Requests view polluted by library files and in general useless, so keep this updates as a separate branches\n+\n+##Table of contents\n+1. Required reading\n+2. Branches\n+3. Environments\n+4. Branch name conventions\n+5. Pull Requests\n+6. Commit and Pull Requests message guideline\n+7. Initiate repository with main branches\n+8. Feature branches flow\n+9. Hotfix branches flow\n+10. Release branches flow\n+\n+## Required readings\n+\n+Take attention to Feature Branching with Pull Requests\n+\n+1. [Try github](https://try.github.io/levels/1/challenges/1)\n+2. [Atlassian git tutorial](https://www.atlassian.com/git/tutorials/setting-up-a-repository/ ) (except Migrate to Git from SVN)\n+3. [Feature branching classic by Martin Fowler](http://martinfowler.com/bliki/FeatureBranch.html)\n+4. [Closest to ours branching model by Vincent Driessen](http://nvie.com/posts/a-successful-git-branching-model/)\n+5. [Vincent Driessen git-flow cheatsheet](http://danielkummer.github.io/git-flow-cheatsheet/)\n+([ru](http://danielkummer.github.io/git-flow-cheatsheet/index.ru_RU.html))\n+\n+### Supporting readings\n+\n+1. [Semantic Versioning 2.0.0](http://semver.org/)\n+2. [Git cheat sheet](https://training.github.com/kit/downloads/github-git-cheat-sheet.pdf)\n+3. [Github help: user collaborating](https://help.github.com/categories/collaborating/)\n+\n+## Branches\n+\n+- `master` - always **stable** and **release ready** branch\n+- `development` - default branch, contains latest **features** and **fixes**","path":"gitflow/readme.md","position":63,"original_position":63,"commit_id":"a738ad6314a1b5844b3c2a0faf87083d9d6e5f1b","original_commit_id":"a738ad6314a1b5844b3c2a0faf87083d9d6e5f1b","user":{"login":"valorkin","id":1107171,"avatar_url":"https://avatars.githubusercontent.com/u/1107171?v=3","gravatar_id":"","url":"https://api.github.com/users/valorkin","html_url":"https://github.com/valorkin","followers_url":"https://api.github.com/users/valorkin/followers","following_url":"https://api.github.com/users/valorkin/following{/other_user}","gists_url":"https://api.github.com/users/valorkin/gists{/gist_id}","starred_url":"https://api.github.com/users/valorkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valorkin/subscriptions","organizations_url":"https://api.github.com/users/valorkin/orgs","repos_url":"https://api.github.com/users/valorkin/repos","events_url":"https://api.github.com/users/valorkin/events{/privacy}","received_events_url":"https://api.github.com/users/valorkin/received_events","type":"User","site_admin":false},"body":"@korel-san you mean, add \"on which developers would orient\" to `development` branch description?","created_at":"2015-05-28T09:00:02Z","updated_at":"2015-05-28T09:00:02Z","html_url":"https://github.com/valor-software/valor-style-guides/pull/9#discussion_r31214652","pull_request_url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9","_links":{"self":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/comments/31214652"},"html":{"href":"https://github.com/valor-software/valor-style-guides/pull/9#discussion_r31214652"},"pull_request":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9"}}},"pull_request":{"url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9","id":36145793,"html_url":"https://github.com/valor-software/valor-style-guides/pull/9","diff_url":"https://github.com/valor-software/valor-style-guides/pull/9.diff","patch_url":"https://github.com/valor-software/valor-style-guides/pull/9.patch","issue_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues/9","number":9,"state":"open","locked":false,"title":"New: Branch flow documentation","user":{"login":"valorkin","id":1107171,"avatar_url":"https://avatars.githubusercontent.com/u/1107171?v=3","gravatar_id":"","url":"https://api.github.com/users/valorkin","html_url":"https://github.com/valorkin","followers_url":"https://api.github.com/users/valorkin/followers","following_url":"https://api.github.com/users/valorkin/following{/other_user}","gists_url":"https://api.github.com/users/valorkin/gists{/gist_id}","starred_url":"https://api.github.com/users/valorkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valorkin/subscriptions","organizations_url":"https://api.github.com/users/valorkin/orgs","repos_url":"https://api.github.com/users/valorkin/repos","events_url":"https://api.github.com/users/valorkin/events{/privacy}","received_events_url":"https://api.github.com/users/valorkin/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-05-25T15:27:11Z","updated_at":"2015-05-28T09:00:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6fec6c33bb694e1e8051b825e7b2a7ecfd16793b","assignee":{"login":"valorkin","id":1107171,"avatar_url":"https://avatars.githubusercontent.com/u/1107171?v=3","gravatar_id":"","url":"https://api.github.com/users/valorkin","html_url":"https://github.com/valorkin","followers_url":"https://api.github.com/users/valorkin/followers","following_url":"https://api.github.com/users/valorkin/following{/other_user}","gists_url":"https://api.github.com/users/valorkin/gists{/gist_id}","starred_url":"https://api.github.com/users/valorkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valorkin/subscriptions","organizations_url":"https://api.github.com/users/valorkin/orgs","repos_url":"https://api.github.com/users/valorkin/repos","events_url":"https://api.github.com/users/valorkin/events{/privacy}","received_events_url":"https://api.github.com/users/valorkin/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9/commits","review_comments_url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9/comments","review_comment_url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/comments{/number}","comments_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues/9/comments","statuses_url":"https://api.github.com/repos/valor-software/valor-style-guides/statuses/a738ad6314a1b5844b3c2a0faf87083d9d6e5f1b","head":{"label":"valor-software:proposal-feature-branching","ref":"proposal-feature-branching","sha":"a738ad6314a1b5844b3c2a0faf87083d9d6e5f1b","user":{"login":"valor-software","id":6849042,"avatar_url":"https://avatars.githubusercontent.com/u/6849042?v=3","gravatar_id":"","url":"https://api.github.com/users/valor-software","html_url":"https://github.com/valor-software","followers_url":"https://api.github.com/users/valor-software/followers","following_url":"https://api.github.com/users/valor-software/following{/other_user}","gists_url":"https://api.github.com/users/valor-software/gists{/gist_id}","starred_url":"https://api.github.com/users/valor-software/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valor-software/subscriptions","organizations_url":"https://api.github.com/users/valor-software/orgs","repos_url":"https://api.github.com/users/valor-software/repos","events_url":"https://api.github.com/users/valor-software/events{/privacy}","received_events_url":"https://api.github.com/users/valor-software/received_events","type":"Organization","site_admin":false},"repo":{"id":28826243,"name":"valor-style-guides","full_name":"valor-software/valor-style-guides","owner":{"login":"valor-software","id":6849042,"avatar_url":"https://avatars.githubusercontent.com/u/6849042?v=3","gravatar_id":"","url":"https://api.github.com/users/valor-software","html_url":"https://github.com/valor-software","followers_url":"https://api.github.com/users/valor-software/followers","following_url":"https://api.github.com/users/valor-software/following{/other_user}","gists_url":"https://api.github.com/users/valor-software/gists{/gist_id}","starred_url":"https://api.github.com/users/valor-software/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valor-software/subscriptions","organizations_url":"https://api.github.com/users/valor-software/orgs","repos_url":"https://api.github.com/users/valor-software/repos","events_url":"https://api.github.com/users/valor-software/events{/privacy}","received_events_url":"https://api.github.com/users/valor-software/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/valor-software/valor-style-guides","description":"Company-shared style guides and practices","fork":false,"url":"https://api.github.com/repos/valor-software/valor-style-guides","forks_url":"https://api.github.com/repos/valor-software/valor-style-guides/forks","keys_url":"https://api.github.com/repos/valor-software/valor-style-guides/keys{/key_id}","collaborators_url":"https://api.github.com/repos/valor-software/valor-style-guides/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/valor-software/valor-style-guides/teams","hooks_url":"https://api.github.com/repos/valor-software/valor-style-guides/hooks","issue_events_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues/events{/number}","events_url":"https://api.github.com/repos/valor-software/valor-style-guides/events","assignees_url":"https://api.github.com/repos/valor-software/valor-style-guides/assignees{/user}","branches_url":"https://api.github.com/repos/valor-software/valor-style-guides/branches{/branch}","tags_url":"https://api.github.com/repos/valor-software/valor-style-guides/tags","blobs_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/refs{/sha}","trees_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/trees{/sha}","statuses_url":"https://api.github.com/repos/valor-software/valor-style-guides/statuses/{sha}","languages_url":"https://api.github.com/repos/valor-software/valor-style-guides/languages","stargazers_url":"https://api.github.com/repos/valor-software/valor-style-guides/stargazers","contributors_url":"https://api.github.com/repos/valor-software/valor-style-guides/contributors","subscribers_url":"https://api.github.com/repos/valor-software/valor-style-guides/subscribers","subscription_url":"https://api.github.com/repos/valor-software/valor-style-guides/subscription","commits_url":"https://api.github.com/repos/valor-software/valor-style-guides/commits{/sha}","git_commits_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/commits{/sha}","comments_url":"https://api.github.com/repos/valor-software/valor-style-guides/comments{/number}","issue_comment_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues/comments{/number}","contents_url":"https://api.github.com/repos/valor-software/valor-style-guides/contents/{+path}","compare_url":"https://api.github.com/repos/valor-software/valor-style-guides/compare/{base}...{head}","merges_url":"https://api.github.com/repos/valor-software/valor-style-guides/merges","archive_url":"https://api.github.com/repos/valor-software/valor-style-guides/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/valor-software/valor-style-guides/downloads","issues_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues{/number}","pulls_url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls{/number}","milestones_url":"https://api.github.com/repos/valor-software/valor-style-guides/milestones{/number}","notifications_url":"https://api.github.com/repos/valor-software/valor-style-guides/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/valor-software/valor-style-guides/labels{/name}","releases_url":"https://api.github.com/repos/valor-software/valor-style-guides/releases{/id}","created_at":"2015-01-05T18:44:37Z","updated_at":"2015-04-15T06:54:35Z","pushed_at":"2015-05-27T15:08:50Z","git_url":"git://github.com/valor-software/valor-style-guides.git","ssh_url":"git@github.com:valor-software/valor-style-guides.git","clone_url":"https://github.com/valor-software/valor-style-guides.git","svn_url":"https://github.com/valor-software/valor-style-guides","homepage":null,"size":2921,"stargazers_count":2,"watchers_count":2,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":3,"forks":2,"open_issues":3,"watchers":2,"default_branch":"master"}},"base":{"label":"valor-software:master","ref":"master","sha":"525a88b174a1a134caff79fb620bc91beee0ee3e","user":{"login":"valor-software","id":6849042,"avatar_url":"https://avatars.githubusercontent.com/u/6849042?v=3","gravatar_id":"","url":"https://api.github.com/users/valor-software","html_url":"https://github.com/valor-software","followers_url":"https://api.github.com/users/valor-software/followers","following_url":"https://api.github.com/users/valor-software/following{/other_user}","gists_url":"https://api.github.com/users/valor-software/gists{/gist_id}","starred_url":"https://api.github.com/users/valor-software/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valor-software/subscriptions","organizations_url":"https://api.github.com/users/valor-software/orgs","repos_url":"https://api.github.com/users/valor-software/repos","events_url":"https://api.github.com/users/valor-software/events{/privacy}","received_events_url":"https://api.github.com/users/valor-software/received_events","type":"Organization","site_admin":false},"repo":{"id":28826243,"name":"valor-style-guides","full_name":"valor-software/valor-style-guides","owner":{"login":"valor-software","id":6849042,"avatar_url":"https://avatars.githubusercontent.com/u/6849042?v=3","gravatar_id":"","url":"https://api.github.com/users/valor-software","html_url":"https://github.com/valor-software","followers_url":"https://api.github.com/users/valor-software/followers","following_url":"https://api.github.com/users/valor-software/following{/other_user}","gists_url":"https://api.github.com/users/valor-software/gists{/gist_id}","starred_url":"https://api.github.com/users/valor-software/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valor-software/subscriptions","organizations_url":"https://api.github.com/users/valor-software/orgs","repos_url":"https://api.github.com/users/valor-software/repos","events_url":"https://api.github.com/users/valor-software/events{/privacy}","received_events_url":"https://api.github.com/users/valor-software/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/valor-software/valor-style-guides","description":"Company-shared style guides and practices","fork":false,"url":"https://api.github.com/repos/valor-software/valor-style-guides","forks_url":"https://api.github.com/repos/valor-software/valor-style-guides/forks","keys_url":"https://api.github.com/repos/valor-software/valor-style-guides/keys{/key_id}","collaborators_url":"https://api.github.com/repos/valor-software/valor-style-guides/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/valor-software/valor-style-guides/teams","hooks_url":"https://api.github.com/repos/valor-software/valor-style-guides/hooks","issue_events_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues/events{/number}","events_url":"https://api.github.com/repos/valor-software/valor-style-guides/events","assignees_url":"https://api.github.com/repos/valor-software/valor-style-guides/assignees{/user}","branches_url":"https://api.github.com/repos/valor-software/valor-style-guides/branches{/branch}","tags_url":"https://api.github.com/repos/valor-software/valor-style-guides/tags","blobs_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/refs{/sha}","trees_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/trees{/sha}","statuses_url":"https://api.github.com/repos/valor-software/valor-style-guides/statuses/{sha}","languages_url":"https://api.github.com/repos/valor-software/valor-style-guides/languages","stargazers_url":"https://api.github.com/repos/valor-software/valor-style-guides/stargazers","contributors_url":"https://api.github.com/repos/valor-software/valor-style-guides/contributors","subscribers_url":"https://api.github.com/repos/valor-software/valor-style-guides/subscribers","subscription_url":"https://api.github.com/repos/valor-software/valor-style-guides/subscription","commits_url":"https://api.github.com/repos/valor-software/valor-style-guides/commits{/sha}","git_commits_url":"https://api.github.com/repos/valor-software/valor-style-guides/git/commits{/sha}","comments_url":"https://api.github.com/repos/valor-software/valor-style-guides/comments{/number}","issue_comment_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues/comments{/number}","contents_url":"https://api.github.com/repos/valor-software/valor-style-guides/contents/{+path}","compare_url":"https://api.github.com/repos/valor-software/valor-style-guides/compare/{base}...{head}","merges_url":"https://api.github.com/repos/valor-software/valor-style-guides/merges","archive_url":"https://api.github.com/repos/valor-software/valor-style-guides/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/valor-software/valor-style-guides/downloads","issues_url":"https://api.github.com/repos/valor-software/valor-style-guides/issues{/number}","pulls_url":"https://api.github.com/repos/valor-software/valor-style-guides/pulls{/number}","milestones_url":"https://api.github.com/repos/valor-software/valor-style-guides/milestones{/number}","notifications_url":"https://api.github.com/repos/valor-software/valor-style-guides/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/valor-software/valor-style-guides/labels{/name}","releases_url":"https://api.github.com/repos/valor-software/valor-style-guides/releases{/id}","created_at":"2015-01-05T18:44:37Z","updated_at":"2015-04-15T06:54:35Z","pushed_at":"2015-05-27T15:08:50Z","git_url":"git://github.com/valor-software/valor-style-guides.git","ssh_url":"git@github.com:valor-software/valor-style-guides.git","clone_url":"https://github.com/valor-software/valor-style-guides.git","svn_url":"https://github.com/valor-software/valor-style-guides","homepage":null,"size":2921,"stargazers_count":2,"watchers_count":2,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":3,"forks":2,"open_issues":3,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9"},"html":{"href":"https://github.com/valor-software/valor-style-guides/pull/9"},"issue":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/issues/9"},"comments":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/issues/9/comments"},"review_comments":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9/comments"},"review_comment":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/pulls/9/commits"},"statuses":{"href":"https://api.github.com/repos/valor-software/valor-style-guides/statuses/a738ad6314a1b5844b3c2a0faf87083d9d6e5f1b"}}}}