| Honestly the doc make it pretty unclear. Some commands seem to be purely github related, which make sense, some others seem to overlap with just plain git. > Clone the repository you want to work with using gh repo clone owner/repo Like, what does this do apart from a regular git clone? Why is this necessary? I guess it additionally stores some meta information so that other "gh" commands know which repo they are on. This should have been a separate command IMHO to leave the regular git clone alone. Something like "git clone ssh://github.com/foo/bar" followed by "gh init foo/bar". > When you’ve finished adding that feature or fixing that bug, use gh pr create Same goes here. Why overlaying git commands? I would have expected to just push my branch, and then call something like "gh pr create <my branch> <target branch>" > And your teammate can check out your pull request using gh pr checkout 1337 Same remark again and again, what does that do apart from checking out a branch? Why the overlay? > view the diff with gh pr diff So what's wrong with "git diff <target>..<source>" > gh pr merge Come on.. "git co <target> ; git merge <source>" needs to be overplayed? > gh release create [tag name] Oh sure, let's overlay git flow as well. I mean overall the tool looks cute and all, but magic overlays is a no no for me. |
> Like, what does this do apart from a regular git clone? Why is this necessary?
You can't see a difference between ```gh repo clone owner/repo``` and ```git clone git@github.com:owner/repo.git```?
Also:
> Something like "git clone ssh://github.com/foo/bar" followed by "gh init foo/bar"
What's there to "init"?
> Same goes here. Why overlaying git commands? I would have expected to just push my branch, and then call something like "gh pr create <my branch> <target branch>"
From the docs: "When the current branch isn’t fully pushed to a git remote, a prompt will ask where to push the branch [...]"
> Same remark again and again, what does that do apart from checking out a branch? Why the overlay?
It resolves the pr # to the corresponding branch name, probably git fetch and checkout. Why should I have to know the irrelevant piece of information that is how you named your branch?
> So what's wrong with "git diff <target>..<source>"
How do you find out the target and source hashes? Another piece of convenience.
> Come on.. "git co <target> ; git merge <source>" needs to be overplayed?
And this is wrong. This merges source in target locally, ```gh pr merge``` merges it remotely. You can be Linus Torvalds, you are not going to push to my master branch.