2012-12-11 80 views
0

我正在开展一个相当活跃的项目。要实现新功能,请创建一个新分支(“我的功能”)。为了跟踪主人在做什么,我不时地按照以下步骤操作:git rebase,我想我做错了什么

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. 

比我必须通过我自己的代码。冲突始终是我在“我的特征”分支和同一行的更高版本中完成的较早更改。看起来rebase以某种方式混淆了提交的顺序,我不知道。

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

在主人那里我没有改变我在“我的功能”分支编辑的文件。所以我会认为,一个rebase应该通过没有任何冲突。只需引入所有其他更改,然后按照正确的顺序将更改应用于其上。

我在做什么错在这里?

谢谢!

+0

如果您厌倦了一次又一次解决相同的冲突,您可以启用rerere:'git config --global rerere.enabled true' –

回答

3

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

当您重新绑定时,您的功能分支提交将逐个重播。所以,你随后修复一个空白错误的事实不会阻止git在重放较旧的提交时抱怨。

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

+0

提交钩子?他在当地重新定居。 –

+0

是的,rebase正在创建本地提交。我没有说一个_push_钩子。 – Useless

+0

最有可能的一个客户端预先提交钩子,从它的声音。 OP可以检查'.git/hooks/*'来检查错误是从哪里来的。 – Useless

1

有时候git会给出空格的警告。如果你的文件的空白是不是显著可以跳过这些警告此配置:

git config --global apply.whitespace nowarn 

如果你不想改变你的git的配置,你可以一边做底垫使用的选项:

git rebase --ignore-whitespace