标签: git-clone

设置 Git 远程 SSH (git-upload-pack / git-receive-pack)

我有一台具有 SSH 访问权限的服务器,我想在那里放置一个 Git 原始存储库。我刚刚在本地创建了一个 --bare --shared 存储库,并将其复制到每个 SCP 的服务器上。现在我想根据 SSH url 克隆这个存储库。我试过

ssh://USERNAME@HOST/folder1/folder2/gifolder.git
ssh://USERNAME:PASSWORD@HOST/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:PORT/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:/folder1/folder2/gifolder.git
Run Code Online (Sandbox Code Playgroud)

以及以上的一些组合。但 Git 总是说

"fatal: The remote end hung up unexpectedly"
Run Code Online (Sandbox Code Playgroud)

尽管我可以通过 SSH 使用用户名和密码连接到主机。

是否可以按照我想要的方式使用 git,或者我是否必须以完全不同的方式设置它?

更新:

我将 Git 扩展配置为使用 OpenSSH 而不是 Putty,现在 OpenSSH 要求我在“克隆”后输入密码。当我输入正确的密码时,出现以下错误:

bash: git-upload-pack: command not found
Run Code Online (Sandbox Code Playgroud)

(OpenSSH 似乎可以连接到服务器,因为它希望我在输入其他内容时重新输入密码)所以。现在我需要解决这个新问题。首先:我无法在服务器上安装 git。是否可以在不安装 git 的情况下使“git-upload-pack”和“git-receive-pack”可用?

再次感谢

更新2 - 解决方案:

解决方案是将远程存储库目录集成为每个 SSH/SFTP 的本地目录。我正在使用http://www.expandrive.com/来实现此目的。谢谢

git url ssh git-clone

5
推荐指数
2
解决办法
9345
查看次数

Hudson - Git - 仅克隆所需的分支

是否可以在 hudson 中仅克隆一个 git 分支?Hudson 版本 2.2.0 和 git 插件版本 2.2.0 克隆了整个指定项目,因此占用了大量空间(预计会永远增长)

提前致谢。

git hudson git-clone

5
推荐指数
1
解决办法
7475
查看次数

使用深度 1 选项进行克隆时 git checkout 新的远程分支

在我克隆了一个存储库后,一个新分支test已添加到origin远程。但我仍然看到:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我应该使用什么 git 命令来获得以下输出:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test
Run Code Online (Sandbox Code Playgroud)

git checkout 远程分支问题不是我的问题,因为这是在我看到所有远程分支引用之后发生的。

我无法再次克隆该存储库,因为其中有本地更改/提交。

那么,如何使用 git 命令将新的远程分支引用引入我的存储库?

我正在使用具有以下分支的 BitBucket 存储库:分支机构


试炼

git fetch不起作用:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
$ git fetch
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
$ git fetch origin 
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master …
Run Code Online (Sandbox Code Playgroud)

git branch git-clone git-remote

5
推荐指数
1
解决办法
2382
查看次数

git 仅克隆当前目录根目录下的一个子目录

我的 Git 存储库中有几个文件夹:

folder1/suba
folder2/subb
folder3/subc
Run Code Online (Sandbox Code Playgroud)

在本地,我的网络服务器上有公共文件夹。

http://domain.com/ 
Run Code Online (Sandbox Code Playgroud)

指向该文件夹

~/apps/appname/public
Run Code Online (Sandbox Code Playgroud)

我想有效地对服务器上的文件夹folder3/subc进行git 克隆。public现在我知道稀疏结帐,但保留了文件夹层次结构(就像这样~/apps/appname/public/folder3/subc)。

我不想要这个层次结构,并且想将folder3/subc 的内容直接签出到公共文件夹中。

那可能吗?

git directory sparse-matrix git-clone

5
推荐指数
1
解决办法
1931
查看次数

我可以在现有存储库中添加其他引用吗?

git clone有一个--reference <repository>选项可以设置一种可用于存储对象的缓存,因此不需要将所有对象复制到新创建的存储库中。将创建一个文件.git/objects/info/alternates,其中列出引用的存储库目录。

我刚刚尝试并能够在克隆时指定多个“引用”,并在文件中创建了两行.git/objects/info/alternates

我的问题:是否有一个命令可以在克隆后的某个时刻在现有存储库中添加引用。例如,通过类似 的命令git remote reference <repo>

