假設我正在使用一個開源項目,為了時刻保持根官方github保持同步,我用git clone項目到本地並進行二次開發,我的大部分二次開發是不會和官方的核心文件產生衝突的,但是個別文件還是會衝突。 。
例如經過一段時間我本機做了一些修改,這是官方倉庫也做了一些修改,並發布了一個小版本
這時我想更新官方最新 使用 git pull 的時候會提示衝突 那麼問題來了
開源專案二次開發 想隨時git pull取得最新版本,並保留本機修改的方法是怎樣的?
當git pull取得官方最新更新的時候如果衝突
使用 git stash 快取本機的變更。
然後 git pull 下來官方最新的版本
然後 git stash pop 把本機的改動merge到程式碼中,手動解決衝突
我簡單測試了一下並沒發現什麼問題,因為我並不需要push代碼到官方倉庫所以我一般也不會add,但是經歷過這次以後,我又做了一些修改,官方又更新了一些東西
使用git pull還是不行 我要本機git add . 一下 然後重複以上stash 步驟來保持更新和合併衝突,
不知道我這麼做是否正確,或有什麼更好的做法麼?
不用stash吧,先把改動的commit,然後再pull解決衝突就可以了。
其實如果你本地已經進行了提交(git commit),在拉取遠端的改動前,並不需要先
git stash
,直接git pull
或者先git fetch
再git merge
就可以了。当然,如果你在拉取之前,本地并没有提交(git commit)的话,你的上述操作也是没有问题的,但是,你也可以先将本地的修改做完然后提交了再拉取(git pull)。
其实,你的
git stash
应用的场合不太合适,git stash
一般用于你在某一分支工作做了一半(还不值得做一次提交或者压根还不想提交)时,你突然想切换到其他分支做一点儿别的事。这时,用git stash
就再合適不過了。