首页 > 其他分享 >git 解决冲突 —— git stash 当前修改

git 解决冲突 —— git stash 当前修改

时间:2024-11-06 12:12:02浏览次数:3  
标签:文件 git stash 修改 冲突 暂存

如果修改了本地的内容后,直接 git pull 提示合并冲突信息 error: Your local changes to the following files would be overwritten by merge. Please commit your changes or stash them before you merge.

此时可以先使用 git commitgit stash来将当前的修改保存起来,也就是对应的 git commit之前和之后的修复冲突。

在文件合并发送冲突时,需要合并一些代码,且不想将此时的修改进行提交,可以使用 git stash 来对当前的修改进行暂存,具体操作过程如下。


1、暂存当前工作目录的修改

git stash

git stash会将当前工作目录的所有修改进行暂存,并将工作目录恢复到未修改之前的状态,即最后一次提交的状态,此时再进行 git pull 操作(这个命令其实相当于先将有冲突的文件进行备份后,然后再将其revert)。

2、拉取远程代码仓内容

git pull

3、恢复暂存区的修改

git stash pop

该命令会将暂存区中的修改弹出,并合并到当前工作目中,此时会出现冲突信息以及标识和提示,需要进行手动的修改冲突文件。

可以使用文本编辑器打开冲突的文件进行修改,也可以使用 TortoiseGit 来编辑修改冲突文件。在此使用 vimdiff 打开冲突文件,并解决冲突

依次对所有冲突的文件进行修改编辑,合并其中的内容。此时相当于先将远程仓库的内容拉取到本地后,再将本地的修改添加进去。

4、标记冲突已解决

git add <fixedFile>

解决完对应文件冲突后,需要使用以上的命令来标记该文件的冲突已解决。然后可以继续进行编辑或直接提交,这种方式是没有额外的 Merge 提交信息。

5、查看当前工作目录状态

git status

查看工作目录的状态,是否有未解决的冲突文件,或未提交的修改等。

6、提交本地修改

git commit -m "Message for this change"

提交本地的修改


【总结】

  • git stash list :显示所有的暂存数据
  • git stash clear:清除所有的暂存数据,在解决冲突后默认是不会清理对应的暂存数据,可以是用该命令进行清除。
  • git stash show:显示默认的暂存做了哪些修改,默认是第一个,如果有多个,也可以在后面加上具体的索引,如显示第二个,即可以在 show 后面加上: stash@{1}
  • git stash drop stash@{$index}:会将暂存列表中索引为 index 的暂存丢弃掉
  • git stash操作只是对已被 git 追踪的文件起作用,如果有的文件还没有 Versioned 将不会起作用。

标签:文件,git,stash,修改,冲突,暂存
From: https://www.cnblogs.com/Jeffxu/p/18529701

相关文章

  • 闯关leetcode——3289. The Two Sneaky Numbers of Digitville
    大纲题目地址内容解题代码地址题目地址https://leetcode.com/problems/the-two-sneaky-numbers-of-digitville/description/内容InthetownofDigitville,therewasalistofnumberscallednumscontainingintegersfrom0ton-1.Eachnumberwassu......
  • Typora配置图片上传功能:gitee码云+Picgo
    Typora配置图片上传功能:gitee码云+Picgo下载Picgo:官方在github上可以直接下载:链接在gitee上配置自己的仓库:Picgo的配置:首先打开picgo选择图床设置里的gitee然后设置自己的路径和名称:图床配置名随便起repo就是路径branch写自己的分支,我写的是masterpa......
  • git 新建和删除分支
    查看当前分支 gitbranch查看当前所有分支 gitbranch-a切换到master分支 gitcheckoutmaster在当前分支新建分支dev gitcheckout-bdev将新建的dev分支push到远端 gitpushorigindev设置当前分支的远程分支–以后在本地dev分支pull和push的时候就不需要指......
  • git常用命令
    存储当前的工作现场gitstashsave“修bug之前的中断点”这个命令会把你当前的改动保存起来,包括工作区和暂存区的内容。这样你就可以切换到其他分支去修bug了。查看stash列表gitstashlist用这个命令可以看到所有stash的内容,方便你找到刚刚存储的那一个。恢复之前......
  • 第十天(实训学习整理资料(九)版本控制Git)
    目录一、安装配置1、下载地址2、初始配置二、初始化本地仓库1、版本库2、初始化本地仓库3、本地仓库的构成三、版本管理1、提交新文件2、修改文件3、查看历史版本4、版本回滚5、代码撤销6、删除文件四、远程仓库1、定义2、远程仓库分类3、注册并新建远程仓库......
  • 规范:项目、目录、文件、样式、事件、变量、方法、url参数、注释、git提交 命名规范及
    一、规范命名的重要性易懂、通用、规范、标准、专业性、是经验积累的体现1.1、常见命名方法序号命名方法解释1全小写2全大写3驼峰:小驼峰命名法4驼峰:大驼峰命名法5烤串命名法/脊柱命名法6下划线分隔法二、项目名采用小写字母和中划线(-)连接的方式命名,如my-project序号规......
  • 开源的 API 学习平台「GitHub 热点速览」
    前有5万颗星标的开源项目HTTPie因误操作导致Star清零(2022年),上周知名开源项目Elasticsearch也经历了Star一夜清零的事件。这些事故的原因均是管理员误将开源项目从公开状态转为私有状态所导致。为避免类似事件再次发生,GitHub已在转为私有的功能处增加了两次确认步骤,并......
  • git原理与上传
    言:git是一个软件,gitee/github是一个网站,这里有什么联系吗?我们身为一个程序员不可能不知道github,但是毕竟这是外国的网站,我们不翻墙的情况下,是无法访问的(或者就是太慢了,或者就是英语不好的同学不想使用),所以可以使用中国的平替gitee。我们一般通过它用来上传代码,但是各位可能......