Git/Github进行fork后如何与原仓库同步?
0 1056
0
该提问暂无详细描述
收藏
2021-04-25 13:54 更新 天明 •  1290
共 1 个回答
高赞 时间
0
# 查看远程仓库路径. 默认的远程仓库叫 origin
git remote -v

# 添加远程仓库关联,可以多加几个(不过没必要), 其中 offical/offical1/offical2 是自己起的远程仓库名称
git remote add offical git@github.com:wechaty/bot5.club.git
git remote add offical1 https://github.com.cnpmjs.org/wechaty/bot5.club.git
git remote add offical2 https://hub.fastgit.org/wechaty/bot5.club.git

# 看看加上了没
git remote -v
# 对于不想要了的, 删掉和远程仓库的关联
git remote rm offical

# 获取远程更新
git fetch offical2 

# 进行 merge, 指定远程仓库和分支
# == 执行了下面的命令之后,本地仓库就处于合并中的状态, 直到 commit 指令成功执行
git merge offical2/master
# 吊起merge工具, 我配置的是 kdiff3
git mergetool
# 对于二进制文件, 如图片,只能二选一(如果感觉可惜, 考虑 stash 暂存一下)
git checkout xxx.jpeg --ours  # xxx.jpeg 文件使用自己的本地版本
git checkout xxx.jpeg --theirs  # xxx.jpeg 文件使用远程仓库的版本
# 本地仓库提交合并
git commit
# == 合并状态到此结束

# 后续该干嘛干嘛
# 例如,推送本地的同步/合并结果到自己 fork 的仓库
git push

# 如果 origin 对应的地址是镜像地址, push前需要更改为原始地址
git remote rm origin
git remote add origin git@github.com:chuangfengwang/bot5.club.git
git push --set-upstream origin master

# 把内容和变更记录推送到远程仓库 offical2 里(没有推送tag)
git push -u offical2 --all
# 把所有 tag 推送到远程仓库 offical2 里
git push -u offical2 --tags

github 上,已经 merged 的 pull request, 不可以继续提交了; 但是在 pr 提交后, merged 之前, 继续向 pr 的来源分支提交代码, 就会把后续提交的修改自动附加到这个 pr 上.

https://github.com.cnpmjs.orghttps://hub.fastgit.org 是 github 的两个镜像站,可以加快下载速度,但不能向这两个地址推送代码

参考: Github进行fork后如何与原仓库同步:重新fork很省事,但不如反复练习版本合并

收藏
2021-04-25 13:52 更新 天明 •  1290