2013-10-11 97 views
0

我有一個非常簡單的存儲庫。我用SourceTree做了兩次提交。然後創建了一個分支working。我在working上做了一個提交。的Git分支,無法檢出主

Situation

我現在想將其合併回主,讓我有一個線性的歷史。我是git的新手,現在確定我做錯了什麼。在這一點上我無法檢出高手,因爲我得到的錯誤,即使我有沒有工作副本的修改

git -c diff.mnemonicprefix=false -c core.quotepath=false checkout master 
error: Your local changes to the following files would be overwritten by checkout: 
    web/index.html 
    web/js.js 
Please, commit your changes or stash them before you can switch branches. 
Aborting 

在主分支/修改,點擊mergerebase右鍵點擊沒有反應。我做錯了什麼?什麼是我應該使用的「標準」工作流程?

編輯:我想我應該做的是checkout master; merge working,但我不知道爲什麼我無法檢出的主人。編輯2:看着working分支/提交(它確實承諾,不只是上演),我看到它在錯誤中抱怨的確切文件。

EDIT3:我看到一個錯誤做git status時:

$ git status 
web/index.html: Permission denied 
web/js.js: Permission denied 
# On branch working 
nothing to commit, working directory clean 
+0

不同的Git與你的說法,你有沒有工作代碼更改。如果你相信自己比你多的Git,然後嘗試做'working'復位 - 硬。 – Makoto

+0

您可以通過我沒有工作副本的變化對號看。除非'working'中有變化的事實被視爲工作副本更改。 – mvd

回答

-1

我不確定發生了什麼事。我有一臺運行的服務器正在服務這些文件,並讓它們在Notepad ++中打開。關閉Web服務器後在SourceTree圖表刷新,顯示有被刪除這兩個文件的提交的更改。我不確定他們爲什麼被刪除。扔掉這些變化後,我可以結算主人併合並工作。

0

什麼錯誤消息指出的是,你目前有上演被COMMITED上working如果您切換您的分支,將失去的變化到master

  • 如果我不想提交更改,那麼我會改爲stash。這創建了一堆變更集,我可以隨時返回並隨時申請。

  • 如果我想提交我的更改,然後合併分支到一起,那麼這是一個非常簡單的(典型的)提交,然後我可以切換到master並執行git merge working

  • 如果我真的不認爲我做了任何更改,那麼我會做一個reset --hard HEAD,並確保沒有變化的階段。