文章目录
丢弃某个文件工作区的内容修改 - restore
//交给内容状态
git status
//丢弃某文件当前工作区的内容修改
git restore 文件名相对路径
比对文件内容区别 - diff
//暂存区无内容的话,则会比对当前分支最新一版的commit文件状态
git diff
//不管暂存区有无内容,都会去会比对当前分支最新一版的commit文件状态
git diff HEAD
查看项目分支 - branch
git branch
切换分支 - checkout -
//切换到上一次分支 == 类似浏览器的回退按钮
git checkout -
//切换到目标分支
git checkout 分支名
创建并切换到新分支 - checkout -b
//两种方式
//方式1
git checkout -b 分支名
//方式2,先创建分支,然后在切换到新分支
git branch 新分支名
git checkout 分支名
删除分支 - branch -d
git branch -d 分支
注意:不能删除当前所在的分支
合并分支 - merge
//将某个分支的东西合并到当前所在的分支
git merge 分支名
查看git所有操作记录 - reflog
//仅能查看到当前HEAD以及其之前的版本信息
git log
//可以查看到当前分支所有操作情况,HEAD指针之后也行
git reflog
将代码回溯到某个commit版本 - reset --hard
//工作区、暂存区、commit的HEAD指针、以及文件内容都回到某个commit版本
git reset --hard commit的ID
//暂存区、commit的HEAD指针都回到某个commit版本
//【回退前add的暂存区内容都会变成工作区内容、以及某个commit版本之后的内容都会变成工作区内容】这里就是跟是否添加--hard的区别
git reset commit的ID
回溯到当前版本的之前版本 – hard
hard与无hard的区别
所以无hard是更加安全的,当然你确定需要丢弃当前工作区、暂存区内容然后回滚到某个commit版本的内容可以使用–hard
有hard - 工作区、暂存区、HEAD指针立即变更到某个版本
无hard - 暂存区、切换版本之前commit内容退化到工作区。暂存区、HEAD变更到某个版本
修改HEAD指针的提交信息描述 - commit --amend
//打开编辑器进行修改最近一条记录的描述信息
git commit -amend
//无需打开编辑器,使用命令行的新描述信息
git commit -amend -m '新的描述信息'
一次性提交工作区、暂存区的内容到版本库 - commit -am
仅提交交给版本库管理的文件的变更内容
//【被git监控的文件】的工作区、暂存区内容提交到版本库 == 注意未被git监控的文件是不可以使用下面的单条命令进行一次性提交的,需要先add 新增的文件到暂存区进行git监控才行哦
git commit -am '版本记录描述'
//上面命令可以类比等价于下面两条命令
git add .
git commit -m '版本记录描述'
添加、显示、推送记录到远程仓库信息 - remote、push
//新增远程仓库地址信息
git remote add 远程仓库别名 远程仓库git地址
//查看当前远程仓库的地址信息
git remote -v
//推送本地版本到远程仓库 == 【推送时远程仓库不存在的分支则会自动创建远程仓库分支】
git push 远程仓库别名 本地仓库分支名:远程仓库分支名
//下面命令等价于 git push 远程仓库别名 分支名:分支名
git push 远程仓库别名 分支名
//强制推送本地仓库的记录到远程仓库,强制覆盖,无视冲突,反正远程仓库的文件就是用本地仓库的文件内容
git push --force 远程仓库别名 分支名
拉取远程仓库更新本地仓库 - pull
git pull 远程仓库别名 远程仓库分支名:本地仓库分支名
//等价于 git pull 远程仓库别名 分支名:分支名
git pull 远程仓库别名 分支名
规范准则
分支策略
版本号策略
//案例
1.0.0:最初发布的版本
1.0.1:修正了轻微 BUG
1.0.2:修复漏洞
1.1.0:添加新功能
2.0.0:更新整体 UI 并添加新功能