簡體   English   中英

如何從Git中的另一台計算機存儲庫中提取?

[英]How do I pull from another computer's repository in Git?

例如,我已經在兩台計算機上克隆了原始存儲庫。 然后,我繼續進行一些更改並提交到計算機A的本地存儲庫。我現在如何將這些更改提取到計算機B? 計算機A和B都連接到網絡。

我正在尋找的將是相當於手動創建補丁並將其發送給我的人,我可以將其應用於我的工作副本/本地回購。

如果你想要拉出的機器可以通過ssh訪問,你可以通過ssh將其作為遠程存儲器添加,然后像任何遠程一樣從中拉出:

$ git remote add repo_b username@host:path/to/repository.git
$ git pull repo_b master

(您可以跳過添加遠程的步驟,只需在git pull命令中指定完整的URL而不是遠程名稱,但是如果您要定期從存儲庫中提取,則將其添加為遠程名稱為您節省大量的打字。)

看看git pull --help

這會產生類似git pull /my/other/repository

您可以使用git守護程序設置實際服務器。 否則,您可以使用git bundle ,它將git的內部表示捆綁到一個文件中,該文件可以在另一端使用git pull進行非捆綁。

例如,從git docs,捆綁所有東西:

git bundle create file.bundle master

然后,在另一端,您可以執行以下操作:

git pull file.bundle HEAD

如果您可以通過ssh連接到計算機B,則可以使用:

git clone user@host:/path/to/repo

它將通過此​​ssh連接啟用遠程跟蹤,並允許您使用git pull / push。

它適用於我與另一台計算機的本地存儲庫:

git remote add origin_username username@10.0.0.2:/home/username/dev/project/main/.git/

git pull origin_username master

要么

git pull origin_username some_branch

我想出來了

git clone /path/to/local/repository

有點太晚了,但是為了所有它的價值和擴展Antoine Pelisse的答案,你也可以從具有相同repo的ssh主機中提取幾個提交,而無需在配置中添加一個遙控器

git pull user@host:/path/to/repo  # while in the local repo folder

需要明確的一點 - 可能的用途之一就是當你有兩個主機(A和B)從遠程克隆同一個repo時,你已經在主機A上做了一些更改,並且不希望將它們推送到遠程 (還),但是想要從主機B中提取這些提交。上面的命令同步你的repos而不推送到遠程

暫無
暫無

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

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