git
一、常用命令
1、git init
作用:创建一个本地版本库,让git能够管理本地目录,执行完成之后当前目录下会创建一个名为.git
的本地目录,默认创建了一个master分支
2、git status
作用: 查看版本库文件状态
文件颜色变化:
- 红色:表示未添加到暂存区的文件(新增的文件、修改过的文件【已被git管理过】)
- 绿色:添加到暂存区但没有提交到版本库的文件
3、git add
作用:将文件添加到暂存区
常用方式:
- 将单个文件添加到暂存区
git add 文件名
- 将所有未添加到暂存区的文件添加到暂存区
git add .
git add *
git add -A
4、git commit
作用:将暂存区的文件提交到本地版本库
常用方式:
git commit -m "msg" 文件
如果后边不加文件表示将暂存区所有的文件提交到本地版本库
git commit -am "msg" 文件
将没有添加到暂存区的文件直接提交到本地版本库
5、git config
作用:配置git配置文件
配置级别 | 命令 | 配置文件 | 优先级 |
---|---|---|---|
本地版本库 | git config --local | .git/config | 最高 |
用户级别 | git config --global | ~/.gitconfig | 其次 |
系统配置 | git config --system | 安装目录/etc/gitconfig | 最低 |
- 添加配置方式,如下:
git config --local user.name 'use'
git config --local user.email 'usr@qq.com'
- 查看配置:
git config --local -list
git config --local -l
6、git log
常用方式:
git log
该命令可以输出commit 哈希值、作者、时间、提交信息
git log --oneline
仅输出commit 哈希值和提交信息
git log --graph
以点线图展示提交的历史记录
git log --pretty=format:' %h %s'
常用格式占位符写法:
7、git reset
作用:将版本库内容重置到某个commit
git reset --hard <commit>
重置本地版本库、暂存区、工作区(危险)
git reset --soft <commit>
重置本地版本库
不重置暂存区、工作区
git reset --mixed <commit>
重置版本库、暂存区
不重置工作区
8、git reflog
作用:查看所有分支的所有操作记录(包括已经被删除的commit记录和reset的操作)
9、git diff
作用:比较文件差异
- 比较工作区和暂存区的差异
git diff <文件>
- 比较工作区和版本库的差异
git diff HEAD <文件>
- 比较暂存区和版本库的差异
git diff -cached <文件>
git diff -staged <文件>
10、撤销暂存区修改
git reset HEAD 文件
git restore --staged 文件
11、撤销工作区修改
git checkout 文件
git restore 文件
12、 git revert
作用:撤销某个commit,在执行撤销后并没有删除这个commit,git会在版本库重新创建一个commit
13、git mv
修改版本库文件名称
git mv a.java b.java
14、git rm
删除版本库中的文件
git rm b.java
二、git分支
1、创建分支
git branch demo
2、查看本地分支
git branch -l
3、切换分支
git checkout demo
4、合并分支
git merge demo
5、创建并切换分支
git checkout -b demo
6、查看所有分支列表
git branch -va
7、删除分支
git branch -d 分支
三、远程仓库操作
1、克隆远程版本库
git clone
2、推送远程仓库
git push
3、拉取远程仓库
git pull
四、版本冲突
出现版本冲突时需要先解决冲突
然后使用git add <file>
告诉git冲突解决了
然后使用git commit -m "msg"
提交合并结果
最后使用git push
将合并结果推送到远程
五、git rebase命令
一般理解为变基
1、修改提交的历史记录的msg
git rebase -i 要修改的commit的父commit
2、合并commit
git rebase -i 要修改的commit的父commit
把pick 修改为 s
3、合并本地分支
git rebase master
,切记永远不要在公共分支上使用git rebase
命令
4、git rebase --continue
完成本次冲突的解决
合并远程分支(解决冲突)
首先使用git pull --rebase origin master
拉取远程分支
解决冲突
然后使用 git add 文件
标记解决了冲突
然后使用git rebase --continue
完成版本合并
最后推送到远程