你是否曾希望有一台用于代码的时间机器? Git 正好可以满足你的需要,而且还能为你提供更多!
如果你还不了解 Git:它是一个版本控制系统,可帮助跟踪代码的更改。 可以在某个特定时间点保存项目的快照,然后进行试验性更改,而不会给项目带来风险,因为始终可以返回快照。
GitHub 本身是一个围绕 Git 构建的平台,支持你将 Git 项目保存到云中,并与其他开发人员协作处理项目。
虽然 Git 可能比较复杂,但却是能够为开发人员提供必要功能的强大工具。 本文将介绍在日常工作流程中使用 Git ���需的所有工具。
先决条件
要学习本教程,需要安装 Visual Studio Code。
使用 GitHub Desktop 学习 Git 基础知识
对于标准的 Git 操作,建议使用 GitHub Desktop,这是一个支持你通过可视化界面而不是书面命令与 Git 交互的应用。 在本部分中,我们将了解如何使用 GitHub Desktop 快速执行最常见的 Git 操作。
设置 GitHub Desktop
如果是第一次使用 GitHub Desktop,需要安装它并连接 GitHub 帐户。
- 下载 GitHub Desktop。
- 打开 GitHub Desktop,然后单击“Sign in to GitHub.com”**** 并授权 GitHub Desktop 访问你的帐户。
- **** 返回 GitHub Desktop,单击“Finish”。 这会将 GitHub 帐户中的姓名和电子邮件添加到 Git。
创建本地存储库
现在,可以通过创建一个存储库**** 来迈出使用 Git 的第一步。 将存储库视为用于跟踪更改和存储历史记录的项目文件夹。 首先,创建本地**** 存储库:
-
**** 在 GitHub Desktop 中,单击“Create a New Repository on your Local Drive”。
-
将存储库命名为
learning-git
。 -
**** 选择“Initialize this repository with a README”以自动创建空白
README.md
文件。Tip
标准做法是在项目中包括
README.md
文件(也称自述文件)。 自述文件通常包含有助于他人了解、设置和运行你项目的信息。 -
单击“创建存储库”。
添加远程存储库
刚创建的本地存储库位于计算机上。 现在,为同一项目创建一个远程存储库,该存储库将托管在 GitHub 上。 通过链接远程存储库,可以更轻松地协作处理和备份工作。
- **** 在 GitHub Desktop 中,单击“Publish repository”。
- **** 在显示的弹出窗口中,再次单击“Publish repository”。
- **** 要查看远程存储库,单击“View on GitHub”。
设置空间以进行更改
创建存储库后,现在来了解分支。 分支本质上是项目的副本,可以在其中测试更改,而不会影响现有工作的稳定性。
存储库是使用 main
分支自动创建的,可以将其视为项目的稳定主版本。 例如,在网站的存储库中,main
分支对应于访问者可看到的站点。
创建新分支时,将创建一个安全空间来处理新功能,而不会影响主版本。 你和协作者可使用不同的分支同时处理多个功能。
现在创建一个分支来处理存储库中的更改:
- ******** 在 GitHub Desktop 中,选择“ Current Branch”下拉菜单,然后单击“New Branch”。
- 将新分支命名为
readme-updates
,然后单击“Create Branch****”。
保存项目的快照
要将进度保存到分支,请执行提交****。 一次提交是指在特定时间点拍摄的项目的快照。 你实际上已完成第一次提交:使用自述文件进行项目初始化时,GitHub Desktop 自动创建了一次初始提交以添加 README.md
文件。
每当完成一个工作区块并希望保存时,都应提交。 提交后,无论将来做了多少更改,始终可以还原到该时间点。
-
**** 在 GitHub Desktop 中,单击“Open in Visual Studio Code”。
-
在 VS Code 中,将以下文本粘贴到
README.md
并保存更改:Markdown Hello, World! This is a demo project for learning how to use Git.
Hello, World! This is a demo project for learning how to use Git.
-
返回 GitHub Desktop 后会看到刚才对自述文件进行的更新。 在左下角的 GitHub 配置文件图片旁的文本框中键入“更新自述文件”。 这称为提交消息****,有助于跟踪每次提交中所做的更改。
-
若要进行提交,请单击“Commit to readme-updates”****。
将更改引入主分支
对分支上所做的更改感到满意后,可将分支发布到远程存储库并创建拉取请求****。 通过拉取请求可查看一组建议的更改,然后将这些更改从一个分支合并到另一个分支。 在本例中,将创建一个拉取请求,用于将 readme-updates
中所做的更改引入原始分支 main
。
-
单击“Publish branch”****,将
readme-updates
分支与更改一起推送到远程存储库。 -
**** 要查看建议的更改,单击“Preview Pull Request”。
-
单击“创建拉取请求”。
-
在显示的 GitHub 窗口���,将拉取请求标题更改为“向自述文件添加消息”,然后在批注框中键入更改的简短说明。
-
单击“创建拉取请求”****。
-
要将
main
更改引入分支,单击页面底部的“Merge pull request****”。Note
与其他开发人员协作处理项目时,一个标准做法是在合并拉取请求之前让其他人审阅你的拉取请求。
-
**** 在页面底部附近,单击“Delete branch”。 删除已合并到
main
的分支有助于保持存储库干净、便于导航。
准备进行更多更改
祝贺完成合并你的第一个拉取请求! 现在你已成功将更改引入 main
分支,接下来需要完成一些步骤以准备下一轮更改:
-
在 GitHub Desktop 中,如果不在
main
分支上,请选择“ Current Branch”**** 下拉菜单,然后单击“main”****。大多数时候,在创建新分支前应切换回
main
分支,因为新分支是作为当前所选分支的副本创建的。 -
若要检查远程
main
分支是否已发生任何更改,请单击“Fetch origin****”。 -
最后,若要使用远程
main
分支的更改更新本地main
分支,请单击“Pull origin****”。
现在你已拥有在项目上设置和使用 Git 所需的所有技能!
在命令行上深入了解 Git
GitHub Desktop 旨在解决日常 Git 需求。 随着你作为开发人员的不断成长,你可能会遇到一些不常见的情况:你希望更强地控制 Git 操作或需要使用更复杂的命令。 在这类情况下,需要转换为在命令行上使用编写的 Git 命令。
设置命令行
在开始使用命令行之前,需要设置一些工具。
-
在 GitHub Desktop 中,按 Ctrl+` 在命令行上打开项目。
-
如果使用的是 Windows,请安装 Git。 如果是 macOS 和 Linux,将默认安装 Git。
-
安装 GitHub CLI,之后便可以从命令行快速执行与 GitHub 相关的操作。
-
若要从 GitHub CLI 向 GitHub 进行身份验证,可运行以下命令:
Shell gh auth login
gh auth login
选择使用 GitHub.com 进行身份验证,然后按照屏幕上的提示进行操作。
-
通过运行以下命令,安装 GitHub CLI 的强大 GitHub Copilot in the CLI 扩展,它可帮助你查找和理解命令:
Shell gh extension install github/gh-copilot
gh extension install github/gh-copilot
试验复杂命令
安装好后,现在来了解如何查找和了解将来可能要用到的命令。 例如,假设你看到有人在线提及 git blame
,但你不知道其作用。 可通过以下命令尝试让 Copilot 对其进行解释:
gh copilot explain "git blame"
gh copilot explain "git blame"
Copilot 会告诉我们,git blame
提供文件的详细历史记录,并显示文件中的每一行上一次的修改作者和提交信息。 使用以下命令自行尝试:
git blame README.md
git blame README.md
这是一个非常实用的工具,但正如你所想象的,文件的 blame 信息可能会变得非常冗长。 假设你只对文件中特定行的最新更新感兴趣。 可以让 Copilot 生成所需的命令:
gh copilot suggest "Show me the blame for line 1 of README.md"
gh copilot suggest "Show me the blame for line 1 of README.md"
当 Copilot 询问要查找的命令类型时,可使用箭头键选择“git command”****,然后按 Enter。 然后 Copilot 会建议以下命令:
git blame -L 1,1 README.md
git blame -L 1,1 README.md
使用箭头键选择“Execute command”****,然后按 Enter。 随即会显示上次修改 README.md
第 1 行的作者和提交信息。
审阅和后续步骤
本文通过 GitHub Desktop 介绍了 Git 的基础知识,涵盖了以下重要术语:
- 存储库****:用于保存对项目中文件所做的所有更改的文件夹。
- 提交****:特定时间点的项目快照。
- 分支****:可用于处理一组更改的项目副本。
- 拉取请求****:将更改从一个分支合并到另一个分支的请求。
本文还探讨了如何在命令行上执行更复杂的 Git 操作。 其中尝试了 gh copilot explain
和 gh copilot suggest
,以了解和查找新的命令和功能。
现在,请尝试将学到的内容应用于自己的工作。 使用 GitHub Desktop,通过按 Ctrl+O (Windows/Linux) 或 Command+O (Mac) 将 Git 添加到现有项目,体验版本控制的优势!