我有一个本地/远程分支我只在工作。 BranchA是从develop分支创建的。我在某个地方做出了类似的承诺。现在,我处于一个阶段,我想从开发中同时提取所有所做的更改,以便BranchA包含开发中的所有最新更改,以便可以对其进行测试。
我试图将开发基础重新部署到BranchA,但是解决冲突有点困难。发生的事情是在开发人员分支中有一个FileA被更改,但是我在很多提交中也更改了该文件(假设8)。因此,似乎git要求我解决此文件的冲突8次,而我只想问我最新版本。
那么,我在这里有什么选择?我应该将所有的12个提交合并为1个,然后尝试重新设置基准吗?我将如何正确地做到这一点?
答案 0 :(得分:1)
我不确定这里最好的操作方法是什么(通常是由偏好/策略决定的),但是如果您想进行基准调整并将所有提交压缩为一个,则可以执行以下操作:
app.get("/myapi", (request, response) => {
response.set("Cache-Control", "public, max-age=300, s-max-age=2629746");
var myparam = request.query.item;
return fetchSomethingFromFirestore(myparam).then((resp) => {
return response.render("template", {
myProperty: resp.valueForPugTemplate
});
});
});
app.use(function(err, req, res, next) {
return errorhandler(err, req, res, next);
});
const myapi = functions.https.onRequest((request, response) => {
if (!request.path) {
request.url = `/${request.url}`;
}
return app(request, response);
});
module.exports = {
myapi,
};
这将打开一个编辑器,其中对git checkout develop
git rebase -i BranchA
中不存在的develop
上的每个提交都添加一行。
此编辑器中的说明概述了您可以执行的操作,但是在这种情况下,您可以:
BranchA
pick
或squash
fixup
和squash
之间的区别在于,squash将压缩的提交的所有提交消息连接在一起,并允许您编辑此提交消息,而fixup
仅使用提交的消息,其他人“固定”到的提交消息,不允许您对其进行编辑。
通常,我倾向于使用fixup
至少保留一些提交历史,但是这完全取决于我的分支到那时为止的状态。
答案 1 :(得分:1)
我试图将开发基础重新部署到BranchA
否:您需要将分支重新建立到通用分支开发上
git checkout BranchA
git rebase develop
如果相似的合并冲突多次出现,请git rerere
can help。
另一种方法就是将develop
合并到BranchA
中。
关键是我想将来自新开发提交的FileA更改添加到我的BranchA的FileA的最新版本中。
对于给定的文件,您可以简单地在冲突阻止重新设置基准后将其检出:
git checkout develop -- FileA
git rebase --continue
这样,解析速度非常快(因为您用develop
分支中的文件覆盖了FileA)