二、玩转Git三剑客-独自使用Git时的常见场景
删除不需要的分支
1 | git branch -d 分支名 |
如果你需要删除的分支没有被合并到其他分支,那么需要使用-D参数进行强制删除。
commit
修改最新commit的message
1 | git commit --amend |
以上命令即可修改最近一次提交的commit。
修改老旧commit的message
1 | git rebase -i commit的父哈希值 |




退出编辑命令的窗口后,即可进入编辑commit的窗口。在此编辑即可。

如果已经上传到服务器,不要轻易变更,否则会影响其他成员操作。
把连续的多个commit整理成1个
1 | git rebase -i commit的父哈希值 |


把间隔的几个commit整理成一个
1 | git rebase -i commit的父哈希值 |
进入编辑页面后,将需要合并的写在一起。如果没有自动出现则手动键入即可。需要删除的使用s命令,保留的使用pick。例如合并第一个和第三个commit:


接下来通过git rebase --continue修改最新的commit。

HEAD、暂存区、工作区
比较暂存区和HEAD所含文件的差异
1 | git diff --cached |

比较工作区和暂存区所含文件的差异
1 | # 比较全部文件差异 |


让暂存区恢复成和HEAD的一样
1 | git reset HEAD |

让工作区的文件恢复为和暂存区一样
1 | git checkout -- filename |

取消暂存区部分文件的更改
1 | git reset HEAD -- fileName1 fileName2 |

清除最近的几次提交
1 | git reset --hard 哈希值 |
这条指令导致在这之前的变更全部丢弃。

看看不同提交的指定文件的差异
1 | git diff 分支1 分支2 [-- 文件名] |

正确删除文件的方法
1 | git rm fileName |

开发中临时加塞了紧急任务处理(暂存)
1 | # 将当前状态暂存起来 |
指定不需要git管理的文件
新建一个.gitignore文件即可。参考:gitignore
1 | # 忽略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 | ⼯工作中最常⽤用的智能协议 |
哑协议与智能协议
直观区别: 哑协议传输进度不不可⻅见;智能协议传输可⻅见。
传输速度: 智能协议⽐比哑协议传输速度快。

1 | # 不带工作区 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小康博客!
评论
TwikooWaline








