二、玩转Git三剑客-独自使用Git时的常见场景
删除不需要的分支
git branch -d 分支名如果你需要删除的分支没有被合并到其他分支,那么需要使用-D参数进行强制删除。
commit
修改最新commit的message
git commit --amend以上命令即可修改最近一次提交的commit。
修改老旧commit的message
git rebase -i commit的父哈希值退出编辑命令的窗口后,即可进入编辑commit的窗口。在此编辑即可。
如果已经上传到服务器,不要轻易变更,否则会影响其他成员操作。
把连续的多个commit整理成1个
git rebase -i commit的父哈希值
# 然后将需要合并的改为s。把间隔的几个commit整理成一个
git rebase -i commit的父哈希值进入编辑页面后,将需要合并的写在一起。如果没有自动出现则手动键入即可。需要删除的使用s命令,保留的使用pick。例如合并第一个和第三个commit:
接下来通过git rebase --continue修改最新的commit。
HEAD、暂存区、工作区
比较暂存区和HEAD所含文件的差异
git diff --cached比较工作区和暂存区所含文件的差异
# 比较全部文件差异
git diff
# 只比较c.js文件之间的差异
git diff -- c.js让暂存区恢复成和HEAD的一样
git reset HEAD让工作区的文件恢复为和暂存区一样
git checkout -- filename取消暂存区部分文件的更改
git reset HEAD -- fileName1 fileName2清除最近的几次提交
git reset --hard 哈希值这条指令导致在这之前的变更全部丢弃。
看看不同提交的指定文件的差异
git diff 分支1 分支2 [-- 文件名]
# 分支可换成提交的哈希值,文件名如果不写,那么表示比较全部正确删除文件的方法
git rm fileName开发中临时加塞了紧急任务处理(暂存)
# 将当前状态暂存起来
git stash
# 将之前的暂存信息弹出来,并会保存暂存队列
git stash apply
# 将之前的暂存信息弹出来,不保存暂存队列
git stash pop
# 查看暂存队列
git stash list指定不需要git管理的文件
新建一个.gitignore文件即可。参考:gitignore
# 忽略doc里面的文件
doc/
# 忽略doc文件(夹)及下面文件
doc如何将Git仓库备份到本地
| 常用协议 | 语法格式 | 说明 |
|---|---|---|
| 本地协议(1) | /path/to/repo.git | 哑协议 |
| 本地协议(2) | file:///path/to/repo.git | 智能协议 |
| http/https协议 | http://git-server.com:port/path/to/repo.githttps://git-server.com:port/path/to/repo.git | 平时接触到的都是智能协议 |
| ssh协议 | user@git-server.com:path/to/repo.git | ⼯工作中最常⽤用的智能协议 |
哑协议与智能协议
直观区别: 哑协议传输进度不不可⻅见;智能协议传输可⻅见。
传输速度: 智能协议⽐比哑协议传输速度快。
# 不带工作区
git clone --bare 地址 新名称
# 关联远端仓库
git remote add 名称 地址 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooDisqusjs




























