Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Product Lifecycle
  3. Free Tools
  4. Why Git is Broken (in my opinion)

Why Git is Broken (in my opinion)

Scheduled Pinned Locked Moved Free Tools
collaborationannouncementdesigntoolsjson
11 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    pdohara
    wrote on last edited by
    #1

    First a little background. We have started using Git where I work, so I was directed to use it rather than my seeking Git out. I do development at work on Windows and at Home on a MacBook. I have been doing development for a number of years (multiple decades in fact) and have used most Revision Control and Version Control tools at one point or another. Now for why I believe Git is broken. Git's UI sucks Please note that I said UI, not GUI. Although many people have issues with command line interfaces, I prefer them. Git's CLI is poor, because the way Git models changes for the user is poor. A great deal of the internal structure is shared with the user. If this where simply window dressing that would be only annoying. Those interested could look and the rest of us could ignore those details. Unfortunately, Git requires that you pay attention to those details and sometimes that you edit the repository just to accomplish your day to day work as a developer. I expect that a release manager or build engineer will need to get into the details of how the source code is being versioned, but a developer should not be expected to pay attention to these details. Bit's Merging is Broken The flow that we use is Fetch and Rebase. When I rebase I expect Git to make at least one mistake while fast forwarding the changes. I am usually not disappointed. So for a group of say 10 commits there will typically be one or two mistakes in those commits. These are not flagged as conflicts. Git is confident in its ability to make these changes. And it is wrong. Git uses the wrong Vocabulary In my opinion words do not matter except for the shared definitions. It is not important that the color orange be called orange, but rather that we all agree that the banner at the top of this page is orange. From that perspective there is no justification for redefining/repurposing words that have a well know well understood meaning. In some cases (checkout) the confusion is not terrible and may just be an evolution because the tool works differently. In other cases (reset) it is misleading to the user. It is uncalled. Git Requires Extra Steps I have heard this called the Git Tax. What used to be one or two steps (check in, and possibly merge) has become several steps (commit, fetch, rebase, possibly merge, push). Of course the easiest to forget to do is the push. This is the least annoying of these issues, but given that Git provide no advantage to me (in my opinion and for my use case

    L J R 3 Replies Last reply
    0
    • P pdohara

      First a little background. We have started using Git where I work, so I was directed to use it rather than my seeking Git out. I do development at work on Windows and at Home on a MacBook. I have been doing development for a number of years (multiple decades in fact) and have used most Revision Control and Version Control tools at one point or another. Now for why I believe Git is broken. Git's UI sucks Please note that I said UI, not GUI. Although many people have issues with command line interfaces, I prefer them. Git's CLI is poor, because the way Git models changes for the user is poor. A great deal of the internal structure is shared with the user. If this where simply window dressing that would be only annoying. Those interested could look and the rest of us could ignore those details. Unfortunately, Git requires that you pay attention to those details and sometimes that you edit the repository just to accomplish your day to day work as a developer. I expect that a release manager or build engineer will need to get into the details of how the source code is being versioned, but a developer should not be expected to pay attention to these details. Bit's Merging is Broken The flow that we use is Fetch and Rebase. When I rebase I expect Git to make at least one mistake while fast forwarding the changes. I am usually not disappointed. So for a group of say 10 commits there will typically be one or two mistakes in those commits. These are not flagged as conflicts. Git is confident in its ability to make these changes. And it is wrong. Git uses the wrong Vocabulary In my opinion words do not matter except for the shared definitions. It is not important that the color orange be called orange, but rather that we all agree that the banner at the top of this page is orange. From that perspective there is no justification for redefining/repurposing words that have a well know well understood meaning. In some cases (checkout) the confusion is not terrible and may just be an evolution because the tool works differently. In other cases (reset) it is misleading to the user. It is uncalled. Git Requires Extra Steps I have heard this called the Git Tax. What used to be one or two steps (check in, and possibly merge) has become several steps (commit, fetch, rebase, possibly merge, push). Of course the easiest to forget to do is the push. This is the least annoying of these issues, but given that Git provide no advantage to me (in my opinion and for my use case

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      pdohara wrote:

      I have written this largely to get it out of my head.

      So why not choose the correct forum?

      Veni, vidi, abiit domum

      P 1 Reply Last reply
      0
      • P pdohara

        First a little background. We have started using Git where I work, so I was directed to use it rather than my seeking Git out. I do development at work on Windows and at Home on a MacBook. I have been doing development for a number of years (multiple decades in fact) and have used most Revision Control and Version Control tools at one point or another. Now for why I believe Git is broken. Git's UI sucks Please note that I said UI, not GUI. Although many people have issues with command line interfaces, I prefer them. Git's CLI is poor, because the way Git models changes for the user is poor. A great deal of the internal structure is shared with the user. If this where simply window dressing that would be only annoying. Those interested could look and the rest of us could ignore those details. Unfortunately, Git requires that you pay attention to those details and sometimes that you edit the repository just to accomplish your day to day work as a developer. I expect that a release manager or build engineer will need to get into the details of how the source code is being versioned, but a developer should not be expected to pay attention to these details. Bit's Merging is Broken The flow that we use is Fetch and Rebase. When I rebase I expect Git to make at least one mistake while fast forwarding the changes. I am usually not disappointed. So for a group of say 10 commits there will typically be one or two mistakes in those commits. These are not flagged as conflicts. Git is confident in its ability to make these changes. And it is wrong. Git uses the wrong Vocabulary In my opinion words do not matter except for the shared definitions. It is not important that the color orange be called orange, but rather that we all agree that the banner at the top of this page is orange. From that perspective there is no justification for redefining/repurposing words that have a well know well understood meaning. In some cases (checkout) the confusion is not terrible and may just be an evolution because the tool works differently. In other cases (reset) it is misleading to the user. It is uncalled. Git Requires Extra Steps I have heard this called the Git Tax. What used to be one or two steps (check in, and possibly merge) has become several steps (commit, fetch, rebase, possibly merge, push). Of course the easiest to forget to do is the push. This is the least annoying of these issues, but given that Git provide no advantage to me (in my opinion and for my use case

        J Offline
        J Offline
        jschell
        wrote on last edited by
        #3

        pdohara wrote:

        Let the flames commence

        And which other system is not broken and is perfect? My problem with Git is that it doesn't support multiple independent deliverables within a single repository. Other than that it is neither significantly worse nor significantly better than anything else.

        1 Reply Last reply
        0
        • L Lost User

          pdohara wrote:

          I have written this largely to get it out of my head.

          So why not choose the correct forum?

          Veni, vidi, abiit domum

          P Offline
          P Offline
          pdohara
          wrote on last edited by
          #4

          I assume that you believe this is not the correct forum, but as you did not offer an alternative I can only guess at your intention. :)

          Tanks for your support
          Pat O
          Blog

          _ _ _
          /*\== /*\== /*\==
          <ooo> <ooo> <ooo>

          L 1 Reply Last reply
          0
          • P pdohara

            I assume that you believe this is not the correct forum, but as you did not offer an alternative I can only guess at your intention. :)

            Tanks for your support
            Pat O
            Blog

            _ _ _
            /*\== /*\== /*\==
            <ooo> <ooo> <ooo>

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #5

            pdohara wrote:

            I can only guess at your intention.

            Well you could start by reading the text at the top and see why it is the wrong one. Then you could try some of the others to see which one is appropriate.

            Veni, vidi, abiit domum

            P 1 Reply Last reply
            0
            • L Lost User

              pdohara wrote:

              I can only guess at your intention.

              Well you could start by reading the text at the top and see why it is the wrong one. Then you could try some of the others to see which one is appropriate.

              Veni, vidi, abiit domum

              P Offline
              P Offline
              pdohara
              wrote on last edited by
              #6

              So again reading between the lines you are saying that you do not see this as a review of Git? Or perhaps you do not see Git as a free tool?

              Tanks for your support
              Pat O
              Blog

              _ _ _
              /*\== /*\== /*\==
              <ooo> <ooo> <ooo>

              L 1 Reply Last reply
              0
              • P pdohara

                So again reading between the lines you are saying that you do not see this as a review of Git? Or perhaps you do not see Git as a free tool?

                Tanks for your support
                Pat O
                Blog

                _ _ _
                /*\== /*\== /*\==
                <ooo> <ooo> <ooo>

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #7

                pdohara wrote:

                you do not see this as a review of Git

                No, it's just you ranting because you don't like it; at least that's how it reads. You say it's broken and yet there are people using it all over the world. If you really believe it's broken then I would expect http://git-scm.com/community[^] to be the place to report it.

                Veni, vidi, abiit domum

                P 1 Reply Last reply
                0
                • L Lost User

                  pdohara wrote:

                  you do not see this as a review of Git

                  No, it's just you ranting because you don't like it; at least that's how it reads. You say it's broken and yet there are people using it all over the world. If you really believe it's broken then I would expect http://git-scm.com/community[^] to be the place to report it.

                  Veni, vidi, abiit domum

                  P Offline
                  P Offline
                  pdohara
                  wrote on last edited by
                  #8

                  Quote:

                  No, it's just you ranting because you don't like it;

                  In what way does this not count as a review? I don't like Git because it does not do what it is intended to do well. My use of the term 'Broken' is hyperbole, and quite a bit tamer than the brain damage quote that is commonly used to describe people who don't see Git as the next great thing. If you disagree with one of my points then I am interested, but it appears that you are "just ranting because you don't like it;" :) I was pretty clear that I did not expect to sway popular opinion on Git. For myself I do not see the attraction when perfectly good alternative exist like Mercurial. If you like Git, obviously you are welcome to use it. Again if you disagree with my points I am interested in hearing about it. If on the other hand you don't think people should say bad things about Git then this is not an appropriate forum for you. :)

                  Tanks for your support
                  Pat O
                  Blog

                  _ _ _
                  /*\== /*\== /*\==
                  <ooo> <ooo> <ooo>

                  1 Reply Last reply
                  0
                  • P pdohara

                    First a little background. We have started using Git where I work, so I was directed to use it rather than my seeking Git out. I do development at work on Windows and at Home on a MacBook. I have been doing development for a number of years (multiple decades in fact) and have used most Revision Control and Version Control tools at one point or another. Now for why I believe Git is broken. Git's UI sucks Please note that I said UI, not GUI. Although many people have issues with command line interfaces, I prefer them. Git's CLI is poor, because the way Git models changes for the user is poor. A great deal of the internal structure is shared with the user. If this where simply window dressing that would be only annoying. Those interested could look and the rest of us could ignore those details. Unfortunately, Git requires that you pay attention to those details and sometimes that you edit the repository just to accomplish your day to day work as a developer. I expect that a release manager or build engineer will need to get into the details of how the source code is being versioned, but a developer should not be expected to pay attention to these details. Bit's Merging is Broken The flow that we use is Fetch and Rebase. When I rebase I expect Git to make at least one mistake while fast forwarding the changes. I am usually not disappointed. So for a group of say 10 commits there will typically be one or two mistakes in those commits. These are not flagged as conflicts. Git is confident in its ability to make these changes. And it is wrong. Git uses the wrong Vocabulary In my opinion words do not matter except for the shared definitions. It is not important that the color orange be called orange, but rather that we all agree that the banner at the top of this page is orange. From that perspective there is no justification for redefining/repurposing words that have a well know well understood meaning. In some cases (checkout) the confusion is not terrible and may just be an evolution because the tool works differently. In other cases (reset) it is misleading to the user. It is uncalled. Git Requires Extra Steps I have heard this called the Git Tax. What used to be one or two steps (check in, and possibly merge) has become several steps (commit, fetch, rebase, possibly merge, push). Of course the easiest to forget to do is the push. This is the least annoying of these issues, but given that Git provide no advantage to me (in my opinion and for my use case

                    R Offline
                    R Offline
                    Rutvik Dave
                    wrote on last edited by
                    #9

                    Richard is right, this is not a correct forum. You should have posted this in The Lounge, where people can discuss this with you. The sole purpose of this forum 'Free Tools' is to list out free tools that you find useful. Also it is defined at the top clearly that don't post reviews or links to the reviews, just the link to the 'Free Tool' and your two cents on why/how you find it useful. ...anyways, back to the debate.

                    pdohara wrote:

                    Git's UI sucks

                    Have you tries using Source Tree[^]?

                    pdohara wrote:

                    Bit's Merging is Broken

                    No, you need to define your own process of merging for your team, to avoid that kind of issues, it is not Git's problem. Many people use Git just for this one feature - 'hassle free merge'.

                    pdohara wrote:

                    Git uses the wrong Vocabulary

                    I don't see how this is a problem. Every software has its own style and personality. You need to adopt it.

                    pdohara wrote:

                    Git Requires Extra Steps

                    It feels like extra steps because you and me are not managing project with thousands of contributors. When someone is managing Linux Kernel, they need these extra steps to ensure integrity of their code base.

                    pdohara wrote:

                    Let the flames commence.

                    Everyone has their own opinion, and I am not trying to defend Git, I use different source control system based on the project and team size. And you forgot to mention the better alternative to Git. If you don't have any solution then this is a useless rant. :)

                    Remind Me This - Manage, Collaborate and Execute your Project in the Cloud

                    P 1 Reply Last reply
                    0
                    • R Rutvik Dave

                      Richard is right, this is not a correct forum. You should have posted this in The Lounge, where people can discuss this with you. The sole purpose of this forum 'Free Tools' is to list out free tools that you find useful. Also it is defined at the top clearly that don't post reviews or links to the reviews, just the link to the 'Free Tool' and your two cents on why/how you find it useful. ...anyways, back to the debate.

                      pdohara wrote:

                      Git's UI sucks

                      Have you tries using Source Tree[^]?

                      pdohara wrote:

                      Bit's Merging is Broken

                      No, you need to define your own process of merging for your team, to avoid that kind of issues, it is not Git's problem. Many people use Git just for this one feature - 'hassle free merge'.

                      pdohara wrote:

                      Git uses the wrong Vocabulary

                      I don't see how this is a problem. Every software has its own style and personality. You need to adopt it.

                      pdohara wrote:

                      Git Requires Extra Steps

                      It feels like extra steps because you and me are not managing project with thousands of contributors. When someone is managing Linux Kernel, they need these extra steps to ensure integrity of their code base.

                      pdohara wrote:

                      Let the flames commence.

                      Everyone has their own opinion, and I am not trying to defend Git, I use different source control system based on the project and team size. And you forgot to mention the better alternative to Git. If you don't have any solution then this is a useless rant. :)

                      Remind Me This - Manage, Collaborate and Execute your Project in the Cloud

                      P Offline
                      P Offline
                      pdohara
                      wrote on last edited by
                      #10

                      In Reverse Order: Better Alternative: Mercurial. Feels Like Extra Steps, because it is extra steps. These steps may be necessary for managing the Linux Kernel, I am not doing that. It seems a pretty small market segment (yes, I know that is not what you meant) Wrong Vocabulary: Git uses checkout to mean go get the code, that is not what it means. Git uses merge to mean several different things. Git uses rebase to mean re-apply these changes to the history, that is not what it means. I am not talking about picking medium grey for you interface palate. I am talking about redefining terms that have been in use for a decade or more in software development. Hassle Free Merge: I find that I need to baby sit and correct Git's hassle free merge routinely. I would rather be presented with the choices and make them myself. Not a supported workflow as far as I understand. Git UI sucks: Yes I have tried SourceTree (and use it). I have also tried and like SmartGit. I use Beyond Compare for my diff/merge tool BTW. I tried Tortoise early on and stopped using it as it was very buggy. A few of the people I work with continued to use it and tell me it is much better now. None of this takes away from the fact that Git's UI sucks. I made a point of calling out the fact that I was talking about the user interface, not the graphical user interface. The command line arguments are cryptic even by Unix standards. The error messages where completely inscrutable. Version 1.7 has dramatically improved the error messages. The command lines are still very difficult to use. Many (most?) people end up creating a new UI based on alias' to get Git to do what they want. Of course a great many people just choose to install another package to make Git usable, as you suggested. Finally, I thought I had been clear about why I posted this here. The forum is listed like this: Free Tools Free Tools - reviews and recommendations 7 Feb 2014 12:52am 819 Clearly indicating that it is a place for reviews. The paragraph at the top of the forum states:

                      Quote:

                      This forum is for discussing and recommending Free tools for software development. Please post direct links to tools, and not just links to pages that review or list tools.No shareware and no commercial products allowed. Please report spammers by voting to remove their messages and reporting their accounts.

                      Although I can now see the implication that this is not

                      R 1 Reply Last reply
                      0
                      • P pdohara

                        In Reverse Order: Better Alternative: Mercurial. Feels Like Extra Steps, because it is extra steps. These steps may be necessary for managing the Linux Kernel, I am not doing that. It seems a pretty small market segment (yes, I know that is not what you meant) Wrong Vocabulary: Git uses checkout to mean go get the code, that is not what it means. Git uses merge to mean several different things. Git uses rebase to mean re-apply these changes to the history, that is not what it means. I am not talking about picking medium grey for you interface palate. I am talking about redefining terms that have been in use for a decade or more in software development. Hassle Free Merge: I find that I need to baby sit and correct Git's hassle free merge routinely. I would rather be presented with the choices and make them myself. Not a supported workflow as far as I understand. Git UI sucks: Yes I have tried SourceTree (and use it). I have also tried and like SmartGit. I use Beyond Compare for my diff/merge tool BTW. I tried Tortoise early on and stopped using it as it was very buggy. A few of the people I work with continued to use it and tell me it is much better now. None of this takes away from the fact that Git's UI sucks. I made a point of calling out the fact that I was talking about the user interface, not the graphical user interface. The command line arguments are cryptic even by Unix standards. The error messages where completely inscrutable. Version 1.7 has dramatically improved the error messages. The command lines are still very difficult to use. Many (most?) people end up creating a new UI based on alias' to get Git to do what they want. Of course a great many people just choose to install another package to make Git usable, as you suggested. Finally, I thought I had been clear about why I posted this here. The forum is listed like this: Free Tools Free Tools - reviews and recommendations 7 Feb 2014 12:52am 819 Clearly indicating that it is a place for reviews. The paragraph at the top of the forum states:

                        Quote:

                        This forum is for discussing and recommending Free tools for software development. Please post direct links to tools, and not just links to pages that review or list tools.No shareware and no commercial products allowed. Please report spammers by voting to remove their messages and reporting their accounts.

                        Although I can now see the implication that this is not

                        R Offline
                        R Offline
                        Rutvik Dave
                        wrote on last edited by
                        #11

                        Haha! I have to read at-least 3 threads to recall what we were talking about. :) Mercurial is a great alternative. I have used it for over a year. Even I have spent 4 days trying to setup a customized web interface for it (using hgWeb and crazy amount of HTML / CSS coding). It was kind of waste of time, but It was lot of fun! But the main problem with the Mercurial was the less-popularity among 3rd party tools. Which is why I transferred over to Git, most of the other software integrate perfectly with the Git, but not with the Mercurial. But if you are not going to use it with any other tools than no problem. We are currently using Team Foundation Online, which supports both TFS and Git, and Git is definitely better than TFS. (Also most of the Bug Tracking software integrate just fine with Git)

                        pdohara wrote:

                        I will be happy to shut up and sit down.

                        Nah, stick around, we do this kind of behavior almost every time we go into 'DEBATE MODE'. You will get over it after a while, and then you can do the same thing to others... :)

                        pdohara wrote:

                        This post has come out of my management choosing Git and telling my business unit that we must use it.

                        That sucks! specially when they want you to adopt a completely different product without your vote. But now your management can brag about using it, plus they will look technically competent. I guess you are right, your post was kind of a review. But then you attacked every geek's favorite version control tool so we had to retaliate. :-D

                        Remind Me This - Manage, Collaborate and Execute your Project in the Cloud

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups