Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's so great about git?

For someone coming from a more conventional VCS background (CVS/SVN), what are the most compelling reasons to learn and migrate to git?

Please comment upon a team's required technical ability in order to make git work. I've seen smart people climb the learning curve and still lose some hair over it. Can anyone climb this curve, or is git not for all teams?

Of course I also want to hear about functional benefits, tool support, integration other systems (CI, etc)...

(This seems like an obvious question, but I didn't find a duplicate of this despite a few searches)

EDIT Links to good resources also appreciated.

like image 369
Drew Noakes Avatar asked Feb 13 '09 08:02

Drew Noakes


People also ask

Why is GitHub so amazing?

Over the last decade, GitHub has turned into the world's largest open-source platform for software development that provides cloud storage for source code, code sharing, networking, publishing services, and code talks.

Is Git really necessary?

Git and GitHub are the most important tools that a software developer must always carry in his toolkit. Before diving into the specifics of these two, let us understand the basic workflow of a software development firm. Then you will understand why these tools will be useful in your development journey.

What is the advantage & disadvantage of Git?

They are free and open-source we can easily download the source code and performs changes to it. They can handle larger projects efficiently. The push/pull operations are faster with a simple They save time and developers can fetch and create pull requests without switching.

Why do we need to learn Git?

Git is the most commonly used version control system. Git tracks the changes you make to files, so you have a record of what has been done, and you can revert to specific versions should you ever need to. Git also makes collaboration easier, allowing changes by multiple people to all be merged into one source.


1 Answers

On the top of my head:

  • its distributed aspect (each developer has a copy of the repository)
  • The ability to handle complex merges very quickly
  • the possibility to switch from task to task, shelve his work, go back to it...
  • cheap branching (instant switch: it just writes a few bits in a file! And it does not consider a branch as a directory like SVN does)

The main difficulty is to establish a workflow between the different repos, without breaking the history of what has already been published (pushed to a public repo).

alt text
(source: infoq.com)

The rebase in particular can be difficult to use correctly at first, since it does rewrite the history of a branch, and that changes the SHA1 which is associated with it: to a public branch, that means lots of merges from the other developers pulling from it.

like image 101
VonC Avatar answered Sep 21 '22 14:09

VonC