个性化阅读
专注于IT技术分析

加入团队之前,你需要了解的10种Git技术

本文概述

你使用Git已有一段时间了, 但从未在团队环境中使用过吗?你是否熟悉Git的基础知识, 但不确定有多大团队在工作中使用Git?

在本文中, 我将介绍加入团队之前必须熟悉的基本Git技术。我已按照你为存储库做出逻辑排列的顺序列出了它们, 因为每个步骤的重要性至关重要。现在, 进入列表。

1.克隆:团队入门

如果你已将Git用于个人项目, 则可能只是从头开始初始化了一个项目, 然后随着时间的推移将其添加到其中。在使用现有代码库时, 第一步是将代码库克隆到本地系统中。这使你可以在存储库副本上工作, 而不会受到其他更改的任何干扰。

要克隆存储库, 请运行git clone命令, 然后输入存储库的路径:

git clone /path/to/repo

如果你的源代码不在同一系统中, 则可以SSH到远程系统并进行克隆:

git clone username@remote_system_ip:/path/to/repo/on/remote

如果要从Internet上的源进行克隆, 则只需添加URL:

git clone https://github.com/sdaityari/my_git_project.git

每当克隆存储库时, 你都可以选择多种协议连接到源。在上面的GitHub示例中, 我使用了https协议。

2.在Git中管理遥控器

克隆存储库后, 它仍将保留指向源的指针。该指针是Git中遥控器的一个示例。远程是指向同一存储库的另一个副本的指针。克隆存储库时, 将自动创建一个指向源的指针原点。

你可以通过运行以下命令来检查存储库中的远程服务器列表:

git remove -v

要添加远程, 可以使用git remote add命令:

git remote add remote_name remote_address

你可以使用git remote remove命令删除远程:

git remote remove remote_name

如果你想更改遥控器的地址, 可以使用set-url命令:

git remote set-url remote_name new_remote_address

3.在Git中分支

与其他版本控制系统相比, Git的最大优势在于其分支机构的强大功能。在我开始介绍分支的要点之前, 你可能想知道什么是分支。分支是指向存储库中的提交的指针, 而该提交又指向其前身。因此, 分支代表按时间顺序排列的提交列表。创建分支时, 实际上只能创建指向提交的新指针。但是, 从本质上讲, 它代表了一条新的, 独立的发展道路。

如果你一直在从事自己的项目, 那么你可能永远不会自觉使用过分支。默认情况下, Git使用master分支进行开发。任何新的提交都将添加到该分支。

对于Git来说, 分支对于项目中的工作分支是必要的。在同一时间, 可能有许多开发人员正在处理各种不同的问题。理想情况下, 这些问题应在不同的分支中进行处理, 以确保新代码在逻辑上分开, 直到代码复查和合并为止。

要检查分支列表和当前活动分支, 请运行以下命令:

git branch

要创建一个新分支, 请运行以下命令:

git branch new_branch

即使Git创建了一个新分支, 请注意你的活动分支仍然是旧分支。要在新分支中开始开发, 请运行以下命令:

git checkout new_branch

要创建一个新分支并更改活动分支, 请运行以下命令:

git checkout -b new_branch

要重命名当前分支, 请运行以下命令:

git branch -m new_renamed_branch

使用-D选项删除分支:

git branch -D new_renamed_branch

这是有关在Git中进行分支的详细指南。

4.更新你的本地存储库:合并

在检查完Git中分支的基础知识之后, 下一步的逻辑步骤是在完成问题处理后将分支合并到基础分支中。要合并分支, 请运行以下命令:

git checkout base_branch
git merge new_branch

虽然听起来很简单, 但是合并可能是Git中最耗时的过程, 因为它可能引起冲突。

5.处理冲突

假设你正在处理新分支中的文件。提交更改后, 你要求Git将新分支与基础分支合并。但是, 自创建新分支以来, 基本分支中同一文件的相同部分已经更新。 Git如何决定保留哪些更改以及丢弃哪些更改?

Git总是在合并过程中尽量不丢失任何数据。如果对同一文件的更改是在文件的不同部分进行的, 则可以通过保留两组更改来避免更改。但是, 如果Git无法决定保留哪些更改, 则会引发冲突。

