[英]git clone through ssh
我有一個項目,在該項目上創建了 git 存儲庫:
$ cd myproject
$ git init
$ git add .
$ git commit
我想在另一台機器上創建一個裸克隆:
$ cd ..
$ git clone --bare myproject ssh://user@server:/GitRepos/myproject.git
我執行了克隆但沒有打印任何答案。 我登錄到服務器機器並嘗試查看文件是如何存儲的。 路徑 /GitRepos 是空的,所以我決定再次克隆:
$ git clone --bare myproject ssh://user@server:/GitRepos/myproject.git
這一次的答案是:
致命:目標路徑 'ssh://user@server:/GitRepos/myproject.git' 已經存在並且不是空目錄。
但我看到這條路是空的。
這里發生了什么?
這可能與問題沒有直接關系; but one mistake I just made myself, and I see in the OP, is the URL specification ssh://user@server:/GitRepos/myproject.git
- namely, you have both a colon :
, and a forward slash /
after it表示絕對路徑。
I then found Git clone, ssh: Could not resolve hostname – git, development – Nicolas Kuttler (as that was the error I was getting, on git
version 1.7.9.5), noting:
我最初使用的命令的問題是我嘗試使用類似 scp 的語法。
...這也是我的問題! 所以基本上在git
和ssh
中,你要么使用
ssh://username@host.xz/absolute/path/to/repo.git/
- 只是服務器上絕對路徑的正斜杠username@host.xz:relative/path/to/repo.git/
- 只是一個冒號(它不能有ssh://
服務器上的相對路徑(相對於服務器機器上username
的主目錄) 希望這可以幫助某人,
干杯!
您需要在您調用的服務器上運行克隆命令。 但是我敢打賭,您沒有在本地客戶端上運行 ssh 服務器,因此無論如何它都無法正常工作。 建議你遵循這種方法(檢查手冊,因為我是從記憶中做的)
git init --bare
創建一個裸倉庫git remote add origin ssh://user@server:/GitRepos/myproject.git
后跟git push origin master
免責聲明:這只是bobbaluba評論的副本,讓未來的訪問者更容易看到。 它對我的幫助比任何其他答案都多。
當使用git clone
作為示例時,您必須刪除ssh://
前綴
git clone git@github.com:owner/repo.git
解決這個問題的簡單方法
嘗試這個。
步驟1:
ls -al ~/.ssh
第2步:
ssh-keygen
vim /c/Users/Willie/.ssh/config
主機gitlab.com
主機名 gitlab.com
用戶 git
身份文件 ~/.ssh/id_rsa
第4步:
git clone git@gitlab.com:<username>/test2.git
第 5 步:
完成第 4 步后
1.test2.git文件將下載完成
2.您將在 ~/.ssh 中獲得新文件(known_hosts)
PS:我自己創建了id_rsa和id_rsa.ub,然后我把它發送到Gitlab服務器。 使用任何客戶端(Windows 和 Linux)的兩個鍵。
Git 101:
git
是一個去中心化的版本控制系統。 您不需要服務器即可啟動並運行 git。 您仍然可能想要這樣做,因為它看起來很酷,對吧? (如果您想在多台計算機上處理單個項目,這也很有用。)
因此,要運行“服務器”,您需要運行git init --bare <your_project>.git
因為這將創建一個空存儲庫,然后您可以在您的機器上導入該存儲庫,而無需在您的.git
中的配置文件中亂搞目錄
在此之后,您可以克隆客戶端上的存儲庫,因為它應該可以工作,但我發現某些客戶端(即git-gui
)將無法克隆完全空的存儲庫。 To work around this you need to run cd <your_project>.git && touch <some_random_file> && git add <some_random_file> && git commit && git push origin master
. (請注意,如果您過去沒有這樣做,您可能需要為該機器的 git 配置您的用戶名和 email。實際運行的命令將在您收到的錯誤消息中,所以我將省略它們。)
因此,此時您可以通過運行git clone <user>@<server>:<relative_path><your_project>.git
將存儲庫克隆到任何機器。 (正如其他人指出的那樣,如果您使用絕對路徑,您可能需要為其添加前綴ssh://
。)這假設您已經可以從客戶端登錄到服務器。 (如果您打算將大量內容推送到遠程服務器,您還將獲得為ssh
設置配置文件和密鑰的獎勵積分。)
我想嘗試一個包括 git-flow 和三個“點”或用例、git 中央存儲庫、本地開發和生產機器的答案。 這沒有經過很好的測試。
我給出了令人難以置信的具體命令。 我不會說<your folder>
,而是說/root/git
。 我更改原始命令的唯一地方是用example.com
替換我的特定服務器名稱。 我將解釋文件夾的用途,以便您可以相應地調整它。 請讓我知道任何困惑,我會更新答案。
服務器上的git版本是1.7.1。 服務器是 CentOS 6.3(最終版)。
開發機上的git版本是1.8.1.1。 這是 Mac OS X 10.8.4。
中央存儲庫和生產機器在同一台機器上。
svn 用戶可以關聯為“服務器”的中央存儲庫配置如下。 我有一個文件夾/root/git
,我在其中保存了所有 git 存儲庫。 我想為我稱之為“花”的項目創建一個 git 存儲庫。
cd /root/git
git clone --bare flowers flowers.git
git 命令給出了兩條消息:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
沒什么好擔心的。
在開發機上配置如下。 我有一個文件夾/home/kinjal/Sites
我把我所有的項目放在那里。 我現在想要獲取中央 git 存儲庫。
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
這使我達到了可以開始向其中添加內容的地步。 我先設置git流
git flow init -d
默認情況下,這是在分支develop
上。 我現在在這里添加我的代碼。 然后我需要提交到中央 git 存儲庫。
git add .
git commit -am 'initial'
git push
此時它推送到了開發分支。 我還想將它添加到主分支。
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
請注意,我在發布開始和發布完成之間沒有做任何事情。 當我完成發布時,系統提示我編輯兩個文件。 這推動了開發分支掌握。
在與我的中央 git 存儲庫位於同一台機器上的生產站點上,我想將存儲庫放在/var/www/vhosts/example.net
中。 我已經有/var/www/vhosts
。
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
如果生產機器也在另一台機器上,那么git clone
命令看起來就像在開發機器上使用的那樣。
git 克隆 git@server:Example/proyect.git
首先,我的 GIT 技能有點欠缺。
這將在您的計算機上克隆一個裸存儲庫,其中僅包含.git
中的文件夾,這是一個隱藏目錄。 執行ls -al
,您應該會在存儲庫中看到.git
或cd.git
。
您能否添加對您的意圖的描述,以便具有更多 GIT 技能的人可以提供幫助? 你真正想做的事情是什么,而不是你打算怎么做?
我做了: git clone --bare "/GITREPOSITORIES/RepoA" "ssh://luc@EERSTENASDS119J/volume1/RepoA" 結果:致命:目標路徑'ssh://luc@EERSTENASDS119J/volume1/RepoA'已經存在並且是不是空目錄。
系統在我當前的路徑下創建了一個目錄 ssh://luc@EERSTENASDS119J/volume1/RepoA。
所以 git 克隆沒有解釋 URL 規范。 使用了 Alec 的解決方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.