1.git fetch和git pull之间的区别
git fetch只会将本地库所关联的远程库的commit id更新至最新,fetch不会改变代码,如果想使代码更新,需要使用git merge origin/master,以上的两步可以合并为一步:git pull origin master (获取代码并合并)
git pull会将本地库更新至远程库的最新状态,获取代码并自动合并.
 
 
2.git fetch后怎么比较差异,也可以在fetch后再 Compare with Branch (in pycharm)
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
Git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
  首先从远程的origin的master主分支下载最新的版本到origin/master分支上
  然后比较本地的master分支和origin/master分支的差别
  最后进行合并
  上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
 
3.关于冲突
如果两个开发者修改了同一个文件的同一段代码,或者修改了同一个文件路径,提交并push到sourceTree时会提示冲突。需要先修正本地冲突,冲突的标志是“<<<<<<<”,"=======",">>>>>>>"之间的部分,解决的办法:
(1)第一种是逐行删掉冲突,找到protect.pbxproj,右键选择“在finder中查看”,找到protect.pbxproj文件双击打开,cmd+f搜索“<<<<<<<”,找到冲突的部分,删除“<<<<<<<”及其对应的行,删除“=======”及其对应的行,删除“>>>>>>>”及其对应的行,然后重新提交就可以了。
(2)第二种方法,右键---->解决冲突——>使用他人版本解决冲突---->确定-----重新提交
(3)第三种方法,revert冲突的本地文件,然后重新提交
 
如果文件已经提交到本地仓库,但未push到服务器,出现冲突,可以回滚本次提交。
拉取文件时如果出现文件冲突,解决办法:revert冲突的本地文件,然后重新提交。
 
(下边是我自己的总结,关于冲突的解决方案)
这里需要说明的是,冲突大概有两种情况:
(1)没有代码的文件冲突:一般像config或者工程文件冲突,我们的处理就是放弃自己的本地修改,即revert(重置)自己的config或者工程文件,再次拉取就没有什么问题了。
(2)有代码的文件冲突:这种情况就要注意了,十分建议在进行下一步操作之前,备份一份自己的代码,最少是自己动过的类,不然很有可能自己的辛苦劳动在“重置”之后不见了。这种情况我的处理方法是:备份后选择将冲突的类全部重置,然后拉取,此时就不会冲突了,再把自己写的代码拷贝到拉取后的相应的类文件里面,再提交推送就可以了。
(3)小技巧避免冲突:一般我们提交代码的顺序是:拉取-提交-推送。这个没有问题,但是有时候会只是提交了,忘了推送,过了一个小时或者一段时间,才想起来,结果推送的时候冲突了,甚至你即便刚刚提交了,马上点击推送,都可能造成冲突:因为有人可能在你操作:拉取之后,提交之前,又推送了,你的版本不是最新的版本了,可能造成冲突。所以建议大家提交代码的顺序是:拉取-提交-拉取-推送。而且,最好是提交了代码,马上拉取,马上推送,尽量避免不冲突。因为冲突给我们带来不必要的麻烦
甚至有这种方法避免操作,屡试不爽:想提交自己的代码了,先不拉取,先提交,提交好了,再拉取,再推送,即:提交-拉取-推送。这种方法基本上不会冲突,因为保证了你的代码是最新的版本,这种操作下甚至于两个人同时动一个类文件都不会冲突。总之,建议大家使用这种方法。亲测无误。
(4)提交代码只动自己的类,不要动别人的!如果,在开发过程中,两个人需要动同一个类的话,两个人商量好,谁先谁后,不要出错就好了。
 
 
 

最新文章

  1. Java 数组打印数组的 五种方法
  2. Software Testing hw2
  3. RSA加密数学原理
  4. 改变input默认选中颜色
  5. JavaWeb动态导出Excel可弹出下载
  6. springmvc web-info目录下无法引入的js文件无效
  7. eclise 部署web工程报 There are no resources that can be added or removed from the server.
  8. ubunut 12.04 (64bit) android编译环境搭建
  9. git简单使用和说明文件的书写
  10. 绘图quartz之加水印
  11. 行为树(Behavior Tree)实践(1)– 基本概念
  12. [读书笔记] 三、搭建基于Spring boot的JavaWeb项目
  13. Juint单元测试
  14. 阿里云重磅发布DMS数据库实验室 免费体验数据库引擎
  15. .Net Core+Angular6 学习 第一部分(创建web api)
  16. mysql 开发进阶篇系列 45 物理备份与恢复(xtrabackup 安装,用户权限,配置)
  17. Unity中雾效的开启
  18. C/C++中二进制与文本方式打开文件的区别
  19. Hibernate 常用jar包 分析
  20. C# 反射获取所有视图

热门文章

  1. 移动端bug之解决方式
  2. PS大神的作品,每张都是科幻大片!
  3. [SoapUI] 比较JSON Response
  4. process_进程池_2
  5. wcf服务契约代理链
  6. java jvm入门 jvm什么意思 jvm调优
  7. 对于cnn的理解
  8. linux信号量初识
  9. Spring boot 注解简单备忘
  10. Spinner功能和用法