To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes).Anything in the master branch is deployable.It's all the same process and it's all very simple. We can respond to security issues that are brought to our attention or implement small but interesting feature requests incredibly quickly, yet we can use the exact same process to address those changes as we do to handle normal or even large feature development. Normally you would have to do a 'hotfix' or something outside of the normal process, but it's simply part of our normal process - there is no difference in the GitHub flow between a hotfix and a very small feature.Īnother advantage of deploying all the time is the ability to quickly address issues of all kinds. Little issues can be introduced, but then they can be fixed and redeployed very quickly. If you deploy every few hours, it's almost impossible to introduce large numbers of big bugs. There are a number of advantages to deploying so regularly. We try to make the process of testing and shipping as simple as possible so that every employee feels comfortable doing it. We can do so through our chat room robot, which is the same place our CI results are displayed. We don't really have "releases" because we deploy to production every day - often several times a day. The git-flow process is designed largely around the "release". So, why don't we use git-flow at GitHub? Well, the main issue is that we deploy all the time. Another is that we don't need a wrapper script to help enforce it or follow it, so using GUIs and such are not a problem. One is that it's easy for people to understand, which means they can pick it up quickly and they rarely if ever mess it up or have to undo steps they did wrong. Its simplicity gives it a number of advantages. We use, and always have used, a much simpler Git workflow. This can be a huge problem.īoth of these issues can be solved easily just by having a much more simplified process. Though this is cool, the issue is that it cannot be enforced in a Git GUI, only on the command line, so the only people who have to learn the complex workflow really well, because they have to do all the steps manually, are the same people who aren't comfortable with the system enough to use it from the command line. It's complicated enough that a big helper script was developed to help enforce the flow. One of the bigger issues for me is that it's more complicated than I think most developers and development teams actually require. I have heard a number of opinions from people along the lines of not liking that new feature branches are started off of develop rather than master, or the way it handles hotfixes, but those are fairly minor. It has become something of a standard so that developers can move between projects or companies and be familiar with this standardized workflow. I always answer that I think that it's great - it has taken a system (Git) that has a million possible workflows and documented a well tested, flexible workflow that works for lots of developers in a fairly straightforward manner. Read More.I travel all over the place teaching Git to people and nearly every class and workshop I've done recently has asked me what I think about git-flow. This program has saved my projects from disasters repeatedly over the years and I strongly recommend giving it a try. The version control management of the features enables users to mitigate catastrophic events and enables users to properly coordinate changes to projects and aids in documentation of the project. Overall: GitHub is an amazing program and easily my favorite collaborative too. This said, it is a relatively minor issue and as long as the computer has decent resources it is not much of an issue. I have used this tool nearly daily for several years, I would not change it for any others that I have tried over that same time period.Ĭons: The user interface can be a tad obtuse at times and has some minor performance issues. The ease of use of this tool for what it does is spectacular and beats all of its competition in my opinion for collaborative tools in a similar space. It is very easy for new users on a team to be able to setup their own branch and easily maintain it by pulling from the designated master branch which helps immensely in version control. Pros: Nearly everything, the branch management is excellent to start with.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |