今天会陆续整理一些日常开发中使用git工具所遇到的问题。方便以后查看。
1.git无法上传jar包问题
在用jar提交项目的时候如果没有使用maven 直接报jar包放在lib目录下然后提交的时候会出现无法提交的情况,可以使用以下的解决方案现在项目的根目录里面找到
打开以后
删除 .jar 或者在前面加个#注释掉保存提交后然后再提交,提交的时候如果还是找不到的话要注意一点:
红框里面打上勾,然后就可以看到jar包了 选择提交上就行了
2.Git:代码冲突常见解决方法
**如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
在发布这个配置文件的时候,会发生代码冲突:
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:**
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
git checkout HEAD file/to/restore
3. Pull is not possible because you have unmerged files.
症状:pull的时候
$ git pull
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use ‘git add/rm ’
as appropriate to mark resolution, or use ‘git commit -a’
应该是因为local文件冲突了
解决方法:
引用――
“
1.pull会使用git merge导致冲突,需要将冲突的文件resolve掉 git add -u, git commit之后才能成功pull.
2.如果想放弃本地的文件修改,可以使用git reset –hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.
注意:
git merge会形成MERGE-HEAD(FETCH-HEAD) 。git push会形成HEAD这样的引用。HEAD代表本地最近成功push后形成的引用。
”
就我的经验,有时候会莫名其妙地出现这种状况,而且Untracked files 还特别多(实际上自己可能只改了一两个文件),所以只好先保存好自己确定做出的local的修改,然后用git reset –hard FETCH_HEAD回到上次成功pull之后的点,然后再pull就没有问题了
4.You are not currently on a branch.
症状:有一次pull的时候又出现冲突,这回用“git reset –hard FETCH_HEAD”方法都不行了,出现:
$ git pull
You are not currently on a branch, so I cannot use any
‘branch..merge’ in your configuration file.
Please specify which remote branch you want to use on the command
line and try again (e.g. ‘git pull ’).
See git-pull(1) for details.
解决方法:
首先git checkout -b temp
其次git checkout master
即可恢复到master repository的状态,然后就可以pull了