2.独自使用Git时的常见场景
2.1 删除分支
#显示所有分支
git branch -av
#删除分支
git branch -d 分支名 #(保险起见)
git branch -D 分支名 #(如果上一条命令没有删掉)
2.2 修改最新的commit的message
git commit --amend
#按Ctrl+X离开修改,选择是保存
2.3 修改老旧的commit的message
git rebase -i 要改动的commit的父亲的哈希值
#以上命令都是基于维护自己的分支
#不能用于合并分支以后的内容
2.4 整理之前几个连续的commit
git rebase -i 要改动的commit的父亲的哈希值
#输入命令以后出来下面四个pick
#保留一个pick,其他按照下面呢提示将pick进行替换为 s 表示与上一个进行合并
2.5 整理之前几个不连续的commit
git rebase -i 要改动的commit的父亲的哈希值
#按上面的命令选项进行合并,调换几个pick的位置
#然后将pick 改为 s 表示与上一个进行合并
2.6 比较暂存区与HEAD所指内容差异
git diff --cached
2.7 比较暂存区与工作区差异
git diff
#或者
git diff -- 文件名 文件名 ... #--后面的空格不可以省略,可跟多个文件名,用空格隔开
2.8 暂存区恢复为HEAD一致
git reset HEAD
- 修改之前
- 修改之后
2.9 工作区恢复为暂存区一致
#丢弃工作区的改动
#--后面空格不可省略
git checkout -- <文件>
- 修改之前
- 修改之后
2.10 取消暂存区部分文件的修改
#文件名之前以空格隔开
git reset HEAD -- 文件名
- 修改之前
- 修改之后
2.11 取消最近几次的提交
#工作区和暂存区也会恢复到这个commit对应的状态
git reset --hard 要恢复到的commit的哈希值
#或者在还未对HEAD产生影响的基础上,将工作区与暂存区恢复为HEAD一致的情况
git reset --hard HEAD
- 修改之前
- 修改之后
2.12 查看不同提交的指定文件的差异
#比较两个分支的差异
git diff 分支名 分支名 -- 文件名
#比较两个commit的差异
git diff 哈希值 哈希值 -- 文件名
- 使用效果
2.13 正确删除文件
git rm 文件名
- 使用效果
相当于将删除的这个操作直接存储到暂存区,接下来commit一下就可以在仓库看到操作
2.15 突然接到紧急任务,保存当前状态
#保存当前工作状态
git stash
#查看已经保存的状态
git stash list
#恢复之前的工作状态,但不会将这个状态弹出状态列表栈,可以反复使用
git stash apply
#恢复之前的工作状态,并且将这个状态弹出状态列表栈
git stash pop
- 保存状态之前
- 保存状态之后
- 查看已经保存的状态
- 恢复之前的工作状态
2.16 指定不需要git管理的文件
#必须是。gitignore文件,不可以是别的文件名
可以参考github的.gitignore文件,它区分不同的程序文件
.gitignore文件下的内容是不加入到git管理中的
#例如
doc #表示不管理doc文件,但是还是管理dco文件夹下的文件
doc/ #表示不管理doc文件夹下的内容,但还是管理doc这个文件
*.hex #表示不管理以。hex结尾的文件
2.17git的备份
- 两个本地协议,是本地常用的
- 哑协议传输进度不可见,智能协议传输可见
- 智能协议比哑协议传输速度快
- 效果显示
下面命令不理解的话,看完github相关内容就理解了
#创建一个本地仓库的克隆版本
git clone 路径名
#添加远程仓库
git remote add <简写> <远程仓库地址>
#从远程仓库中抓取与拉取
git fetch [仓库名]
#推送到远程仓库,分支名默认master
git push [仓库名] [分支名]
#查看某个远程仓库
git remote show [仓库名]
#远程仓库的移除与重命名
git remote rename 原名 现名
git remote rm 仓库名
了解更多技术文章,欢迎关注我的个人公众号