2017-09-11 65 views
0

我是git的新手,請耐心等待。我在本地機器上有一個rails應用程序,我正在試驗並定期推送到主分支。目前它運作良好,但我落後了,現在我在主人背後承諾了很多。正確使用git pull

$ git branch 
* master 


$ git status 
On branch master 
Your branch is behind 'origin/master' by 27 commits, and can be fast-forwarded. 
    (use "git pull" to update your local branch) 
nothing to commit, working tree clean 

然而,當我使用git pull然後啓動軌道,我的應用程序中斷了預編譯器錯誤。所以我在使用git pull之前被迫使用git --reset返回到本地提交。

解決此問題並與主分支上的最新更改合併的正確方法是什麼?在這種情況下會用git --rebase嗎?

+0

我認爲這27個提交中的一個打破了應用程序。這些來自哪裏? –

+0

'git pull -r'會將這些變化拉到你本地的頂部。就預編譯而言,你能發佈錯誤嗎?通常,這些都與資產中的語法錯誤有關。您可以查看https://stackoverflow.com/a/8259998/2048680 –

回答

0

嘗試

git stash 
git pull origin master 

,一旦更新,git的藏匿處申請重新申請本地更改

+0

當我嘗試此操作時,我得到5個合併衝突 –

+0

您需要通過選擇來解決衝突您想保留哪個版本的代碼/文件。 – veggirice

+0

還有這個:https://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git – veggirice

0

既然沒有人說這顯然尚未:你問

什麼是正確的方式解決此問題並與主分支上的最新更改合併?

當你做git pull合併遠程修改到你的當前分支。無論你選擇做一個rebase而不是合併(根據你的其他問題),都是一個單獨的問題,但默認行爲是將兩組更改(本地和遠程)組合在一起。

更確切地說,默認情況下,git pull會執行提取操作,然後進行合併。確切的合併操作取決於配置和命令行選項,但在一個典型的配置,其中origin/mastermaster上游,說

git pull 

將合併origin/mastermaster

那麼爲什麼錯誤?

一種可能性是存在合併衝突。如果發生這種情況,git會告訴你。如果在這種情況下表示git status,它會告訴您正在進行合併,它將指示哪些路徑(文件)需要衝突解決。

另一種可能性是更改不衝突(因爲它們不影響同一文件的同一區域),但仍然無法一起正常工作。你只需要調試。