Git中从远程的分支获取最新的版本到本地方式如下,
如何更新下载到代码到本地,请参阅ice的博客基于Github参与eoe的开源项目指南
方式一
1. 查看远程仓库

1
2
3
4
5
6
$ git remote -v
eoecn https://github.com/eoecn/android-app.git (fetch)
eoecn https://github.com/eoecn/android-app.git (push)
origin https://github.com/com360/android-app.git (fetch)
origin https://github.com/com360/android-app.git (push)
su@SUCHANGLI /e/eoe_client/android-app (master)

从上面的结果可以看出,远程仓库有两个,一个是eoecn,一个是origin
2 ,从远程获取最新版本到本地

1
2
3
4
$ git fetch origin master
From https://github.com/com360/android-app
* branch master -> FETCH_HEAD
su@SUCHANGLI /e/eoe_client/android-app (master)

$ git fetch origin master 这句的意思是:从远程的origin仓库的master分支下载代码到本地的origin master
3. 比较本地的仓库和远程参考的区别

1
2
$ git log -p master.. origin/master
su@SUCHANGLI /e/eoe_client/android-app (master)

因为我的本地仓库和远程仓库代码相同所以没有其他任何信息
4. 把远程下载下来的代码合并到本地仓库,远程的和本地的合并

1
2
3
$ git merge origin/master
Already up-to-date.
su@SUCHANGLI /e/eoe_client/android-app (master)

我的本地参考代码和远程代码相同,所以是Already up-to-date

以上的方式有点不好理解,大家可以使用下面的方式,并且很安全
方式二
1.查看远程分支,和上面的第一步相同
2. 从远程获取最新版本到本地

1
2
3
4
$ git fetch origin master:temp
From https://github.com/com360/android-app
* [new branch] master -> temp
su@SUCHANGLI /e/eoe_client/android-app (master)

git fetch origin master:temp 这句命令的意思是:从远程的origin仓库的master分支下载到本地并新建一个分支temp

  1. 比较本地的仓库和远程参考的区别
1
2
$ git diff temp
su@SUCHANGLI /e/eoe_client/android-app (master)

命令的意思是:比较master分支和temp分支的不同
由于我的没有区别就没有显示其他信息
4. 合并temp分支到master分支

1
2
3
$ git merge temp
Already up-to-date.
su@SUCHANGLI /e/eoe_client/android-app (master)

由于没有区别,所以显示Already up-to-date.
如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,

在发布这个配置文件的时候,会发生代码冲突:

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

5.如果不想要temp分支了,可以删除此分支

1
2
3
$ git branch -d temp
Deleted branch temp (was d6d48cc).
su@SUCHANGLI /e/eoe_client/android-app (master)

如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D <分支名>

总结:方式二更好理解,更安全,对于pull也可以更新代码到本地,相当于fetch+merge,多人写作的话不够安全。
如有错误请指正

最新文章

  1. 微软unity 注入mvc
  2. hibernate----1-N--jointable(人与地址)
  3. 为mongodb加用户授权并使用RockMongo进行管理
  4. 重新想象 Windows 8 Store Apps (61) - 通信: http, oauth
  5. [转载]iframe跨域
  6. Windows vista以上模拟Alt Ctrl Delete
  7. block 解析 - 内存
  8. Winform使用的一些常识
  9. CentOS7+mysql5.6配置主从
  10. 第三届“百越杯”福建省高校网络空间安全大赛_Do you know upload?
  11. cocos2d-x 游戏开发之有限状态机(FSM) (二)
  12. 【alpha阶段】第八次Scrum Meeting
  13. Vue 部署IIS 单页面刷新报404问题
  14. 2.7 while 、for 循环控制语句
  15. Python Redis 常用操作
  16. dispatchers 设置
  17. P2502 [HAOI2006]旅行 并查集
  18. java热加载之springloaded
  19. 使用postman做接口测试(一)
  20. R学习笔记 ---- 系列文章

热门文章

  1. return 与 exit() 的区别
  2. Hadoop安装过程
  3. Makefile之大型工程项目子目录Makefile的一种通用写法【转】
  4. [ Openstack ] Openstack-Mitaka 高可用之 memcache
  5. 关于ros stage与navigation仿真总结5月16号
  6. mvc路由问题
  7. xampp 通过pear安装PHP_UML
  8. PHP abstract与interface之间的区别
  9. 51nod 最长单增子序列(动态规划)
  10. Fruit Feast(暴力)(动态规划)