1、git stash 暂存指令,git stash pop 释放并且删除最新的一条暂存内容指令(可指定释放某一条),git stash apply 释放指定的暂存内容,不会删除暂存的记录;git stash list 查看所有暂存内容;git stash drop 删除暂存内容,默认删除最新一条暂存内容(可指定删除)。
2、git ceckout -b 创建并且切换到新分支,新分支依据哪一个分支创建的就会和那个分支完全一样,包括原分支修改但是未commit的内容。
3、使用git diff 查看当前分支的改动内容,包括与上一次提交的差异。可按“q”键结束指令,或者ctrl+c(但是一般没效果)。
4、git log 查看提交日志,可按“q”键结束指令。
5、git pull --rebase origin 当多人开发时,提交代码不会产生新的节点,提交树是一路向前的,保持代码干净;与git pull 的区别:git pull 是 拉取远程分支代码+merge合并,而git pull --rebase是拉取远程分支代码+rebase,它会把拉取的下来的代码应用在你本地提交代码之下。
6、git fetch 从特定分支获取更改,可以实现从指定分支的开始节点拉取到结束节点。
7、git cherry-pick 把指定分支的某一个提交合并到目标分支,通过提交的对应的哈希值来实现。
8、git reset 是一个撤回指令,当你把代码push到本地时想要撤回时使用,它有三种模式:soft、mixed(默认)、hard。
(1)、soft:git reset --soft 使指针移动到指定的提交节点(一定是要push了之后才有效果,commit没用),同时它还可以保留暂存区(add. 之后)和工作目录的更改(就是未保存的更改)。
(2)、mixed:git reset 或者 git reset --mixed ,指针移动到指定的提交节点,保留工作目录中的更改,但是会清除暂存区(就是撤销add. 的暂存)。
(3)、hard: git reset --hard 指针移动到指定的提交节点,这个指令会丢弃暂存区和工作目录中的更改,也就是会失去当前未提交的所有修改,要小心使用。
最后,git reset HEAD~1是撤销上一次的提交并且清除暂存区,但是会保留工作目录的修改,意思就是本地保留在暂存区的该指令过后要再次add. 。
git reset HEAD~1 相较于undo commit 的指令,undo commit 是将撤销的内容回到暂存区,并且保留暂存区和工作目录的修改。
9、git revert 撤销远程提交,撤销后再次提交会在历史记录中添加一个新的提交(需要使用强制提交指令来提交),这对于多人协作的项目尤为重要。
10、怎么解决把一个基于dev分支拉取的dev_fee分支上写的新的需求或者修改合并到dev并且不产生节点分叉,先在dev_fee分支上使用pull --rebase拉取最新的代码,然后再切换到dev分支进行合并。