4 ms·
So you're not using checkout, reset, and diff?
by Ace17 9y ago
So you're not using checkout, reset, and diff?
- e12e 9y agoOr fetch?
- OJFord 9y agoI think a lot of people ignore fetch and only ever pull.
- TomK32 9y agoBut you'd have to stash before pull. At least with my config where a pull will rebase automatically.
- OJFord 9y agoI use `git config pull.rebase true` too, but that doesn't mean you _have_ to stash first, just as rebase manually wouldn't - depends if there's a conflict. Same is true of merge-based pull.
- e12e 9y agoExcept for saving some typing, is there any benefit to stash over local branches? In other words, shouldn't git just fix ux for branches and rip out stash?
- OJFord 8y agoSo "some typing" would be: # git stash: prev_ref="$(git rev-parse --abbrev-ref HEAD)" git checkout -b wip-stash git add . git commit -m 'wip stuff' git checkout "$prev_ref" # git stash pop: git checkout wip-stash -- . git checkout -D wip-stash It's quite a considerable saving. I suppose by "fix UX" you mean make it so the saving would be less anyway, but I think really they're just conceptually different: - branch: pointer to a line of history, i.e. a commit and inherently its ancestors - stash: a single commit-like dump of patches If stashing disappeared from git tomorrow, I think I'd use orphan commits rather than branches to replace it.
- _pmf_ 9y agopull == "just fuck my shit up"
- e12e 9y agoI think it's the most important sources of my cognitive dissonance around git. It strengthens the illusion that a working directly is somehow related to a git store, which it really isn't. You have a working directly/checkout - that can be: identical (apart from ignored files) to some version in git; or different. If it's different ; some or all changes can be marked for storing in the git repo - most commonly as a new commit. It's a bit unfortunate that the repo typically is inside your work directory/checkout - under '.git' along with some files like hooks, that are not in the repo at all...
- amerkhalid 9y agoGood point, forgot about checkout, diff, clone, blame, add, rm, rebase, init, and probably a few more. Haven't used reset personally though but only when trying to fix someone's repo.