如果对库存进行了更改,则git p4 rebase将失败

时间:2014-11-19 20:43:56

标签: git version-control git-p4

我最近为我的主要c#项目设置了一个git p4克隆。我正在做以下事情:

  • git checkout -b newbranch
  • git p4 rebase(确保分支是最新的仓库)
  • 进行更改
  • git commit -a
  • 进行更多更改
  • git commit -a
  • 准备将文件推送到p4软件仓库

此时,如果自我开始分支以来项目的仓库路径没有任何变化,我可以做一个

  • git p4 rebase
  • git p4 submit

一切都很顺利。但是,如果软件仓库发生了变化,当我运行' git p4 rebase'时,它会在软件仓库中应用这些东西,然后当它尝试重新应用我的提交时,它会出错,说& #34;本地更改将被合并"覆盖。然后它继续列出我已经提交的所有文件,告诉我应该提交或存储它们。奇怪的是,如果我运行“git status'”,则不会显示任何文件。这是怎么回事?

我唯一能够让它发挥作用的是执行以下操作:

  • git rebase -i HEAD~ {自上次更改仓库以来的提交次数}
  • git stash
  • git p4 rebase
  • git stash pop
  • git p4 submit

但我也不是那个的忠实粉丝,因为现在我的提交历史已经丢失了 - 我最终得到了一个怪物提交。就p4仓库而言,这并不是那么糟糕(哎呀,这到底是我想要的),但我仍然希望我的本地Git提交可见,否则我失去了很多使用Git的价值。

值得一提的是,在它抛出最终错误之前,Git还会显示几个空白警告......但是它们都以"警告:"为前缀,所以我认为这样做了不是根本原因。

1 个答案:

答案 0 :(得分:0)

您的新更改是否基于原始p4 / master分支?

即。你做了什么:

$ git checkout -b my_new_branch p4/master
hack
$ git commit -m 'somechange' -a
hack some more
$ git commit -m 'another change' -a
$ git p4 rebase

您应该根据p4 / master进行新的更改,否则它将不起作用。