如果没有,是否可以通过手动编辑文件.../alternates来达到相同的结果?

git git-clone git-remote

5
推荐指数
0
解决办法
392
查看次数

Git 中接收对象太慢

在问这个问题之前,我找到了一个相关的帖子:

Git 克隆在接收对象时卡住

但看起来还好,我的接收对象很慢。

在此输入图像描述

只有3.00 KiB/s,为什么这么慢,因为我在中国,GFW影响吗?

我测试过打开VPN翻开GFW,可以看到facebook.com。

git clone 时如何提高网速?

git git-clone ios

5
推荐指数
1
解决办法
8123
查看次数

git 将子模块添加到现有目录中

我在父文件夹中有一个 git 存储库。我们将此文件夹称为“根”。然后该文件夹中有一个子目录,我们称之为“child”。我想要做的是将远程存储库作为子模块克隆到“child”中:

git submodule add git@github.com:username/repopath child/
git submodule add git@github.com:username/repopath ./child/
Run Code Online (Sandbox Code Playgroud)

以上都给了我错误:

子项已存在于索引中

我尝试将目录从跟踪中删除:

git rm --cached .\child\*
git submodule add git@github.com:username/repopath child/
Run Code Online (Sandbox Code Playgroud)

然后我得到这个错误:

“child”已经存在并且不是有效的 git 存储库

非常感激任何的帮助

谢谢

git clone git-clone git-submodules

5
推荐指数
1
解决办法
1万
查看次数

Git 会克隆、获取或推送孤立提交吗?

当父提交图中没有包含它们的标签或分支时,就会创建孤立提交。例如,如果你犯了一个分支foo,添加提交ab,然后删除分支(即删除引用foo从提交b),那么这两个ab,除非你救了他们的哈希值将是不可到达的。

x-x-x-x   <- master
     \
      a-b  <- foo (reference then deleted or reset to somewhere on master)
Run Code Online (Sandbox Code Playgroud)

孤立提交的基本 Git 行为是最终垃圾收集并删除它们(我听说默认至少是 30 天)。

我的问题是这样的:

将以往的Git从一个回购移动孤儿提交到另一个使用git clonegit fetchgit push命令?

或者 Git 是否有效地忽略了任何不直接调用孤儿哈希(例如checkoutcherry-pick)的操作的这些提交?

git git-push git-fetch git-clone orphan

5
推荐指数
1
解决办法
1347
查看次数

带有登录凭据的 Bitbucket repo 克隆

我有一个到 bitbucket 的基本 git clone 命令,我必须在其中添加登录凭据,是否可以将登录凭据添加到 bitbucket git clone 命令?

https://myacc@bitbucket.org/myacc/app.git
Run Code Online (Sandbox Code Playgroud)

像这样的东西?

https://myacc@bitbucket.org/myacc/app.git -Password "123"
Run Code Online (Sandbox Code Playgroud)

git bitbucket git-clone

5
推荐指数
1
解决办法
2万
查看次数

从 Azure DevOps 克隆时如何选择首选 Visual Studio 版本

我和我的同事安装了多个版本的 Visual Studio,出于业务原因,我们可能需要保留一段时间。对于某些团队成员,从 Azure DevOps 服务器克隆 git 存储库时,会打开不方便的 Visual Studio 版本,从这个 Web UI 开始:

图显示了 azure devops 上的克隆按钮

我们如何确保在克隆时/之后打开首选版本的 VS?作为奖励,有没有办法为每个存储库配置它?

到目前为止,我们最好的方法是遵循这些步骤。然而,它似乎并没有始终如一地更新每个用户的偏好。特别是,如果团队成员已经针对早期版本(例如 VS 2015、VS 2017)至少克隆了一次,我们似乎有一段时间将这种偏好更新到 VS 2019 以坚持下去。

  1. 在系统设置中打开“默认应用”
  2. 选择“按协议选择默认应用程序”
  3. 滚动到“Microsoft Visual Studio Web 协议处理程序选择器”
  4. 将处理程序更改为 Visual Studio 2019

注意:我们的机器有两次列出的MS VS Web 协议处理程序选择器。我们已经尝试设置两者或两者都没有成功。任何我们为什么会看到协议选择器两次的建议也可能有所帮助。

visual-studio git-clone azure-devops visual-studio-2019 azure-devops-server-2019

5
推荐指数
1
解决办法
935
查看次数