2012-12-27 70 views
2

我剛剛讀了Version Control is not a BaCkUp system(pdf)。用git備份代碼的好方法

我不知道是否有一種很好的方法可以在一天結束時將我的代碼備份到遠程服務器(萬一我的筆記本電腦出現問題),並且我所有的臨時更改都絕對不應該提交。

+0

可能重複http://stackoverflow.com/questions/586511/whats-a-good-way-to-backup-and-maybe-synchronize-your-development-machine –

+1

這是備份整個機器的解決方案。他想只存儲未提交的代碼。 –

+0

Tower的備忘單部分很尷尬。一個(或多個)額外的(鏡像)存儲庫('git clone --mirror')可以很好地用作備份。不過,暫時的更改(即使存儲)也不會成爲這種克隆的一部分。 – Koraktor

回答

1

如果您在遠程服務器上有私人回購,您可以提交所有內容(包括不良內容),那麼在第二天用好的東西更新回購,可能會重置前一天的某些工作。這只是一個想法。或者使用一個開發分支,並且只將合併好的提交,重新分配給主。如果您有私人回購,這將不會被任何人看到。免費的私人回購在很多地方都可以使用,比如baregit.com或其他地方。

0

您可以創建一個臨時分支,提交正在執行的內容,添加unstaged,提交。強制推送(也許到一個不同的遠程)。 git checkoung -

在離開工作前的每一天都這樣做。

2

我只是git commit --all所有與WIP(或只是供應--fixup)的主題,然後推送到遠程。

第二天早上的第一件事git reset HEAD^並繼續你離開的地方。

2

如果你把.git子目錄到雲同步服務像Dropbox的,你只需要在一天結束git add --update你未提交更改的索引,它會自動備份到雲中。

(我不建議把你的整個工作拷貝到Dropbox的,因爲你的編輯/編譯過程在白天可能會導致過多的後臺更新。)

0

我個人喜歡git archive command。它抽出一個給定的提交併保存它。沒有版本控制,只是彌補了文件,說犯

例如拉鍊命令:

git archive --format=zip --output /full/path/to/zipfile.zip master

例如的tar.gz命令:的

git archive --format=tar --output /full/path/to/zipfile.zip master | gzip