【git】解决本地仓库与远程仓库不一致问题

这篇具有很好参考价值的文章主要介绍了【git】解决本地仓库与远程仓库不一致问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

方法1:(未验证)

方法2:(验证过)

方法3:常规

1.将远程仓库代码拉取到本地作为本地的一个新的分支 temp

2.将这个temp的分支与我们的主分支对比查看有什么不同,有那些冲突

3.将新的temp分支与本地主分支合并

4.重新提交本地主分支到远程仓库

5、删除分支

方法4、未进行commit时

 1、存储当前分支下的所有改动

2、查看现有stash

3、应用指定的stash到工作区,但不删除该stash

4、扩展:

4.1释放最近一次保存的内容,并且将该次保存的内容出栈(即将栈顶出栈,释放最近一次保存的内容后将该次保存内容删除)

4.2存储指定的文件修改

4.3查看某一个压栈修改了哪几个文件

4.4查看指定存储的修改内容

4.5 删除所有缓存的stash


忘记pull代码到远程仓库,使用pull报错:error: Your local changes to the following files would be overwritten by merge:

如果不想刚刚写的代码被覆盖掉,可以这样解决:

方法1:(未验证)

如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)

git stash
git pull origin master
git stash pop

如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用addcommitpush 命令即可更新本地代码到服务器了。

方法2:(验证过)

如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull

git reset --hard
git pull origin master

注:其中origin master表示git的主分支。

方法3:常规

1.将远程仓库代码拉取到本地作为本地的一个新的分支 temp

git fetch origin master:temp 

 拓展:

  git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记。

  git branch -r 列出远程分支,例如:

  git branch -a 列出本地分支和远程分支,例如:

  

  git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。

2.将这个temp的分支与我们的主分支对比查看有什么不同,有那些冲突

git diff temp

3.将新的temp分支与本地主分支合并

git merge temp

如果有不能自动合并的冲突文件,则需要自己打开并修改。冲突文件的基本格式是<<<<<<<到=======是在当前分支合并之前的文件内容,=======到>>>>>>> 是在其它分支下修改的内容需要在这个两个版本中选择一个,然后把标记符号也要一起删除。

手动解决完冲突就可以push到远端分支了。
 

4.重新提交本地主分支到远程仓库

git push -u origin master

5、删除分支

git branch --delete temp
# 命令删除本地分支

# 这个好像也可以
git branch -D temp  //删除本地temp分支

扩展:

利用“git push origin --delete branch”命令删除远程分支;

利用“git branch --delete --remotes”命令删除追踪分支。

方法4、未进行commit时

通常我们会遇到这样的场景,自己在实现一个功能但又没做完,这时候又需要修改bug,我们不想现在就提交自己的修改增加太多无用的日志记录,但不交以后又无法回到这个状态。这时可以使用git stash命令,将本地的工作区的内容保存并回到前一次commit后的状态。

 下面的这个是一个小整理,先看下面的1-2-3-4这个部分之后,再看这个命令

# 保存当前未commit的代码
git stash

# 保存当前未commit的代码并添加备注
git stash save "备注的内容"

# 列出stash的所有记录
git stash list

# 删除stash的所有记录
git stash clear

# 应用最近一次的stash
git stash apply

# 应用最近一次的stash,随后删除该记录
git stash pop

# 删除最近的一次stash
git stash drop

 1、存储当前分支下的所有改动

git stash save -m "标识注释"

2、查看现有stash

git stash list

3、应用指定的stash到工作区,但不删除该stash

git stash apply 对应stash的名字  # 上面的标识

# 或者
 git stash apply stash@{0}


删除则是将apply换成drop

【git】解决本地仓库与远程仓库不一致问题

拓展:

默认情况下,git stash会缓存下列文件:

        添加到暂存区的修改
        Git跟踪的但并未添加到暂存区的修改

但不会缓存以下文件:

        在工作目录中新的文件
        被忽略的文件

4、扩展:

4.1释放最近一次保存的内容,并且将该次保存的内容出栈(即将栈顶出栈,释放最近一次保存的内容后将该次保存内容删除)

git stash pop

4.2存储指定的文件修改

git stash push .../.../ .../.../ .../.../

     /.../...为你想要存储的修改的文件路径,当你修改了很多文件,但是你只想存储部分修改的文件,即可在git stash push 后面添加路径,如果是多个文件,在这些文件路径之间添加空格即可

4.3查看某一个压栈修改了哪几个文件

当存储的修改过多时,你可能会忘记某次存储修改了什么文件,想要查看某次存储修改了哪些文件可以使用git stash show stash@{0}命令,stash@{0}为最近存储的修改,想要看其他的存储只需要改stash@{0}的数字,如stash@{5}.如上图我是先使用git stash list 查看存储列表,然后使用git stash show stash@{0}命令查看第一个修改,可以看到在最近的一次修改存储中我只修改了一个文件test.txt。

git stash show stash@{0} 

