簡體   English   中英

更改 Git 存儲庫目錄位置。

[英]Change Git repository directory location.

對於 Windows 版 Git/Github,如果我有一個包含此目錄的存儲庫: C:\dir1\dir2 ,我需要做什么才能將存儲庫文件移動到C:\dir1 我顯然可以物理復制和粘貼文件,但我需要在 Git 端做什么?

我在 GitHub 上有這個 repo,我在 Windows 上使用 Git Bash 和 GitHub。

只需復制整個工作目錄內容(包括隱藏的.git目錄)。 這會將整個工作目錄移動到新目錄,並且不會影響 GitHub 上的遠程存儲庫。

如果您使用的是 GitHub for Windows,您可以使用上述方法移動存儲庫。 但是,當您單擊應用程序中的存儲庫時,它將無法找到它。 要解決此問題,只需單擊帶有, 的藍色圓圈。 選擇“查找”,然后瀏覽到新目錄。

我不確定這個問題,所以這里有兩個答案:

如果你想移動你的倉庫:

只需復制整個存儲庫(及其.git目錄)。

.git結構中沒有絕對路徑,也沒有任何東西阻止它被移動,所以移動后你無事可做。 所有指向 github 的鏈接(參見.git/config )將像以前一樣工作。

如果要在存儲庫中移動文件:

只需移動文件。 然后添加git status中列出的更改。 下一次commit將做必要的。 您會很高興得知沒有文件會被復制:在 git 中移動文件幾乎是免費的。

如果您使用的是GitHub Desktop ,那么只需執行以下步驟:

  1. 將打開文件的GitHub Desktop和所有其他應用程序關閉到當前目錄路徑。
  2. 如上所述將整個目錄移動到新的目錄位置。
  3. 打開GitHub Desktop並單擊藍色 (.)“未找到存儲庫”圖標。 然后將打開一個對話框,您將看到一個“定位...”按鈕,該按鈕將打開一個彈出窗口,允許您將其路徑定向到新位置。

雖然之前的回答好像都是說移動目錄就可以,.git結構中沒有絕對路徑。 當我使用來自 Cygwin 的 git 時,我發現這是不正確的。

當我移動我的 git repo 時(實際上我從備份中恢復了它,但是由於我的驅動器結構在我的新系統上發生了變化而恢復到不同的驅動器)。 我收到一條錯誤消息,例如

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory

我使用 grep 發現在 [core] 部分的 my.git/config 文件中是一個 worktree 變量,它保存我的 git repo 的絕對路徑。 改變這個解決了我的問題。

雖然問題涉及 Windows 的 Git,但即使在搜索 Visual Studio Tools For Git(VS 2012 中的擴展,VS 2013 中的本機支持)時,這似乎也是最佳結果。

使用上述解決方案作為指南,我確定 Visual Studio Git 工具可以非常輕松地在本地移動存儲庫(甚至所有存儲庫的整個目錄結構)。

1) 關閉視覺工作室。 2) 將 Repo 文件夾移動到新位置。 3) 打開視覺工作室。 打開團隊資源管理器。 切換到“連接”視圖(頂部的插頭圖標)。 3a) 如果 Repos 仍然顯示舊路徑,請單擊刷新以強制更新。 4) 本地移動的回購不應再顯示在“本地 Git 存儲庫”中。 5) 單擊添加(不是新建或克隆)並選擇要添加的 repo 文件夾。

在第 5 步中,您實際上只是提供了一個搜索路徑,搜索會自動包括所有子文件夾。 如果您在單個根目錄下組織了多個存儲庫(獨立的存儲庫具有相同的父文件夾),那么選擇父級將包括在其下方找到的所有存儲庫。

示例:E:\Repos\RepoA E:\Repos\RepoB E:\Repos\RepoC

在 Visual Studio Team Explorer 中 [Add] > "E:\Repos\" > [Add] 會將所有三個返回到本地存儲庫。

我使用 Visual Studio git 插件,我有一些在 IIS 上運行的網站我想移動。 一種對我有用的簡單方法:

  1. 關閉視覺工作室。

  2. 移動代碼(包括git文件夾等)

  3. 單擊新位置的解決方案文件

