Git工具安装&基础用法指南
本文系统介绍了Git版本控制系统的基础使用指南,涵盖四大核心模块:安装配置、基础操作、分支管理和远程协作。详细讲解了Windows/Linux系统的Git安装方法,本地仓库的初始化、提交和版本回滚操作,分支的创建、合并与冲突解决,以及GitHub远程仓库的SSH配置和协同开发流程。文章针对新手设计,提供命令行操作和详细说明,包含常见问题解决方案,帮助开发者快速掌握Git的基本工作流程,为团队协作开
Git是目前最流行的分布式版本控制系统,能高效管理代码的版本迭代、多人大规模协作,是程序员必备工具。本文将从「安装配置→核心操作→分支管理→协同协作」四大核心模块,讲解Git的基础用法,覆盖Windows和Linux(Ubuntu)系统,新手可直接跟着步骤操作。
前置说明:本文默认读者无版本控制基础,所有操作均提供命令行指令+详细说明;同时涵盖GitHub/GitLab等远程仓库的基础交互,帮助快速衔接实际开发场景。
一、Git安装与初始化配置(跨系统)
1.1 不同系统的Git安装
Windows系统安装
-
下载安装包:访问 Git官方下载页,选择对应系统版本(32/64位),默认下载最新稳定版。
-
安装步骤:
-
双击安装包,默认下一步即可;
-
关键步骤:「Choosing the default editor used by Git」建议选择「Notepad++」(需提前安装)或默认的Vim(新手可后续更换);
-
「Adjusting your PATH environment」选择「Git from the command line and also from 3rd-party software」(全局可用Git命令);
-
其他选项默认,点击「Install」完成安装。
-
-
验证安装:按Win+R输入「cmd」打开命令行,输入
git --version,若显示版本号(如git version 2.45.1.windows.1)则安装成功。
Linux系统安装(以Ubuntu 24.04为例)
-
打开终端(Ctrl+Alt+T),执行以下命令安装:
sudo apt update # 更新软件包索引 sudo apt install git -y # 安装Git -
验证安装:输入
git --version,显示版本号即成功。
1.2 初始化配置(必做)
安装完成后,需配置用户信息(用于标识提交记录的作者),全局仅需配置一次。
-
配置用户名和邮箱(替换为自己的信息):
git config --global user.name "你的用户名" # 如 "ZhangSan" git config --global user.email "你的邮箱" # 如 "zhangsan@example.com"说明:--global表示全局配置,所有Git仓库都会使用该信息;若需为单个仓库配置不同信息,进入仓库后去掉--global重新执行。
-
查看配置信息:
git config --list # 查看所有配置 git config user.name # 单独查看用户名 -
(可选)配置默认编辑器:若安装时未选择合适编辑器,可后续修改(以Notepad++为例,Windows系统):
git config --global core.editor "notepad++.exe -multiInst -notabbar -nosession -noPlugin"
二、Git核心基础操作(本地仓库)
本地仓库是Git管理代码的基础,核心流程:「初始化仓库→添加文件→提交版本」,以下步骤按实际开发流程讲解。
2.1 初始化本地仓库
两种场景:① 新建项目创建仓库;② 已有项目纳入Git管理。
-
新建项目+初始化仓库:
mkdir my_first_git_project # 新建项目文件夹(Windows/Linux通用) cd my_first_git_project # 进入文件夹 git init # 初始化Git仓库执行后,文件夹内会生成隐藏的「.git」目录(存储仓库配置、版本记录等信息,勿删除)。
-
已有项目纳入Git管理:
cd 已有项目的文件夹路径 # 进入已有项目目录 git init # 初始化仓库即可
2.2 核心操作:add→commit(提交版本)
Git提交版本需经过「工作区→暂存区→版本库」三个阶段,对应命令:git add(工作区→暂存区)、git commit(暂存区→版本库)。
-
创建测试文件:在仓库目录下创建文件(如test.txt),写入内容(如「First Git commit」)。
-
查看文件状态:
git status # 查看当前仓库文件状态输出说明:红色文件表示「未跟踪」(未加入暂存区);绿色文件表示「已暂存」(待提交到版本库)。 -
添加文件到暂存区:
git add test.txt # 添加单个文件到暂存区# 常用拓展命令:git add . # 添加当前目录下所有未跟踪/修改的文件(推荐,除了.gitignore排除的文件)git add *.txt # 添加所有.txt后缀的文件 -
提交暂存区文件到版本库:
git commit -m "first commit: add test.txt" # -m后接提交说明(必须写,清晰描述本次修改内容)提交成功后,版本库会记录本次修改的版本,后续可随时回滚到该版本。 -
(可选)修改文件后重新提交:
# 1. 修改test.txt内容(如添加「Second modify」)# 2. 查看修改内容(可选,确认修改无误)git diff test.txt # 对比工作区与暂存区的差异# 3. 重新添加+提交git add test.txtgit commit -m "second commit: modify test.txt"
2.3 版本查看与回滚
开发中常需查看历史版本记录,或回滚到之前的稳定版本。
-
查看历史版本记录:
git log # 查看详细历史记录(包含版本号、作者、时间、提交说明)# 常用简化命令:git log --oneline # 一行显示一条记录(版本号缩写+提交说明,推荐)git log -n 3 # 查看最近3条记录输出说明:每一行的一串字母数字组合是「版本号」(如a1b2c3d),用于定位具体版本。 -
回滚到之前的版本:
# 方式1:回滚到指定版本(版本号取前6-8位即可)git reset --hard a1b2c3d # 替换为实际要回滚的版本号# 方式2:回滚到上一个版本(常用)git reset --hard HEAD~1 # HEAD~1表示上一个版本,HEAD~2表示上上个版本...注意:--hard参数会直接覆盖当前工作区和暂存区的内容,回滚前确保当前修改已提交或备份,避免数据丢失。 -
(可选)回滚后恢复到最新版本:若回滚错误,需恢复到之前的最新版本,先查看所有操作记录:
git reflog # 查看所有操作记录(包含回滚前的版本号)git reset --hard 最新版本号 # 恢复到最新版本
2.4 .gitignore文件配置(重要)
开发中部分文件无需纳入版本管理(如编译产物、日志、IDE配置文件等),可通过「.gitignore」文件指定排除规则。
-
创建.gitignore文件:在仓库根目录下创建文件,命名为「.gitignore」(无文件名,后缀为ignore)。
-
添加排除规则(示例,根据项目类型调整):
# 排除所有.log文件*.log# 排除编译产物目录dist/build/# 排除IDE配置文件(以PyCharm为例).idea/# 排除Python虚拟环境venv/# 排除单个文件test_temp.txt -
规则说明:
-
「*.xxx」:排除所有后缀为xxx的文件;
-
「目录名/」:排除整个目录;
-
「#」:注释,不生效;
-
「!文件名」:例外规则,不排除该文件(如!important.log,即使有*.log规则,也会跟踪important.log)。
-
三、分支管理(多人协作核心)
分支是Git的核心功能,可理解为「代码的平行宇宙」:主线(master/main)保持稳定,开发新功能/修复bug时创建分支,完成后合并回主线,避免直接修改主线代码。
3.1 分支基础操作
-
查看分支:
git branch # 查看本地所有分支(当前分支前有「*」标记)git branch -r # 查看远程分支(后续讲解远程仓库时使用) -
创建分支:
git branch feature-login # 创建名为「feature-login」的分支(功能分支,命名建议:feature-功能名/bugfix-问题描述) -
切换分支:
git checkout feature-login # 切换到feature-login分支# 简化命令(创建并切换分支,常用)git checkout -b feature-login # 等价于「git branch feature-login」+「git checkout feature-login」 -
在分支上开发并提交:切换到feature-login分支后,修改文件(如创建login.py),执行add+commit:
touch login.py # 创建文件(Linux)/ 手动创建(Windows)git add login.pygit commit -m "feature-login: add login.py" -
合并分支(功能完成后合并回主线):
# 1. 先切换回主线(main/master,根据仓库主线名称调整)git checkout main# 2. 合并feature-login分支到主线git merge feature-login # 若无冲突,直接合并成功 -
删除分支(合并后删除,避免分支冗余):
git branch -d feature-login # 删除已合并的分支# 若分支未合并,强制删除(谨慎使用)git branch -D feature-login
3.2 分支合并冲突解决(常见场景)
当两个分支修改了同一文件的同一行内容时,合并会产生冲突,需手动解决。
-
冲突场景复现:
-
main分支:修改test.txt第1行为「main branch content」,提交;
-
feature-login分支:修改test.txt第1行为「feature branch content」,提交;
-
切换到main分支合并feature-login,触发冲突。
-
-
冲突提示:合并时终端会显示「Automatic merge failed; fix conflicts and then commit the result.」。
-
解决冲突步骤:
# 1. 查看冲突文件(终端会提示冲突文件路径)git status # 会显示「both modified: test.txt」# 2. 打开冲突文件(如test.txt),修改冲突内容# 冲突文件内会有标记:# <<<<<<< HEAD(当前分支,即main分支的内容)# main branch content# =======# feature branch content# >>>>>>> feature-login(待合并分支的内容)# 3. 手动修改为最终需要的内容(删除冲突标记),如:# final content after resolve conflict# 4. 重新提交解决后的文件git add test.txtgit commit -m "resolve conflict: test.txt main & feature-login"
四、远程仓库协作(GitHub/GitLab)
远程仓库是代码的云端存储中心,用于多人协作共享代码(如GitHub、GitLab、Gitee),以下以GitHub为例讲解基础交互。
4.1 前置准备:远程仓库创建与SSH密钥配置
-
创建远程仓库:
-
登录GitHub,点击右上角「+」→「New repository」;
-
填写仓库名称(如my-first-git-repo),选择「Public」(公开)/「Private」(私有),点击「Create repository」;
-
创建成功后,复制仓库SSH地址(如git@github.com:your-username/my-first-git-repo.git)。
-
-
配置SSH密钥(免密码连接远程仓库,推荐):
# 1. 生成SSH密钥(Windows/Linux通用,执行后按3次回车即可)ssh-keygen -t ed25519 -C "你的邮箱" # 若系统不支持ed25519,用:ssh-keygen -t rsa -b 4096 -C "你的邮箱"# 2. 查看并复制公钥(Windows):cat ~/.ssh/id_ed25519.pub # 终端输出公钥,全选复制# Linux查看公钥命令相同;Windows也可手动打开文件:C:\Users\你的用户名\.ssh\id_ed25519.pub# 3. 添加公钥到GitHub:# 登录GitHub→点击头像→Settings→SSH and GPG keys→New SSH key→粘贴公钥,填写名称(如「My Windows PC」),点击Add SSH key。
4.2 本地仓库与远程仓库关联(两种场景)
场景1:本地已有仓库,关联远程仓库
# 1. 关联远程仓库(origin是远程仓库的默认别名,可自定义) git remote add origin git@github.com:your-username/my-first-git-repo.git # 替换为你的仓库SSH地址 # 2. 查看远程关联(验证) git remote -v # 输出origin对应的拉取(fetch)和推送(push)地址即成功 # 3. 推送本地分支到远程仓库(首次推送需加-u,绑定本地与远程分支) git push -u origin main # 推送main分支到远程 git push -u origin feature-login # 推送feature-login分支到远程
场景2:克隆远程仓库到本地(从零开始协作)
若远程仓库已存在(如参与他人项目),直接克隆到本地即可:
git clone git@github.com:your-username/my-first-git-repo.git # 替换为远程仓库SSH地址 # 克隆后自动关联远程仓库,进入仓库目录即可开发 cd my-first-git-repo
4.3 协同协作核心操作:拉取与推送
-
拉取远程最新代码(协作前必做,避免冲突):
git pull origin main # 拉取远程main分支的最新代码到本地main分支 -
推送本地代码到远程(开发完成后):
# 首次推送分支(已绑定则无需-u)git push -u origin feature-login# 非首次推送(已绑定分支)git push origin feature-login -
(可选)拉取远程分支到本地(如他人创建的分支):
git checkout -b feature-register origin/feature-register # 拉取远程feature-register分支到本地并切换
五、常见问题及解决方案
5.1 提交错误:git commit 忘记加 -m 说明
现象:执行git commit后进入编辑器,无法退出。
解决方案:
-
若使用Vim编辑器:按「i」进入编辑模式,输入提交说明,按「Esc」,输入「:wq」(保存并退出);
-
若想放弃本次提交:按「Esc」,输入「:q!」(强制退出不保存),重新执行git commit -m "说明"。
5.2 远程推送失败:fatal: Could not read from remote repository
现象:git push时提示权限错误,无法连接远程仓库。
解决方案:
-
检查SSH密钥是否配置正确:重新执行「cat ~/.ssh/id_ed25519.pub」,确认公钥已添加到GitHub;
-
测试SSH连接:执行「ssh -T git@github.com」,若显示「Hi 你的用户名! You've successfully authenticated...」则连接成功。
5.3 误删文件:本地文件不小心删除,如何恢复?
解决方案:通过git checkout恢复(前提是该文件已被Git跟踪过):
git checkout -- 被删除的文件名 # 如 git checkout -- test.txt
5.4 分支切换失败:error: Your local changes would be overwritten by merge
现象:切换分支时,提示本地修改会被覆盖。
解决方案:
-
方案1:保存本地修改(提交到当前分支):git add . + git commit -m "临时保存",再切换分支;
-
方案2:暂存本地修改(不提交,后续恢复):
git stash # 暂存本地修改git checkout 目标分支 # 切换分支# 后续恢复暂存的修改(回到原分支后)git stash pop
六、总结
1. Git核心流程:「工作区→暂存区→版本库」,记住三个核心命令:git add、git commit、git push;
2. 分支管理核心:主线稳定,功能/修复在分支开发,完成后合并,避免直接修改主线;
3. 协同协作关键:先拉取(git pull)再开发,开发完成推送(git push),冲突及时沟通解决;
4. 新手建议:多实操「提交版本→回滚→分支合并→远程推送」流程,熟悉后再学习进阶功能(如git rebase、git tag)。
更多推荐


所有评论(0)