2016-02-25 64 views
6

我使用git作爲源代碼存儲庫,當前代碼處於雜亂狀態,並且想切換到其他分支以進行一些工作。問題在於我不想只做一半的工作,所以我怎麼能夠在以後回到這一點。切換分支沒有提交工作代碼

回答

2

您有兩個選項可以執行此操作。

選項1: - 爲工作代碼創建補丁,並檢出所有工作代碼然後切換到另一個分支。

選項2: - 您可以隱藏您的分支。點擊這裏獲取更多詳細信息示例:http://www.gitguys.com/topics/temporarily-stashing-your-work/

+1

鏈接對我來說似乎已經死了。另一個有趣的鏈接:https://www.atlassian.com/git/tutorials/git-stash –

0

難道你不能只是創建另一個目錄,並克隆到所需的分支?

如果您將運行時配置爲使用特定目錄,請將其設置爲您正在使用的分支克隆目錄的鏈接。這樣,您可以在本地擁有多個分支,而無需對本地資源進行大量重新組合(只需一個簡單腳本即可重新鏈接運行時/服務器使用的目錄)。

1

你可以隱藏你的分支。這裏有一個例子: http://www.gitguys.com/topics/temporarily-stashing-your-work/

+1

請提供一些代碼。鏈接應該只是除了回答 –

+1

也許更可靠的來源,這將是https://git-scm.com/docs/git-stash – l0lander

+0

鏈接似乎死了我。另一個關於存儲的有趣鏈接:https://www.atlassian.com/git/tutorials/git-stash –

5

您可以使用git stash爲「拋棄」了一段時間的變化,然後,當你想恢復先前的修改使用git stash pop *

你也可以(更安全)承諾您的WIP(工作進行中)工作,切換到另一個分支,完成您的工作,切換回原始分支,完成原始工作,然後將您的承諾匯入到一個分支中。
請記住,提交併不等於推送,所以你可以在本地有一個混亂的歷史,但一旦重新組合和壓扁,你(和你的團隊)只會看到乾淨的版本。

*注意,因爲如果你藏了不止一次,git pop只會彈出最後一個藏匿處。在這種情況下,您需要使用git pop [email protected]{<revision>}

2

如果你有更新的git(> = ver.2.5.0),你可以使用git worktree

通過以下命令,您可以檢出要使用的臨時工作樹。

混帳worktree添加sourcetree_dir branch_name

完成了這個分支你的工作後,您可以使用以下命令將其刪除。

混帳worktree修剪

0

使用命令行,答案很簡單:

git stash 
git checkout otherBranch 

如果BRACH是起源於使用:

git checkout origin otherBranch 

.. 
do your changes/commits 
.. 
git stash apply 

隨着git stash apply你回來您以前的更改。你可以找到合併衝突......修復它們並再次提交。

相關問題