ncu*_*ery 4 git git-merge react-native
我使用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++",
);
Run Code Online (Sandbox Code Playgroud)
但Git没有看到这些冲突:git status没有显示任何"未合并的路径".并且git mergetool失败并显示"没有文件需要合并"的消息
所以我必须通过删除/保持线来手动解决它们.有没有办法在这里使用Git合并工具?
react-native-git-upgrade是非侵入式的,它创建了一个临时的Git存储库,而不是使用现有的存储库.因此,这个临时存储库看不到文件冲突,而不是你的.
此临时本地Git存储库位于系统临时目录中.您可以在运行时读取路径react-native-git-upgrade --verbose:

如果您希望能够使用合并工具,则必须使用临时存储库.使用env var指出此文件夹中的Git repo,就像react-native-git-upgrade一样.
对于CLI合并工具:
$ GIT_DIR=/var/folders/vx/jg1x1gd532167rd6ts8y8d2dgp5w7m/T/react-native-git-upgrade/.gitrn git mergetool
Run Code Online (Sandbox Code Playgroud)
不要忘记追加名为的repo目录.gitrn!
请注意,临时目录的路径是特定于机器的,这就是为什么必须先运行react-native-git-upgrade --verbose以获取您的路径.