Git与GitHub

type
status
date
slug
summary
tags
category
icon
password
🎈
在刚开始接触编程的阶段,Git和Github常常让人感到陌生甚至困惑。但随着项目的积累和协作的需要,它们会逐渐成为你日常开发中不可或缺的工具。掌握版本控制不仅能帮助你更好地管理代码,更是进入更高效开发流程的第一步。本文将带你从基础出发,初步了解Git的使用方法,为之后的学习与项目实践打下扎实的基础。
 

📝 Git的基本操作

Git是什么

Git是一个分布式版本控制系统,用于记录和管理代码的变化过程。它的核心目标是帮助开发者追踪项目中的每一次修改、便捷地回退历史版本,以及实现多人协作开发时的分支管理与合并。
在Git的工作机制中,有几个重要的区域:
  1. 工作区:就是你当前编辑代码的目录,所有实际的修改都发生在这里。
  1. 暂存区:也叫缓存区。你可以选择将部分改动加入暂存区,这样做的目的是将修改进行打包,准备好之后再一起提交(到与他人共享的远程仓库,例如后文我们会提到的GitHub)。
  1. 本地仓库:当你执行 git commit 时,暂存区中的内容就会被正式保存到本地仓库,形成一次不可更改的提交记录(commit)。每个 commit 都有唯一的 ID,记录了修改的内容、时间、作者等信息。
  1. 远程仓库:存放在网络服务器上的Git仓库,例如 GitHub、GitLab或Gitee(当然你也可以自己租用服务器搭建属于你的Git远程仓库),用于与他人共享代码。当你执行git push时,本地仓库中的提交会被上传到远程仓库,使团队成员可以获取、查看或协作开发相同的项目。远程仓库通常被命名为origin
💡
对团队协作而言,Git提供了统一的代码历史,并在多人修改时提供清晰的冲突检测与合并机制。这对于多人合作是十分重要的。
在Git中,我们会涉及到一些专有名词:
  • add:将工作区中的改动添加到暂存区,为提交做准备。
  • commit:将暂存区的更改提交为一次快照,保存在本地仓库中。
  • push:将本地仓库中的提交上传到远程仓库。
  • pull:从远程仓库获取最新的提交,并合并到当前分支。
  • merge:将一个分支的更改整合到当前分支上。
  • clone:从远程仓库复制一个完整的 Git 仓库到本地。
  • branch:分支,用于并行开发(见后文)。
  • conflict:在合并过程中发生的修改冲突。
  • stash:暂时保存当前修改,以便切换到其他分支后再恢复。
  • remote:远程仓库的别名(如 origin),用于标识你与哪个远程仓库交互。

Git的基本命令

接下来,我们简单介绍一下我们在使用Git时经常使用的一些基本命令。

初始化仓库

这个命令会在当前目录下初始化一个Git仓库,生成.git隐藏文件夹,开始进行版本控制。

查看当前状态

这个命令可以用于查看当前仓库下有哪些文件发生了变化、哪些已经被追踪、哪些准备提交。

添加变更到暂存区

将修改添加到暂存区,为提交做准备。

提交更改

将暂存区的内容提交到仓库中,形成一次新的版本记录。

查看提交历史

查看当前仓库的提交历史,包括提交人、时间和提交信息。

关联远程仓库

将本地仓库与远程仓库进行关联。其中,尖括号所包裹的内容是远程仓库的地址,我们会在后文讲述。

分支

在Git中,分支(branch)就像是你代码的一个“平行宇宙”。每个分支都是从某个commit出发形成的一条独立修改线。有了分支,你就可以在不影响主线(如mainmaster)的前提下,在自己的分支尝试新功能、DeBug,最后再决定是否合并到主分支。
最常见的分支操作流程:

推送到远程仓库

将本地的提交推送到远程仓库,通常用于首次推送。

拉取远程更新

从远程仓库拉取最新的更新并合并到本地分支。

📝 Git的本地配置与ssh秘钥

