如何把别人的项目修改后,提交到自己的 github,并同步更新

如果你在 github 上 clone 了别人的项目,在本地做了一些修改后,直接git push肯定会遇到问题。因为你提交的远程仓库是别人的仓库。

如何把 clone 后修改的代码提交到自己的 github 上呢?

方法一:

  • 修改 .git/config 这个文件,把 url 换成自己新建的仓库地址

方法二:

  • 先 fork 别人的代码,在你的 github 上就出现了同名的项目,这个项目就属于你自己了,然后把这个项目 git clone 到本地,改改改,然后 git push 即可

你 fork 了别人的项目之后,他更新了代码,你 fork 的项目如何与原项目同步更新?

方法一:(最简单的方法)

  • 远程仓库执行 fork 操作,得到自己的 url

  • git clone url 到本地

  • 配置远程分支:git remote add upstream [fork项目的地址]

  • 运行 git remote -v,会出现:

    origin https://gitee.com/phpzhi/testPro.git (fetch)
    origin https://gitee.com/phpzhi/testPro.git (push)
    upstream https://gitee.com/opan/testPro.git (fetch)
    upstream https://gitee.com/opan/testPro.git (push)

  • 执行 git fetch upstream 拉取远程仓库的代码

  • 合并拉取的代码 git merge upstream/master

  • 上传 git push

方法二:让原项目的作者把你加入该项目的成员,即可对该项目进行各种骚操作(废话。。)

方法三:

  • 首先 git clone 原项目到本地
  • 在 github 上 fork 该项目,这时有了自己的仓库地址 url
  • 执行 git remote add name url,name 是你的仓库别名,可以随便改,但不要跟已有的冲突
  • 最后,通过 git fetch origin 来获取原项目的最新代码
  • git merge -m <msg> 大功告成!
    (这里如果产生了冲突,就手动解决,完了之后执行 git add .git commit -m msg,最后git push name

方法四:通过创建新的分支,进行合并操作(操作有点多)

  • fork 原项目到自己的 git 上,拥有了自己 url
  • 执行 git clone url
  • 创建分支,git branch branchname
  • 切换分支,git checkout branchname
  • 随便修修改改,以后就在这个分支开发了,写完代码后,将修改提交到自己的 git 上,第1次推送的时候会有提示git push --set-upstream origin branchname,照着打就行
  • 当原项目有更新后,我们可以找到,在码云项目名称(forked from xxx / xxx)后面那里有一个强制拉取代码按钮。我们先切换到 master 分支,再点它,就会同步原项目的修改,放心,你的分支内容不会受到影响。
    (至于 github 的,点击 Pull RequestNew Pull Request,下拉框里将原项目->自己的项目,点击 compare across forks,按照提示一通操作完成后,点击绿色的Merge Pull Request,OK了)
  • 这时候在本地,切换到 master 分支,执行 git pull,将这些修改同步下来
  • 切换到 branchname 分支,执行 git merge master -m msg ,将这些修改合并到自己的开发项目中,ok,开心了不?
  • 大功告成!

扩展:如何把自己对项目的改动,提交到 fork 的那个原项目呢?

  在你 fork 的项目页面上,有一个按钮叫 Pull Request,点了它就会把你的修改发送到对方的项目里,最终由原项目主人决定是否接受你的修改~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章