【发布时间】:2015-04-04 12:26:47
【问题描述】:
我目前在一个由两名(包括我自己)iOS 开发人员组成的团队中。 每次我们中的一个推而另一个拉,一切正常,但 git 显示 Project.xccheckout 的即时更改,以下结果来自我的 git diff:
<false/>
<key>IDESourceControlProjectIdentifier</key>
<string>XXXXX-XXXX-XXXX-XXXX-XXXXXXXXX</string>
+ <key>IDESourceControlProjectName</key>
+ <string>XXXXX</string>
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>XXXXXXXXXXXXXX</key>
- <string>github.com:XXXXX/iOS.git</string>
+ <string>https://github.com/XXXXX/iOS.git</string>
</dict>
+ <key>IDESourceControlProjectPath</key>
+ <string>XXXXX.xcworkspace</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>XXXXXXXXXXXXXXXXXXX</key>
- <string>ios/</string>
+ <string>..</string>
</dict>
<key>IDESourceControlProjectURL</key>
- <string>github.com:XXXX/iOS.git</string>
+ <string>https://github.com/XXXX/iOS.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
当我推而他拉时,他基本上得到相反的结果(如果我要提交更改并将它们向上推)。我最初将本地 git 设置为使用 HTTPS,而其他开发人员使用 SSL - 我怀疑问题就在那里。我尝试将我的 git 配置更改为使用 SSL,我认为这可以解决问题,但它仍然存在。当我做git remote -v 时,结果是:
origin git@github.com:XXXXX/iOS.git (fetch)
origin git@github.com:XXXXX/iOS.git (push)
在我看来,这已经解决了这个问题,因为这表明我使用的是 SSL,而之前的结果是:
origin https://github.com/XXXXX/iOS.git (fetch)
origin https://github.com/XXXXX/iOS.git (push)
有谁知道这个问题的原因是什么,或者如何解决它?整天清理这些无用的更改,我快疯了。
【问题讨论】:
-
你可以将 *.xccheckout 添加到你的 .gitignore...
-
我隐约记得我们不想这样做是有原因的,但我可能正在考虑其他事情。我会试试看,然后回复你。
-
@IanMacDonald 啊,是的,这是我最初读到的内容,这让我相信我不应该将其添加到我的 .gitignore 中。 stackoverflow.com/questions/18340453/…
-
这就是 git 子模块的用途。您链接的答案实际上仅适用于同一工作区中有多个不相互依赖的 git 项目(为什么?)或 svn 和 git repos 的混合(为什么?)。
-
我们只有一个主工作区,其他都是 CocoaPods。您认为我们可以添加 xccheckout 吗?