例如有一个项目的master分支下有一个通用类A我建立了一个新的分支dev进行开发(本地存在2个分支,1个是master,1个是dev),第二天master分支的类A代码更新了而我如果拉取dev分支的话,A依然是旧版本的,如果拉取master分支的文件到本地dev的话,本地的master和dev就会显示合并了,请问要如何解决呢?
如果拉取master分支的文件到本地dev的话,本地的master和dev就会显示合并了,请问要如何解决呢?
当然不要把 master 拉取到 dev 了,这样本质上就是 fetch + merge 操作,所以这是必然的。
解决的办法其实有很多,我比较喜欢用 rebase,也就是先 pull master,然后在 dev 分支下 rebase master。这样做就等于把 dev 分支重新“落户”在 master 分支的最新节点(即:HEAD)上——当然,这个过程和 merge master 一样会出现冲突解决(取决于差异的情况),但是它不会合并两个分支。
rebase
pull master
rebase master
dev
master
merge master
另外这个过程应该经常做(如果 master 经常更新的话);同时如果 master 就是你们用来部署的分支,那最好不要经常更新它,否则出错了回滚起来讨厌得很。
你可以checkout其他commit中的一个文件
git checkout origin/master -- 那个文件
当然不要把 master 拉取到 dev 了,这样本质上就是 fetch + merge 操作,所以这是必然的。
解决的办法其实有很多,我比较喜欢用
rebase
,也就是先pull master
,然后在 dev 分支下rebase master
。这样做就等于把dev
分支重新“落户”在master
分支的最新节点(即:HEAD)上——当然,这个过程和merge master
一样会出现冲突解决(取决于差异的情况),但是它不会合并两个分支。另外这个过程应该经常做(如果 master 经常更新的话);同时如果 master 就是你们用来部署的分支,那最好不要经常更新它,否则出错了回滚起来讨厌得很。
你可以checkout其他commit中的一个文件