Branching and merging best practices in Git

前端 未结 3 1569
广开言路
广开言路 2021-01-29 23:14

We have a developer team of 4 and have recently moved to Git. We want to learn best practices regarding workflow with branching and merging.

We are using a lightweight

3条回答
  •  南方客
    南方客 (楼主)
    2021-01-29 23:32

    While Git Flow is an excellent branching model, the questions you are asking are a symptom of a bigger problem: Git Flow is too heavy for a small team working on a consumer web product (I am making an assumption that you are working on consumer web product, feel free to ignore if you are coding nuclear power plant control room).

    I would like to encourage you to consider Continuous Deployment (CD) with an extremely simple branching model:

    Master -> Branch

    It is very easy to setup CD nowadays:

    1. Use Travis, CodeShip, Jenkins or similar system to run a full build and test suite on every commit pushed on every branch of your codebase
    2. Setup Travis/Codeship/Jenkins to deploy to production every commit to master that passes the tests.
    3. Create a new branch from master for every new feature.
    4. Code a new feature and test it on a branch.
    5. Merge a feature branch into master, and watch it go live.

    There are a lot of common objections to it, that all can be summarized as "but what if I introduce a bug?!". The answer is "You'll fix it!". If you write tests, if you monitor your production site, if you do code reviews, if you practice pair programming, if you use feature flags, and if you keep your features small, then the benefits you get from CD will outweigh the occasional problems any day.

    I encourage you to try. It will free your mind to focus on what truly matters: building a great product! If you do not believe me, take a look at this excellent presentation from Github.

提交回复
热议问题