发生冲突后, 在存储库上运行git status会显示两个合并分支中已修改文件的列表。如果你打开任何有冲突的文件, 则会注意到以下几行:

<<<<<<<< HEAD
...
...
========
...
...
>>>>>>>> new_branch

<<<<<<<< HEAD和========之间的文件部分包含该代码, 该代码存在于基础分支中。在new_branch分支中存在========和>>>>>>>> new_branch之间的代码行。合并代码的开发人员有责任决定应在合并中包含代码的哪一部分(或两部分的混合)。编辑后, 删除显示的三组行, 保存文件, 然后提交更改。

6.与远程同步更改

在讨论了如何在新分支中提交代码并将其与基础分支合并后, 现在让我们看看如何与远程代码同步。在将更改发布到远程服务器之前, 需要更新存储库的本地副本, 以说明自上次更新以来可能发生的任何更改。要从远程更新更新, 请运行以下命令:

git pull remote remote_branch:local_branch

git pull命令首先从远程下载数据, 然后按照命令中的指定与本地分支合并。从远程提取更改时也会发生冲突。在这种情况下, 冲突文件的最后一行将包含>>>>>>>> commit_hash而不是>>>>>>>> new_branch, 其中commit_hash将是要添加到分支中的提交的标识哈希。

要与远程服务器的最新代码合并后将更改发布到远程服务器, 请使用git push命令:

git push remote local_branch:remote_branch

7.云上的Git:分叉

如果你的团队在云上工作, 则会为你介绍一个称为fork的附加概念。分支是用户名下云中央存储库的副本。你具有对fork的写权限, 这是在不影响原始存储库的情况下进行更改的安全位置。

这影响了我上面介绍的技术步骤。你可以克隆分叉, 因此本地存储库的来源指向云上的分叉。那么你如何从最新的存储库获取更新?你需要手动添加一个远程上游, 它指向原始存储库。

虽然你可以轻松地将更改发布到fork中, 但是如何将新代码接受到原始存储库中?这将我们带入下一步。

8.通过拉取请求进行代码审查

拉取请求是将代码从一个分支合并到另一个分支的请求。自从Git的云服务开始流行以来, 这个概念就不断发展。请求请求总结了两个相关分支之间的比较, 并引发了开发人员和组织管理员之间的讨论。

GitHub上的对话

在可以合并之前, 代码审查可能最终导致更多更改。当管理员对更改感到满意时, 可以将其与存储库合并。

9.了解Git工作流程

当你单独处理单个项目时, 可能只使用一个分支。不知不觉中, 你将遵循集中式或中继工作流程, 其中所有更改都在一个分支上进行。

下一个更复杂的工作流程是功能分支工作流程, 其中将单个分支归因于每个功能或错误修复。没有开发直接发生在主分支或开发分支上。

涵盖多种情况的Git工作流程是Gitflow工作流程。它具有用于开发, 功能, 发行版和修补程序的独立分支。

这是有关Git工作流程的详细指南。

10.处理大文件:Git LFS

尽管Git在处理文本文件方面做得很出色, 但它无法跟踪二进制文件和可执行文件中的更改。虽然你可以将此类文件添加到Git, 但可能会导致存储库很大, 并导致提交数量增加。

解决方案是使用Git大文件存储, 它通过Git处理大型二进制文件。该工具将这些文件存储在云中, 并用文本指针替换它们。这是使用Git LFS跟踪Photoshop设计文件的一种实现。

进一步阅读

在本文中, 我讨论了各种Git技术, 这些技术在首次加入团队时可能会对你有所帮助。希望对你的未来有所帮助。我错过了什么吗?在Twitter上告诉我!

为了更深入地了解Git, 请查看以下资源:

  • 快速入门Git:简洁的指南, 可让你在一个周末内快速掌握。
  • 专业Git:更深入的了解, 将带你进入Git精通的道路。
赞(0)
未经允许不得转载:srcmini » 加入团队之前,你需要了解的10种Git技术

评论 抢沙发

评论前必须登录!