【问题标题】:workflow confusion after XCode git pullXCode git pull 之后的工作流程混乱
【发布时间】:2012-10-30 02:37:51
【问题描述】:

我以前使用过其他 DVCS 系统,但我是 git 新手。所以我认为我对如何按照我的意图使用它有错误的假设。

我有一个 RepoA,它有一个 master 和 development 分支,我在其中完成大部分工作。不久前,我从 RepoA 中克隆了 RepoB 以开始研究“BigFeatureA”,并在开发分支中也这样做了。我还没有完成 BigFeatureA,但我想带来自我进行克隆以来在 RepoA 中所做的所有更改,以便我继续使用最新的代码在 BigFeatureA 上工作。 (目前在 RepoA 中,develop 和 master 分支是相同的,但当然,有时它们不是。)使用在 RepoB 中工作的 XCode,我从 RepoA 开发分支中提取了一个。我遇到了冲突,解决了它,启用了拉动按钮,然后进行了拉动。

现在在 RepoB 中,所有带来的更改都是“未提交的更改”,文件显示为“M”或已修改。因此,没有任何提交消息或任何东西来自 RepoA,只是源代码发生了变化。这不是我所期望的。这只是 XCode 版本的 git 工作流还是 git merge 的工作方式?

我的最终工作流程是在 BigFeatureA 完成后将 RepoB 推送到 RepoA。这样做和走另一个方向,即:在 RepoA 和从 RepoB 拉动之间有区别吗?

(进一步阅读表明我可能应该在 RepoB 中创建一个“BigFeatureA”分支,然后在其中的开发分支上从 RepoA 拉取,然后从 BigFeatureA 分支合并到开发分支。会不会有在分支与回购之间进行合并有区别吗?)

【问题讨论】:

  • 你在 repoA 中提交了吗?
  • 是的。对 RepoA 进行了许多错误修复,我想将这些错误修复带到 RepoB - 全部提交。

标签: xcode git git-pull


【解决方案1】:

不,这不是预期的行为。将所有更改保留为已修改文件的原因是因为它已“放弃”合并。

发布时我不知道的相关信息 -> 我创建了存储库,最初不知道将 .DS_Store 放在 .gitignore 文件中。我在那里有 *.DS_Store 很长时间了,但我可能在这样做之后没有正确清理。看起来存储库中有“许多” .DS_Store 文件并将其放入 .gitignore 文件似乎只是意味着“从现在开始”,而不是“从我之前所做的”。

所以上面,Xcode 抱怨 .DS_Store 文件被修改了,因为它不知道如何解决该类型文件中的冲突,所以它就放弃了。它没有处理文件已在 RepoA 中删除的事实,它也需要在 RepoB 中删除。其次,虽然它在文件列表中显示 .DS_Store,但它不是主文件夹中的 .DS_Store,它是文件层次结构中某处的一个或多个 .DS_Store 文件。因此,无论我通过命令行删除 git 中的顶级 .DS_Store 多少次,Xcode 都不会高兴。所以我不能告诉它在谈论哪个 .DS_Store 文件。看起来 Xcode 不适合在您的项目中拥有多个同名文件。

修复方法是跟随另一个SO post,您可以在其中找到层次结构中的所有 .DS_Store,将它们 git rm 然后 git commit 全部通过命令行。然后 Xcode 合并将完成,您将不会留下从拉取中修改过的文件。

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 2022-01-23
    • 2016-09-05
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多