0

我正在做一个非常活跃的项目。要实现新功能,请创建一个新分支(“my-feature”)。为了跟踪 master 中发生的事情,我不时执行以下步骤:

git checkout master
git pull
git checkout my-feature
git rebase master

一开始,这工作得很好。但是几天以来,我不得不遇到许多错误,例如:


stdin:28: trailing whitespace.

stdin:80: trailing whitespace.

stdin:83: trailing whitespace.

warning: 3 lines add whitespace errors.

比我必须自己浏览代码。冲突总是我在“my-feature”分支和同一行的更高版本中完成的较旧的更改。看起来 rebase 以某种方式混淆了提交的顺序,我不知道。

在我修复它之后,我将它们标记为已修复(git add)并调用git rebase --continue这再次导致类似的错误。比我必须多次重复这个步骤,直到 rebase 过程完成。

在 master 那里,我在“my-feature”分支中编辑的文件没有更改。所以我认为应该在没有任何冲突的情况下进行变基。只需拉入所有其他更改,然后以正确的顺序应用我的更改。

我在这里做错了什么?

谢谢!

4

2 回答 2

3

这听起来不像是冲突,听起来像是有人添加了一个检测空白错误的提交钩子。

当您变基时,您的功能分支提交会被一一重播。因此,您随后修复了空白错误这一事实不会阻止 git 在重放旧提交时抱怨。

要么使用变基来压缩你的提交,所以你的历史记录中没有错误的提交,或者只是停止变基。您可以合并master -> my-feature以使您的分支保持最新,然后仅在完成后合并回来。

于 2012-12-11T15:43:36.217 回答
1

有时 git 会对空格发出警告。如果您的文件中的空白不重要,您可以使用此配置跳过这些警告:

 git config --global apply.whitespace nowarn

如果您不想更改您的 git 配置,您可以在执行 rebase 时使用该选项:

 git rebase --ignore-whitespace 
于 2012-12-11T16:05:04.683 回答