我有一个远程Git服务器,下面是我要执行的场景:
对于每个bug/功能,我创建一个不同的Git分支我继续在Git分支中提交我的代码,并发送非官方Git消息在顶级存储库中,我们必须使用官方Git消息对一个bug进行一次提交
那么,我如何将我的分支合并到远程分支,以便他们对我的所有签入仅进行一次提交(我甚至想为此提供提交消息)?
我有一个远程Git服务器,下面是我要执行的场景:
对于每个bug/功能,我创建一个不同的Git分支我继续在Git分支中提交我的代码,并发送非官方Git消息在顶级存储库中,我们必须使用官方Git消息对一个bug进行一次提交
那么,我如何将我的分支合并到远程分支,以便他们对我的所有签入仅进行一次提交(我甚至想为此提供提交消息)?
当前回答
您的功能分支已完成并准备好只需一次提交即可提交到主分支、开发分支或其他目标分支
转到合并分支:git checkout master和git pull从干净的本地主机创建一个工作分支:gitcheckout-b workMerge在工作时挤压你的功能分支:git Merge--挤压你的_feature_branch。使用默认或新消息提交:gitcommit(使用特定或默认消息)返回功能分支:git checkout your_feature_branch将功能分支指向工作目录:git reset-hardwork验证,但您已准备好推送:git push-f如果需要,清理工作分支
用目标分支替换master:开发等等
无需指定从主节点到功能分支的提交次数。Git负责*
其他回答
如果您收到错误:提交是不可能的,因为您有未合并的文件。
git checkout master
git merge --squash bugfix
git add .
git commit -m "Message"
修复了所有冲突文件
git add .
你也可以使用
git add [filename]
使用自定义提交将newFeature分支合并到master中:
git merge --squash newFeature && git commit -m 'Your custom commit message';
如果相反,你会
git merge--压缩新功能和git提交
您将得到一条提交消息,其中包含所有newFeature分支提交,您可以自定义这些提交。
我在这里详细解释:https://youtu.be/FQNAIacelT4
Use
git status
检查发生了什么。
Then
git checkout master
git merge --squash bugfix
git add (add which files you want or use wildcard command like ".")
Then
git commit -m "message"
现在是最后但不是最不重要的
git push -u origin master
这里的原点可以是您喜欢的其他远程。
如果您已经在main上安装了gitmerge错误修复程序,可以使用以下命令将合并提交压缩为一个:
git reset --soft HEAD^1
git commit
对于Git
创建新功能
通过终端/外壳:
git checkout origin/feature/<featurename>
git merge --squash origin/feature/<featurename>
这并不意味着你可以先回顾一下。
然后提交并完成这个新分支的功能,并删除/忽略旧分支(您开发的那个分支)。