Git使用手册
什么是Git
git是一个分布式的文件版本控制管理工具
Git的三个文件区域
- 工作区:工作区就是你的本地工作目录,对文件的修改都在工作区内进行。
- 暂存区:在工作区内修改完毕的文件,可以移动到暂存区。暂存区存放的是待提交的文件。
- 仓库区:暂存区的文件提交后,会形成新的版本归档到仓库区。
Git的三种状态
三个文件区域对应了三种文件状态:
- 已修改的文件存放在工作区
- 已暂存的文件存放在暂存区
- 已提交的文件存放在仓库区
Git分支
从主分支创建子分支进行特性开发。
配置身份
安装好Git好,首先需要配置好自己的身份。
执行以下两条命令配置身份信息git config --global user.name "UserNanem"git config --global user.email "email"
.gitignore
.gitignore用于配置git忽略跟踪的文件。
#符号用于注释内容- t
arget/用于匹配相对于.gitignore所在目录的3个目录。 - 一个
*符号用于匹配文件名中的一部分或完整的文件名或一层目录。 - 两个
**符号用于匹配0个或多个目录或多层目录。
Git常用命令
获取Git仓库
获取Git仓库有两种方式
- 在项目目录下使用
git init命令,将使目录初始化为一个Git仓库,并在目录内生成一个名为.git的文件夹。

- 在项目目录下使用
git clone <url> 文件夹名称,将从远端服务器克隆一个仓库到本地。

查看git仓库状态
git status
将已修改的文件添加到暂存区
添加指定的文件git add filename
添加所有的文件git add *
使用通配符添加文件git add *.txt
提交暂存区文件
git commit -m "代码提交信息"
跳过暂存区直接提交所有已跟踪的文件
git commit -a -m "代码提交信息"
取消对文件的跟踪,并删除文件
git rm fileName
将文件从暂存区移到工作区
git reset fileName
查看提交日志
git log
切换当前分支到目标分支
git checkout <分支id>
在detached HEAD状态下,可以进行试验性的更改和提交,所有的提交会在临时新分支下进行,当切换回主分支,临时新分支的数据会丢失。如果你想保存临时新分支的数据,可以使用git switch -c <new-branch-name>创建新分支。
创建新分支
git branch <branch-name>
删除分支
git branch -d <branch-name>
合并分支
git merge <目标分支>
将当前分支与目标分支合并,在当前分支线上产生一个新的分支。 

git rebase <目标分支> 将目标分支的提交应用到当前分支后,然后移动当前分支的HEAD指针到合并后的最新提交处。 

分支合并的原则
- 子分支更新父分支的内容,在子分支下使用rebase父分子
- 父分支合并子分支的内容,在父分支下使用merge子分支
- 从远端仓库更新分支内容时一定要使用--rebase参数
git pull origin <目标分支> --rebase
本地仓库绑定远端仓库
git remote add origin <url>
查看所有远程仓库源
推送本地分支的提交记录到远端仓库
git push origin <本地分支>
删除远端仓库的分支
git push origin --delete <远端分支>
从远端仓库获取远端分支的提交记录
从远端仓库获取分支git fetch origin <远端分支>
从远端仓库拉取分支并合并到当前分支git pull origin <远端分支> --rebase
获取和拉取的区别
- 获取会从服务器上下载最新的提交记录
- 拉取会从服务器上下载最新的提交记录,同时合并到当前分支 一般使用获取,检查没有问题的话,再进行合并。
命令总结
初始化仓库git init
从远端获取仓库git clone <url> directoryName
查看仓库状态git status
添加文件到暂存区git add *、git add fileName、git add *.txt
提交暂存区文件git commit -m "message"
跳过暂存区提交git commit -a -m "message"
取消文件跟踪、删除文件git rm fileName
取消文件暂存git reset filename
新建分支git branch 分支名
删除分支git branch -d 分支名
切换分支git checkout 分支名
合并分支git merge 目标分支
改变分支基底git rebase 目标分支
绑定远端仓库git add remote origin <url>
推送本地分支的提交记录到远端仓库git push origin <本地分支>
从远端仓库获取分支的提交记录git fetch [origin] <远端分支>
从远端仓库拉取分支的提交记录并合并git pull [origin] [远端分支] --rebase