来自其他用户的Git拉命令


76

我正在和朋友一起开发一个项目,代码在Git上。如果我需要从朋友的机器上提取更改,是否可以使用以下命令从用户名/密码中提取更改?

git pull https://myusername@github.com/abc/theproject.git

2
您是否在尝试不通过GitHub直接从朋友的机器中提取朋友的更改?
克里斯(Chris

@Chris,是的,基本上我们的网站部署在他的计算机上。我进行了一些更改并将其推送到github。现在,我想通过从github拉出来部署更改,因为我的朋友现在正在休假。
Mohsin Inayat Khan 2014年

Answers:


160

此命令将有助于以其他用户身份从存储库中提取:

git pull https://myusername@github.com/projectfolder/projectname.git master

当您使用的计算机与其他人之前使用的计算机相同并且已保存凭据时,这是一种解决方法


1
对我来说是炒锅!
亚历山德罗(Alessandro)

30

正在寻找类似问题的解决方案。多亏了Davlet和Cupcake提供的答案,我才得以解决我的问题。

在此发布答案,因为我认为这是预期的问题

因此,我想通常会遇到这样的问题:当我在服务器上的另一个用户克隆回购协议并且该用户不再与该回购协议相关联时,该怎么办。

如何在不使用旧用户凭据的情况下从存储库中提取信息?

您编辑仓库的.git / config文件。

并改变

url = https://<old-username>@github.com/abc/repo.git/

url = https://<new-username>@github.com/abc/repo.git/

保存更改后,从现在开始git pull将在使用新用户的凭据时提取数据。

我希望这对遇到类似问题的人有所帮助


13
更好的是:您将用户名保留在URL之外,因此在提取时会要求您输入用户名。
PLPeeters

1
我也一样。将网址保留在网址之外,像这样,而不是直接编辑:git remote set-url origin git.mycompany.com/scm/myproj.git ...然后确保所有用户(他们的linux组)都有权写入项目和.git文件夹(否则其他用户将收到错误消息,例如当他们运行'git pull'时无法更新.git / HEAD
Armyofda12mnkeys

3

您的问题尚不清楚,但是如果您正在做的是尝试获取朋友的最新更改,那么通常您朋友需要做的就是将这些更改推送到远程存储库(例如GitHub上托管的存储库),并且然后从远程获取或提取这些更改:

  1. 您的朋友将其更改推送到GitHub:

    git push origin <branch>
    
  2. 如果还没有,请克隆远程存储库:

    git clone https://myusername@github.com/abc/theproject.git
    
  3. 提取或提取朋友的更改(如果您只是在上面的步骤2中克隆,则不需要):

    git fetch origin
    git merge origin/<branch>
    

    请注意,git pull这与执行上述两个步骤相同:

    git pull origin <branch>
    

也可以看看


该站点已部署在我朋友的计算机上。我在机器上做了一些更改,并将其推送到github。现在,我想通过拉我朋友的机器来部署更改,因为他要去度假。
Mohsin Inayat Khan 2014年

@MohsinInayatKhan,然后登录到您朋友的计算机中,并按照我上面指出的那样执行步骤3,并假设这就是部署过程的工作方式。为什么将站点部署在朋友的计算机上而不是某些生产服务器上?您的朋友使用的是什么类型的笔记本电脑?如果他是,那将不是一个托管企业网站的非常安全或可靠的方法。

谢谢大家帮助。以下命令对我有用。git pull myusername@github.com/abc/theproject.git master
Mohsin Inayat Khan

您可以将@MohsinInayatKhan发布为答案。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.