当我在工作中提交 PR 时,有时提交 1 次而不是 30 次会更干净(这都是虚荣)。所以通常我可能会这样做:
git add . && git merge origin/master
git commit -am "abc"
# make more changes
git add . && git commit -am "abc"
git merge origin/master
然后为了将事情变成一次提交,我可能会尝试:
git reset --soft origin/dev
问题是我感觉这在历史上重置得还不够远。因为我的 merge 提交。也许正确的唯一方法是:
sha="$(git merge-base --fork-point HEAD origin/master)"
git reset --soft "$sha"
但我感觉 merge-base 命令只会作为 origin/master 和我的分支之间的最新 merge 提交返回?
最佳答案
git reset
将当前头部重置为给定状态。
git reset --soft <commit>
将把头重置为给定提交的状态,或者默认为最后一次提交的状态。因此,如果您想让命令在下一次提交中执行,并且您知道上一次提交的哈希值,那么您可以运行上面的命令,但请确保传递正确的哈希值。
您可以通过浏览提交哈希值
git log
关于git - 如果您一直在使用 git merge origin/master , git reset --soft origin/master 会失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60101512/