04 Git
设置用户名/邮箱
配置大小写敏感
生成密钥
解决"修改文件名大小写"造成的 git 上传文件丢失
分步克隆
克隆最新一次 commit:
然后克隆剩余所有:
或者克隆某一分支:
撤销 Git 操作
撤销提交
该命令的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险。
git revert
命令只能抵消上一个提交,如果想抵消多个提交,必须在命令行依次指定这些提交。比如,抵消前两个提交,要像下面这样写。
git revert
命令还有两个参数:
--no-edit
:执行时不打开默认编辑器,直接使用 Git 自动生成的提交信息。--no-commit
:只抵消暂存区和工作区的文件变化,不产生新的提交。
丢弃提交
该命令的原理是,让最新提交的指针回到以前某个时点,该时点之后的提交都从历史中消失。
默认情况下,git reset
不改变工作区的文件(但会改变暂存区),--hard
参数可以让工作区里面的文件也回到以前的状态。
执行 git reset
命令之后,如果想找回那些丢弃掉的提交,可以使用 git reflog
命令,不过这种做法有时效性,时间长了可能找不回来。
替换上一次提交
该命令的原理是原理是,产生一个新的提交对象,替换掉上一次提交产生的提交对象。
这时如果暂存区有发生变化的文件,会一起提交到仓库。所以,--amend
不仅可以修改提交信息,还可以整个把上一次提交替换掉。
撤销工作区的文件修改
如果工作区的某个文件被改乱了,但还没有提交,可以用 git checkout
命令找回本次修改之前的文件。
该命令的原理是原理是,先找暂存区,如果该文件有暂存的版本,则恢复该版本,否则恢复上一次提交的版本。
注意,工作区的文件变化一旦被撤销,就无法找回了。
从暂存区撤销文件
如果不小心把一个文件添加到暂存区,可以用该命令撤销,不影响已经提交的内容。
撤销当前分支的变化
如果当前分支上做了几次提交,突然发现放错了分支,这几个提交本应该放到另一个分支,那么可以执行以下操作,撤销当前分支的变化,将这些变化放到一个新建的分支。
最后更新于