Git is an open-source distributed version control system (DVCS).

- Stackoverflow.com Wiki
32 articles, 2 books. Go to books ↓

This website is designed to help you understand some basic git concepts visually.


An alias is simply a way to add a shorthand for a common Git command or set of Git commands.


Create useful .gitignore files for your project


A merge is an operation carried out between branches. It is the process of pulling the changes made in one branch into another branch.


This is a continuation of a tutorial blog series to learn the basics of Git, using GitHub and the GitHub client.


Git rebase in its simplest form is a command which will merge another branch into the branch where you are currently working, and move all of the local commits that are ahead of the rebased branch to the top of the history on that branch.


Git branches are light and fast. You want to take advantage of these abilities by often forking and experimenting with new code, and sharing them with others when they’re ripe. Need to work on a breaking change without disrupting your main branch, no problem. Branch and push. Need to contribute to someone else’s branch, no problem. Pull, commit and push. Need to see if there’s a new branch to work on, no problem. Fetch and checkout.


Advanced git commands that you may find useful whether you are working in a team environment or on your personal project.


Imagine you have the master branch, latest commit checked out. You know that a previous version branch worked fine. Git will analyze how many revisions exist between good and bad, split the difference, and checkout that commit.


This methodology is the most effective way to leverage the power of Distributed Version Control Systems - specifically Git. This work is the result of an in depth analysis of Continuous Intergration and the notion of responsible Continuous Delivery. The inherent risks that de facto CI and CD introduce are mitigated by what others now refer to as “The Dymitruk Model”


This application is designed to help beginners grasp the powerful concepts behind branching when working with git. We hope you enjoy this application and maybe even learn something!


Git is a fantastic choice for tracking the evolution of your code base and to collaborate efficiently with your peers. But what happens when the repository you want to track is really huge?


This is a Git Style Guide inspired by How to Get Your Change Into the Linux Kernel, the git man pages and various practices popular among the community.


Rebase, what is it and why would I want to use it?


One of the most useful features of any version control system is the ability to "undo" your mistakes. In Git, "undo" can mean many slightly different things. When you make a new commit, Git stores a snapshot of your repository at that specific moment in time; later, you can use Git to go back to an earlier version of your project.


Stubbornly Refusing to Speak The Computer's Language.


Let's consider this: say you have a git repository, make a commit, and get very very unlucky: one of the blobs end up having the same SHA-1 as another that is already in your repository. Question is, how would git handle this? Simply fail? Find a way to link the two blobs and check which one is needed according to the context?


The git rerere functionality is a bit of a hidden feature. The name stands for "reuse recorded resolution" and as the name implies, it allows you to ask Git to remember how you've resolved a hunk conflict so that the next time it sees the same conflict, Git can automatically resolve it for you.


Git it’s such a powerful, elegant tool and it’s one I use the most often. I thought I would note down some useful little Git snippets that I use the most frequently.


Git has quickly become an incredibly popular version control system, but how does it actually work? It's very different from a centralized version control system, and understanding how it models history allows you to understand how to use it.