当前位置:   article > 正文

Git 进行 fork 后如何与原仓库同步_git fork 本地仓库同步

git fork 本地仓库同步

场景:

    在git上自己 fork 下来的代码 pull 到本地后进行了修改,如果原项目upstream本身有更新,那么我们需要同步更新自己fork的代码。打开Git Bash进行操作。

示例:

  • 在你 fork 之后, xiaolai 的仓库又更新了;
  • 但 git 不会自动帮你把 xiaolai 的仓库 同步给你 fork 后的仓库;
  • 导致你提交 pull request 时的版本和 xiaolai 的版本不一致。

这个问题,用显得更“专业点”的说法,叫做:Github进行fork后如何与原仓库同步。那到底怎么做呢?

最省事的办法可能是:

  • 在你fork的仓库setting页翻到最下方,然后delete这个仓库;
  • 然后重新fork xiaolai 的仓库,并 git clone 到你的本地。

       有时候,你需要用到这个省事的办法,比如 xiaolai 的仓库再次整理了 commit 。但在更多情况下,删掉自己fork的库,应该是你的最后选择,而不应该是首选。

      和很多人一起向 xiaolai 提交 pull request,这实在是一个反复练习 merge (中文说法:合并,或版本合并)的机会。毫不夸张地讲,版本管理是软件工程极其重要的规范,也是极其基础的必备技能。而 merge 则是版本管理中最必须也最常用的场景。

merge前的设定:

(1)当已经在 git fork 过 xiaolai 的原项目后,再forkgit clone fork的项目到本地,命令是:

          git clone xxxx(自己的项目地址)

(2)进入到本地仓库的目录。下面所有操作,如无特别说明,都是在你的本地仓库的目录下操作。执行命令 git remote -v 查看你的远程仓库的路径。

        

注:

      ① git remote 不带参数,列出已经存在的远程分支

  $ git remote

      ② git remote -v | --verbose 列出详细信息,在每一个名字后面列出其远程url。此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址:

        如果只有上面2行,说明你未设置 upstream (中文叫:上游代码库,也可以叫其他名字)。一般情况下,设置好一次 upstream 后就无需重复设置。

(3)执行命令 git remote add upstream https://github.com/selfteaching/the-craft-of-selfteaching.git(xiaolai的仓库地址  xiaolai 的仓库设置为你的 upstream 。这个命令执行后,没有任何返回信息;所以再次执行命令 git remote -v 检查是否成功。

(4)提交本地更新。执行命令 git status 检查本地是否有未提交的修改。如果有,则把你本地的有效修改,先从本地仓库推送到你的git仓库。最后再执行一次 git status 检查本地已无未提交的修改。

    git add -A 或者 git add filename
    git commit -m "your note"
    git push origin master
    git status

注1:这一步作为新手,建议严格执行,是为了避免大量无效修改或文本冲突带来的更复杂局面。

注2:如果你已经在fork后的仓库提交了大量对 xiaolai 的仓库并没有价值的修改,那么想要pull request,还是重新回到本文最初的“最省事办法”吧。

merge 的关键命令:

(5)执行命令 git fetch upstream 抓取 xiaolai 原仓库的更新:

(6)执行命令 git checkout master 切换到 master 分支:

(7)执行命令 git merge upstream/master 合并远程的master分支:

(8)执行命令 git push 把本地仓库向github仓库(你fork到自己名下的仓库)推送修改。

        如果担心自己不小心改了哪里,可以再次执行命令 git status 检查哪些文件有变化。这个操作仅是检查,不会改变任何状态,放心用。

image

 

 

 

https://blog.csdn.net/github_37157365/article/details/79971632

https://www.cnblogs.com/byronliu029/p/9378326.html

https://github.com/selfteaching/the-craft-of-selfteaching/issues/67

https://www.jianshu.com/p/83be892368d8

https://blog.csdn.net/m0_38133212/article/details/89511229

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/846221
推荐阅读
相关标签
  

闽ICP备14008679号