Git 原理与进阶使用
1. 远程操作
1.1 理解分布式版本控制系统
我们日常所说的所有操作(工作区、暂存区、版本库等)通常都在本地,即你的计算机上。Git 是分布式版本控制系统,这意味着每个人的电脑上都有一个完整的版本库。工作时无需联网,因为数据就在本地。
多人协作时,如果各自修改了同一文件,只需将各自的修改推送给对方即可同步。分布式系统的安全性较高,即使某台电脑损坏,从其他人那里复制一份即可恢复。虽然理论上不需要中央服务器也能干活,但实际中通常会有一台充当'中央服务器'的机器,用于方便交换修改。有了它,就不怕本地硬盘故障导致数据丢失。
1.2 远程仓库
同一个 Git 仓库可以分布到不同的机器上。最早只有一台机器有原始版本库,其他机器通过'克隆'获取副本。每台机器的版本库地位平等,没有主次之分。
现实中,通常会找一台电脑充当服务器角色,保持 24 小时开机。其他成员从该服务器仓库克隆一份到本地,提交后推送到服务器,也从服务器拉取他人的提交。虽然可以自己搭建 Git 服务器,但对于学习而言,直接使用托管服务更为便捷。常见的托管平台如 GitHub 或 Gitee(码云),注册账号即可获得免费的远程仓库。
1.3 新建远程仓库
在托管平台上创建新项目仓库,填写基本信息并设置开源或私有属性。创建成功后,默认会生成一个 master 分支,本地的分支也会随之被管理起来。
1.4 克隆远程仓库—HTTPS/SSH 协议
克隆远端仓库到本地使用 git clone 命令,后跟远程仓库链接。链接可在仓库页面选择'克隆/下载'获取。
Git 最常用的两种传输协议是 SSH 和 HTTPS。
- SSH 协议:使用公钥加密,安全性高。需将公钥上传至服务器,由 Git 服务器管理。配置好后可免密操作。
- HTTPS 协议:直接克隆,但每次推送可能需要输入密码。
SSH 配置步骤:
- 检查用户主目录下是否有
.ssh目录及id_rsa和id_rsa.pub文件。若无,需创建 SSH Key。 - 将公钥内容添加到远程仓库的 SSH 公钥设置中。
- 完成认证后即可开始 Clone。
克隆后,Git 会自动将本地 master 分支与远程 master 分支对应,远程仓库默认名称为 origin。可使用 git remote 或 git remote -v 查看远程库信息。
1.5 向远程仓库推送
本地克隆成功后,可提交内容至仓库。例如新增一个 file.txt 文件。
提交前需注意,全局配置的 name 和 email 必须与远程仓库账号一致,否则会报错。若未配置过,首次提交时需重新配置。
将本地内容推送至远程仓库使用 git push 命令。格式如下:
git push origin master
这将把本地 master 分支推送到远程主机 origin 的 master 分支。使用 SSH 协议通常无需每次输入密码,而 HTTPS 则可能需要。
1.6 拉取远程仓库
当远程仓库领先于本地时(例如有人在网页端修改了文件),需要拉取代码以保持同步。Git 提供 git pull 命令,用于从远程获取代码并合并到本地版本。
git pull
执行后,本地仓库将更新为最新版本。
1.7 忽略特殊文件
日常开发中,有些文件不应提交到远程,如包含数据库密码的配置文件。在 Git 工作区根目录下创建 .gitignore 文件,填入要忽略的文件名或模式,Git 便会自动忽略这些文件。
例如,忽略以 .so 和 .ini 结尾的所有文件:


