书目名称 | Practical Git | 副标题 | Confident Git Throug | 编辑 | Johan Abildskov | 视频video | | 概述 | Build understanding through practice: focus on practical exercises rather than overall concepts.Teaches the Git Katas that have benefited 800+ developers at workshops worldwide.Written by Johan Abilds | 图书封面 |  | 描述 | .Practice your Git skills using exercises in your own environment. This book introduces concepts in an abstract visual way, and then enforces this learning through exercises - the Git katas...You will start with basic interactions such as commits and branches, and move on to both internals and collaborative workflows. Best practices are introduced and rehearsed throughout with hands-on exercises. Each topic is supplemented with interactive Git exercises that can be solved using any Git client – either the ubiquituous CLI or one of the many graphical clients so you‘ll learn in the environment you work in...The importance of Git is hard to overstate – it is used by 90% of software engineers worldwide and is the de facto standard for version control. Honing your Git skills is guaranteed to make you a better and more efficient developer. Building software can be stressful, but it doesn’t need to be. .Practical Git. will give you the Git skills you need, and help keep your Git skills sharp. Add it to your library today...What You‘ll Learn.Use Git through scripted exercises and the Git katas .Understand Git’s graph model.Troubleshoot common and rare scenarios you may face.Select and appl | 出版日期 | Book 2020 | 关键词 | Git; learning git; git exercises; version control; modern version control; how does git work; git guide; br | 版次 | 1 | doi | https://doi.org/10.1007/978-1-4842-6270-2 | isbn_softcover | 978-1-4842-6269-6 | isbn_ebook | 978-1-4842-6270-2 | copyright | Johan Abildskov 2020 |
1 |
,Git Intuition, |
Johan Abildskov |
|
Abstract
We’ve all tried it. We get our Git repository in some inconsistent and irreconcilable state. We have found many solutions on Stack Overflow and hesitantly pasted into our command lines. But after each attempt at getting back to a sane state, we feel ourselves sliding further and further away from resolving our Git problem. So we delete our local repository, clone the repository, and start over. I know I have been in that situation more than once. This situation is widespread and is symptomatic of a lack of intuition about how Git works. We tend to choose the path of least resistance, and in Git terms, that means we learn to commit, push, and pull. In some cases, we learn to work with branches, but we become uncomfortable if we veer away from the happy path.
|
2 |
,Git Intuition, |
Johan Abildskov |
|
Abstract
We’ve all tried it. We get our Git repository in some inconsistent and irreconcilable state. We have found many solutions on Stack Overflow and hesitantly pasted into our command lines. But after each attempt at getting back to a sane state, we feel ourselves sliding further and further away from resolving our Git problem. So we delete our local repository, clone the repository, and start over. I know I have been in that situation more than once. This situation is widespread and is symptomatic of a lack of intuition about how Git works. We tend to choose the path of least resistance, and in Git terms, that means we learn to commit, push, and pull. In some cases, we learn to work with branches, but we become uncomfortable if we veer away from the happy path.
|
3 |
,Building Commits, |
Johan Abildskov |
|
Abstract
In this chapter, we will cover commits in detail. Commits are the basic building blocks of our history, both containing the actual content of our versions and the parent pointers that define our history. Deliberately fashioning commits and attaching well-formed commit messages to them are foundational skills needed to be a valuable individual contributor in a collaborative setting.
|
4 |
,Building Commits, |
Johan Abildskov |
|
Abstract
In this chapter, we will cover commits in detail. Commits are the basic building blocks of our history, both containing the actual content of our versions and the parent pointers that define our history. Deliberately fashioning commits and attaching well-formed commit messages to them are foundational skills needed to be a valuable individual contributor in a collaborative setting.
|
5 |
,Linear History, |
Johan Abildskov |
|
Abstract
Git is famously known for its lightweight branches. They are highly performant both in terms of creation and merging. They are also relatively simple to use as a developer. Anyone who has been in a seemingly unresolvable merge conflict will contest this statement.
|
6 |
,Linear History, |
Johan Abildskov |
|
Abstract
Git is famously known for its lightweight branches. They are highly performant both in terms of creation and merging. They are also relatively simple to use as a developer. Anyone who has been in a seemingly unresolvable merge conflict will contest this statement.
|
7 |
,Complex Branching, |
Johan Abildskov |
|
Abstract
In the last chapter, we looked at a linear history. This can be fine for trivial repositories, but if we are confident working with branches, it will introduce almost no overhead, so we can wield the power of branches, even for our simplest projects.
|
8 |
,Complex Branching, |
Johan Abildskov |
|
Abstract
In the last chapter, we looked at a linear history. This can be fine for trivial repositories, but if we are confident working with branches, it will introduce almost no overhead, so we can wield the power of branches, even for our simplest projects.
|
9 |
,Collaboration in Git, |
Johan Abildskov |
|
Abstract
As with many other things, software development is not fun until we do it together with other people. Unfortunately, most software developers are not introduced to Git in a healthy setting. Either they are experiencing Git for the setting in a classroom where the professor has understood that Git is important and that someone should be teaching it to the students, but it is simply a footnote in a much larger curriculum. Or they are introduced to workflows and collaboration in Git in some organization that are more concerned with doing things according to the described process than in a meaningful way. This chapter will hopefully get you back on track and enable you to select a Git workflow and work efficiently with colleagues.
|
10 |
,Collaboration in Git, |
Johan Abildskov |
|
Abstract
As with many other things, software development is not fun until we do it together with other people. Unfortunately, most software developers are not introduced to Git in a healthy setting. Either they are experiencing Git for the setting in a classroom where the professor has understood that Git is important and that someone should be teaching it to the students, but it is simply a footnote in a much larger curriculum. Or they are introduced to workflows and collaboration in Git in some organization that are more concerned with doing things according to the described process than in a meaningful way. This chapter will hopefully get you back on track and enable you to select a Git workflow and work efficiently with colleagues.
|
11 |
,Manipulating History, |
Johan Abildskov |
|
Abstract
It may seem very counterintuitive that I put a full chapter into manipulating history. Version control is at its core about traceability, reproducibility, and immutability. But Git lets you manipulate the history. For any public history, published to colleagues or available on the Internet, we must tread very carefully and use with care and responsibility the powers this chapter bestows us. But for local history, before we‘d publish it can bring tremendous value to sculpt the
|
12 |
,Manipulating History, |
Johan Abildskov |
|
Abstract
It may seem very counterintuitive that I put a full chapter into manipulating history. Version control is at its core about traceability, reproducibility, and immutability. But Git lets you manipulate the history. For any public history, published to colleagues or available on the Internet, we must tread very carefully and use with care and responsibility the powers this chapter bestows us. But for local history, before we‘d publish it can bring tremendous value to sculpt the
|
13 |
,Customizing Git, |
Johan Abildskov |
|
Abstract
Git is an engineer’s tool, built by engineers. This means that while Git works a certain way out of the box, the real power is unleashed when we start customizing Git to match our way of working. With Git, we can do a lot in terms of simple configurations, creating shortcuts for the tasks that we often use, or have repository-specific configurations to help us manage the different contexts in which we work.
|
14 |
,Customizing Git, |
Johan Abildskov |
|
Abstract
Git is an engineer’s tool, built by engineers. This means that while Git works a certain way out of the box, the real power is unleashed when we start customizing Git to match our way of working. With Git, we can do a lot in terms of simple configurations, creating shortcuts for the tasks that we often use, or have repository-specific configurations to help us manage the different contexts in which we work.
|
15 |
,Additional Git Features, |
Johan Abildskov |
|
Abstract
In this chapter, I have a lovely amalgam of Git features for you – features that I could not find any place to put. The reason they ended up here might be that where they would have originally fit, we had not established the right mental models, or that they are slightly tangential to the rest of the content in this book. These are features that might help you in your work but should not come into play on an everyday basis. Being aware of their existence might key you in for those dire situations where they are just the right thing for you. We cover figuring out what specific commit introduced a discrepancy using Git bisect. We use Git Submodules to manage dependencies between repositories. And we are going to use Git Large File Storage or Git LFS for short. If you made it this far, congratulations. You have completed the Practical Git curriculum and mastered the foundations. The rest is the icing on the cake.
|
16 |
,Additional Git Features, |
Johan Abildskov |
|
Abstract
In this chapter, I have a lovely amalgam of Git features for you – features that I could not find any place to put. The reason they ended up here might be that where they would have originally fit, we had not established the right mental models, or that they are slightly tangential to the rest of the content in this book. These are features that might help you in your work but should not come into play on an everyday basis. Being aware of their existence might key you in for those dire situations where they are just the right thing for you. We cover figuring out what specific commit introduced a discrepancy using Git bisect. We use Git Submodules to manage dependencies between repositories. And we are going to use Git Large File Storage or Git LFS for short. If you made it this far, congratulations. You have completed the Practical Git curriculum and mastered the foundations. The rest is the icing on the cake.
|
17 |
,Git Internals, |
Johan Abildskov |
|
Abstract
As the book comes closer to its end, I will use a few pages geeking out about some of the internals of Git, to help solidify the mental models and demystify the bowels of Git. The purpose of this chapter is not to be thorough or exhaustive, nor will it allow you to become a contributor to Git, though I do encourage everyone to consider contributing to open source. We will open up the hood of Git and see how some of the components are wired together, such that we can better reason about what is going on, and should the worst come to worst, we can dig deep.
|
18 |
,Git Internals, |
Johan Abildskov |
|
Abstract
As the book comes closer to its end, I will use a few pages geeking out about some of the internals of Git, to help solidify the mental models and demystify the bowels of Git. The purpose of this chapter is not to be thorough or exhaustive, nor will it allow you to become a contributor to Git, though I do encourage everyone to consider contributing to open source. We will open up the hood of Git and see how some of the components are wired together, such that we can better reason about what is going on, and should the worst come to worst, we can dig deep.
|
|
|