2013-06-28 46 views
2

另一個Git的問題,如果有人不介意回答:Git的推動未完成的更改回購

我開發一個桌面上的網站從辦公室內,並在筆記本電腦上,當我在家工作,無論是存儲文件在他們的本地驅動器上使用在線Git存儲庫進行跟蹤。

當我從家裏的筆記本電腦創建一項新功能時,將這些更改轉移到桌面上的最佳方式是什麼?我是否會對更改進行分級,爲它們創建提交併將它們推送到在線回購,即使功能還不完整,還是有更好的方法?

我真的不確定如果在功能分支上創建新的提交只是爲了將更改推送到回購庫,以便我可以在辦公室中獲取更改是正確的方式,但也許我錯了......?

回答

6

無論您何時創建新功能或修復錯誤 - 您可能已經在做什麼,都應該使用新的分支。

我只想提交在本地特性分支的更改,並更改推到遠程特性分支,然後他們拉你的另一臺機器上,沒有與此沒有任何問題......

如果你想整理你的承諾之前,你把他們合併到主人然後你可以壓扁他們...看到這個問題:Squash my last X commits together using Git

+0

感謝您的信息。該鏈接引導我到另一個鏈接 - http://davidwalsh.name/squash-commits-git - 第一個評論說,壓縮已經推送的提交是不明智的? –

+0

是的,我使用一個單獨的功能分支 –

+0

這篇文章中說的是真的......它可以打破其他用戶的東西......如果你正在合作,那麼不要壓縮提交,一旦他們在主人......應該沒問題,可以在你的功能分支中進行...如果它是一個真正的問題,那麼就根本不要壓扁,你只需要進行一些工作就可以了......沒什麼大不了的:) –

-3

我有完全相同的問題,並使用Dropbox保持我的兩臺電腦同步,但我敢肯定任何其他文件同步服務(如Google Drive或Box)也可以使用(請參閱競爭對手名單here)。只需將您的本地git存儲庫放在Dropbox文件夾中,Dropbox將確保您在一臺機器上更改的任何內容在另一臺機器上也會發生更改。這包括未執行或未執行的更改,以及切換分支或執行某些操作時的情況。

此方法優於推送到存儲庫的優點是其他開發人員不會看到您的更改,並且如果您確實想要修復本地分支的歷史記錄,則不會爲其他用戶分配內容。

只有一個警告:在開始在另一臺機器上工作之前,必須先完成同步。如果您一直在使用機器A並想切換到機器B,則必須允許Dropbox完成從機器A上傳的所有更改,並讓機器B在開始使用機器B之前下載所有更改。如果您不要,你會結束一些有趣的,但有時候災難性的Dropbox合併衝突。通常可以從中恢復,但是也可能會丟失任何未推送到遠程存儲庫的內容。這就是說,這是一個容易避免的問題。