日常 Git 踩坑
文章目录
鄙人作为一个业余 Coder,Git 自然是用的不咋滴。于是在此做一些备忘,方便以后查询,本文将长期更新。
更新 gitignore 不起作用
gitignore 对于已经追踪的文件是不起作用的,导致添加了新的 ignore 规则,但是该被删去的文件还是存在。此时需要删除一下缓存的内容即可。执行一下命令:
|
|
查看未推送到远程的提交
|
|
查看某个 commit 的变动
看看某次 commit 更新或更改了什么,show 之后可以指定 commit ID,也可以使用 相对于 HEAD 的查看
|
|
更新存在 Submodule 的项目
|
|
rebase
http://jartto.wang/2018/12/11/git-rebase/
撤销 rebase
|
|
创建空分支
|
|
使用这条命令会创建一个没有父节点的分支,该分支没有历史记录,但是文件内容继承前分支。接下来删除所有文件就可以得到一个空的分支:
|
|
撤销 commit
这里的情景为已经提交(commit),但还未推送到远程仓库(push)。
提交有遗漏或调整提交信息
为了不污染提交的信息,使用以下的命令:
|
|
会重新打开编辑器,输入 commit 信息;当然在此之前可以使用 add 添加遗漏的文件,然后再提交。该命令会直接让上一次的 commit 好像没发生一样。
撤回提交
|
|
这里的 HEAD^ 是上一个版本的意思,也可以写做 HEAD~1,当然也可以撤回多个 commit,只要把 1 改成相应的数字即可。
有几个可选的参数:
- --mixed 撤销 commit 的同时撤销 git add 操作的效果,reset 的默认参数就是这个;
- --soft 仅仅撤销 commit,不撤销 git add;
- --hard 撤销 git add,同时删除变动的代码,慎用!
取消暂存的文件
有时候我们想提交一个 commit 时发现不小心 add 多了,可以选择性的取消暂存某个文件:
|
|
这将会使这个文件变成未 staged 状态。如果还想放弃对它的更改,可以继续执行:
|
|
我们对这个文件的更改就会消失,又回到了上次 commit 该文件的状态。
远程相关
以下是一些和远程仓库相关的操作,origin 为远程仓库的名称。
删除远程分支
|
|
推送一个远程不存在的分支
|
|
推送全部分支和 tag
|
|
文章作者 Josephine
上次更新 2020-08-22