4.4查看指定存储的修改内容

如果想查看某次存储修改的所有内容,而不是仅仅查看修改了什么文件,例如查看最近一次存储修改的所有文件和内容,可以使用git stash show -p stash@{0}命令查看。文章来源地址https://www.toymoban.com/news/detail-418100.html

git stash show -p stash@{0}

4.5 删除所有缓存的stash

git stash clear

到了这里,关于【git】解决本地仓库与远程仓库不一致问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git】第一次将本地项目仓库推代码到空的远程仓库方法以及报错的解决方案

    完成上述三步之后,在弹出来的对话框中选择自己的项目目录, 点确定,就可以在文件管理器中看到目录下生成了一个隐藏目录 “ .git ” 右键项目目录,找到Git,根据图示找到remote 在弹出来的对话框中,输入自己远程仓库的地址 点击ok,输入验证信息,连接完毕。 点击p

    2024年02月15日
    浏览(53)
  • PyCharm环境下Git与Gitee联动:本地与远程仓库操作实战及常见问题解决方案

    写在前面 :本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 在软件开发中,版本控制是一个不可或缺的工具。随着项目的增长和团队的扩大,管理源代码的变更、协作和跟踪变得愈发重要。Git正是为了满足这些需

    2024年04月25日
    浏览(76)
  • Git本地仓库关联多个远程仓库的方法

    使用场景:本地仓库需要将代码提交到不同的远程仓库,如既想往gitLab上提交又想提交到gitee,就需要同时关联多个仓库 要将多个远程仓库添加到本地git仓库,可以使用以下命令: 其中, remote_name是你想要给远程仓库起的名字, remote_url是远程仓库的 URL。 例如,如果你想将

    2024年02月09日
    浏览(54)
  • 将本地代码上传至新建的远程仓库方法(git指令简单实现)

    第一步:win+R,在框中输入cmd,打开命令行窗口 第二步:分别输入以下代码(文字部分为代码的功能) 1. cd URL: 进入需要上传代码的文件夹 (URL要替换成文件夹路径) 2. git init: 在该文件夹中初始化Git仓库 3. git remote add origin SSH: 添加远程仓库origin (SSH要替换成仓库地址)

    2024年02月14日
    浏览(50)
  • emacs打开git仓库下多个子工程的根目录问题解决案

    如题所述,这个问题困扰我很久了,一直没搜到完整的解决方案。这次终于乘着空闲时间,研究了projectile.el源码找到了方案。 问题场景具体描述下: 我自己有一个私人git仓库,这个git仓库有多个不同的代码工程,因为只有我一个人维护提交,所以不想分出很多git仓库,都是统

    2024年02月15日
    浏览(34)
  • 【问题与方法】如何使用vscode配置远程git仓库

    码字不易,如果各位看官感觉该文章对你有所帮助,麻烦点个关注,如果有任何问题,请留言交流。如需转载,请注明出处,谢谢。 配置git,看我这一篇其实就够了。 【问题与方法】如何使用vscode配置远程git仓库_莫克_Cheney的博客-CSDN博客 目录 一、前言 二、Git的安装 三、如

    2023年04月27日
    浏览(49)
  • 【Git】Git 操作命令可视化(五):git clone、git fetch、git pull、git push、git pull --rebase、解决远程仓库与本地仓库的代码冲突

    1. git clone main是本地的main分支,o(origin)/main是表示本地拉去下来的远程的main分支 o/main分支记录了远程仓库拉取时的分支状态 远程分支有一个特别的属性,在你切换到远程分支时,git会自动进入分离 HEAD 状态(这样做是因为git不想让你在本地就能直接进行修改远程仓库代码的

    2024年02月08日
    浏览(95)
  • 删除本地文件后,使用 git pull 命令从远程仓库无法拉取到被删除文件的解决方案

    一、问题描述: 从git上拉取文件后,在本地有修改文件,导致文件爆红。然后修改的内容又不想提交,就把爆红的文件删除掉了,想重新从git上拉取,但是此时却拉取不成功了。(虽显示已更新,但并未成功)  1.git pull 2.git status查看当前的状态,也提示了有被删除的文件。 二

    2024年01月18日
    浏览(64)
  • git | 让本地分支代码与远程分支代码完全一致

    比如你本地有个 dev 分支,你想让你本地 dev 分支的代码跟远程仓库里 dev 分支的代码 完全一致 ,你可以按照下面的命令操作: 执行 git remote update 切换到 dev 分支 执行 git reset --hard origin/dev 注意,上面的操作是以远程分支为准的,也就是说相当于将本地分支代码修改成与远程

    2024年03月23日
    浏览(45)
  • 使用Git将本地文件提交到远程仓库 使用Git将本地文件提交到远程仓库

    使用Git将本地文件提交到远程仓库 现在要将本地代码推到git远程仓库保存,可以提交和拉取操作 本地项目已经创建 git远程仓库已经建(github、gitee都行) 操作如下: 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包