For example: “two weeks ago an intern accidentally committed a file containing IP we’re not allowed to use, we need to erase it from the repository and all developer machines.”
Have fun with that one!
EDIT: I mean, try to figure this out from the official Git documentation (https://git-scm.com/docs). No, Stack Overflow and Github are not the official Git documentation. Believe it or not, the idea that "Git is hard to use" predates Stack Overflow.
Removing from developer machines is a separate issue and requires you to be able to coordinate your Devs.
If you meant that it's not simple to work out from scratch what you should do without lots of reading and trial and error...that kinda goes for a lot of tools, no?
Technically, the issue was actually pushing that commit to the remote repository.
I think the best advise one can give people when using it is to to run:
git log -p origin/master..HEAD
and look at the commit messages and associated diffs to see if there's anything there that shouldn't be there before the actually run git push.See THIS is the problem. Ugly, inconsistent, clumsy use of the english language, and confusing.
This will go on my git sheet, with a comment as to what it actually does because I don't have the time to actually unpack that from first principles. I've got better things to do than become an expert on needlessly complicated software.
It's a command line interface, not plain English. What's ugly and inconsistent about the git log command as was quoted in your reply?
> I've got better things to do than become an expert on needlessly complicated software.
As a software developer, I have to read through a lot of documentation to be able to use programming languages, SQL, data stores, unix utils, etc. I don't see why it would be any different for a VCS.
I think the actual issue is that people aren't willing to read through the documentation to understand what a command does and what options are available.
As for the command itself, the -p switch shows the diff associated with each commit shown with the git-log command. origin/master represents the upstream tracking branch of the master branch (most likely the base branch that the person is working on). .. represents a range operator and HEAD repesents the commit that's the latest commit on the branch on the local machine.
Probably has to be done outside git, though. Maybe one of the corporate virus scanners will let you definite a local signature.
EDIT: Sorry, my bad. I misread.