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

本小妞迷上赌 提交于 2019-12-05 23:41:37

git pull && git fetch

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

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

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

git stash

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

git stash 是“储藏”的意思,可以获取你工作目录的中间状态,修改过的追踪文件可以放到一个未变更的堆栈中,随时可以重新应用。

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

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

  • git stash list 显示进度列表。此命令显然暗示了git stash 可以多次保存工作进度,并用在恢复时候进行选择。

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

  • git stash apply 除了不删除恢复的进度之外,其余和 git stash pop 命令一样。

  • git stash clear 删除所有存储的进度。

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 更改内容提交到工作区,不能恢复。

可以用来对某些提交进行撤销。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!