Pushing code

Overview

All of the contributed "knowledge" and code is stored in a remote GIT repository in Bitbucket. The repository is called "indeni-knowledge".

The repository has one "master" branch, which is what we release to customers. It also has a "staging" branch, where all new code is stored for testing prior to being merged into "master". Each contributor creates their own development branch, branched from master, and commits their code there; then, regularly "pushes" the commits up to the remote server for backup.
When all the code is ready, the contributor creates a pull request in order to merge their changes from the private branch into the shared develop branch.



What are GIT, GitHub, Sourcetree, and Bitbucket?

First: git and GitHub are not the same thing: git is client-side (a local executable), and GitHub is server-side. You can use git to manage your local code source and "push" updates to the remote GitHub server.

There are many different clients and servers in the "git ecosystem". git is a command-line client. There are many other clients, esp. GUI clients that use git under the hood. Sourcetree is a client that many indeni developers use. In terms of servers, GitHub is the most well-known git server, but indeni doesn't use GitHub, it uses a server called Bitbucket. You can use any git client to interact with Bitbucket. Broadly speaking, Bitbucket is the 'same thing' as GitHub. But, Bitbucket and Sourcetree are Atlassian products, and so they have some very helpful integration with other Atlassian products, most importantly Jira. You'll see how some of this integration works below.