fork 仓库后,如何将自己的代码和原仓库保持一致

fork 仓库后,源仓库代码更新时,如何将自己的代码和原仓库保持一致

原仓库又称为上游仓库,当我们在 GitHub 或者码云上 fork 出一个仓库后, 原仓库可能会有各种提交以及修改

如果原仓库更新了,此时怎样才能保证我们 fork 出来的仓库和原仓库内容一致呢

1 . 配置上游仓库源

  • 给 fork 配置一个 remote
  • 主要使用 git remote -v 查看远程状态。
git remote -v
# origin  https://github.com/xiadmin/test.git (fetch)
# origin  https://github.com/xiadmin/test.git (push)
  • 添加一个将被同步给 fork 远程的上游仓库
git remote add upstream https://github.com/new_xiadmin/test.git 
  • 再次查看状态确认是否配置成功。
git remote -v
origin  https://github.com/xiadmin/test.git (fetch)
origin  https://github.com/xiadmin/test.git (push)
upstream        https://github.com/base_xiadmin/test.git (fetch)
upstream        https://github.com/base_xiadmin/test.git (push)

 

2. 同步上游仓库代码

  • 从上游仓库 fetch 分支和提交点,传送到本地,并会被存储在一个本地分支 upstream/master
    git fetch upstream
git fetch upstream
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 14 (delta 9), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (14/14), done.
From https://github.com/base_xiadmin/test
 * [new branch] master -> upstream/master
  • 切换到本地主分支 (如果当前还是在master分支,可以不切)
    git checkout master
git checkout master
# Switched to branch 'master'
  • 把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。
    git rebase upstream/master
git rebase upstream/master
  • 这时需要更新到 GitHub 的 fork 上时,正常使用 git push origin master 即可

merge  和 rebase 都是用来合并分支的, 在不产生冲突情况下两者没有什么区别

使用merge命令合并分支,解决完冲突,执行git add .git commit -m'fix conflict'。这个时候会产生一个commit

使用rebase命令合并分支,解决完冲突,执行git add .git rebase --continue,不会产生额外的commit。这样的好处是,干净,分支上不会有无意义的解决分支的commit;
坏处,如果合并的分支中存在多个commit,需要重复处理多次冲突。
转贴的文章随笔

常见网络攻击DDoS,CC

2021-4-18 18:08:27

知道随笔

Github加载慢无法访问修改 HOST 即可解决

2021-5-3 23:23:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