re: 11 Painful Git Interview Questions You Will Cry On VIEW POST

TOP OF THREAD FULL DISCUSSION
re: A fork is a remote, server-side copy of a repository [...] A clone is not a fork; a clone is a local copy [...] This is plain wrong. There is no ...
 

The terminology might not be 100% correct, because git itself doesn't have a concept of a "server" or a "fork", but the fact is that the vast majority of Git users do use Git concerning a server and forks. To git, there is no difference between a fork on a Github server and a clone elsewhere on my machine, but that knowledge really isn't necessary if you're not implementing the git protocol yourself or rolling your own Github. A fork is a remote copy of the repo, and that remote is a central server.

What I mean by this is that me, as a developer just picking up git, am going to get extremely confused trying to contribute to a Github project if I know understand the difference between a clone and a fork. I will commit changes to my local clone, but will not understand why they don't immediately go to my fork on Github. Describing the decentralized nature of Git in this sense is not going to help me in any way get my changes back into the master repo on Github.

To to reiterate, the git tool itself has no such thing as a "fork" and doesn't have a concept of a "server", and yet a fork is a very real thing in the git workflow, and just about any project you contribute to will have a centralized server. Not only is it rude to harshly criticize the author in this regard, but it misses the point of why the question would be asked. In an interview, the employer doesn't want to know if you understand the full protocol of git, they're asking if you know how to use their development workflow.

 

the fact is that the vast majority of Git users do use Git concerning a server and forks

You likely have a proof of this statement in your pocket. Otherwise is sounds like a nonsense.

that knowledge really isn't necessary if you're not implementing the git protocol yourself

What? The protocol? I have a ton of git repositories on HDD only and—you know what?—I do not implement any protocol neither do I roll my own Github. I use VCS exactly as distributed VCS is intended to be used. And, BTW, as it’s creator using it.

Without damn fancy web interface.

What I mean by this is that me, as a developer just picking up git,
am going to get extremely confused trying to contribute to a Github project if I know understand the difference between a clone and a fork.

I feel a pity you dare to enter the discussion on the topic then.

yet a fork is a very real thing in the git workflow

Nope unless you use Github/Bitbucket.

just about any project you contribute to will have a centralized server

Nope, that is not true.

Not only is it rude to harshly criticize the author in this regard

Since when copy-pasting the content written by strangers from Stack Overflow is called “authoring”?

So, you blame me for being rude pointing the copy-paster to mistakes. Cool. Now I am to explain what is indeed rude. Fooling people with wrong content is rude. Unwillingness to fix issues after many people have pointed out (other do in a less rude manner, if that matters) is rude. Intentionally distort interlocutor’s name is rude.

Warning future readers to not get the wrong content as a sacred truth, just because it was published in the internet is not rude. It’s socially significant action, that everybody who cares about people must perform in the first place.

In an interview, the employer doesn't want to know if you understand the full protocol of git

Really? On the interview on git? Sounds dubiously.

code of conduct - report abuse