github-education-resources / teachers

Join the discussion in the GitHub Education Community:
https://education.github.community
179 stars 21 forks source link

Important missing Git operations which are not doable from the web interface #13

Open cirosantilli opened 9 years ago

cirosantilli commented 9 years ago

For non programmers to use GitHub, there must be no CLI.

Yes, there are local GitHub / Git GUI clients, but it would be way better if you didn't have to install stuff on your computer.

A few which I find crucial:

I am maintaining a list of such features at: https://github.com/booktree/booktree/issues?q=is%3Aopen+label%3Agithub+label%3Aall-from-web-ui (note that that issue tracker contains many GitLab specific requests outside of those tags).

mryantho commented 9 years ago

The web interface would help with students who may have a network drive, but are unable to install GitHub on school computers.

geoff-nixon commented 9 years ago

I think this title of this issue might be somewhat misleading, or at least confusing.

@mryantho Github does already have a very functional web interface, and you certainly don't need to be a programmer to use it. While there's a lot of room for disagreement particularly with reference to what should be meant by "everything", but for a vast number classroom use cases, its pretty darn sufficient (at least long as one subscribes to the Github Flow methodology).

[Also, it bears mentioning that both the GitHub app and git should work from a network drive, generally speaking.]

From a brief perusal of the GitLab issues you linked:

And at risk of doing their work for them speaking for the good folks @github — if my understanding is correct — my feeling is that the rest of the issues are probably "wontfix" type situations, as:

I agree binary file upload #9 (within the necessary file size limits to prevent abuse) would indeed be a nice feature.

cirosantilli commented 9 years ago

@g--n thanks for the reply!

Yes, some of the ideas on Booktree are already doable on GitHub and only apply to GitLab, let's forget those.

title of this issue might be somewhat misleading

Why? What would be more appropriate.

geoff-nixon commented 9 years ago

title of this issue might be somewhat misleading

Why? What would be more appropriate.

As I read it, I sounds as though you're saying there's some absolutely crucial feature that would prevent a student from using GitHub without also having access to a shell. Its really only this really hairy stuff that's missing. So... "let's ask GitHub create a web interface equivalent for all command-line git features" ...or something?

most devs rewrite history every day locally through commit amend and rebase -i: we make mistakes and want to publish clean PRs.

No argument here. But, keyword is locally.

merge --squash is even less destructive as it does not rewrite branch history and allows for a similar effect over merge requests (multiple commits are turned into one).

I didn't know merge --squash could generate conflicts where merge did not. Can you give an example?

Turning multiple commits into one sure sounds like rewriting a branch' history to me... ;) This might help. — be sure to read the "epilogue" (softens the blow a bit), and the first few comments.

maybe we are not talking about the same thing: I meant manually resolving conflicts

No, we're on the same page on the "what", I think. But its a variant of the same problem — your merge commit after manually resolving conflicts that require a human to decide doesn't actually reflect a true "merging in" of the other branch's commits. Its a whole new commit, with its own changes. So if you need to revert a specific commit from that branch or a child branch... well, again, I defer to Linus: https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt

further commits should be made to the "topic" branch (or a fork thereof) until it no longer is in conflict with the upstream branch.

But how to you find the conflicts on the current web interface?

Yeah, that's definitely huge problem — the branch comparison tool will tell you "We can’t automatically merge these branches." But there seems be no way to filter only the changes that are conflicting.

cirosantilli commented 9 years ago

Thanks for the links, I'll have a look.

But, keyword is locally.

As long as you do it on a feature branch on your own fork, it does not matter: it should be clear to others that such branches can be changed at any time, and often are already on push -f