Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在git svn重新设置基础后检测冲突_Git_Automation_Git Svn_Lazy Evaluation_Git Rebase - Fatal编程技术网

在git svn重新设置基础后检测冲突

在git svn重新设置基础后检测冲突,git,automation,git-svn,lazy-evaluation,git-rebase,Git,Automation,Git Svn,Lazy Evaluation,Git Rebase,我同时使用了太多git svn存储库,所以更新它们变得很麻烦。我想写一个自动化的脚本,这样我每天早上去拿咖啡的时候就可以运行它了 基本上我的工作流程是这样的 cd ~/module1 git svn fetch git checkout master git svn rebase git checkout topicbranch git svn rebase cd ~/module2 git svn fetch git checkout master git svn rebase 我已经自

我同时使用了太多git svn存储库,所以更新它们变得很麻烦。我想写一个自动化的脚本,这样我每天早上去拿咖啡的时候就可以运行它了

基本上我的工作流程是这样的

cd ~/module1
git svn fetch
git checkout master
git svn rebase

git checkout topicbranch
git svn rebase

cd ~/module2
git svn fetch
git checkout master
git svn rebase
我已经自动化了
git svn fetch
部分,可以随时安全地完成。但自动执行git svn重新设置基址并不安全,因为可能存在冲突


脚本如何判断在重新设置基础后是否存在冲突?然后我可以运行git-rebase--abort,并在日志文件中写入一行,这样我可以在带着咖啡回来时查看失败:)

从git-svn,
git-rebase
收集到的信息,如果由于冲突无法执行重基,git sh设置将退出,退出代码为
1

根据我从git svn收集的信息,
git重基
,如果由于冲突而无法执行重新基址,git sh安装程序将退出,退出代码为
1

执行“git svn fetch”后,您可以使用合并而不是重新基址将最新的svn内容获取到本地分支中。如果合并成功,您就会知道,因为没有冲突(您可以通过git ls文件等工具找到冲突)。如果合并不起作用,您就没有损坏任何东西,可以忽略对工作树的顶级更改

然后在提交之前做一个重基作为最后一步(如果您愿意,这不是严格需要的),您可以交互地处理容易出错的重基只一次。

在执行“git svn fetch”之后,您可以使用合并而不是重基将最新的svn内容获取到您的本地分支中。如果合并成功,您就会知道,因为没有冲突(您可以通过git ls文件等工具找到冲突)。如果合并不起作用,您就没有损坏任何东西,可以忽略对工作树的顶级更改


然后在提交之前,作为最后一步执行重新基址(如果您愿意,这不是严格需要的),您只能交互处理一次容易出错的重新基址。

这似乎是正确的,但如果由于工作副本中存在未提交的更改而无法执行重新基址,则它也会返回1。我是否应该运行git rebase--无论如何都要中止?如果一个rebase在没有交互的情况下无法执行,那么当它被自动运行时,你真的没有选择余地,是吗?这似乎是对的,不过如果由于工作副本中存在未提交的更改而无法执行,它也会返回1。我应该运行git rebase吗?不管怎样,中止?好吧,如果一个rebase不能在没有交互的情况下执行,那么当它被自动运行时,你真的没有选择,是吗?