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

FULL DISCUSSION
 

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 such thing as “server” in the git paradigm. Even more: there is no such thing as fork in git at all. It is github-specific stuff. It is a clone that has it’s own github (and bitbucket FWIW) interface.

You mislead (read: fool) people not so familiar with the concept by publishing things you have no idea about.

I have not read further, but I feel a necessity to warn future readers: please beware of this content is not correct by any mean. If I got an answer involving a word “server” on the interview on git, I would never hire the applicant.

 

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.

 

Hi Alex. First of all thanks for your comment. You are absolutely right - fork is not a Git concept and it's specifically stated just right after the words you've cited. In regards of server-side, hmmm... fork in Github (that the majority of teams are working with) is a "server-side" clone of repo. If you think it's wrong to mention it on an interview and that words drove you crazy you should probably delegate interviewing to someone else. Also there is a great practical interview question about "Forking workflow" in the article that you alas missed. And by the way it's great you've just warned people from potential working with you - I would personally avoid any professional relationships with "teams" or "devs" who use phrases like "not read further, you have no idea about, will never hire" in their lexicon ;) So good luck in boosting your "authority" amongst the community and have a great working day!

 

Hi Alex and Aleksei

I think this thread is getting a little heated and that's not helping, and I don't want to fuel the fire, but I had exactly the same response as Aleksei - I got to your first definition and came to the comments to see if anyone had brought it up, and I didn't read any further at the time.

Alex, you used the phrase What is Git fork? and I immediately became confused since there's no such git command. It could be a typo for "what is a git fork" but since we're used to using git subcommands it seems to stand out.

It's easy enough to use the wrong words, and sometimes it's more important than others.

If I was conducting an interview around version control workflows and someone citing git was talking about servers, I wouldn't dismiss the applicant, but I would ask them to clarify so they had a chance to convince me that they knew what they were doing.

Thank you for your reply Ben. As you stated the key point of any interview is to have a conversation around a question. I'm not pretending that the question "What is Git fork?" was intentionally created to confuse or derail a prospective but having to see in response the interviewee correction ("stars" would be immensely happy to do that) or mentioning that "a fork isn't a Git concept" for the rest of us is a solid and clear sign of a conceptually strong candidate (and that was "the" intention). It's again my pleasure to say thanks to you and AleX for pointing it out in a first place but let me leave that question title as it is to be the "anti-pattern" some people will stumble on and discuss :)

Thanks for the comment Ben here.

Aleksei, I just want to note that you could have approached this whole situation in a much more constructive way. And since you're generally a great community member, I just want to remind you to take the time to address issues you see in a less provocative way.

I know you're acting in good faith, so just want to remind you that expressing tone on the web can be hard but we have high standards for community members to put in the effort to be good about this stuff.

we have high standards for community members

Last time I have read that it was Orwell’s “1984.” It’s not gonna happen. Excuse me, but I’m not marching in formation. Simply put, I was grown to respect freedom of speech, liberty in general, consideration of diversity.

Applying “high standards” in a way of tentatively prompting a manner I am supposed to express my opinion does not conform to any of the above. Diversity does not mean “anything that suits the list of permitted” as well as freedom of speech does not mean “anything that corresponds to the rules.”

Linus Torvalds is obliged to reply to the same accusations on the regular basis and I would cite my favorite quote:

Do you really want to oppress a minority? Because Finns are a minority
compared to almost any other country. If you want to talk cultural sensitivity, I'll join you. But my culture includes cursing.

Response to Sarah Sharp’s bullying

Please note that I never bully for the sake of bullying, but even if I were, you only have an option to ban me (after all it’s a private club and I am fine with that.) Telling me to behave differently is unacceptable, sorry for saying. I believe that people around, specifically in developers communities, are mature enough to be able to defend their points of view and opinions without being babysitted by strong regulation rules implied by the Ministry of Truth.

Also, you are probably to decide what do you value more: how provocative is a way of expressing an opinion in comments or how high is the average quality of the articles and/or discussions. Whether the main goal of running this site is to make people happy reading “That’s cool” replies to any crap published—I’m fine with that. That won’t make me happy, but I’m fine with that too; that’s how things in the democracy (read: majority rule) use to happen.

I just want to warn you that vaccination was invented as an immunoprophylaxis. It saved a lot of human lives. And if you are banning me and me-like members of the community, having as per your admission a good faith (which is true btw,) sooner or later you’ll face the immune deficiency against harsh statements. Which is—trust me—way more offensive and insulting.

This happens to be the too long answer that is honestly not implying an answer. I wanted you to read this to puzzle you and to make you ponder the thing.

 

It’s not surprising you don’t understand the difference between git and it’s web frontends like github since you were not even able to spell my name correctly.

If you think it's wrong [...]

I do not think it’s wrong. I know it’s wrong.

that words drove you crazy

Excuse me? I bother about future readers, who might mistakenly think that everything published on the internet is written by competent people which is obviously not the case. I just warn future readers. If I were to drive bonkers every time somebody publishes crap, I would end up my days in the nuthouse.

code of conduct - report abuse