赞
踩
目录
1.将远程仓库代码拉取到本地作为本地的一个新的分支 temp
2.将这个temp的分支与我们的主分支对比查看有什么不同,有那些冲突
4.1释放最近一次保存的内容,并且将该次保存的内容出栈(即将栈顶出栈,释放最近一次保存的内容后将该次保存内容删除)
忘记pull代码到远程仓库,使用pull报错:
error: Your local changes to the following files would be overwritten by merge:
如果不想刚刚写的代码被覆盖掉,可以这样解决:
如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
- git stash
- git pull origin master
- git stash pop
如此一来,服务器上的代码更新到了本地,而且你本地修改的代码也没有被覆盖,之后使用add
,commit
,push
命令即可更新本地代码到服务器了。
如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull
:
- git reset --hard
- git pull origin master
注:其中origin master表示git的主分支。
git fetch origin master:temp
拓展:
git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记。
git branch -r 列出远程分支,例如:
git branch -a 列出本地分支和远程分支,例如:
git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。
git diff temp
git merge temp
如果有不能自动合并的冲突文件,则需要自己打开并修改。冲突文件的基本格式是<<<<<<<到=======是在当前分支合并之前的文件内容,=======到>>>>>>> 是在其它分支下修改的内容需要在这个两个版本中选择一个,然后把标记符号也要一起删除。
手动解决完冲突就可以push到远端分支了。
git push -u origin master
- git branch --delete temp
- # 命令删除本地分支
-
- # 这个好像也可以
- git branch -D temp //删除本地temp分支
扩展:
利用“git push origin --delete branch”命令删除远程分支;
利用“git branch --delete --remotes”命令删除追踪分支。
通常我们会遇到这样的场景,自己在实现一个功能但又没做完,这时候又需要修改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
-
- git stash save -m "标识注释"
-
git stash list
- git stash apply 对应stash的名字 # 上面的标识
-
- # 或者
- git stash apply stash@{0}
-
-
- 删除则是将apply换成drop
拓展:
默认情况下,git stash会缓存下列文件:
添加到暂存区的修改
Git跟踪的但并未添加到暂存区的修改
但不会缓存以下文件:在工作目录中新的文件
被忽略的文件
git stash pop
git stash push .../.../ .../.../ .../.../
/.../...为你想要存储的修改的文件路径,当你修改了很多文件,但是你只想存储部分修改的文件,即可在git stash push 后面添加路径,如果是多个文件,在这些文件路径之间添加空格即可
当存储的修改过多时,你可能会忘记某次存储修改了什么文件,想要查看某次存储修改了哪些文件可以使用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}
如果想查看某次存储修改的所有内容,而不是仅仅查看修改了什么文件,例如查看最近一次存储修改的所有文件和内容,可以使用git stash show -p stash@{0}命令查看。
git stash show -p stash@{0}
git stash clear
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。