version-control mercurial教學 - hg forget和hg remove有什麼區別?




git比較 mercurial中文 (5)

我希望mercurial從存儲庫的當前狀態中刪除多個文件。 但是,我希望這些文件存在於之前的歷史記錄中。

如何forgetremove不同的東西,他們可以做我想要的東西嗎?


Answers

一個文件可以跟踪或不跟踪,你使用hg add來跟踪文件,而hg remove或hg忘記取消跟踪它。 使用沒有標誌的hg remove會同時刪除文件並取消它, hg忘記將不刪除它而直接取消它。


' hg forget '只是' hg remove -Af '的簡寫。 從' hg remove '幫助:

...和-Af可用於從下一個修訂版中刪除文件,而不從工作目錄中刪除它們。

底線:' remove '從磁盤上的工作副本中刪除文件(除非您使用-Af ),' forget '不會。


從文檔中,您顯然可以使用任一命令將文件保存在項目歷史記錄中。 看起來你想刪除,因為它也從工作目錄刪除文件。

http://hgbook.red-bean.com/read/的Mercurial書:

刪除文件不會影響其歷史記錄。 理解刪除文件只有兩個效果是很重要的。 它從工作目錄中刪除當前版本的文件。 它會阻止Mercurial跟踪下次提交時對文件的更改。 刪除文件不會以任何方式改變文件的歷史記錄。

手冊頁hg(1)對忘記說這個:

標記指定的文件,以便在下次提交後不再跟踪它們。 這只會從當前分支中刪除文件,而不是從整個項目歷史記錄中刪除,並且不會從工作目錄中刪除它們。

而這個關於刪除:

調度指定的文件以從存儲庫中刪除。 這只會從當前分支中刪除文件,而不是從整個項目歷史中刪除。


最好的方法是, hg forget hg remove 相同除了它將文件留在工作副本中。 這些文件.hgignore未跟踪文件,現在可以選擇使用.hgignore的模式忽略。

換句話說,當我從你身上拉下來時,我無法判斷你是否使用了hg forgethg remove 。 當我更新到變更集時,您運行hg forget文件被刪除 - 就像您使用hg remove


我正在尋找如何處理我的源代碼(Web應用程序)所依賴的大型二進製文件的意見。 你對此有何經驗/想法?

一旦我的Web應用程序二進制數據超過3 GB標記,我個人就已經與Git和一些雲主機發生同步失敗 。 當時我考慮過BFT Repo Cleaner ,但感覺像是一個黑客。 從那時起,我開始只保留Git權限範圍之外的文件,而不是利用專門構建的工具 (如Amazon S3)來管理文件,版本控制和備份。

有沒有人有多個Git倉庫的經驗,並在一個項目中管理它們?

是。 雨果主題主要通過這種方式進行管理。 這有點古德,但它完成了工作。

我的建議是為工作選擇正確的工具 。 如果是為一家公司而且您在GitHub上管理您的代碼行,請支付款項並使用Git-LFS。 否則,您可以使用區塊鏈探索更具創意的選項,例如分散式加密文件存儲

要考慮的其他選項包括Minios3cmd





version-control mercurial