在将本地仓库上传至远程之前,我们需要先完成基本的用户身份配置,设置SSH密钥以便安全地连接远程仓库。

配置用户名和邮箱

首先我们需要先配置本地的Git用户名和邮箱,Git使用这两个信息来标识每一次提交的作者。
设置完后,你的每次 commit 都会带上这个身份信息。--global表示这个设置对你当前用户的所有仓库生效。
你可以使用以下指令检查配置。

生成SSH密钥

ssh是一种加密通信协议,最初用于远程登录服务器。在Git中,SSH被用作一种安全的身份认证方式,用于在你和远程仓库之间传输代码时确认你的身份。
SSH 使用一对密钥来验证身份:
  • 私钥(private key):保存在你自己的电脑上,严禁泄露。
  • 公钥(public key):上传到远程仓库网站(如 GitHub)。
验证方式如下:
当你执行git push时,GitHub会查看你发送请求的设备是否持有对应的私钥。如果和它存储的公钥匹配,验证通过。
一台设备理论上只需要一个ssh秘钥,后续其他需要ssh的场景可重复使用之前生成的秘钥。我们可以通过以下指令生成一对ssh秘钥:
按提示一路回车即可。生成的密钥会保存在:

添加SSH公钥到GitHub

接下来,我们将SSH公钥上传至远程仓库,使得远程仓库平台能够识别我们的身份。
  1. 打开 ~/.ssh/id_ed25519.pub 文件,复制里面的全部内容。
  1. 登录 GitHub → 点击头像 → SettingsSSH and GPG keys
  1. 点击 New SSH key,粘贴公钥,保存即可。
可以通过以下指令测试SSH是否配置成功
如果配置成功,你会看到一段提示:
完成这些配置后,你就可以通过 SSH 的方式与 GitHub 通信了,后续使用 git pushgit pull 时无需每次输入账号密码,既安全又便捷。

📝 GitHub上的基本操作

GitHub是一个国外的基于Git的远程代码托管平台,其URL为github.com。国内裸连GitHub是一件很看运气的事情,最稳妥的方法还是使用一些科学上网手段。
在使用GitHub前,你需要先注册账号(并最好完成学生认证)。在注册好账号之后,你就可以点击右上角 +New repository 创建新远程仓库了。在创建仓库过程中,你需要填写仓库名称、描述,选择是否公开(public)或私有(private,即非你授权的用户不可见),点击 Create repository创建。

创建与上传仓库(Repo)

创建仓库后,你可以通过SSH或HTTPS地址克隆到本地:
上面的链接可以在仓库中”Code”按钮中找到。如图,在点开”Code“按钮后,GitHub会提供HTTPS/SSH的下载链接,以及直接Download Source(源代码)的入口。
notion image
如果你已经在本地创建好了仓库,也可以直接推送本地修改到GitHub:
后续推送时,push -u可改用为push以简化操作:
点击仓库中的 Commits 或单个文件中的 History,可以查看历史提交记录。每次提交都可以展开查看差异(diff)和修改内容。

创建合并请求 Pull Request(PR)

  • 创建一个分支并在该分支中进行修改提交;
  • 提交后在GitHub的仓库页面点击Compare & pull request创建PR,请求合并到主分支;
  • 审核通过后可以点击Merge pull request自动在远程完成合并。

Star / Watch / Fork / Issues

  • Star:表示你喜欢该项目;
  • Watch:订阅项目更新;
  • Fork:复制项目到你自己的账户下,进行独立开发,适合参与开源项目或保留副本;你可以用git clone将其克隆到本地进行进一步开发;
  • Issues:问题追踪与任务管理系统(类似于发帖),用于记录bug、功能请求、想法讨论或待办事项。
 

 
最后,想将国内代码托管平台Gitee的Slogan分享给大家:
💡
让每一行代码,都有改变世界的力量!
Happy coding~ 🚀💻✨
 
上一篇
编程自学指南
下一篇
AI入门准备
Loading...