Git 环境配置
命令 |
说明 |
git config --list |
查看 Git 配置信息 |
git config -e |
编辑当前本地仓库配置(位置:工作区/.git/config) |
git config user.name [用户名] |
配置当前本地仓库用户名 |
git config user.email [邮箱名] |
配置当前本地仓库邮箱 |
git config -e --global |
编辑所有本地仓库配置(位置:~/.gitconfig) |
git config --global user.name [用户名] |
配置所有本地仓库用户 |
git config --global user.email [邮箱名] |
配置所有本地仓库邮箱 |
Git 初始化操作
Git 仓库的创建方式
方式 |
说明 |
本地创建仓库 |
1. 在电脑任意位置新建一个空目录作为本地 Git 仓库; 2. 进入该目录中,右键点击 Git Bash Here ,打开 Git 命令窗口并执行 git init 命令 3. 当前目录中出现 .git 文件夹(此文件为隐藏文件),本地 Git 仓库创建成功 |
拷贝远程仓库 |
1. 在电脑任意位置,右键点击 Git Bash Here,打开 Git 命令窗口 2. 执行命令 git clone [远程仓库地址] 3. 当前目录中出现 .git 文件夹(此文件为隐藏文件),本地 Git 仓库创建成功 |
Git 工作区、暂存区、版本库相关概念
类型 |
说明 |
工作区 |
包含 .git 文件夹的目录就是工作目录,主要用于存放开发的代码 |
暂存区 |
.git 文件夹中 index 文件就是暂存区,暂存区是一个临时保存修改文件的地方 |
版本库 |
.git 隐藏文件夹就是版本库,版本库中存储了很多配置信息,如日志信息、文件版本信息等 |
Git 工作区中文件的状态
状态 |
说明 |
untracked(未跟踪) |
未被纳入版本控制 |
tracked(已跟踪) |
已被纳入版本控制 |
其中 tracked 又分为三种状态
状态 |
说明 |
Unmodified |
未修改 |
Modified |
已修改 |
Staged |
已暂存 |
Git 本地库操作
命令 |
说明 |
git status |
查看当前仓库中文件的状态(空目录不显示) |
git add |
添加文件到暂存区 |
git reset |
将暂存区中文件移除(回退版本) |
git commit |
将暂存区中文件提交到本地仓库 |
git rm |
删除工作区和暂存区文件(再 git commit 后,提交到本地仓库) |
git mv |
移动或重命名工作区文件或目录 |
git log |
查看历史提交记录 |
touch .gitignore |
创建 .gitignore 配置文件,将不需要跟踪的文件添加到忽略列表,查看文件状态时忽略此文件 |
示例: git status
命令 |
说明:查看当前仓库中文件的状态 |
git status |
查看状态详细信息 |
git status -s |
查看状态简洁信息 |
示例: git add
命令 |
说明:添加工作区文件到暂存区 |
git add . |
添加当前目录下所有文件 |
git add [*.文件类型] |
添加当前目录下所有指定类型的文件 |
git add [文件.*] |
添加当前目录下所有指定名称的文件 |
git add [文件1] [文件N] |
添加当前目录下指定文件 |
示例: git reset
命令 |
说明:将暂存区文件移除 |
git reset |
移除暂存区所有文件和目录 |
git reset head [文件1] [文件N] |
移除指定文件 |
示例: git commit
命令 |
说明:将暂存区文件提交到本地仓库 |
git commit |
提交所有文件(会进入vim编辑模式) |
git commit -m [备注] |
提交所有文件(不进入vim编辑模式) |
git commit -m [备注] [文件1] [文件N] |
提交指定文件 |
git commit -a -m [备注] |
直接提交工作区所有文件(不用先 git add 加入暂存区) |
示例: git rm
命令 |
说明:从工作区和暂存区中删除文件 |
git rm -r . |
删除所有文件 |
git rm [文件1] [文件N] |
删除指定文件 |
git rm -f [文件] |
删除指定文件之前,若修改过并已加入暂存区,则必须使用 -f 强制删除 |
git rm –r [目录1] [目录N] |
删除指定目录,须使用 -r 递归删除 |
git rm -rf [目录] |
删除指定目录之前,若修改过并已加入暂存区,则必须加上 -f 强制删除 |
命令 |
说明:工作区保留,暂存区移除,相当于移除版本控制 |
git rm -r --cached . |
删除所有文件 |
git rm --cached [文件1] [文件N] |
删除指定文件 |
git rm -r --cached [目录1] [目录N] |
删除指定目录 |
示例: git mv
命令 |
说明:重命名工作区文件或移动工作区目录 |
git mv [旧文件] [新文件] |
重命名文件 |
git mv -f [旧文件] [新文件] |
若新文件名已存在,还要继续重命名旧文件,则用 -f 强制重命名,并将原已存在文件覆盖 |
git mv [指定目录] [目标目录] |
移动目录 |
示例: git log
命令 |
说明:查看历史提交记录 |
get log |
查看历史提交记录,按 ↓ 键继续显示历史记录,直至显示END表示最后一条记录,按 q 键退出 |
示例: touch .gitignore
命令 |
说明 |
touch .gitignore |
创建 .gitignore 配置文件 |
| #将不需要跟踪的文件添加到忽略列表,查看文件状态时忽略此文件 |
| |
| #忽略指定的类型文件:忽略txt文件 |
| *.txt |
| #不忽略指定类型中的某个文件:git.txt |
| !git.txt |
| |
| #忽略指定文件:git.md |
| git.md |
| #忽略指定目录:a |
| a/ |
| #忽略指定目录下指定的类型文件:b目录下的class文件 |
| b/*.class |
| |
| ... |
Git 远程库操作
命令 |
说明 |
git clone [远程仓库地址] |
默认配置下,远程仓库中的每一个文件的每一个版本全部拉取下来(默认别名 origin) |
git remote |
查看远程仓库别名(若克隆远程仓库,默认别名 origin) |
git remote -v |
查看远程仓库 |
git remote show [仓库名] |
查看指定仓库详细信息, |
git remote add [仓库名] [远程仓库地址] |
添加远程仓库,一个本地仓库可添加多个远程仓库 |
git remote rm [仓库名] |
移除无效远程仓库(移除本地仓库与远程仓库的关联,不影响远程仓库) |
git fetch [仓库名] |
从远程仓库中抓取,不自动合并数据(数据以二进制形式存放在 .git/objects 目录下) |
git merge [仓库名]/[分支名] |
将从远程仓库中抓取的数据与本地数据合并 |
git pull [仓库名] [分支名] |
从远程仓库中拉取,自动合并数据 |
git pull [仓库名] [分支名] --allow-unrelated-histories |
从远程仓库中拉取,自动合并数据, 并解决因当前仓库不是从远程仓库克隆,且仓库中存在文件导致的报错 |
git push [仓库名] [分支名] |
将本地仓库推送到远程仓库分支 |
Git 分支操作
命令 |
说明 |
git branch |
列出所有本地分支 |
git branch -r |
列出所有远程分支 |
git branch -a |
列出所有本地分支和远程分支 |
git branch [分支名] |
创建本地分支(以当前分支为基础复制一份) |
git checkout [分支名] |
切换本地分支 |
git merge [分支名] |
合并本地分支(将该分支合并到当前分支) |
git push [仓库名] [分支名] |
将本地分支推送到远程仓库分支 |
git branch -d [分支名] |
删除本地分支 |
git branch -D [分支名] |
删除本地分支(若该分支有修改操作则需 -D) |
git push [仓库名] -d [分支名] |
删除远程分支 |
Git 标签操作
命令 |
说明 |
git tag |
列出所有本地标签 |
git show [标签名] |
查看本地标签 |
git tag [标签名] |
创建本地标签 |
git push [仓库名] [标签名] |
将本地标签推送到远程仓库 |
git checkout -b [分支名] [标签名] |
新建一个分支,指向某个远程仓库标签 |
git tag -d [标签名] |
删除本地标签 |
git push [仓库名] :refs/tags/[标签名] |
删除远程标签 |
配置SSH协议
命令 |
说明 |
ssh-keygen -t rsa |
在 /c/users/用户名/.ssh 目录下生成两个 id_rsa 文件,有pub后缀的为公钥,另一个为私钥, 将公钥内容复制,添加到 Git 平台中,此时可使用 SSH 协议的地址传输数据 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)