Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What I would like to see is a way to enforce fast-forward only merges along with the forced creation of a merge commit that references the same git tree as the HEAD commit of the branch that was just merged.

This way, you know which set of commits was in the branch by looking at the parent commits of the merge commit, but the merge commit itself did not involve any automated conflict resolution.



I've wanted this for awhile as well. Squash only merges, which are enforceable in github, get you close but leave you without any automated way to determine if a given branch was ever merged to main or not ...


merge is the only way to reliable determine if a branch is merged ¯ \ _ ( ツ ) _ / ¯


Yes, it is a shame that you can't combine git merge --ff-only --no-ff .


git rebase && git merge --no--ff


(a) Because rebase is run on the branch to be rebased, but merge is run on the branch being merged to, that reverses the parents of the merge commit and puts it on the rebased branch rather than the parent. (b) Even if that were fixed, it alters the rebased branch, rather than stopping and warning in an unexpected case.

I really do want the natural semantics of merge --ff-only --no-ff.


you can do this

git rebase -r target source && git checkout target && git merge --no-ff target

since what your asking for is not a merge, you'd have glue it together by yourself. Perhaps, add it as a script




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: