删除不需要的分支
如果你需要删除的分支没有被合并到其他分支,那么需要使用-D
参数进行强制删除。
commit
修改最新commit的message
以上命令即可修改最近一次提交的commit。
修改老旧commit的message
1
| git rebase -i commit的父哈希值
|
退出编辑命令的窗口后,即可进入编辑commit的窗口。在此编辑即可。
如果已经上传到服务器,不要轻易变更,否则会影响其他成员操作。
把连续的多个commit整理成1个
1 2
| git rebase -i commit的父哈希值
|
把间隔的几个commit整理成一个
1
| git rebase -i commit的父哈希值
|
进入编辑页面后,将需要合并的写在一起。如果没有自动出现则手动键入即可。需要删除的使用s
命令,保留的使用pick
。例如合并第一个和第三个commit:
接下来通过git rebase --continue
修改最新的commit。
HEAD、暂存区、工作区
比较暂存区和HEAD所含文件的差异
比较工作区和暂存区所含文件的差异
1 2 3 4
| git diff
git diff -- c.js
|
让暂存区恢复成和HEAD的一样
让工作区的文件恢复为和暂存区一样
1
| git checkout -- filename
|
取消暂存区部分文件的更改
1
| git reset HEAD -- fileName1 fileName2
|
清除最近的几次提交
这条指令导致在这之前的变更全部丢弃。
看看不同提交的指定文件的差异
1 2
| git diff 分支1 分支2 [-- 文件名]
|
正确删除文件的方法
开发中临时加塞了紧急任务处理(暂存)
1 2 3 4 5 6 7 8
| git stash
git stash apply
git stash pop
git stash list
|
指定不需要git管理的文件
新建一个.gitignore
文件即可。参考:gitignore
如何将Git仓库备份到本地
常用协议 | 语法格式 | 说明 |
---|
本地协议(1) | /path/to/repo.git | 哑协议 |
本地协议(2) | file:///path/to/repo.git | 智能协议 |
http/https协议 | http://git-server.com:port/path/to/repo.git
https://git-server.com:port/path/to/repo.git | 平时接触到的都是智能协议 |
ssh协议 | user@git-server.com:path/to/repo.git | ⼯工作中最常⽤用的智能协议 |
哑协议与智能协议
直观区别: 哑协议传输进度不不可⻅见;智能协议传输可⻅见。
传输速度: 智能协议⽐比哑协议传输速度快。
1 2 3 4
| git clone --bare 地址 新名称
git remote add 名称 地址
|