【问题标题】:Can tortoisegit be configured to automatically merge and it that fails to produce a conflict file to use for merge是否可以将 tortoisegit 配置为自动合并,并且它无法生成用于合并的冲突文件
【发布时间】:2021-08-26 14:23:29
【问题描述】:

我们使用 tortoise svn 已经有一段时间了,很喜欢它。 当我们进行更新时,它会自动合并,如果有冲突 它会产生一个冲突文件,我可以在上面使用合并工具。

使用 tortoisegit,如果有人在文件中,它甚至不会尝试 合并只会产生类似于“Cant”的消息。这是 git 的问题还是 龟甲。我们使用 tortoisegit 是因为 tortoise svn 使用起来非常容易并且不会妨碍您。而使用 tortoise git 我们得到“CANT”和许多对话框 当我们做任何事情时点击。

如果有冲突,我如何在 tortoisegit 中合并,有什么方法可以告诉 它会产生冲突文件。

【问题讨论】:

    标签: tortoisegit


    【解决方案1】:

    我将尝试总结 Git 与远程存储库同步的工作原理。

    1. Commit你的更改到本地分支。
    2. 你想Push你的更改到远程存储库。如果 Git 发现远程跟踪分支有新的变化,它不会允许 Push 并且会说“你必须先做 Pull”。 (这是 Git 本身的限制,不仅在 TortoiseGit 中。)
    3. 按照Pull 的说明进行操作。必须创建结合您和其他人更改的新合并提交。如果没有冲突,则自动创建合并提交。如果有冲突,TortoiseGit 会强制你解决它并手动更改Commit
    4. 最后,Push

    我认为与 SVN 架构的主要区别在于合并提交的创建,但我根本不认为这是一个缺点。

    避免合并提交的一个好方法是在提交之前始终执行Pull,以便您提交到最新版本的分支。但是,如果您在 Pull 期间需要更新文件中的工作树更改,Git 将显示 Your local changes to the following files would be overwritten by mergePlease commit your changes or stash them before you merge。在这种情况下,你应该做Stash changes,重复Pull,最后做Stash Pop

    您可以从 TortoiseGit 上下文菜单中调用所有这些操作,或者您可以尝试使用Git Sync 对话框。

    【讨论】:

    • 我总是先进行拉取,但是拉取失败,因为有时其他人在同一个文件中工作。这就是 CANT 消息出现的时候。它不会进行拉取并尝试合并,或者如果失败会生成一个冲突文件,我们可以在其中看到本地更改并将其与该文件的存储库中的更改合并。我从不尝试先提交,一旦我的回购是最新的,提交将是我的第二步。我的问题是为什么 git 不尝试合并或至少产生冲突。 SVN 在更新方面比 git 好很多。
    • @dgxhubbard 抱歉,我没有考虑过这种情况。请查看我的更新答案。
    • 在我想指出的问题中,我相信 git 甚至不会尝试合并,也不会产生冲突文件。生成一个像 tortoise svn 这样的冲突文件比将我的更改放在一边,进行拉取然后进行合并更可取。冲突文件流排列进程。
    • @dgxhubbard 在拉取冲突更改之前确实值得做Stash changes,因为这样您可以将工作树更改备份到存储中。否则,拉取的更改将与您的工作树更改混合在一起,您将无法在拉取之前恢复您的工作树状态(您需要恢复,例如,如果您目前无法解决冲突,或者您在错误的方式,需要重新开始)。此外,执行 stash push/pop 是一项非常简单的操作,如果没有发生冲突,您根本不必这样做。
    猜你喜欢
    • 2012-03-06
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    相关资源
    最近更新 更多