2013-02-28 50 views
1

我試圖第一次使用git(在git上進行在線課程後),因爲我在rails中開發應用程序。我檢查了一個分支來開發一個功能,但是當事情開始出錯的時候,我想在檢查該分支之前先查看應用程序來重新思考,但是我還沒有準備好放棄該分支。因此,我查看了主分支。然而,當我在主分支上運行應用程序時,我在功能分支中所做的一切仍然存在。第一次嘗試時,我沒有添加或提交功能分支中的任何文件。然後當我看到主人的變化時,我回到了功能分支,並做了'git add'。希望在切換回主控之前讓它們保留在功能分支中。同樣的結果。當我在主分支上時,我在功能分支中添加的代碼在應用程序中運行。當我在master分支上執行git status時,它會列出所有Changes to be committed:,這與我在功能分支上執行git狀態時所說的相同。從分支上運行的主代碼

我對git的理解(或許是有缺陷的)是如果我檢查出沒有合併我在分支上開發的代碼的master,那麼分支上的代碼就不會在master上運行。你能告訴我我做錯了什麼嗎?

回答

2

您需要實際將更改提交給分支機構,以便在切換到主機之前將它們保留在那裏。

未提交的更改會跟着你從樹枝間(儘管你如果他們在一個分支的更改發生衝突會得到一個錯誤)

旁註:如果你還沒有準備好提交你的代碼分支,但你想保留它,你可以運行git stash,它會將所有未提交的更改壓入堆棧。然後,稍後,你可以說git stash pop讓他們回來。不過要注意的是,你的存儲棧也跟着你,所以不要跳到錯誤的分支上。

+1

謝謝,我會接受你的答案,當SO讓我。 – BrainLikeADullPencil 2013-02-28 18:28:53