git pull && git fetch && git stash && git rebase && git reset

git pull && git fetch

经过一张图了解下,git fetch和git pull的概念: git

  • fetch:将远程主机更新内容拉到本地,用户检查后决定是否合并到工做分支上。
  • pull:将远程主机更新内容拉到本地直接合并,git pull = git fetch + git merge,这样可能产生冲突。

git pull的问题是把过程当中的细节隐藏起来了,一旦代码有问题就很难找到出错的地方。app

git stash

当你在一个分支上在进行开发时,临时须要切换到另外一个分支解决一些比较紧急的事情,问题是你才工做了通常,你不想回不到这个工做点,这时就须要用git stash命令了。fetch

git stash 是“储藏”的意思,能够获取你工做目录的中间状态,修改过的追踪文件能够放到一个未变动的堆栈中,随时能够从新应用。blog

  • git stash(这个) 保存当前的工做进度。会分别对暂存区和工做区的状态进行保存。开发

  • git stash save “message…” 这条命令其实是第一条 git stash 命令的完整版。it

  • git stash list 显示进度列表。此命令显然暗示了git stash 能够屡次保存工做进度,并用在恢复时候进行选择。ast

  • git stash pop(这个) 若是不使用任何参数,会恢复最新保存的工做进度,并将恢复的工做进度从存储的工做进度列表中清除。im

  • git stash apply 除了不删除恢复的进度以外,其他和 git stash pop 命令同样。apply

  • git stash clear 删除全部存储的进度。img

git rebase

合并代码有两种方式:

  • git merge
  • git rebase

git rebase目的是对一段线性提交历史进行编辑,删除,复制,黏贴,经过rebase可使咱们的提交历史感受,整洁。

不要经过rebase对任何已经提交到master仓库的commit进行修改。

经过rebase能够帮助咱们合并多个commit为一个完整的commit。

git reset

适用于在某个提交点从新开分支。好比某个提交以后代码咱们都不要了,能够在本地reset到指定commit,从新开启一个branch继续开发。

  • git reset --soft 只是对现有版本库进行更改。
  • git reset --hard 更改内容提交到工做区,不能恢复。

能够用来对某些提交进行撤销。

相关文章
相关标签/搜索