2012-03-14 91 views
1

如何覆盖[remote“origin”]在.git/config中设置的URL?
有时我需要使用https协议和我的用户名和密码作为url的一部分,我不想提交这些信息。一种选择是忽略.git/config。
有没有一种办法:
一)覆盖它(从全球的.gitconfig),或
B)有一个本地的.git /配置而无需担心它可能被COMMITED,或
d)有一个别名到git push https://privateurl master
c)让它以其他方式工作?Git配置:私人远程URL

+4

为什么要在第一个位置添加/提交'.git/config'文件,或者是'.git /'中的任何内容? – Bruno 2012-03-14 12:05:38

+0

.git/config未提交也未被推送。它在本地保存本地设置。您也可以根据需要更改它(git remote set-url origin https:// ....)或者只是使用临时远程进行推送:git push https://....x.git master – patthoyts 2012-03-14 12:13:56

回答

1

我想你是误解Git的工作原理。 .git目录中的文件存储Git需要操作的信息。这包括存储库信息(提交,对象,指针等)以及元信息(本地索引,本地首选项等)。 .git目录中的文件不存储在存储库中,因为它们本质上是存储库。元信息(例如.git/config中的设置)不会被推送到远程存储库。

请参阅Git Community Book中的this条目,了解.git目录的简要概述,以及this question的进一步讨论。

3

您可以在$ HOME /的.gitconfig

如添加与其使用。

[url "https://git.host.com"] 
     insteadOf = "git://git.host.com" 

[url "ssh://[email protected]"] 
    insteadOf = "git://git.host.com" 

,这将增加您的用户名SSH。

[url "ssh://[email protected]"] 
    insteadOf = "ssh://git.host.com" 
+0

+1对于配置文件的一个有趣的功能 - 但它并不是真的有必要解决这个问题。 – patthoyts 2012-03-14 12:15:38