我对以前使用过svn的git感到有点困惑。
我从主分支中撤出,创建了我的功能分支,处理它,在本地添加并提交我的更改,推送到远程,然后将我的分支提交给jenkins并且所有测试都通过了。
与此同时,主分支继续前进,所以我检查了开发,提取了最新的更改,然后根据最新的开发副本重新设置了我的分支。
所以这意味着我的单元测试和集成测试针对我的代码的最新副本而不是最新的开发副本。
我认为我现在能够再次将chanegs推送到我的远程分支,为其提供最新的开发更改,然后重新运行我的测试,但是git status表示没有任何提交,我的工作目录是干净的。
为什么我的分支机构没有意识到我可能希望推动重新运行测试的开发有变化?
答案 0 :(得分:2)
rebase完全重写您的更改,用新的提交替换以前的提交。因此,您没有任何新的提交(因为您的旧提交已更改),但您应该能够将它们再次推送到CI系统。
请注意,您可能需要使用git push --force
强制推送才能替换已经推送到那里的分支。不要在您希望运行CI的功能分支之外执行此操作,否则会导致其他团队成员出现问题。