• eclipse egit 更新未提交文件的方法


    问题

      以前一直在项目中使用SVN..感觉真的很好用,不管是切分支,合并分支,编辑冲突,还是更新代码什么的都感觉很方便...现在新公司项目里使用git...我自己虽然用过,但是多人合作一直没用过.所以遇到了一个很蛋疼的问题百度一直没有答案,今天偶然发现了一个解决办法.

      项目里肯定有很多配置文件,经常会有一些同学不小心上传自己的配置,我本地也修改过这个配置并且不打算提交,但是别人提交的新的版本里有这个文件,然后整个版本我都不能pull下来,因为会提示你当前的修改会被覆盖.

    解决办法

    比如我有这么一个文件

    eclipse里修改,但是不提交.

    然后我在别的仓库里修改并提交远程

    这个时候pull代码会报错(与资源库同步视图里merge操作).

    因为这个文件没提交.reset我肯定是不想做的,因为我的修改就没了.commit我也不想做,因为我个人配置不想上传到服务器的版本中去.

    所以应该选stash就是暂存当前这个文件.

    这个时候eclipse里的那个java文件会被还原,同时会多一个stash的记录,保存着前面被还原的文件.

    因为这个时候文件已经被还原了,以及和以前的历史版本一致,所以可以pull了.我们执行pull

    更新完以后..我们可以再把刚才stash的文件pop出来.

    在之前那个stash@{0}上面右键 apply stashed changes

    会提示冲突.很正常....

    也有可能不会有冲突..有冲突的话要自己去解决.没有冲突的话那就没啥问题了.

    在TestGit上右键mergeTool就可以编辑冲突了..

    左边文件是别人那里提交的,右边是我stash的.

    编辑好以后右键TestGit选择mark as merged就OK了

    这个时候就成功更新了别人的代码,并且没有提交自己的修改了...

    感想

    1.这点我感觉还是SVN好用...可以选择直接不更新这个配置文件,使用自己的本地配置,同时更新版本中的其他文件(也有可能是我GIT用的不熟没发现这个功能)

    2.合并的时候感觉没SVN好用.SVN可以再eclipse里列出服务器版本,我的版本,合并后的版本,我再egit里没法操作,要用外部的工具,比如beyondcompare.但是这样的话代码着色功能就没了.很蛋疼.

    3.stash好像蛮好用,可以缓存一堆文件,还可以有N个stash要哪个就弹出哪个...这样真的挺好的,我可以stash N个不同的配置...就是不知道这样是不是正确用法...

  • 相关阅读:
    mysql 应用 持续更新2 转载
    sql server 用触发器记录增删改操作(转载)
    mysql 应用 持续更新
    oracle 常用指令(持续更新中....)
    转载-Oracle 数据库导入导出 dmp文件
    Web Service 服务无法连接Oracle数据库
    关于jquery获取服务器端xml数据
    Navicat Premium 自动备份mysql和sqlserver
    浅谈如何更好的打开和关闭ADO.NET连接池
    JSON 的优点
  • 原文地址:https://www.cnblogs.com/abcwt112/p/6803446.html
Copyright © 2020-2023  润新知