git fetch:获取远程分支
git pull = git fetch + git merge;
pull先获取远程分支,再与本地分支合并,并更新HEAD指针。
git reset 后的参数:
首先git提交的过程是这样的
自己的代码,未经过git之前(working directory工作区)->add之后(暂存区对应stage/index)->commit之后(有了提交历史,提交到版本库,history)
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
git reset --soft HEAD~1:
将版本库软回退一个版本,本地库头指针指向指定版本,且这次提交后所有变更移动到暂存区,即只退commit,不会到add。
git reset --mixed HEAD~1:(默认值)
本地库头指针指向指定版本,且这次提交后所有变更移动到未暂存状态,即只保留源码,回退掉了commit和add。
git reset --hard HEAD~1:hard为强制的意思
本地库头指针指向指定版本,重置暂存区,工作区也回退,彻底回退到上一版本。
当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。(危险)
git rebase:
其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点。这个时候才能知道你当前分支于你需要比较的分支之间的差异。
合并多次commit。
取消rebase 事务:git rebase –abort。