搜尋

首頁  >  問答  >  主體

開源專案 git pull 程式碼衝突的解決方式?

假設我正在使用一個開源項目,為了時刻保持根官方github保持同步,我用git clone項目到本地並進行二次開發,我的大部分二次開發是不會和官方的核心文件產生衝突的,但是個別文件還是會衝突。 。

例如經過一段時間我本機做了一些修改,這是官方倉庫也做了一些修改,並發布了一個小版本

這時我想更新官方最新 使用 git pull 的時候會提示衝突 那麼問題來了

開源專案二次開發 想隨時git pull取得最新版本,並保留本機修改的方法是怎樣的?

我現在的做法

當git pull取得官方最新更新的時候如果衝突

使用 git stash 快取本機的變更。
然後 git pull 下來官方最新的版本
然後 git stash pop 把本機的改動merge到程式碼中,手動解決衝突

我簡單測試了一下並沒發現什麼問題,因為我並不需要push代碼到官方倉庫所以我一般也不會add,但是經歷過這次以後,我又做了一些修改,官方又更新了一些東西

使用git pull還是不行 我要本機git add . 一下 然後重複以上stash 步驟來保持更新和合併衝突,

不知道我這麼做是否正確,或有什麼更好的做法麼?

仅有的幸福仅有的幸福2790 天前659

全部回覆(2)我來回復

  • 阿神

    阿神2017-05-02 09:52:07

    不用stash吧,先把改動的commit,然後再pull解決衝突就可以了。

    回覆
    0
  • 怪我咯

    怪我咯2017-05-02 09:52:07

    其實如果你本地已經進行了提交(git commit),在拉取遠端的改動前,並不需要先git stash,直接git pull或者先git fetchgit merge就可以了。
    当然,如果你在拉取之前,本地并没有提交(git commit)的话,你的上述操作也是没有问题的,但是,你也可以先将本地的修改做完然后提交了再拉取(git pull)。
    其实,你的git stash应用的场合不太合适,git stash一般用于你在某一分支工作做了一半(还不值得做一次提交或者压根还不想提交)时,你突然想切换到其他分支做一点儿别的事。这时,用git stash就再合適不過了。

    回覆
    0
  • 取消回覆