16 2022.05

网站开发如何利用好Git

发布日期:2022-05-16 09:30:10
阅读数 4011

作者:尼高GARY 来源:https://www.niegoweb.com

对于在同一个网站开发项目上一起工作的人员来说,Git 无疑是最好的软件之一。它旨在支持和加速分布式工作流程,可以轻松管理处理同一代码或文件的多个开发人员的工作。它还为适当的版本控制和文件同步提供了一种方便有效的方法。但是也会有遇到错误的情况,尤其是关于重复的情况。由于涉及多个开发人员,不可避免地会出现导致错误的冗余或不必要的重复的问题。下面讨论的是这些错误的三个最常见示例及其相应的解决方案。

当指向名为“origin”的远程存储库的链接已经存在,但您不必要地创建指向新位置的相同链接时,会出现Git 错误“致命:远程源已存在” 。当您将存储库从 GitHub(或其他一些外部远程存储库)复制到本地计算机并设置“源”URL 以链接到您在本地计算机中复制的存储库时,通常会发生这种常见错误。在 Kubernetes 实现中,当编排配置为包含 Git 存储库时会发生错误。例如,出现错误“git remote add origin [url].gits fatal: remote origin already exists”是因为克隆的存储库已经配置了指向存储库源所在的原始配置文件的 URL。


远程源是指代码被远程保存的位置,一个所有开发人员都可以访问的集中式服务器,以将代码保存到其中并从中提取代码。同时,远程存储库是保存在 GitHub、GitLab、Assembla 和 Bitbucket 等 Git 兼容服务器上的项目的克隆。“Origin”是用于关联主机站点 URL 的通用句柄。解决“致命:远程来源已存在”错误可以通过三种方式完成。这些步骤适用于大多数将“origin”设置为默认或标准处理程序的开发环境。


1. 更新远程存储库的 URL——这可以通过使用“set-url”命令后跟处理程序名称来完成。该命令将如下所示:“git remote set-url origin [new-url]”。在这种情况下,处理程序名称是“origin”,因为它很可能是在本地存储库上配置的唯一指针。


2. 删除现有远程存储库——如果直接远程 URL 更新不起作用,您可能必须删除现有远程。为此,请在“remote”上使用“remove”命令并附加处理程序名称。该命令看起来像这样:“git remote remove origin”。删除现有遥控器后,可以添加新的或正确的 URL 而不会遇到错误。


3. 重命名远程存储库——该选项的模板命令是“git remote rename origin dev”,其中“dev”是现有“origin”远程存储库的新名称。重命名源或现有的远程存储库允许您添加新的源和 URL。


当您尝试更新已签出的分支时会发生此错误。Git 旨在引发此错误以防止您进入分支,因为该操作将导致您尝试更新的存储库的所有者或用户出现数据问题。这个问题会导致数据和历史丢失。


签出分支意味着后续提交导致创建新分支。这个新分支的父级是签出分支,这意味着它是中间的一个分支。推入这样的分支会使 Git 将中间分支解释为分离的 head。然后,所有即将提交的提交都将悬空,从而导致错误。这个错误可以通过以下方式解决;


1. 使用裸仓库 -使用此命令“mv repo repo.old git clone –bare repo.old repo”可以将完成的工作目录移动到裸仓库以避免混乱。然后可以在需要时随时克隆工作目录。


2. 推送到未签出的分支——你可以创建一个新的分支,通过它你可以推送你想要的更改。使用命令“git push origin master:master+machineN”,假设您在 master 分支上并且您的远程存储库名为“origin”。然后,您可以通过以下命令将新分支与“origin”远程存储库合并:“git merge master+machineN”。


这是开发人员遇到的常见错误,当开发人员尝试将提交的代码推送到外部 Git 存储库时会弹出。由于多种原因导致突然无法推送代码,通常是在多个开发人员在同一个分支上工作时。如果远程分支包含本地存储库中不存在的代码,Git 旨在防止推送成功。它认为本地存储库与远程源不兼容。


如下所述,此错误可能出现在多种情况下。


1. 开发者将提交推送到同一个分支——在这种情况下显示的错误如下所示:“To git@git.testdomain.com :sometest.git ![rejected] your-branch -] your-branch (non-fast-forward)”。头部被分配在同一代码时间线上的不同位置,因此 Git 无法弄清楚如何进行。要解决此问题,请在本地存储库上运行命令“git pull”(例如:“git pull origin [your-branch]),以便您可以重新推送(例如:”git push origin [your-branch])。


2. 'Master (non-fast-forward)' 错误和'failed to push some refs to' 错误-当你的代码在到达最近的提交之前发生分歧时会发生这种情况,因为引用点在提交历史中向前移动。解决这个问题需要使用“-rebase”标志来移动预期的文件以提交到最新的拉代码。该命令看起来像这样,“git pull –rebase origin [branch]”。


3. 'Master (fetch first)' 错误和'failed to push some refs to' 错误 -当多个开发人员在同一个分支上工作时的常见问题,这是因为其他人在你之前推送到分支。Git 需要你先拉,然后再推。这听起来很简单。但解决方案不是一个简单的 pull and push again 命令,因为在 pull 过程中可能会发生数据丢失。您必须使用“–rebase”命令移动“ref”头并更新本地存储库以避免远程存储库中的分歧。建议不要使用“–force”命令来解决此问题,因为它可能会导致更多错误。


Git 的分布式工作流模型是一种很好的协作方式,但是让许多开发人员在同一个项目上一起工作会带来一系列挑战。它不一定走“太多厨师破坏呼吸”的路线,但它带来了复杂性,需要适当的解决方案以避免产生更多问题或解决临时问题。

在线咨询 热线咨询 微信咨询 返回顶部
联系项目经理
获取解决方案、项目报价
项目需求
联系方式
您的姓名

联系电话:

13528173451

立即咨询