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 协议的地址传输数据 |