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

本文深入解析Git中的关键命令,如git pull, git fetch, git stash, git rebase, git reset等,阐述它们的功能区别及应用场景,帮助开发者更高效地进行版本控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

转载于:https://my.oschina.net/u/1000241/blog/3004392

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值