如何把別人的項目修改後,提交到自己的 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,點了它就會把你的修改發送到對方的項目裏,最終由原項目主人決定是否接受你的修改~

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