這將使用已移動的現有本地 git 文件刷新到新位置的映射。 回到 Visual Studio 后,我的團隊資源管理器窗口顯示了新位置的存儲庫。

我使用 Github Desktop for Windows,我想移動存儲庫的位置。 如果您移動目錄並在軟件中選擇新位置,沒有問題。 但是如果你設置了一個錯誤的目錄,你會得到一個致命的錯誤並且沒有第二次機會重定位到好的目錄。 所以要修復它。 您必須將項目文件復制到壞目錄中,通過 Github Desktop 對其進行 reconize,之后,您可以將您的項目再次移動到另一個文件夾中,並在軟件中進行重新定位。 無需為此關閉 Github Desktop,它會實時檢查文件夾。

希望這會對某人有所幫助。

這對我不起作用。 我將一個存儲庫從(例如)c:\project1\ 移動到 c:\repo\project1\ 並且 Git for windows 沒有顯示任何更改。

git status 顯示錯誤,因為子模塊之一“不是 git 存儲庫”並顯示舊路徑。 例如(更改名稱以保護 IP)

致命:不是 git 存儲庫:C:/project1/.git/modules/subproject/subproject2 致命:'git status --porcelain' 在子模塊子項目中失敗

我必須手動編輯子模塊中的 .git 文件以指向子模塊存儲庫的正確相對路徑(在主存儲庫的 .git/modules 目錄中)

來自未來的報告:2018 年 4 月。

我想規范我的 Mac 和 Windows 上的本地存儲庫,它們最終位於不同的本地文件夾中。

Windows 10 客戶端讓我經歷了“找不到”>“定位”的例程,乏味但並不可怕。 還需要更新選項中的本地“克隆路徑”以備將來使用。

當我合並 mac 文件夾時,Github 客戶端又找到了它們——我什么都不用做!

如果您已經移動/修改了新目標中的代碼,但想繼續使用相同的 git 存儲庫...

在 Windows 中,您只需將隱藏的.git文件夾從舊位置復制粘貼到新位置即可。

然后像往常一樣使用 git。

要在每次克隆其中一個時設置存儲庫的默認本地路徑,您只需克隆一次存儲庫並設置Localpath:/ your-path,然后github會自動將該路徑檢測為默認路徑。

一種更基於 Git 的方法是使用cd或復制和粘貼對本地副本進行更改,然后將這些更改從本地存儲庫推送到遠程存儲庫。

如果您嘗試檢查本地存儲庫的狀態,它可能會顯示“未跟蹤的更改”,這實際上是重新定位的文件。 要強行推送這些更改,您需要通過使用暫存這些文件/目錄

$ git add -A
#And commiting them
$ git commit -m "Relocating image demo files"
#And finally, push
$ git push -u local_repo -f HEAD:master

希望能幫助到你。

-首先檢查當前文件夾中包含git repo的所有目錄 $ ls -lals -al

- 識別這個文件夾

**.git**

- 使用此命令將文件夾移動到您需要的位置,

$ mv.git這里是你想要的目錄

注意:>該目錄不會影響 git 歷史記錄,也不會影響遠程連接>考慮到您要移動到的目錄的樹(路徑

如果您使用 Visual Studio,請使用 Teams Explorer > Connect 選項卡 > Local Git Repositories 中的 Add 將現有的本地 repo 引入您的可用 repos。 沒有大驚小怪,沒有麻煩。

將本地存儲庫鏈接到不同的遠程存儲庫

1-刪除與遠程存儲庫的所有連接:在項目文件夾內:

  • git rm.git (從本地存儲庫中刪除所有數據)
  • git status (我必須說它沒有鏈接到任何)

2-鏈接到一個新的遠程倉庫

  • git init啟動一個本地倉庫
  • git remote add origin urlrepository.git連接遠程倉庫
  • git remote -v確認鏈接到遠程倉庫

3-將更改添加到本地存儲庫並推送

  • git pullgit pull origin master --allow-unrelated-histories如果本地和遠程倉庫中的 git 歷史不同。
  • git add.
  • git commit -m" Message "
  • git push -u origin master

暫無
暫無

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

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