time: 2019.6.7
author: heyunjiang
git 虽然日常使用,也能操作 clone, pull, push, merge, reset, revert, log 等一般操作,但是遇到了一些问题,却不知道如何解决,所以此刻再次完整学习一遍
HEAD
表示当前版本,上一个版本是 HEAD^
,上一百个版本 HEAD~100
git diff a.md
:用于比较工作区 a.md
文件相比本地仓库的区别,就是查看自己改了些什么git log --pretty=oneline
用于在一行展示提交记录git reflog
用于记录每一次的操作命令,该命令用于记录自己的操作;属于本地操作记录,包括每次commit,即使不在 HEAD 指针链上;主要用于恢复 git reset –hard 引起的问题。同 git log 一样,也是基于 commit 操作git reset --hard commitId
:用于回滚到对应 commit 记录git reset HEAD readme.md
:用于撤销文件当前修改,不过是将暂存区的恢复到工作区参数详解
git reset --hard <commitId>
,撤销本次commit,并且不保存本次修改。注意,如果你 pull 下来了别人的,并且回滚到你之前的某个 commit ,很容易把别人的代码给搞没了git reset --soft <commitId>
,撤销本次commit,并且保存 add,恢复代码到暂存区git reset --mixed HEAD^
,等同于 git reset HEAD^
。撤销本次 commit, 并且撤销本次 add ,恢复代码到工作区
git checkout -- readme.md
用于撤销工作区的修改,原理就是用本地版本库中的文件替换工作区的文件
用于首次本地库与远程库关联提交
是移动当前分支指针,指向目标分支指针
git stash 用于将工作区内容放到暂存区,然后去其他分支处理任务
把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。一般不建议使用
将 dev 分支修改内容 copy 到 master,看起来就像是 master 修改记录,会丢失 dev 修改记录,但是看起来更简洁。有舍也有得
commit 打标签,也就是别名,方便查看,与 commitId 一样,具有语义化
用于检查哪行配置导致忽略了这个文件
用于配置 git 命令的别名
目的:操作某一个分支中的一个或几个 commit 来操作
命令:git cherry-pick commitId
, 该 commitId 是其他分支的提交,用于合并到当前分支来