【发布时间】:2019-10-29 12:44:50
【问题描述】:
我想获得更改,但不想发布我在测试分支上所做的所有提交......我想要的是在合并后,接受这些更改并在主服务器上提交(一次),而不是发布所有那些提交。
谢谢
我没有尝试过任何事情,因为我想确定该怎么做。那我再推。
git merge test
git status
您的分支比 'origin/master' 领先 6 次提交
【问题讨论】:
标签: git github commit git-commit
我想获得更改,但不想发布我在测试分支上所做的所有提交......我想要的是在合并后,接受这些更改并在主服务器上提交(一次),而不是发布所有那些提交。
谢谢
我没有尝试过任何事情,因为我想确定该怎么做。那我再推。
git merge test
git status
您的分支比 'origin/master' 领先 6 次提交
【问题讨论】:
标签: git github commit git-commit
你可以压缩你的提交,但我更喜欢重新提交的简单性。我在这里为感兴趣的人发布解决方案:
git checkout test
git reset --soft origin/master
git commit -m "message for this whole feature"
git push origin HEAD
然后test-branch 将被推送到远程,您的合并请求test > master 将仅包含上面的一个提交。
【讨论】:
--soft 标志,与默认模式--mixed 不同,保持索引中的更改(添加、暂存、缓存,无论您习惯如何称呼它)。你在哪里看到这个“绿色”?在命令行中,当您执行 git status -sb 时,您更改的文件应该在它们前面显示一个绿色字母(分阶段更改)而不是红色字母(未分阶段更改)。
git log origin/master..(注意点)专注于有趣的部分,并使用您需要的任何格式选项来输出与您最相关的信息(pretty formats)。
git merge test --squash
git commit -m "foo bar"
使用--squash,更改会被合并,而提交不会。
【讨论】: