如何使用Git合并工具解决react-native-git-upgrade冲突?

时间:2016-12-14 13:08:57

标签: git react-native git-merge

我使用react-native-git-upgrade在我的项目上升级React Native,这个过程留下了一些我现在要解决的冲突分隔符:

                DEAD_CODE_STRIPPING = NO;
<<<<<<< ours
            HEADER_SEARCH_PATHS = (
                "$(inherited)",
                /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
                "$(SRCROOT)/../node_modules/react-native/React/**",
                "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
                "$(SRCROOT)/../node_modules/react-native-video",
            );
            INFOPLIST_FILE = "MyAwesomeApp/Info.plist";
=======
                INFOPLIST_FILE = MyAwesomeApp/Info.plist;
>>>>>>> theirs
            LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
            OTHER_LDFLAGS = (
                "$(inherited)",
                "-ObjC",
                "-lc++",
            );

但是Git没有看到这些冲突:git status没有显示任何&#34;未合并的路径&#34;。并且git mergetool失败并显示消息&#34;没有文件需要合并&#34;

所以我不得不通过移除/保持线来手动弄清楚它们。有没有办法在这里使用Git合并工具?

2 个答案:

答案 0 :(得分:5)

react-native-git-upgrade是非侵入式的,它创建了一个临时的Git存储库,而不是使用现有的存储库。因此,这个临时存储库看不到文件冲突,而不是你的。

此临时本地Git存储库位于系统临时目录中。您可以在运行react-native-git-upgrade --verbose时阅读路径: enter image description here

如果您希望能够使用合并工具,则必须使用临时存储库。使用env var指出此文件夹中的Git repo,就像react-native-git-upgrade一样。

对于CLI合并工具:

$ GIT_DIR=/var/folders/vx/jg1x1gd532167rd6ts8y8d2dgp5w7m/T/react-native-git-upgrade/.gitrn git mergetool

请勿忘记附加名为.gitrn的repo目录!

请注意,临时目录的路径是特定于计算机的,这就是为什么必须首先运行react-native-git-upgrade --verbose以获取您的路径。

答案 1 :(得分:0)

升级后,我遇到了同样的麻烦。然后我发现Visual Studio Code具有一个名为GitLens的扩展,无论您回购的状态如何,它都可以解决合并冲突。