git pull时本地文件和服务器文件冲突解决方法:
在git pull代码时,出错信息如下:
error: Your local changes to 'contextTempl.java' would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
解释:这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。
可以使用git stash命令进行处理,步骤如下:
(1)先将本地修改存储起来
git stash
(2)暂存了本地修改之后,就可以git pull了。
git pull
(3)还原暂存的内容
git stash pop
git stash
我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash
命令先把当前进度保存起来,然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop
来恢复之前的进度继续开发新功能。下面来看一下git stash
命令的常见用法。
基础命令:
保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status
命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'
可以添加一些注释。
$git stash
$do some work
$git stash pop
git stash进阶:
git stash save "work in progress for foo feature"
当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,
’git stash list’ 命令可以将当前的Git栈信息打印出来:
(torch_20201223) wangMacBook-Pro:feedrec wangzhenzhu$ git stash list
stash@{0}: On model_dev: 0508切回mmaster合并代码
stash@{1}: WIP on model_dev: 7b2123b cls
stash@{2}: WIP on understand_moregpu: 76a4d9f fix class config
stash@{3}: WIP on understand1: 9633c58 cpu to gpu
stash@{4}: WIP on understand1: 94a32f7 V4: 添加ch加载样本
你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。
git stash # save uncommitted changes
# pull, edit, etc.
git stash list # list stashed changes in this git 显示保存进度的列表。也就意味着,git stash
命令可以多次执行。
git show stash@{0} # see the last stash
git stash pop # apply last stash and remove it from the list
git stash --help # for more info
git stash pop [–index] [stash_id]
git stash pop
恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。git stash pop --index
恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)git stash pop stash@{1}
恢复指定的进度到工作区。stash_id是通过git stash list
命令得到的
通过git stash pop
命令恢复进度后,会删除当前进度。
git stash apply [–index] [stash_id]
除了不删除恢复的进度之外,其余和git stash pop
命令一样。
git stash drop [stash_id]
删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。
git stash clear
删除所有存储的进度。
git 切换分支时:error: The following untracked working tree files would be overwritten by checkout
我在 git pull origin mt6580_aosp_trunk 做更新的时候。出现了一下错误:
error: The following untracked working tree files would be overwritten by merge:
vendor/huaqin/resource/3rdPart/aw700_default/system/thirdPart.mk
Please move or remove them before you can merge.
解决方法:
git clean -d -fx "vendor/huaqin/resource/3rdPart/aw700_default/system/thirdPart.mk"
其中
x -----删除忽略文件已经对git来说不识别的文件
d -----删除未被添加到git的路径中的文件
f -----强制运行
参考:
1.https://blog.youkuaiyun.com/ican87/article/details/29869567