We always use Git for our code version control needs. No matter how big or small the project is, Git is required at all times as it allows us to track changes, revert to previous without using
ctrl-z 😨 and primarily work efficiently as a team.
We use Github to host our code for all kinds of projects.
This is how we decide whether the repository should be public or private:
- Private repository for our closed source or clients’ projects.
- Public repository for open source projects developed by us.
No specific tool is enforced at the team level to use Git on a local machine. The following tools are the ones most commonly used.
The built-in terminal in Mac OS or the powerful iTerm2 replacement terminal.
The terminal experience can be greatly enhanced when used in combination with Github CLI.
Built-in Tool in IDEs
Whether using Visual Studio Code or one of the JetBrain’s IDE - we mostly use RubyMine, GoLand and Android Studio - all IDEs come with a built-in panel to interact visually with Git.
Github Desktop and Sourcetree provide similar benefits as the built-in Git tool in IDEs in interacting visually with Git but, as a standalone and focused application, they also come with more advanced functionalities.
These tools, while targeted at developers, are also well-suited for non-technical team members as it removes the need to learn Git commands.
When starting a new project, our custom and maintained template repositories for each stack must be used:
- Android: github.com/nimblehq/android-templates
- ElixirL github.com/nimblehq/elixir-templates
- Go: github.com/nimblehq/gin-templates
- iOS: github.com/nimblehq/ios-templates
- Ruby: github.com/nimblehq/rails-templates
In the event that none of this project template is suited, the Git project template repository must be used to initialize the project.
The repository comes with a standardized README, pull request and issue templates.