【发布时间】:2014-03-24 00:25:49
【问题描述】:
在浏览了无数网站和许多不同的 stack over flow 帖子后,我找不到看似相当简单的解决方案的答案。
我的设置
我在 NetBeans 上进行本地开发,但除了获取更新外,不通过 NetBeans 执行任何 git 操作。每当我在 NetBeans 上保存/删除/创建/等时,这些更改都会自动传播到远程 Linux 服务器。然后我使用远程服务器上的 Linux 命令行运行我所有的 git 命令。
问题和疑问
由于我在 netbeans 上进行了最初的开发,因此 git fetch 操作拉取的一些文件已经存在于 netbeans 中,因此会引发冲突。有没有办法防止这种情况发生?我需要能够将其他开发人员更新拉到我的 netbeans 中,并且不会收到由我自己的文件已经存在引起的这些冲突。之前用SVN没出现这个问题,因为SVN不在乎,但现在我们切换到git,我必须解决这个问题。
更新
原来问题是由于 Windows 中的 NETBEANS 与在 linux 中创建文件时 (/n) 具有不同的行尾 (/r/n)。所以一个名为http://plugins.netbeans.org/plugin/46829/change-line-endings-on-save 的netbeans 插件将所有行尾转换为linux 并解决了这个问题。
解决此问题后,出现了另一个问题,基本上告诉我 netbeans 对 GIT 的支持不是 100% 完成的。基本上,如果您尝试提取 netbeans 工作副本中已有的文件,GIT 会引发冲突,即使它们是具有相同内容和相同 unix 行结尾的完全相同的文件。为了解决这个问题,我不得不为 windows http://msysgit.github.io/ 下载一个 git 命令行客户端(因为 netbeans 目前不支持 stashes)。然后只需安装带有 unix 行结尾的 bash 部分,然后运行 git stash save "my changes"。然后执行 fetch & merge(或 pull),然后运行 git stash apply PATCHNAME。没有冲突。 :-) 谢谢!马尤尔!
【问题讨论】: