Sorry if this has already been asked. I've been looking at old SO posts on Git for a long time, but have not yet found one that really matches this case.
I participate in a team of 5 developers using Git in a project. We have been using it without any real problems for about a year now. We installed Gitosis on a shared server and we do most of our work in the main branch, although we often diverge into side branches for new features, etc.
This week I saw some weird behavior with our leading branch that I donβt understand - behavior that effectively loses commit and forces developers to re-fix and redo changes that have already been made. The first time I saw this, I wrote it down to a human error and suggested that I just did not click on the master branch as I thought. The second time I saw the problem, we were able to collect a little more information that seems like the system was messed up or that one of our developers mistakenly told Git to do something that they did not understand.
Here's what we see: If I look at the Git log, I can see ALL commits. They are in order, and fixing the differences is correct. However, if you look at the current version of the file, it does not contain all the changes of the latest commits. IE, the log shows commits, but the file does not have these commits in it. When I look at the history of files in the web interface (I believe that we are using GitWeb), it is really clear that GitWeb knows that the most recent file does NOT match the most recent file. That is, next to the last latch, it will add a link that says "diff to current". Two or three commands back do not have a diff to current link, so itβs clear that the current version of the file delays the log / last commit somewhat.
1) / ? , , .
2) ? , , , . , , .
.