使用github的fork功能

请注意,本文编写于 832 天前,最后修改于 83 天前,其中某些信息可能已经过时。

最近小幅修改了一下博客的主题,想到可以利用github的fork功能建立一个pinghsu主题的修改版仓库,于是便学习了一下fork的用法。

建立修改版主题仓库

由于修改后的主题已经上传到typecho中,并且之前fork过pinghsu的主题,现在只需在typecho的/usr/theme/pinghsu目录下建立一个本地仓库,然后再强制推送到从原主题fork过来的github远程仓库即可。

#初始化
git init
#暂存修改
git add .
#提交修改
git commit -m "commit message"
#添加远程主机
git remote add modified https://[email protected]/YOUR_USERNAME/YOUR_FORK.git
git remote add original https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
#可以查看已添加的远程主机列表
git remote -v
#强制推送修改(直接覆盖远程仓库)
git push modified --force

注意:如果使用HTTPS方式连接,必须在github.com前面加上“[email protected]”,否则只能读取远程仓库而无法修改,执行git push操作将出现fatal: HTTP request failed错误。

fork并且更新GitHub仓库
fork并且更新GitHub仓库

与原主题保持更新

建立好自己的fork主题仓库后,当原主题更新时需要同步更新自己的修改版主题仓库。

#获取原仓库更新
git fetch original
#切换到本地分支
git checkout master
#合并修改到本地分支
git merge original/master
#推送修改到远程仓库
git push modified

如果合并修改时遇到错误,解决冲突后再重新提交、推送修改即可。

同步GitHub fork
同步GitHub fork

参考资源:Git 分支 - 分支的新建与合并

文中图例来源于参考文献3

References

  1. Syncing a fork
  2. Pushing to Git returning Error Code 403 fatal: HTTP request failed
  3. 在Github和Git上fork之简单指南
  4. 本地git版本覆盖远程的方法

添加新评论