【问题标题】:Is GIT a good solution for large projects like Laravel?对于像 Laravel 这样的大型项目,GIT 是一个很好的解决方案吗?
【发布时间】:2018-07-11 09:35:02
【问题描述】:

当团队在 Laravel 项目上工作时,他们通常会编辑路由文件、相同的控制器和视图。导致数以千计的合并冲突。解决它们非常耗时。有没有办法防止这些冲突?

【问题讨论】:

标签: php git laravel


【解决方案1】:

什么是 git?

Git 是一个成熟的、积极维护的开源项目。数量惊人的软件项目依赖 Git 进行版本控制,包括商业项目和开源项目。 Git 是 DVCS(因此是分布式版本控制系统)的一个示例。与曾经流行的版本控制系统(如 CVS 或 Subversion(也称为 SVN)中常见的软件的完整版本历史记录只有一个位置不同,在 Git 中,每个开发人员的代码工作副本也是一个可以包含所有更改的完整历史记录的存储库。

除了分布式之外,Git 在设计时还考虑到了性能、安全性和灵活性。

什么时候使用 git?

例如,假设开发人员 Alice 对源代码进行了更改,为即将发布的 2.0 版本添加了一项功能,然后使用描述性消息提交这些更改。然后她处理第二个功能并提交这些更改。自然,这些在版本历史记录中存储为单独的工作。 Alice 然后切换到同一软件的 1.3 版分支,以修复仅影响旧版本的错误。这样做的目的是让 Alice 的团队能够在 2.0 版本准备好之前发布错误修复版本 1.3.1 版本。然后 Alice 可以返回 2.0 分支继续开发 2.0 的新功能,所有这一切都可以在没有任何网络访问的情况下发生,因此快速且可靠。她甚至可以在飞机上做到这一点。当她准备好将所有单独提交的更改发送到远程存储库时,Alice 可以在一个命令中“推送”它们。

git有什么优势?

Git 有很多用途和优势,但下面很少有人知道何时以及为什么要使用 git

  • Git 是一个版本控制系统或用于开源项目的 staging。您可以通过逐步创建版本来控制您的项目。
  • 如果在更改后出现问题,可以在 git 中恢复以前的版本以忽略所有这些更改和错误。
  • 我们在 git 上作为 origin master 创建一个项目,然后在作为团队项目工作时在不同的机器上进行克隆。当我们从不同机器上的不同克隆“推送”我们的更改时,git 将所有这些更改合并到一个原始主机中。因此,我们无需为如何将来自不同克隆的更改合并到一个项目文件夹中而烦恼。

如何解决 git 中的合并冲突?

希望这对您了解如何轻松解决 git 中的合并冲突问题有所帮助。用于此目的的最佳工具是 git-mergetool 运行合并冲突解决工具来解决 git 项目中的合并冲突。

使用 git mergetool 运行多个合并实用程序之一来解决 合并冲突。它通常在 git 合并后运行。

如果给定一个或多个参数,将运行合并工具程序以解决每个文件上的差异(跳过没有冲突的那些)。指定一个目录将包括该路径中所有未解析的文件。如果没有指定名称,git mergetool 将对每个有合并冲突的文件运行合并工具程序。

git mergetool 中的备份 git mergetool 在解析合并时创建 *.orig 备份文件。一旦文件被合并并且其git mergetool 会话已经完成,这些就可以安全地删除。

mergetool.keepBackup 配置变量设置为 false 会导致 git mergetool 在文件成功合并时自动删除备份。

如需进一步了解git mergetool,请查看链接: https://www.git-tower.com/learn/git/ebook/en/command-line/advanced-topics/merge-conflicts

我认为这可能对你有帮助。

【讨论】:

  • 感谢分享,非常有用。但这并没有解释如何避免或轻松解决合并冲突。
  • 从来没想过。能否请您给出合并工具的声明链接?
  • 谢谢。我会尝试使用该工具。
【解决方案2】:

是的GIT 对于大型项目来说是一个很好的解决方案。但是您必须处理route 或任何多人在处理的公共文件,以使合并冲突最小化。在任何常见文件上制作不同的代码块,例如:

/* Block 1 Start */

/* Block 1 End */

/* Block 2 Start */

/* Block 2 End */

把所有相关的功能都放在这些block里面,这样冲突就最小化了,一旦发生冲突,分块就很容易解决。

【讨论】:

  • 我喜欢这个解决方案,当很多开发者在处理一个文件时,我们经常会走这条路,这样可以降低冲突风险
【解决方案3】:

在使用 git 时,几乎每个项目都会发生这种情况,我们都面临这样的情况,比如处理相同的文件会导致合并冲突,但另一方面,我们所有的团队成员在一天结束时都有一个同步的代码。此外,作为避免每次 pull 中出现多个合并冲突的替代方法,您可以创建分支,然后将代码推送到各自的分支。这样,只有将这些分支合并到主分支时才会出现合并冲突。这只是我认为 GIT 是项目管理的最佳工具。 如果您不想创建那么多分支,也可以尝试在文件中添加 cmets 部分。

【讨论】:

  • 分支似乎是一个不错的解决方案,但是在合并分支时,您可能会遇到更多冲突。而且您将需要使用一个不必解决它们的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 2010-09-21
相关资源
最近更新 更多