2012-04-19 34 views
5

我從三個不同的工作站完成工作。我希望能夠在編碼會話中間離開工作站,稍後在另一個工作站上恢復工作。鑑於代碼是通過遠程git倉庫共享的,我想用git來分享這個未完成的工作。通過Git分享未完成的工作(未定義的和新的文件)

在實際應用中,未完成的工作意味着

  • 有更改的文件,
  • 有新的未跟蹤文件,
  • 有刪除的文件。

大部分時間這些更改都是臨時的:並非所有更改和大部分未跟蹤文件都會在最終提交中完成。未跟蹤文件的一個例子是一個測試文件,其中有20個稍微不同的修改,用於測試目的;我只關心所有這些文件,而我正在處理某個問題,並且我不想在切換到另一個工作站時耗費時間來重新生成它們。

我已經看到其他問題和解決方案,使用分支來推動這些變化:雖然我可以這樣做,但有問題,這些分支將被重寫每次,需要git push --force(我不喜歡--force多)或者讓他們在這段時間變得非常混亂。

我想要什麼是一個簡單的命令或git別名,它允許我存儲工作目錄的當前狀態,而不會「亂搞太多」與git歷史記錄。必須有一個伴隨簡單命令或git別名,允許我從其他工作站下載這些臨時更改。

+1

我使用Dropbox的這一點。 – 2012-04-19 11:02:06

回答

0

你可能會使用藏匿,但我不確定它是否適合。

一個選項是創建一個提交,它將添加所有需要的文件,並在需要時選擇它,並在推送到公共回購之前使用交互式重新分區將其刪除。

0

保持個人特性分支(最好在個人回購),承諾的一切,沒有改寫歷史,使用git commit --fixup=<commit>改變由提交引入了不必要的更改,當你的日常工作或功能完成只是git rebase -i這分支到主要特徵分支或主分支。

1
  1. 您可以使用git add -A刪除刪除並添加新文件。然後將其提交到名爲「my_current_work」的分支中。使用--force通過遠程回購進行交換。你可以分享一個新的遙控器,這只是讓你的主要回購更清潔。或者,如果您有工作站之間的網絡鏈接,您可以直接在它們之間推/拉變更。 在將工作合併到主分支之前,您需要執行rebase -i來清理提交歷史記錄。

  2. 作爲交換遠程回購的替代方案,您可以通過電子郵件發送補丁(git-send-email)。

3

使用git藏匿將更改保存到文件中。

git stash 
git stash show -p > myPatchFile 

在其他計算機上應用這些

git apply myPatchFile