2013-07-26 44 views
0

我對git仍然有些困惑,雖然我以前曾經使用過某些版本控制系統。我的問題是關於分支。我的理解是,當我想嘗試開發一些功能並且我不確定結果時,我會在分支中執行此操作。爲了達到這個目的,我會創建分支「srbac」(正如我所做的)。然後我檢查了srbac,所以這是我的工作副本。我做了一些改變。如何實現我在當前分支中的更改不會在所有分支之間傳播?

現在我的同事發給我一個拉請求,所以我創建了一個名爲「john」的分支,並將他的更改拖到這個分支。我做了這個分支的工作副本,並試圖把它拉到我的本地存儲庫。但是這沒有奏效,因爲SourceTree應用程序(我使用那個用於git)說,我的本地存儲庫有一些未提交的更改。但是這些來自「srbac」分支!這些不應該在「約翰」分支,也不應該在「主人」(那裏也有)。

現在消息(git status)表示我可以「隱藏」這些更改。所以我做了。在「約翰」分支檢查出來。他們現在從每個分支中消失。

我錯過了什麼?謝謝您的幫助。

回答

0

更改分支時,未提交的更改隨您一起移動。如果這不是你想要的,你必須將它們提交到某個地方。藏匿處是這個特殊的地方/分支,您可以從每個分支承諾(但與每個真實分支分開)。所以如果你存儲你的更改,它們不再處於當前分支中,並且在更改分支時不會顯示。他們完全處於隱藏狀態。讓他們回來,移到你想要的分支,然後執行git stash pop,這些更改將出現在你的工作目錄中(不是作爲提交,而是作爲已更改的文件),並且存儲中的條目將被刪除。

n.b. stash apply獲取更改並且不會刪除存儲條目。

相關問題