如何合并 Git LFS 跟踪的文件内容

let*_*ome 6 git git-lfs

我在 Git 中有一个 XML 模型(100 MB),它经常变化并且大小不断增长。我正在考虑使用 Git LFS 来处理它。

通过检查文档,我不确定 Git LFS 是否支持文件的实际合并,或者当出现冲突时,应该遵循“我们的”或“他们的”方法。

Git LFS 是否支持跟踪文件的“真实”内容的实际合并?

---- 更新 1----

我在我的电脑上安装了 Git LFS 来跟踪 .xml 文件。因此,我的 XML 模型的内容不再是 XML 内容,而是指向 Git LFS 服务器的指针。这是我的 XML 文件现在的样子。

 version https://git-lfs.github.com/spec/v1
 oid sha256:0e23dcebda1977c424e5d0f25fda57d6eff9c2a5bbb6df7dd4985b64cf437d20
 size 53
Run Code Online (Sandbox Code Playgroud)

因此,如果我在两个分支中更改此 XML 文件并尝试合并,则会引发冲突。当我打开 XML 文件解决冲突时,我需要在一个 oid 和另一个之间进行选择:

<<<<<<< HEAD
oid sha256:0e23dcebda1977c424e5d0f25fda57d6eff9c2a5bbb6df7dd4985b64cf437d20
size 53
=======
oid sha256:cbe18ff9b73fad7d5b9cdcd177f9be9cf25bc88db279f3136aed5bfdec7eb0f7
size 91554569
>>>>>>> refs/heads/LFSbr1
Run Code Online (Sandbox Code Playgroud)

---- 更新 2 ---

这是我在执行“git lfs env”时得到的结果:

WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to    ".lfsconfig" before Git LFS v2.0 to remove this warning.
git-lfs/1.3.1 (GitHub; darwin amd64; go 1.6.3; git 9c9dffb)
git version 2.9.0

LocalWorkingDir=
LocalGitDir=
LocalGitStorageDir=
LocalMediaDir=lfs/objects
LocalReferenceDir=
TempDir=lfs/tmp
ConcurrentTransfers=3
TusTransfers=false
BasicTransfersOnly=false
BatchTransfer=true
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
AccessDownload=none
AccessUpload=none
DownloadTransfers=basic
UploadTransfers=basic
git config filter.lfs.smudge = "git-lfs smudge -- %f"
git config filter.lfs.clean = "git-lfs clean -- %f"
Run Code Online (Sandbox Code Playgroud)

有什么问题吗?

Mar*_*ira 3

是的,它确实。LFS 内容和非 LFS 内容之间没有与合并操作相关的差异。Git 将管理合并,而不是 Git LFS。

我认为您的“git lfs env”中缺少以下行:

git config filter.lfs.process = "git-lfs filter-process"
Run Code Online (Sandbox Code Playgroud)

确保您的 $HOME/.gitconfig 具有以下行:

[filter "lfs"]
    clean = git-lfs clean -- %f
    smudge = git-lfs smudge -- %f
    process = git-lfs filter-process
    required = true
Run Code Online (Sandbox Code Playgroud)