Git常用命令
Git全局设置
安装完Git后,要先设置用户名称和email地址。因为每次Git提交都会使用该用户信息。
设置用户信息
git config --global user.name "......"
git config --global user.email "......"
查看配置信息
git config --list
获取Git仓库
要使用Git对代码进行版本控制,首先要获得Git仓库。
获取Git仓库通常有两种方式:
- 在本地初始化一个Git仓库(不常用)
- 从远程仓库克隆
在本地初始化仓库
在任意目录下创建一个空目录作为本地git仓库,进入这个目录中,点击右键打开Git bash窗口,再指定命令 git init
然后再目录中会出现一个.git文件夹(此文件夹为隐藏文件夹),说明Git仓库创建成功
从远程仓库克隆
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
一些概念
- 版本库:以上提到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息、文件版本信息等
- 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
- 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
工作区通过指令 git add 将对工作区的开发代码的修改放到暂存区,暂存区通过指令 git commit 将其修改提交到版本库
Git工作区中的文件存在两种状态:
- untracked 未跟踪(未被纳入版本控制)
- tracted 已跟踪(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
Git本地仓库常用命令
本地仓库操作
本地仓库常用命令如下:
- git status 查看文件状态
- git add 将文件的修改加入暂存区
- git reset 将暂存区的文件取消暂存或者是切换到指定版本
- git commit 将暂存区的文件修改提交到版本库
- git log 查看日志
关于git reset:
reset参数是重置命令
- --hard是重置代码仓库版本
有三种模式
- -soft 、--mixed以及--hard是三个恢复等级。
使用--soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。 如果使用--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。 如果使用--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
以--hard为例: git reset --hard [版本id]
命令就是恢复到指定版本id对应的版本
在git log查看日志后,日志中的commit后面的一串字符串就是版本id
关于git commit:
git commit -m "注释信息" [提交的文件名]
-m意思是给本次提交加上注释信息,建议使用-m进行提交,否则会弹出一个注释编辑器(较难使用),直接使用-m进行注释即可
远程仓库操作
远程仓库常用命令如下:
- git remote 查看远程仓库
- git remote add 添加远程仓库
- git clone 从远程仓库克隆
- git pull 从远程仓库拉取
- git push 推送到远程仓库
从远程仓库拉取
git pull命令的作用是从远程仓库获取最新版本合并到本地仓库,命令格式:
git pull [short-name] [branch-name]
short-name是指远程仓库名,branch-name是指分支名
如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错,如果要强行拉取,可以再git pull命令最后加上
--allow-unrelated-histories
推送到远程仓库
git push命令的作用是将本地仓库的新版本推送到远程仓库,命令格式:
git push [short-name] [branch-name]
short-name是指远程仓库名,branch-name是指分支名
分支操作
分支是Git使用过程中非常重要的概念。使用分支意味着可以把工作从开发主线上分离开来,避免影响开发主线。同一个仓库可以有多个分支,各个分支相互独立,互不干扰。通过git init命令创建本地仓库的时候会默认创建一个master分支。
关于分支的相关命令:
- git branch 查看分支
- git branch [name] 创建分支
- git checkout [name] 切换分支
- git push [shortName] [name] 推送到远程仓库分支
- git merge [name] 合并分支
查看分支时,看到的分支前有一个*符号,并且该分支是绿色的,说明此分支是现在所在的分支
标签操作
Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。比较有代表性的是可以使用这个功能类发布结点。
和标签相关的命令:
- git tag 列出已有的标签
- git tag [name] 创建标签
- git push [shortName] [name] 将标签推送到远程仓库
- git checkout -b [branch] [name] 检出标签
检出标签就是将指定标签的代码下载下来,下载的内容放到一个新的分支里面,[branch]就是用来指定这个新分支的名称
但是通常不会使用输入命令的方式来进行git操作,通常在idea中使用git,git中会有相应的按钮直接执行命令,既方便又简单,但是不好用文字描述,见相关视频即可