- 在测试机器有一个分支master,是从git库里面clone下来的。
- 现在测试机的分支里面有两个目录会不定时的更新前端文件。当分支的非前端文件目录更新后希望master代码同步更新到测试机分支。
- 使用git fetch命令拉取了最新的master分支代码到测试机,但是测试机的代码库没有任何反应,需要自己手动merge一次才能生效吗?如何操作呢?
2 回答1.3k 阅读✓ 已解决
2 回答862 阅读✓ 已解决
1 回答674 阅读✓ 已解决
1 回答833 阅读
1 回答645 阅读
307 阅读
这里讲解一下git fetch的原理吧。
git fetch是将代码从远程仓库读取过来并且覆盖本地仓库的内容。
git分为三个部分
workspace
,index
和repository
workspace
是指你的工作区域,一般是IDE中的代码index
是指本地的缓存,通过add操作将文件的更新添加至indexrepository
是指本地git仓库,这个仓库中的代码是通过commit添加的,push到远程仓库的代码也是这个位置的代码所以git fetch更新的是repository部分的代码,workspace和index暂时还没有更新。如果想要看到最新的代码,只需要在master(或者其它相应的)分支上执行git merge指令,解决掉冲突再提交一遍就可以了。
git也提供了快捷指令git pull,可以直接用远程仓库的内容覆盖workspace的内容。但是不推荐这个指令,因为很可能会覆盖掉你尚未提交的更新。