Blog Posts with Tag GIT
Many branching strategies work to split up work into smaller pieces that are regularly integrated into a mainline branch. However, often time it is difficult to do this with much larger tasks. I want to highlight a common software development strategy used to overcome this: Branching by Abstraction. What is Branching by Abstraction? When modifying an area of the system, a contract is introduced which encapsulates the public interface of some functionality to change. Once the…
In the past, I have written several posts about GIT on my blog. Specifically, I want to reflect on the lessons I have learned while trying to determine the appropriate branching strategy for various projects. Over the years, I have had to make this decision numerous times and realized that documenting my experiences would help me better organize my thoughts. In this blog post, I plan to highlight a few of the main branching strategies I have utilized in the past, along with…
Up to this point, we've covered the internal object structure of GIT and the basics of how branches work and how GIT internally tracks branches. I wanted to highlight merging specifically to show how commit objects change based on the different merge types. Merging in GIT Merging in GIT is the act of combining two or more commits together. There are a few common ways this happens. The fast-forward merge, a traditional merge, and a squash merge. Fast Forward Merge In my…
Branching in source control is crucial to building software, and understanding how branching works in GIT can make it much easier to use. Branching is a concept in GIT that differs drastically from traditional source control providers. In my previous post, I discussed the internal structure of GIT commits. In this post, I'm going to talk about branching and how it relates to those commits. Review As we had seen in my previous post on GIT storage, a commit is a snapshot of…
I really like GIT. I've been using it in some form for the past 10 years. First to keep personal projects, and later at work. In stack overflow surveys of developer, GIT it consistently ranks high in usage with 90%+ of surveyed developer utilization using it in the last survey. Considering the segmentation of developer languages and tools, there are not many tools with that much adoption. I want to take a look through the internals of how it stores information underneath a…