走同样的路,发现不同的人生
這個產生的原因,就是你本地程式碼在開發過程中,遠端程式碼更新了。
很簡單,你需要做的只是把程式碼rebase一下。
做以下操作前,先檢查一下你本地的remote的指向。如果你是fork的,應該會又一個指向你自己github的origin。你需要先加入指向原始碼的remote。這樣做:git remote add upstream *URL*其中URL是原始碼的位址。
git remote add upstream *URL*
接著取得遠端程式碼的最新HEAD指標(其實這個指令不只用來取得upstream,同時也取得了origin的):git fetch --allgit fetch --all然后确保你是在working branch上,运行git rebase upstream/master然後確保你是在working branch上,執行git rebase upstream/master
git fetch --all
git rebase upstream/master
這個時候會出現conflicts,一般是你本地與遠端同時修改了某個文件,git不知道該用哪個。用git status查看哪些文件出了问题,做一下更改就好。然后git add .,git rebase --continue。
git status
git add .
git rebase --continue
修改完之後,git push到你的origin working branch,有可能需要git push -f。特别是当你用了git rebase -i的時候,這個指令可以squash commit。
git push
git push -f
git rebase -i
不都給你提示了嗎?說分支有衝突得解決啊!
我在自己fork出來的倉庫中新建分支開發,那麼我pull 下來的程式碼是沒有衝突的,但是我的程式碼不是最新的,當我和最主要的程式碼庫比較pull request的時候,就進去不了,
這個產生的原因,就是你本地程式碼在開發過程中,遠端程式碼更新了。
很簡單,你需要做的只是把程式碼rebase一下。
做以下操作前,先檢查一下你本地的remote的指向。如果你是fork的,應該會又一個指向你自己github的origin。你需要先加入指向原始碼的remote。這樣做:
git remote add upstream *URL*
其中URL是原始碼的位址。
接著取得遠端程式碼的最新HEAD指標(其實這個指令不只用來取得upstream,同時也取得了origin的):
git fetch --all
git fetch --all
然后确保你是在working branch上,运行
git rebase upstream/master
然後確保你是在working branch上,執行git rebase upstream/master
這個時候會出現conflicts,一般是你本地與遠端同時修改了某個文件,git不知道該用哪個。用
git status
查看哪些文件出了问题,做一下更改就好。然后git add .
,git rebase --continue
。修改完之後,
git push
到你的origin working branch,有可能需要git push -f
。特别是当你用了git rebase -i
的時候,這個指令可以squash commit。不都給你提示了嗎?說分支有衝突得解決啊!
我在自己fork出來的倉庫中新建分支開發,那麼我pull 下來的程式碼是沒有衝突的,但是我的程式碼不是最新的,當我和最主要的程式碼庫比較pull request的時候,就進去不了,