4 ms·
I had no idea people were using --force daily. I've been using Git for all my version control since 2008, and I don't think I've ever used --force. Now I'm cur
by jarrett 13y ago
I had no idea people were using --force daily. I've been using Git for all my version control since 2008, and I don't think I've ever used --force.
Now I'm curious: How does it fit into people's everyday workflow?
- nickstinemates 13y agoI use it when cleaning up pull requests. Rebase and squash. Fix commit messages. Force push to PR-branch tidy.
- phaemon 13y agoWhy would you do this, rather than pull into a different branch name, fix it there, and then merge it in? Is there an advantage to doing it by altering your own repo?
- nickstinemates 13y agoI am talking about editing history and squashing commits. For cleaner merges.
- gcb1 13y agoBut you should do that locally and then push without force.
- swift 13y agoIf you're working in an organization that employs pre-merge code review, you may have to modify your topic branch several times before it's ready to be merged into the main development branch. Creating a new branch every time so that you can push without force seems pointless in this case and increases confusion for everyone involved in the process.
- lmm 13y agoYes, but you can pull into a new local branch, do the history edit there, and then push that new branch, can't you? Not that I'm sure it would be worth it.
- encoderer 13y agoIt's used often in a team where you each have your own forks. It's much less risky in such a case, of course. Basically, I push to my fork, then later I pull-with-rebase from the mainline, then I push again to my fork. Oops, commit hashes have changed because of my pull-with-rebase. So I need to either push to a different branch or force push.
- bad_user 13y agoYour problem is that you shouldn't be doing pull with rebase so often. A clean merge doesn't have to rewrite anything.
- swift 13y agoI'm not sure a "problem" exists here. Keeping your personal topic branch rebased on top of the main development branch is a perfectly reasonable workflow, and quite comparable to what you'd do with Mercurial patch queues.
- mst 13y agoAnd in a team where everybody's used to that, and force is only ever used on topic branches where that's the expected 'done thing', it really doesn't cause a problem. (on teams that like rebase I tend to do this a lot)
- encoderer 13y agoExactly. Though it is a bit of a moral hazard... or maybe that's not the right term... point is, users get used to "-f" ing pushes.
- encoderer 13y agoAgree with Swift. Having a rebase strategy keeps history linear and MUCH easier to read.