git常用命令
工作中最常用的命令:全局设置、获取git仓库、本地仓库命令、远程仓库命令、分支操作、标签操作
全局设置
当安装git后首先要设置用户名名称和email地址,因为每次git提交都会使用该用户信息
设置用户信息(user.name和user.email并不是某个平台的用户名和邮箱,可以任意设置)
git config --global user.name "mushan"
git config --global user.email "mushan@admin.com"
查看配置信息
git config --list
获取git仓库
要使用git对我们的代码进行版本控制,首先需要获得git仓库
获取git仓库通常有两种方式:
在本地初始化一个git仓库(不常用)
执行步骤:
1、在任意目录下创建一个空目录,例如 hellogit 作为本地git仓库
2、进入这个目录中,右键打开git bash窗口
3、执行命令 git init(会生成一个.git的隐藏文件夹)
从远程仓库克隆(常用)
从远程仓库克隆都是会有一个项目地址例如:https://gitee.com/liaoweibin/ssm-crud.git,把它下载到本地
执行步骤:
1、在某个文件夹下右键打开git bash窗口
2、执行命令 git clone https://gitee.com/liaoweibin/ssm-crud.git
3、下载完双击打开目录源码就克隆下来了
工作区、暂缓区、版本库概念
- 版本库:
- 前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息,日志信息和文件版本信息等
- 工作区:
- 包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
- 暂存区:
- .git文件夹中有很多文件,其中一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
当执行git add添加命令时会把文件放在暂存区,执行git commit提交命令时会把文件提交到版本库
工作区中文件的状态
文件存在两种状态:
- untracked 未跟踪(未被纳入版本控制)
- tracked 已跟踪(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
git status命令可以查看当前文件的一个状态
这些文件的状态会随着我们执行git命令发送变化
本地仓库常用命令
查看文件状态
git status
将修改的文件加入暂存区
# 添加一个文件到暂存区
git add readme.md
# 添加两个文件到暂存区
git add readme.md hello.html
# 添加当前目录下的所有文件到暂存区
git add .
将暂存区的文件取消暂存
git reset hello.html
切换到指定版本
git reset --hard 15fev5ggb4g545sa44gb4b4y5qe5e4
查看日志
git log
将暂存区的文件修改提交到版本库
git commit -m "提交备注信息"
远程仓库常用命令
查看远程仓库
# 远程仓库别名简称
git remote
# 远程仓库具体地址
git remote -v
添加远程仓库
# git remote add [别名简称] [远程仓库地址]
git remote add origin https://gitee.com/liaoweibin/ssm-crud.git
从远程仓库克隆
git clone https://gitee.com/liaoweibin/ssm-crud.git
从远程仓库拉取
# git pull [远程仓库别名] [分支]
git pull origin master
注:如果当前本地仓库不是从远程参考克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated historles)
解决此问题可以在git pull命令后加入参数 --allow-unrelated-histories
推送到远程仓库
# git push [远程仓库别名] [分支]
git push origin master
分支操作
分支是git使用过程中非常重要的概念。使用分支意味着可以把工作从开发主线上分离开来,以免影响开发主线。同一仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init命令创建本地仓库时默认会创建一个master分支
查看分支
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a
创建分支
# git branch [分支名称]
git branch name
切换分支
# git checkout [分支名称]
git checkout name
推送至远程仓库分支
# git push [远程仓库别名] [分支名称]
git push origin name
合并分支
# git merge [分支名称]
git merge name
标签操作
git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态,相当于快照。
比较有代表性的是会使用这个功能来标记发布节点(v1.0、v1.2等)。
列出已有的标签
git tag
创建标签
# git tag [标签名称]
git tag v1.0
将标签推送至远程仓库
# git push [远程仓库别名] [标签名称]
git push origin v1.0
检出标签
# git checkout -b [分支] [标签名称]
git checkout -b master v1.0