下载git工具
下载链接: 传送门
windows 可直接打开一直next安装即可。
mac 可以直接到appstore 中下载xcode即可。
安装完成之后输入以下命令检测是否安装成功
git --version
git 管理模式
git具有四个工作区域,分别为工作目录、暂存区、本地仓库、远程仓库(github、gitlab…)
工作目录就是我们本地需要写代码的地方,暂存区作为工作区和本地仓库之间的一个媒介,我们需要将工作目录的代码进行提交到本地仓库或者远程仓库时,需要先添加到暂存区。
git初始化本地库
首先我们先创建一个目录作为本地仓库
# mkdir 文件名
mkdir test //创建一个名为test的仓库。
cd ./test //切换目录到此仓库中和
git init //初始化本地仓库
这时候我们就已经初始化好了,系统在test目录中会去创建一个.git的隐藏目录,我们可以输入一下命令查看
ls -lA
设置git签名
签名形式
- 用户名
- 邮箱
主要作用
区分不同开发人员的身份,这里的账号和邮箱和远程登录代码托管平台的没有任何关系。
签名级别
- 系统级别:在全局有效。
- 项目级别:仅在此项目中有效。
项目级别签名优先级大于系统级别系统级别优先级,当二者都存在时,会优先采用项目级别的签名。二者都不存在时是不允许的,必须要设置一个。
项目级别签名设置
设置命令
git config user.name 用户名 //设置签名用户名
git config user.email 邮箱 //设置签名邮箱
命令例子
git config user.name hello
git config user.name 1234@qq.com
查看当前项目签名
cat .git/config //其实用户签名主要就是存在 .git/config文件中
全局签名设置
和设置项目的使用方法一样,就是多了一个–global
git config --global user.name 用户名 //设置签名用户名
git config --global user.email 邮箱 //设置签名邮箱
查看全局签名
cat .gitconfig
提交文件到暂存区
git add 文件名
撤销已将提交到暂存区的文件
git rm --cached 文件名
提交暂存区的文件到本地仓库
git commit -m "提交描述" [提交文件名,不指定时提交全部暂存区的文件]
将修改(已追踪)的文件直接提交到本地仓库
git commit -m "提交描述" -a
查看仓库的提交历史
git log #最详细的显示
git log --pretty=oneline #显示全部hash值
git log --online #一行显示一个版本信息
以上命令指挥显示当前版本记录之后的版本
git reflog #显示head回退步长以及提交信息
显示全部版本记录,包括提交以及回退所有日志记录
版本回退、版本切换
基于索引值进行版本切换
git reset --hard 索引值 #索引值可以由 git reflog 提供
基于指针进行版本切换 ,只能后退
git reset --hard HEAD[^|~n]
git 版本切换模式
--soft 仅在本地库移动指针,工作区和暂存区不会进行操作。
--mixed 暂存区会被重置,工作区不会被重置
--hard 暂存区和工作区都会被进行重置 [最常用的方法]
使用版本切换可以进行删除文件的找回,前提是删除的文件在之前的版本已经提交到本地库中
git 比较文件
工作区和暂存区中的文件进行比较
git diff # 比较多个文件
git diff 文件名 #比较指定文件
工作区和本地仓库的文件进行比较
git diff [本地仓库指针]
git diff [本地仓库指针] 文件名
git 分支操作
git branch 分支名 #创建分支
git branch -v #查看分支
git checkout 分支名 #切换分支
git 合并分支
切换分支需要到合并的分支
git merge 分支名【被合并的分支名】
解决分支冲突
- 编辑分支文件,删除特殊符号
- 把文件改到满意的程度,保存退出
- 执行 git add [文件名]
- 执行 git commit -m “提交备注” ,不能加具体文件名
远程仓库别名
- 添加仓库地址
git remote add origin 仓库地址
- 查看远程仓库
git remote -v
- 删除远程仓库
git remote remove 别名
从本地推送到远程仓库
git push 仓库别名 分支名
从远程仓库拉去到本地仓库
- 直接拉去并合并
git pull 仓库别名 分支名
- 分步骤,可解决分支冲突
git fetch 仓库别名 分支名
git merge 仓库别名/分支名
常见问题解决
git 从远程仓库下载分支代码
git clone 仓库地址
git remote add 仓库别名 仓库地址
git branch 查看分支
如果没有需要的分支
git checkout -b 分支名 仓库别名/分支名
git pull 仓库别名