簡體   English   中英

克隆一個 git repo 並保持原來的不變

[英]Cloning a git repo and keeping the original unchanged

我正在嘗試擴展我以前從事的項目,同時保持原始項目不變。 我該怎么做? 被告知只需將原始 git repo 克隆到另一個,但我不清楚一旦我對代碼進行更改是否會影響原始 repo 和項目。

除非您明確推送到原始文件,否則不會對原始文​​件應用任何本地更改。 這是 git 的基本特性之一:只有push才會真正改變遠程存儲庫。 任何 commit/branch/revert/... 都是純本地的,直到您通過推送(或從另一端拉取)分發這些操作。

如果您想確保不會意外推送到原始版本,則可以在克隆后 刪除遙控器(當然這也意味着您將無法從那里提取新更改,直到您重新添加它) )。

或者,您可以保留遙控器(因此您可以繼續拉動),但將推送 URL 配置為無效的內容,如本問題所述

您可以只克隆一個存儲庫,然后從您克隆原始存儲庫的位置創建一個新存儲庫。 然后,您可以在其他地方克隆該新存儲庫,並可以在那里進行更改。 但是為什么需要 2 個存儲庫? 考慮使用分支

您可以對存儲庫進行分支以保留兩個獨立的項目。

克隆一個 repo 后,有兩個不同的 repos 位於兩個不同的地方。 你對其中任何一個所做的任何事情都不會影響另一個。 兩者之間的唯一關系是克隆的repo 將其遠程之一設置為指向原始repo - 命名為origin 您可以在克隆的存儲庫中使用git remote -v列出它們 - -v用於--verbose ,顯示網址。

如果沒有進一步的設置,克隆repo 可以影響原始repo 的唯一方法是當您從克隆的repo 執行git push

您甚至可以通過使用git remote remove origin克隆的repo 中刪除origin remote 來切斷關系。 現在無處可推。 但這通常不是您想要的。 原始repo 發生更改(修復、更新等)時,您通常也希望克隆中的這些更改。 這是您可能會在克隆的存儲庫中執行git fetchgit pull以帶來這些更改的時候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM