Little context: We are a team of 6 developers working a web application. Since launch we have been using CVS as our source control system on a Windows server using ColdFusion w/ Eclipse. With all the hype around Git and distributed systems lately we thought we would check it out.
As a standard web application we have our local environment where we develop new features/bug fixes. A development environment where we push everything for initial testing by QA. Staging where we send features/fixes that have been tested already this environment is to mimic as much as possible our production servers. Finally everything goes on the live system out in the wilderness...
This process is fairly painful sometime as most of it is done with FTP and what not and often we encounter conflicts when committing since something is taking longer than usual to test or when a quick bug fix is required urgently.
I am a little confused as to how Git would work in this case, it's obviously not an uncommon scenario but most of what I've found didn't talk about it in details.
If I understand correctly local branches play a significant roles with Git, I clone the git repository first then branch out fix something and commit it back all locally?
Then I get to commit it back to the main repository under the trunk dealing with merges conflicts if there are any?
If my assumptions are correct then the main question is what happen with staging. Obviously some features/fix take longer to test, some are more urgent, etc. Would I be able to simply do something like a pull of certain features/branches onto staging for final sign-off and then do the same from the live server (pull as they are signed off)?
It's quite a lot to take in coming from a CVS background...any help would be greatly appreciated!
Overview. Git is an excellent resource to use for web development as it allows you to streamline live updates in addition to providing a copy of your website files. For example, you can create your website on your home computer and use Git to push a copy of those files to your DreamHost web server.
Git is a DevOps tool used for source code management. It is a free and open-source version control system used to handle small to very large projects efficiently. Git is used to tracking changes in the source code, enabling multiple developers to work together on non-linear development.
Git is an example of a VCS, and GitHub is a web site + infrastructure that provides a Git server plus a number of really useful tools for working with git repositories individually or in teams, such as reporting issues with the code, reviewing tools, project management features such as assigning tasks and task statuses ...
The idea is to define:
The basic workflow is based on pushing/pulling branches between those environments (repos):
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With