我知道如何为HTTPS请求提供用户名和密码,如下所示:
git clone https://username:password@remote
Run Code Online (Sandbox Code Playgroud)
但我想知道如何为遥控器提供用户名和密码,如下所示:
git clone git@remote.git
Run Code Online (Sandbox Code Playgroud)
我试过这样的:
git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password
Run Code Online (Sandbox Code Playgroud)
但他们没有奏效.
试着从我的计算机上处理我的实际"工作"回购,以及我在git hub上的个人回购.
工作帐户首先设置,一切都完美无瑕.
然而,我的个人帐户似乎无法推送到我的个人仓库,这是根据不同的帐户/电子邮件设置的.
我已经尝试将我的工作密钥复制到我的个人帐户,但这会引发错误,因为密钥只能附加到一个帐户.
如何从他们各自的github凭据中推送/拉出两个帐户?
我有以下用例:我希望能够推送git@git.company.com:gitolite-admin使用用户的私钥gitolite-admin,而我想推送git@git.company.com:some_repo使用"我自己的"私钥.AFAIK,我无法解决这个问题~/.ssh/config,因为在这两种情况下用户名和服务器名都是相同的.由于我主要使用自己的私钥,因此我已将其定义~/.ssh/config为git@git.company.com.有没有人知道一种方法来覆盖用于单个git调用的密钥?
(旁白:gitolite基于密钥来区分谁在进行推送,因此在访问,所有权和审计方面,用户@服务器字符串对于不同的用户来说是相同的.)
我的办公室有一个不同的git存储库,我的业余爱好项目有一个不同的git repo.
当我git config --global user.name
在全局范围内更改用户名时,这会造成使用用户名提交到repo的混淆.
因此,问题是如何在我的所有业余爱好项目中使用相同的用户名,并在办公室项目中使用相同的用户名.我使用同一台机器在两个地方工作.
我试图作为不同的用户提交一些更改,但我没有有效的电子邮件地址,以下命令对我不起作用:
git commit --author="john doe" -m "some fix"
fatal: No existing author found with 'john doe'
Run Code Online (Sandbox Code Playgroud)
尝试仅使用电子邮件地址提交时遇到同样的问题
git commit --author="john@doe.com" -m "some fix"
fatal: No existing author found with 'john@doe.com'
Run Code Online (Sandbox Code Playgroud)
在commit命令的git手册页上,它说我可以使用
standard A U Thor <author@example.com> format
Run Code Online (Sandbox Code Playgroud)
对于--author选项.
这种格式在哪里定义?A和U代表什么?我如何仅使用用户名或仅使用电子邮件为不同的用户提交?
我在终端推送和拉动git然后我在github.com上更改了我的用户名.我去推了一些更改,它无法推送,因为它仍然识别我的旧用户名..如何在终端上的git上更改/更新我的用户名?
我在GitHub上有一个存储库,让我们称之为.Repo-1
我想首先访问该存储库作为默认的Git用户.
我们打电话给那个用户User-1.
我创建了SSH密钥对,一切都很好,效果很好.
我在GitHub上创建了另一个存储库,让我们称之为.Repo-2
我没有在我的笔记本电脑上对本地Git进行任何更改.没有配置更改,没有.
现在-我要克隆自Repo-1为User-2(但在同一台笔记本电脑).
首先:这有可能吗?
一台笔记本电脑上的本地Git可以在"用户帐户"之间切换并呈现为自己User-2吗?然后,从这个身份,从Repo-1克隆,做出一些改变,然后推送到Repo-1?
如果可能,我该怎么做?
我有一个工作GitHub帐户和个人帐户.首先,我将个人用于测试项目,然后我继续前进并在同一台计算机上使用另一个帐户创建了一个存储库.
现在我想再次在我的个人帐户上创建一个新的存储库,我更改了全局和本地user.name,并在GitHub设置页面中输入了一个新的ssh密钥对.然后我设置了目录
git init
git remote add origin <url>
git push origin
Run Code Online (Sandbox Code Playgroud)
但现在告诉我
错误:对personaluser/newrepo.git的许可被拒绝
我不知道其他帐户是如何连接到这个帐户的..git/config显示没有workusername相关的东西.
如果您使用的是Windows 10,请花些时间阅读Rajan的答案.
我有一个shell变量,指向我所有配置文件所在的目录.我们假设变量是用export RC=$HOME/rc.创建的.我在配置目录中有一个全局忽略文件:~/rc/globalgitignore.
我的问题是,如何RC在我的.gitconfig文件中扩展变量?
我已经尝试过以下方法:
excludesfile = $RC/globalgitignore
excludesfile = !$RC/globalgitignore
excludesfile = !echo $RC/globalgitignore
excludesfile = !$(echo $RC/globalgitignore)
这些解决方案都不起作用.
如果我输入完整路径excludesfile = ~/rc/globalgitignore,这是唯一的方法:但是,如果将我的rc目录移动到其他位置,我必须更改路径.
我知道可以设置覆盖用户级配置的每个repo配置(即/path/to/my/repo/.gitconfig覆盖~/.gitconfig).是否可以设置git配置覆盖给定文件夹的所有子文件夹的用户级设置?即,我有
|--topLevelFolder1
|--\
| ---.gitconfig_override
|--\
| ---childFolder1
| \---[...]
|--\
| ---childFolder2
| \---[...]
Run Code Online (Sandbox Code Playgroud)
我希望定义的设置.gitconfig_override适用于childFolder1和childFolder2.
我的动机如下:我有一台工作笔记本电脑,我也在业余时间用于个人项目.我的所有工作代码都嵌套在一个文件夹中.当我推动工作git repos时,我需要用我的工作角色 - 工作登录而不是名字,以及工作电子邮件.当我推送到我自己的个人(github)回购时,我想用我的真实姓名和个人电子邮件这样做.
我想到的其他可能的解决方案(和问题):
我检查了这个问题,它似乎只包含单个回购的解决方案,而不是多个.希望有人会看到错过那个问题的这个问题!