Android Git 拉取代码报错:error: cannot pull with rebase: Your index contains uncommitted changes.

简介: 造成原因:在使用Android Studio中Git的Commit Directory 将本地更改的代码保存到本地后,点击commit,发现提交不上去,发现本地有代码,这时候拉取代码,报错:cannot pull with rebase: Your index contains uncommitted changes.表示我的索引有未提交的改变

造成原因:在使用Android Studio中Git的Commit Directory 将本地更改的代码保存到本地后,点击commit,发现提交不上去,发现本地有代码,这时候拉取代码,报错:cannot pull with rebase: Your index contains uncommitted changes.表示我的索引有未提交的改变


解决办法:


打开Android Studio的Terminal控制台,


依次输入指令:


1.git stash


能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。意思就是把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的)


2.git pull --rebase


从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突


3.git stash pop(git stash apply)


从暂存区把你之前提交的内容取出来,跟拉下来的代码合并



1.git stash pop :会将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。该命令将堆栈中最近保存的内容删除(栈是先进后出),这样有时候会发现代码没了。


保守点可以用:git stash apply :将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。


2.如果使用 git stash pop 后有冲突时,如何撤销?


可以使用 git reset --hard ,即可撤销 git stash pop 操作,将当前分支状态恢复。


而该操作后,git stash 暂存区的记录也不会被删除,可通过 git stash show 查看。


流程图:借用一张流程图

c82072e95b6b81bf9b617a2bb4fe33d.png



还可以应用的场景:


1.git stash这种可以把代码暂时保存在本地且使得工作区干净的效果,可以让自己在工作中实现在未完成某个分支工作时,切换到其他分支去修复bug这种操作


2.有一次我登录模块的功能写在master分支了,但是代码只写了一半,又不敢提交,这时候就可以先用stash保存到本地,然后切分支,在用git stash apply把代码合并到想要的分支



平时用工具的可视化操作界面太多了,出点问题还是得去查,这里记录一下,以后可以自己方便来看。

————————————————


相关文章
|
开发工具 git
git fetch和 pull的区别
`git fetch`和 `git pull`在Git中扮演着不同的角色,了解它们的区别和使用场景对于高效管理代码库至关重要。通过合理使用这两个命令,可以更好地控制代码合并过程,减少冲突,提高团队协作效率。
1136 97
|
12月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
2302 36
|
开发工具 git
git fetch和 pull的区别
通过这些内容和示例,您可以系统地理解 `git fetch`和 `git pull`的区别,并在实际工作中灵活应用这两个命令,提高版本控制的效率。希望这些内容对您的学习和工作有所帮助。
979 24
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
690 18
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
447 16
|
网络安全 开发工具 git
解决fatal:remote error:You can’t push to git://github.com/username/*.g
通过上述诊断与修复步骤,绝大多数的推送错误都能得到有效解决,确保您的Git工作流顺畅无阻。
745 1
|
开发工具 git 索引
$ git revert -m v1.0.21 6003eb5f5b455f0a3dfb74f48f63878e7 error: option `mainline' expect
$ git revert -m v1.0.21 6003eb5f5b455f0a3dfb74f48f63878e7 error: option `mainline' expect
|
编译器 网络安全 开发工具
git学习五:切换本地仓库出现的问题。修改git配置初始化。error:src refspec master does not match any。错误总结,送上几个案例
这篇文章是关于Git使用中遇到的一些问题及其解决方案的总结,包括切换本地仓库时的问题、修改Git初始化配置、以及解决"error: src refspec master does not match any"错误等。
1576 0
|
开发工具 git
深入理解Git中的git pull和git fetch命令
深入理解Git中的git pull和git fetch命令
981 0
|
8月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
2069 15