-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a section on how to use git #850
Comments
Possibly there should be instructions on how to do this in a GUI too, but I've never used a git gui for rebasing and I wouldn't be able to help with that bit. |
People should be reminded that making a branch is effectively free in git, so it's fine to just pop over to another branch to save their workstate and then pop back. I cheat by just reaching back in history through the reflog if I screw up but... who even has heard of the reflog? |
'Git tips' would also be a useful section (maybe near We should mention how to fix issues from adding a submodule by accident though: rust-lang/rust#75949 (comment) |
Right, I mean that as a heads-up before rebasing. "rebasing sounds intimidating but you can make an additional branch, push it to your fork on GH or whatever, and guaranteed you have your work saved." Yeah, people should be adding by-file, or at least by-specific-directory, in a deliberate fashion, not |
Graphical Git UIs are always going to be a case-by-case for each, so covering rebasing in any of them will require someone who actually has used that tool, or finding other people's tutorials. However, many people lean on VS Code as a dev tool, and since VS Code is semi-officially-supported by rust-analyzer, so we should probably lean on assisting people with VS Code's support for git, as a start. |
Niko showed https://devguide.python.org/ to me and found that there are some things about git there. Maybe we can use some inspiration from their devguide :) |
Hmm, that's mostly just branching - I'd like to cover rebasing in more depth. It's a good start though :) |
Yeah I didn't carefully look at it, I was just guessing that there may be some good content there :). Still something that may inspire some of our things in the guide :). |
Another good section would be how to squash commits (related to #824, but with less setup preferably). |
I found https://rustc-dev-guide.rust-lang.org/building/suggested.html#working-on-multiple-branches-at-the-same-time to be extremely valuable, adding more stuff about git usage would be great! (also, I know somewhere in the guide it talks about the style around squashed vs unsquashed commits, but reiterating that in a dedicated git section would be awesome) |
In the meantime, @GuillaumeGomez has a great blog post about this here: https://blog.guillaume-gomez.fr/Git-tips/1/1 |
@jyn514 If you talk about squashing commits, it's https://blog.guillaume-gomez.fr/Git-tips/1/2 ;) (and thanks for linking to it!) Although I wrote those tutorials mostly for rust contributors so I guess all chapters are applicable. |
Yeah, VS Code has decent interactive support for resolving merge conflicts. |
I would say instructions on resolving merge conflicts might be the most needed; they still scare me :) |
This could also mention |
Wow, I've wanted something like that! |
I'm going to start work on this. I'm not sure how it will go yet, but I'll do what I can and open a draft PR as soon as it makes sense so I can get feedback as soon as possible. |
Related: rust-lang/triagebot#821 |
The remaining things to cover after #890:
|
I personally use ohmyzsh's git plugin, which basically has all the aliases I need, and much more. (Actually it has too many aliases, it's ridiculous.) For example, |
This one is mostly useful for reviewers, I don't think it should be a priority in the guide, I'm even unsure it should be there at all. It is definitely useful, but I think we shouldn't "spam" readers with a lot of commands they won't need, so they can focus on the ones that actually matter. Only my opinion though.
I don't think we should pick a GUI and do a "tutorial" for that GUI. I think what we should do is maybe list a few popular GUIs that exist (GitKraken, SourceTree...?) or just throw this list that exists on git-scm.com. GUIs are designed to be intuitive so I don't think we should have to add more than that.
I like these a lot too, but I don't think they deserve a lot of attention. Basically saying "oh
Definitely required here. Subodules were the most confusing thing that existed in the |
Right, I was imagining a separate 'git for reviewers' section, maybe even on a separate page so they're easy to distinguish.
Yeah ... I still have a ton of trouble with submodules. There are long term plans to move to |
Started writing about submodules |
I think at this point git.html is complete enough we can close this tracking issue and open individual issues for anything that's missing. |
Git is a major part of contributing to rust-lang/rust, but it sees almost no discussion in the guide. There should be instructions on:
Writing this requires no knowledge of rust or the compiler (although having made PRs to rust-lang/rust is a bonus). It should go in the 'Contributing to Rust' section, possibly in its own page.
The text was updated successfully, but these errors were encountered: