目录搜索
GuidesgitattributesgiteverydaygitglossarygitignoregitmodulesgitrevisionsgittutorialgitworkflowsAdministrationgit archivegit bundlegit cleangit filter-branchgit fsckgit gcgit instawebgit reflogBasic Snapshottinggit addgit commitgit diffgit mvgit resetgit rmgit statusBranching and Merginggit branchgit checkoutgit loggit mergegit mergetoolgit stashgit tagDebugginggit bisectgit blamegit grepEmailgit amgit format-patchgit request-pullgit send-emailExternal Systemsgit fast-importgit svnGetting and Creating Projectsgit clonegit initGitgit annotategit archimportgit bisect-lk2009git check-attrgit check-mailmapgit check-ref-formatgit checkout-indexgit cherrygit citoolgit columngit credentialgit credential-cachegit credential-storegit cvsexportcommitgit cvsimportgit cvsservergit diff-filesgit diff-treegit difftoolgit fast-exportgit fetch-packgit fmt-merge-msggit get-tar-commit-idgit guigit http-backendgit http-fetchgit http-pushgit imap-sendgit index-packgit interpret-trailersgit ls-remotegit ls-treegit mailinfogit mailsplitgit merge-filegit merge-indexgit merge-one-filegit merge-treegit mktaggit mktreegit name-revgit notesgit p4git pack-objectsgit pack-redundantgit pack-refsgit parse-remotegit patch-idgit prunegit prune-packedgit quiltimportgit receive-packgit remote-extgit remote-fdgit remote-testgitgit repackgit replacegit rereregit send-packgit sh-i18ngit sh-setupgit shellgit show-branchgit show-indexgit stripspacegit unpack-filegit unpack-objectsgit upload-archivegit upload-packgit vargit verify-commitgit verify-taggit whatchangedgit worktreeInspection and Comparisongit describegit shortloggit showMiscellaneousapi credentialsapi indexgitcligitcore tutorialgitcredentialsgitcvs migrationgitdiffcoregithooksgitkgitnamespacesgitremote helpersgitrepository layoutgitsubmodulesgittutorial 2gitwebgitweb.confpack formatUser ManualPatchinggit applygit cherry-pickgit rebasegit revertPlumbing Commandsgit cat-filegit check-ignoregit commit-treegit count-objectsgit diff-indexgit for-each-refgit hash-objectgit ls-filesgit merge-basegit read-treegit rev-listgit rev-parsegit show-refgit symbolic-refgit update-indexgit update-refgit verify-packgit write-treeServer Admingit daemongit update-server-infoSetup and Configgitgit configgit helpSharing and Updating Projectsgit fetchgit pullgit pushgit remotegit submodule
文字

名称

git-merge-file  - 运行三路文件合并

概要

git merge-file [-L <current-name> [-L <base-name> [-L <other-name>]]]        [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]        [--[no-]diff3] <current-file> <base-file> <other-file>

描述

git merge-file将从<base-file>to <other-file>导入的所有变化合并到一起<current-file>。结果通常会进入<current-file>git merge-file对于将单独的更改组合到原始文件非常有用。假设<base-file>是原来的,都<current-file><other-file>都进行修改<base-file>,然后git merge-file结合了变化。

如果两者都发生冲突<current-file>并且<other-file>在共同的线段中发生变化。如果发现冲突,git merge-file通常会输出一个警告,并将冲突与包含<<<<<<<和>>>>>>>标记的行进行括号。典型的冲突将如下所示:

<<<<<<< A
lines in file A=======lines in file B>>>>>>> B

如果有冲突,用户应编辑结果并删除其中一个选项。然而,当--ours--theirs--union选项有效时,这些冲突分别有利于分别来自<current-file>线段<other-file>,来自线段或来自两者的线路。冲突标记的长度可以通过--marker-size选项给出。

该程序的退出值对错误为负值,否则冲突的数量(如果存在多次冲突,则截断为127)。如果合并是干净的,则退出值为0。

git merge-file被设计成是 RCS merge也就是的最小克隆;这就说,它实现了 git 所需的所有 RCS merge功能[1]。

选项

-L <label>

此选项最多可以放三次,并指定标签用于替代冲突报告中的相应文件名。也就是说,git merge-file -L x -L y -L z a b c生成的输出看起来好像来自文件x,y 和 z,而不是来自文件a,b 和 c。

-p

将结果发送到标准输出而不是覆盖<current-file>

-q

安静; 不要警告冲突。

--diff3

以“diff3”风格显示冲突。

--ours   --theirs   --union

而不是在文件中留下冲突,解决有利于我们(或他们或两者)方面的冲突。

示例

git merge-file README.my README README.upstream

将自 README 后的 README.my 和 README.upstream 的更改结合起来,尝试合并它们并将结果写入 README.my。

git merge-file -L a -L b -L c tmp/a123 tmp/b234 tmp/c345

将tmp / a123 和 tmp / c345 与基本 tmp / b234合并,但使用标签ac而不是tmp/a123tmp/c345

上一篇:下一篇: