目录
方法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
如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用add
,commit
,push
命令即可更新本地代码到服务器了。
方法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 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。文章来源:https://www.toymoban.com/news/detail-418100.html
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模板网!