常州行业网站制作校园网站平台建设

当前位置: 首页 > news >正文

常州行业网站制作,校园网站平台建设,中国建设造价信息网站,南京建设银行网站欢迎来到我关于 Git 的综合指南#xff0c;Git 是一种分布式版本控制系统#xff0c;已经在软件开发中彻底改变了协作和代码管理方式。 无论你是经验丰富的开发者还是刚开始编程之旅的新手#xff0c;理解 Git 对于正确掌控代码、高效管理项目和与他人合作至关重要。 在本…欢迎来到我关于 Git 的综合指南Git 是一种分布式版本控制系统已经在软件开发中彻底改变了协作和代码管理方式。 无论你是经验丰富的开发者还是刚开始编程之旅的新手理解 Git 对于正确掌控代码、高效管理项目和与他人合作至关重要。 在本教程中我将带领你了解 Git 的基础知识涵盖从基本工作流程到高级分支策略和重新基础技术的所有内容。 通过本指南你将对 Git 的核心概念有扎实的理解并且具备自信和良好的技能能够在你的开发工作流程中有效地使用它。 本文内容参考java567.com 先决条件 你只需要带着一颗好奇和渴望学习的心态来参与。本指南是针对初学者精心设计的因此不需要对版本控制系统或编程有任何先前的知识。无论你是完全的新手还是有一些编程经验你都会发现本教程易于理解和跟随。 什么是Git Git 是一种分布式版本控制系统能够帮助你和你的团队有效地进行协作同时保持项目历史记录的安全。它就像是为你的代码建立了一个时间机器 Git与其他版本控制系统的不同之处是什么 概念上的差异 让 Git 与其他工具有所区别的重要因素是它对数据的理解方式。Git 不是将文件的更改保存起来而是将项目的数据视为一系列快照也就是说每当你进行更改并保存提交时Git 就会在那一刻对所有文件进行快照。如果一个文件没有发生更改Git 只会保留到前一个相同文件的链接。 本地操作 使用 Git你大部分操作都不需要连接服务器。因为你在电脑上拥有整个项目的历史记录所以操作非常快速。你可以浏览项目历史记录或查看版本之间的变化而不需要等待服务器。 数据完整性 Git 确保没有任何东西会丢失或损坏。每个文件和目录都经过了校验和Git 会知道是否发生了任何更改。 Git 使用 SHA-1 哈希对于文件的每个版本都有一个唯一的代码。如果对内容进行了任何更改甚至只是一个字符都会导致不同的 SHA-1 哈希。 追加模型 在 Git 中几乎所有的操作都会向项目添加数据这样做很难意外丢失信息。一旦提交了更改它们就会被安全地存储。使用 Git 进行实验更加安全。 三种状态和基本Git工作流程 了解 Git 的三种状态 - 修改、暂存和提交 - 对于有效的版本控制至关重要 修改对工作树中的文件进行的更改但尚未提交。暂存在暂存区中标记为下次提交的修改以便包含在下次提交中。提交永久存储在本地 Git 目录中的更改。 基本的 Git 工作流程 在工作树中修改文件。将要包含在下次提交中的更改暂存起来。提交更改将快照永久保存到 Git 目录中。 首次设置Git 首次设置Git涉及定制你的Git环境以满足你的偏好。但首先你需要从Git - Downloads下载Git或者使用Chocolatey软件包。然后只需按照安装说明操作你就可以开始了。 Git配置 我们使用git config工具来定制我们的Git环境。该工具允许我们检索和设置配置变量这些变量决定了Git的操作方式。这些变量可以存储在三个不同的位置 系统级配置 存储在/etc/gitconfig文件中这些设置适用于系统上的所有用户和所有存储库。我们可以使用git config的–system选项与该文件进行交互。用户特定配置 存储在/.gitconfig或/.config/git/config中这些值是特定于你作为用户的。我们可以使用git config的–global选项与该文件进行交互影响你在系统上操作的所有存储库。存储库特定配置 存储在特定存储库内的.git/config文件中这些设置会覆盖全局配置并且仅适用于该存储库。 每个配置级别都会覆盖上一个级别的值。例如.git/config中的值将覆盖~/.gitconfig中的值。 要查看所有配置设置及其来源/原始信息 \( git config --list --show-origin如何在Git中配置你的身份 在Git中身份用于正确归属提交。让我们设置你的用户名和电子邮件地址。 \) git config –global user.name Your Name \( git config --global user.email your.emailexample.com如果需要为特定项目覆盖此设置可以在设置值时省略–global选项它们将仅适用于该特定存储库。 如何配置你的默认文本编辑器 在配置了你的身份之后设置Git中的默认文本编辑器非常重要。当Git需要你输入消息时例如写提交消息或解决合并冲突时将使用此文本编辑器。 默认情况下Git使用你系统的默认文本编辑器。但是如果你更喜欢使用不同的文本编辑器例如Emacs你可以这样设置 \) git config –global core.editor emacs在Windows系统中设置不同的文本编辑器需要指定其可执行文件的完整路径。例如如果你想使用Notepad你可以使用如下命令 \( git config --global core.editor C:/Program Files/Notepad/notepad.exe -multiInst -notabbar -nosession -noPlugin确保提供你文本编辑器的可执行文件的正确路径。 顺便说一下这些 - “-multiInst -notabbar -nosession -noPlugin” - 是在Git启动Notepad时用于自定义其行为的选项。 如何在Git中更改默认分支名称可选 默认情况下使用git init初始化新存储库时Git会创建一个名为master的分支。但是从Git版本2.28开始你可以选择为初始分支设置不同的名称。 \) git config –global init.defaultBranch main将默认分支名称全局更改为’main’ 如何在Git中检查配置/设置 你可以使用以下命令查看你的Git配置 \( git config --list \) git config user.name # 要检查特定设置例如用户名git config –list命令会列出Git当前可以找到的所有配置设置。 如何在Git中获取帮助 有三种等效的方法可以获取任何Git命令的详细帮助 Git帮助命令\( git help 使用–help选项\) git –help手册页manpages\( man git- 将替换为你需要帮助的任何命令。例如要获取config命令的帮助你可以输入 \) git help config 或者 \( man git-config这些命令也可以在离线时使用非常方便。 如果你需要快速、简洁地了解Git命令的可用选项可以使用-h选项 \) git add -h # 这将显示add命令的可用选项如何获取Git存储库 要开始使用Git你通常需要获取一个Git存储库。基本上有两种主要的获取方式

  1. 如何在现有目录中初始化存储库 打开终端或命令提示符。使用cd命令将目录更改为你项目的位置cd /path/to/your/project。 一旦进入你的项目目录通过运行以下命令初始化一个Git存储库 \( git init该命令会创建一个名为.git的新子目录Git在其中存储所有必要的文件用于你的Git存储库。在这一点上你的项目文件还没有被跟踪。 现在假设你有某些文件希望Git开始跟踪 \) git add *.py # 添加所有Python文件 \( git add README.md # 添加README文件 \) git commit -m Initial commitgit add将文件添加到暂存区表示你希望将它们包含在下一次提交中然后提交更改。-m标志允许你向提交添加描述性消息。
  2. 如何克隆现有存储库 获取Git存储库的第二种方法是克隆一个现有的存储库。当你想要在已经存在于其他地方的项目上工作时例如你想要贡献的项目这将非常有用。 注意当你克隆一个存储库时Git会检索服务器上几乎所有数据的完整副本。这包括项目历史记录中每个文件的每个版本。这意味着你将在本地机器上拥有存储库的完整副本。 要克隆一个存储库使用git clone命令后跟存储库的URL。例如要克隆grok-1存储库你可以使用 \( git clone https://github.com/xai-org/grok-1.git这将创建一个名为grok-1的目录初始化其中一个.git目录并拉取该存储库的所有数据。 顺便说一句.git只是一个约定表示该URL指向一个Git存储库。你可以使用它也可以不使用都无所谓。 如果你想要克隆到具有不同名称的目录中可以指定它。要将grok-1存储库克隆到名为chatgpt而不是grok-1的目录中可以这样做 \) git clone https://github.com/xai-org/grok-1.git chatgptGit提供了各种传输协议供你在克隆存储库时使用。上面的示例使用https://协议但你也可能看到git://或userserver:path/to/repo.git它们使用SSH传输协议。 如何记录对存储库的更改 现在你已经设置了一个Git存储库你经常需要对你的存储库进行更改并记录这些更改。这个过程涉及跟踪文件暂存更改和提交快照。让我们探讨其中涉及的步骤 1. 如何检查Git中文件的状态 在使用Git存储库时了解文件的状态非常重要。 Git将文件分为两种类型已跟踪和未跟踪。已跟踪的文件是Git识别的文件可能因为它们是上一个快照提交的一部分或者已被暂存。未跟踪的文件是其他所有文件 - Git当前不在监视的文件。要检查存储库的状态 $ git status该命令提供有关当前分支、其同步状态以及你的文件状态的全面信息。 git status还提供了你可以采取的操作建议。例如当文件被修改但未暂存时git status建议使用git add 将其暂存。它还建议使用git checkout – 来丢弃工作目录中的更改。这些建议通过提供快速访问相关Git命令来简化你的工作流程。 此外git status还提供了一种简短的状态模式git status -s使用符号例如M修改、A添加和??未跟踪来表示文件的状态。
  3. 如何在Git中跟踪新文件 当你在项目中创建新文件时Git最初将其视为未跟踪的。要开始跟踪新文件你需要使用git add命令将其添加到暂存区。 例如让我们为我们的项目创建一个名为index.html的新文件并将其添加到暂存区 \( touch index.html \) git add index.html添加后再次运行git status将显示index.html文件现在已被跟踪并准备提交。
  4. 如何在Git中暂存修改过的文件 如果你修改了现有的已跟踪文件你需要使用git add暂存更改。假设我们修改了一个名为styles.css的现有文件 \( vim styles.css进行更改后暂存文件 \) git add styles.css现在当你检查状态时你将看到已修改的文件和新文件都已准备好提交。
  5. 如何在Git中忽略文件 通常在项目中有一些不希望Git跟踪的文件或目录。这些可能包括日志文件、构建产物或敏感信息例如本地环境设置如*.env或config.json。你可以使用.gitignore文件指定要忽略的这些文件。 创建一个.gitignore文件 \( nano .gitignore列出你想要忽略的文件或目录的模式 \) echo .log .gitignore $ echo build/ .gitignore在这里我们告诉Git忽略所有扩展名为.log的文件和build/目录。 注意在添加到.gitignore文件之前由Git跟踪的文件将保持跟踪状态。要删除它们你需要手动使用Git命令取消跟踪。 以下是一些可以用来更有效地使用Git的模式。 精确目标单个文件或文件扩展名例如test.txt仅忽略该特定文件而.log忽略所有以.log结尾的文件。通配符用于更广泛的匹配星号()通配符匹配任意数量的字符。例如.doc忽略所有以.doc扩展名的文件不管它们的名称是什么。
  6. 如何在Git中查看更改 如果你想在提交之前查看你对文件所做的确切更改你可以使用git diff命令。 要查看未暂存的更改 \( git diff 要查看暂存的更改 \) git diff –cached README.mdgit diff提供了实际修改的详细视图。使用git diff 来聚焦于特定文件内的更改。
  7. 如何提交更改 当你准备提交你的更改时使用git commit命令。这将为你打开文本编辑器让你提供提交消息。或者你可以使用-m标志直接添加提交消息 一旦你暂存了你想要包含在提交中的更改你可以使用git commit提交它们 \( git commit -m Your commit message here7. 如何在Git中删除文件 如果需要从Git的跟踪中删除一个文件你可以使用git rm。它会将文件从存储库和工作目录中删除。假设你想要删除一个名为temp.txt的文件 \) git rm temp.txt如果你只想从存储库中删除它但保留在工作目录中可以使用–cached选项 \( git rm --cached temp.txt8. 如何在Git中移动或重命名文件 Git不明确跟踪文件的移动。但是你可以使用git mv来重命名或移动你存储库中的文件。例如将old_file.txt重命名为new_file.txt \) git mv old_file.txt new_file.txt这个命令将暂存重命名并将在下一次提交中反映出来。 它等价于手动移动文件然后使用git rm删除旧文件然后使用git add添加新文件。git mv基本上将这些步骤合并为一个单独的命令。 这些命令构成了进行更改、暂存和提交到Git存储库的基本工作流程。 如何在Git中查看提交历史 在创建多个提交或克隆存储库后git log命令允许你查看提交历史。 默认情况下它以逆时间顺序列出提交显示每个提交的SHA-1校验和、作者的名称和电子邮件、日期和提交消息。现在让我们看看如何增强这个输出 如何在Git中查看提交的差异 要查看每个提交引入的差异你可以使用-p或–patch选项 \( git log -p -2 # -2用于查看最近两次提交中引入的差异如何在Git中显示统计信息 –stat选项为每个提交提供了汇总统计信息包括修改的文件、添加/删除的行数和摘要。 \) git log –stat如何自定义Git Log输出格式 –pretty选项允许你改变日志输出格式。针对不同格式提供了各种选项 oneline简洁单行摘要每个提交。short默认格式包含作者、日期和消息。full详细格式包含提交哈希、作者、日期、消息和差异。fuller更详细的格式包括完整文件路径。format使用格式说明符自定义输出。 \( git log --prettyoneline–prettyformat的有用格式说明符 %h缩写的提交哈希%an作者名称%ae作者电子邮件%ad作者日期%s主题提交消息 \) git log –prettyformat:%h %an %ad %sASCII图形 使用–graph你还可以可视化分支和合并历史。 \( git log --prettyformat:%h %s --graph如何限制Git Log输出 除了格式化选项之外git log还提供了各种限制选项以精细调整显示的提交历史。 -仅显示最后的n次提交。–since–until限制到指定日期之后/之前的提交。–author仅显示特定作者的提交。–grep通过提交消息中的关键字过滤提交。-S显示修改了 示例用法查看自某个日期以来作者Abbey的最后3次提交带有补丁详情 \) git log –authorAbbey –since2024-01-01 -p -3如何在Git中撤销操作 在Git中撤销更改是一个常见的需求有几种选项可用于此目的。 如何在Git中撤销提交 如果你提交得太早或需要对最后一次提交进行额外的更改可以使用以下命令 \( git commit --amend这将打开提交消息编辑器允许你修改消息。如果自上次提交以来没有进行任何更改则仅允许你编辑提交消息。 注意只有在提交仍然是本地的并且尚未推送到远程时才能修改提交以避免给协作者带来问题。 使用git reset取消暂存文件 要取消意外包含的文件的暂存状态可以使用git reset HEAD 命令。例如 \) git reset HEAD CONTRIBUTING.md 文件将取消暂存使你可以在不提交意外更改的情况下进行进一步的更改。 使用git checkout取消修改的文件 假设你对文件进行了一些修改后来意识到你不想保留这些修改。使用git checkout – 来丢弃对文件的更改并将其恢复到以前的状态。 \( git checkout -- CONTRIBUTING.md这将用最后暂存或提交的版本替换修改后的文件。 使用git restore撤销操作 让我们探索由Git版本2.23.0引入的替代方法即git restore它是许多撤消操作的替代方法。 使用git restore取消暂存的文件 如果你意外地暂存了不打算提交的文件可以使用git restore --staged 来取消暂存。 \) git restore –staged CONTRIBUTING.md 文件将取消暂存类似于git reset HEAD 这样你就可以在不提交意外更改的情况下进行进一步的更改。 使用git restore取消修改的文件 要丢弃工作目录中对文件所做的更改请使用git restore
    \( git restore CONTRIBUTING.md类似于git checkout – 此命令丢弃对指定文件所做的更改将其恢复到上次提交的状态。 重要提示使用git reset、git checkout --、git restore等命令时要小心因为它们可能会永久丢弃本地更改。只有当你确定不需要更改且没有未保存的本地更改时才使用这些命令。 替代方法存档和分支是将更改暂时设置为一边而不完全丢弃它们的替代方法。如果对丢弃更改不确定这些方法更安全。 如何在Git中使用远程仓库 远程仓库是你的项目在互联网或网络上托管的版本。与他人合作涉及管理这些远程仓库包括添加、删除和检查它们。让我们学习如何有效地管理它们。 如何在Git中显示你的远程仓库 首先让我们查看我们的项目配置了哪些远程服务器 \) git remote这个命令列出了我们指定的所有远程句柄的简称。例如如果我们克隆了一个仓库通常会看到origin这是Git为我们从中克隆的服务器分配的默认名称。 添加 -v 选项会提供额外的细节比如与每个远程关联的URL。 \( git remote -v这将显示每个远程的获取和推送URL让我们了解项目托管在哪里以及我们如何与之交互。 如何在Git中添加远程仓库 要显式添加一个新的远程仓库使用 git remote add \) git remote add example https://github.com/example/example.git在这里我们添加了一个名为example的远程使用了指定的URL。这允许我们在命令中使用example作为这个远程仓库的引用名称。 如何在Git中从远程仓库获取和拉取 要从远程仓库获取数据我们使用git fetch命令后跟远程名称 \( git fetch origin // 这里我们没有指定特定的分支。它会将来自origin远程仓库的任何新更改下载到我们的本地仓库使我们能够与最新的开发保持同步。 另外如果我们想在单个步骤中从远程分支中获取并合并更改到我们当前的分支我们可以使用git pull命令 \) git pull origin master在这里我们明确地从origin远程仓库的master分支拉取更改到我们当前的分支中。 如何在Git中将更改推送到远程仓库 要与他人分享我们的工作我们使用以下命令将更改推送到远程仓库 \( git push origin main在这个例子中我们将我们的本地更改推送到origin远程仓库的主分支。 如何在Git中检查远程仓库 最后我们可以检查一个远程仓库以收集关于它的更多信息 \) git remote show origin这个命令显示了详细信息如获取和推送的URL、被跟踪的分支以及与origin远程仓库关联的本地分支配置。 如何在Git中重命名远程仓库 假设我们想要将远程的简称从example重命名为new-example \( git remote rename example new-example如何在Git中删除远程仓库 如果由于某种原因我们不再需要一个远程仓库并且想要将其从我们的项目中删除 \) git remote remove new-example 或者 \( git remote rm new-example删除后远程跟踪分支和关联的配置设置也将被删除。 在Git中使用标签 在Git中标签是一项基本功能允许开发人员将存储库历史中的特定点标记为重要的。通常标签用于表示发布点例如v1.0、v2.0等。 如何列出Git中的现有标签 假设你正在处理一个具有多个发布版本的项目。要列出现有的标签 \) git tag此外你可以使用 -l 或 –list 选项搜索匹配特定模式的标签。例如 \( git tag -l v2.0*这个命令将列出像v2.0、v2.0-beta等符合指定模式的标签。 如何在Git中创建标签 Git支持两种类型的标签轻量标签和注释标签。 轻量标签 当你想要标记一个特定的提交而不添加任何额外信息时请使用轻量标签。例如 \) git tag v1.1-lw要查看与此标签关联的提交信息请使用 \( git show v1.1-lw轻量标签仅显示提交校验和。 注释标签 另一方面注释标签包含额外的信息如标记者信息、日期和标记消息。 创建注释标签涉及使用带有git tag命令的 -a 选项以及一个标记消息。例如 \) git tag -a v2.0 -m Release version 2.0要查看有关此标签的详细信息包括它指向的提交和标记消息请使用 \( git show v2.0如何在Git中为旧提交打标签 有时你可能会忘记给特定的提交打标签。不用担心你可以稍后指定提交校验和来打标签。 例如假设你忘记给ID为abcdefg的提交打标签。你可以这样给它打标签 \) git tag -a v1.2 abcdefg此命令将指定的提交标记为v1.2。 如何将标签推送到Git中的远程仓库 要将特定标签推送到远程服务器你可以使用 \( git push origin tagname如果你有多个标签并想一次推送它们所有你可以使用 --tags 选项 \) git push origin –tags如何在Git中删除标签 要在本地删除标签从本地仓库中删除 \( git tag -d tagname例如要删除名为v1.4-lw的轻量标签 \) git tag -d v1.4-lw另外你可以以两种方式从远程服务器中删除标签 使用带有refspec的git push命令 \( git push origin :refs/tags/v1.1-lw这个命令将什么也不推送:到远程标签v1.1-lw从而有效地删除它。 使用git push的 --delete 选项 \) git push origin –delete v1.1-lw这个命令直接从远程服务器中删除标签v1.1-lw。 如何在Git中检出标签 要查看特定标签处文件的状态你可以检出那个标签 \( git checkout v2.0这个命令将你的仓库置于“分离的 HEAD”状态在这个状态下你可以查看文件但不能直接进行更改。 如果你需要在该标签处工作文件最好创建一个新的分支 \) git checkout -b v2.0-branch v2.0现在你可以进行更改和提交而不会改变原始标签。 Git别名 Git别名是你可以创建的简化和简化Git工作流程的快捷方式或自定义命令。 要创建Git别名你使用git config命令并使用–global标志使别名在所有Git仓库中可用。 常见命令的基本别名 你可以为经常使用的Git命令创建别名以使它们更容易记忆和输入。例如 \( git config --global alias.co checkout \) git config –global alias.br branch \( git config --global alias.ci commit现在你可以使用更短的别名git co、git br和git ci分别代替完整的命令。 你还可以为你经常执行的操作或改进命令可读性创建自定义别名。例如 \) git config –global alias.unstage reset HEAD –现在你可以使用git unstage 代替git reset HEAD – 来取消暂存一个文件。 如何在Git中合并多个命令 别名也可以用于将多个Git命令组合成一个单独的别名。例如让我们创建一个别名来暂存所有更改然后使用一个命令提交它们 \( git config --global alias.commitall !git add -A git commit现在运行git commitall将暂存所有更改git add -A然后提交它们节省了时间和击键。 Git 分支 Git 中的分支为管理项目的代码库提供了一种强大的方式允许进行并行开发和实验而不影响主要代码库。 Git 分支允许你偏离主要的开发线独立地开发功能或修复问题然后将你的更改合并回来。与许多其他版本控制系统不同Git 的分支模型轻量且高效使分支操作几乎是瞬间完成的。 Git 中的分支是什么 分支是指向提交的轻量级、可移动的指针。默认分支名通常是 “master”但它并不特殊 - 它就像任何其他分支一样。 创建和切换分支允许你同时处理不同的功能。 如何在 Git 中创建新分支 当你想要开始开发一个新功能或尝试一个想法时你可以在 Git 中创建一个新分支。这个新分支作为一个独立的开发线允许你进行更改而不影响主分支。 \) git branch new_feature这个命令创建了一个名为 ‘new-feature’ 的新分支指向与当前分支相同的提交。分支可以共存并且 Git 保持一个特殊的指针称为 HEAD指示当前的分支。 理解分支 首先让我们了解 Git 中的分支基础知识。当你初始化一个 Git 仓库时你会从一个默认的分支开始通常命名为 ‘master’ 或 ‘main’。分支本质上是指向提交的指针使你能够独立地处理不同的功能或修复。 要查看仓库中的所有分支使用命令 \( git branch这将显示一个分支列表带有一个星号 (*) 表示当前检出的分支。要获取关于每个分支的最后一次提交等额外信息可以使用 \) git branch -v如何在 Git 中切换到另一个分支 要切换到一个现有的不同分支使用 git checkout。 \( git checkout new_feature这个命令将 ‘HEAD’ 指针切换到 ‘new-feature’ 分支使其成为当前活动分支。 要在一次操作中创建并切换到一个新分支 \) git checkout -b newbranchname在 Git 2.23 版本之后你可以使用 git switch 而不是 git checkout。 切换到现有分支git switch existing-branch。创建并切换到新分支git switch -c new-branch。 如何在 Git 中可视化分支 创建并切换分支后你可以使用以下命令可视化分支结构 \( git log --oneline --decorate --graph --all这个命令会显示提交历史和分支指针的简洁且图形化的表示让你看到分支随着时间的推移是如何分叉和合并的。 如何管理 Git 中的分支 如何管理已合并的分支 随着项目的发展一旦分支的更改确定完成你将把它们合并回主分支。要识别已合并的分支执行 \) git branch –merged这个命令列出了已成功合并到当前分支的分支。这些分支通常可以安全删除使用 \( git branch -d branch_name但是对于包含未合并工作的分支使用 \) git branch –no-merged删除这样的分支需要 ‘-D’ 标志 \( git branch -D branch_name这确保你不会意外丢失任何未合并的更改。 如何重命名分支 要重命名一个本地分支 \) git branch –move old_branch_name new_branch_name这个命令会在本地更新分支名称。为了在远程仓库中反映这个改变推送重命名后的分支 \( git push --set-upstream origin new_branch_name使用以下命令验证更改 \) git branch –all确保在远程删除旧分支 \( git push origin --delete old_branch_name这确保了本地和远程仓库之间的一致性。 如何更改默认分支名称 重命名默认分支通常是 ‘master’需要谨慎和协调因为它会影响项目集成和合作者。 \) git branch –move master main重命名后将更新后的分支推送到远程仓库 \( git push --set-upstream origin main确保记得更新依赖项、测试、脚本和仓库主机等所有引用和配置。完成后删除远程上的旧 master 分支 \) git push origin –delete master这与我们在配置部分中讨论的 \( git config --global init.defaultBranch main 不同有以下几点不同 \) git branch –move master main这个命令将现有分支名为 “master” 的分支重命名为 “main”在当前仓库内进行的一种本地操作。它只影响该仓库。\( git config --global init.defaultBranch main这个命令在全局范围内设置新仓库的默认分支名称。它不会重命名现有分支而是确保以后创建的新仓库将使用 “main” 而不是 “master” 作为默认分支名称。 附加资源考虑查看官方 Git 资源了解其信息丰富的可视化和图表这些图表可以为你提供更多关于远程分支和分支管理概念的清晰度。 分支工作流程 让我们更详细地了解分支并看一下在大型项目中常用的分支工作流程。 长期运行的分支 在 Git 中长期运行的分支是指在较长时间内保持开放状态的分支。 专题分支 专题/功能分支是为特定功能或工作片段创建的短期分支。与长期运行的分支不同专题分支在使用完毕后通常会被删除。 例如假设一个团队维护两个长期运行的分支master 和 develop。 master 分支仅包含稳定的代码可能是已发布或将要发布的代码。develop 分支充当正在进行开发的暂存区。虽然它可能不总是稳定的但它作为新功能的测试场所。 开发人员将特性分支中的更改合并到 develop 分支进行测试。一旦特性经过彻底测试且稳定它们就会合并到 master 分支中。 注意到变更如何在不同稳定性级别之间进展从最不稳定的专题分支到更稳定的例如 develop 分支因为它们经过测试和完善最终合并到最稳定的主分支。 这样保持了稳定代码和开发代码之间的清晰分隔确保只有经过彻底测试的功能才能进入稳定发布。 分支最佳实践 创建描述性的分支名称使用能够反映目的或正在开发功能的有意义的分支名称。删除未使用的分支一旦分支完成了它的任务并且其中的更改已经合并到主分支中考虑删除它以保持仓库的清洁和可管理性。 Git 中的变基 在 Git 中当你使用分支时有两种主要的方法可以将一个分支的更改集成到另一个分支中合并和变基。 与合并不同合并可能会产生一个混乱的历史带有多个合并提交而变基产生一个线性的历史使得更容易理解随时间进行的更改顺序。 基本变基示例 假设你正在一个项目中使用两个分支“feature” 和 “master”。你在 “feature” 分支上进行了一些提交现在想要使用变基将这些更改集成到 “master” 分支中。 首先切换到你的 “feature” 分支 \) git checkout feature然后将你的 feature 分支变基到 master 分支上 \( git rebase master这个命令将你在 “feature” 分支上所做的所有提交/更改应用到 “master” 分支上的最新提交之上并逐个重放提交。 不仅可以变基到 master 分支你也可以将一个专题分支变基到另一个专题分支上。例如 假设你正在一个项目中使用两个功能分支“frontend” 和 “backend”。你在 “frontend” 分支上做了一些提交现在想要将这些更改集成到 “backend” 分支中。 这次让我们采用一个不同的方法 - 使用 git rebase 的 --onto 选项将 “frontend” 分支变基到 “backend” 分支上 \) git rebase –onto backend frontend完成变基后切换回 “backend” 分支并执行快进合并 \( git checkout backend \) git merge frontend现在你的项目历史呈线性反映了从 “frontend” 分支到 “backend” 分支中的更改顺序集成。 变基 vs 合并哪个更好 变基用例 适用于需要在主分支中进行清洁集成的专题分支。适用于重视干净提交历史的开源贡献项目。 合并用例 适用于合作环境中项目开发过程的透明度至关重要。适用于需要保持准确历史记录的项目。 结论 本手册作为一个全面指南帮助理解和利用 Git这是一个广泛用于软件开发的强大版本控制系统。 从基本工作流程到设置仓库、打标签和分支远程仓库我们已经学习了一套全面的功能将有助于简化开发过程。 本文内容参考java567.com