从我们公司的私有服务器克隆Git存储库时,我遇到了一个非常奇怪的情况.存储库不是匿名的(它需要身份验证),但是在克隆时,VS没有询问任何用户名和密码,并自动使用旧员工的旧身份验证.有没有办法删除保存的用户名和密码,并使Visual Studio在克隆时提示他们?
git visual-studio visual-studio-2013 azure-devops git-credential-manager
我有一台工作计算机,全局配置为在提交时使用我的工作电子邮件和名称.这很好.但是,我想制定某种规则,"如果回购来源是github,请使用用户X和电子邮件Y"
我意识到你可以为每个存储库创建一个配置条目,但我希望它更自动:如果克隆是github,它应该使用github用户详细信息.如果我从工作中克隆,它应该使用工作细节.
有没有办法根据远程域全局配置?或者另一种方式?
编辑/ UPDATE
我接受了下面的答案,但稍微修改了一下脚本:
#!/usr/bin/env bash
# "Real" git is the second one returned by 'which'
REAL_GIT=$(which -a git | sed -n 2p)
# Does the remote "origin" point to GitHub?
if ("$REAL_GIT" remote -v 2>/dev/null | grep '^origin\b.*github.com.*(push)$' >/dev/null 2>&1); then
# Yes. Set username and email that you use on GitHub.
export GIT_AUTHOR_NAME=$("$REAL_GIT" config --global user.ghname)
export GIT_AUTHOR_EMAIL=$("$REAL_GIT" config --global user.ghemail)
fi
"$REAL_GIT" "$@"
Run Code Online (Sandbox Code Playgroud)
主要添加是需要两个git config值.
git config --global user.ghname "Your Name"
git config …Run Code Online (Sandbox Code Playgroud) 我目前正在处理2个项目,当我推送它时,我希望我配置我的本地用户名和电子邮件使用不同的数据.
为此,我一直在更新我的配置,如:
git config --local user.email "namelastname@domain.com"
由于它们是不同的存储库,有没有办法为每个存储库定义本地电子邮件?
也许在.gitconfig?
我使用两个不同的git电子邮件,一个用于工作,一个用于公共项目.最初我以为我可以在我所有的公共存储库所在的文件夹中创建一个单独的.gitconfig和不同的电子邮件,而git会尊重它,但唉似乎不起作用.什么是轻松设置类似内容的最佳方式?我想避免在每个公共回购中专门更改电子邮件.
我想知道如何更改命令的内容git config --list?我将从GitHub中提取/分叉存储库.我将在我的Windows,Linux和Mac工作站上配置这样的存储库.
谢谢.
Git版本: 2.13.0.windows.1
操作系统: Windows 7
CLI: Git bash
的.gitconfig
[user]
name = Gyandeep Singh
email = private@email.com
[push]
default = current
[core]
autocrlf = input
[includeIf "gitdir: ~/Documents/webstorm/corporate/"]
path = .gitconfig-work
Run Code Online (Sandbox Code Playgroud)
的.gitconfig工作
[user]
name = Gyandeep Singh
email = corporate@email.com
Run Code Online (Sandbox Code Playgroud)
发生了什么:在公司文件夹内的文件夹(示例测试)上打开CLI,然后运行git config user.email输出private@email.com.
预期:结果应该是corporate@email.com.
我做错了什么或者我的期望不正确吗?我确实遵循了git文档.
你必须git config --show-origin --get user.email在git初始化目录上运行.如果它没有初始化git那么includeIf gitdir功能将不起作用.
它奇怪但真实.我希望它仍然奏效.
我在自己的项目中工作,现在每个人都为第三方做一些工作,我需要在提交中使用他们的联系信息等.我通常只使用全局提交名称等,但现在我需要根据目录指定提交名称和电子邮件.我怎么能在Git中做到这一点?
也许有用的相关信息
情况如下:
每个域,我想使用不同的电子邮件地址作为作者/提交者信息的一部分.也就是说,我希望我的私人地址列在我的空闲时间项目中,我的公司地址在我的专业地址中.
git config知道3个范围:存储库,全局和系统范围.我基本上需要的是存储库和全局之间的第四个范围,表示一组存储库(或简称文件系统中的目录).
似乎git config不允许这样.当然,我可以为每个存储库设置电子邮件地址,但我希望每次设置或克隆存储库时都避免使用此手动步骤.一种选择是写一个包装脚本git init/clone和git config,是否有其他的想法?
本地存储库-1
我一直在为我的组织的应用程序工作,其git存储库克隆在C盘文件夹中.我已经设置了全局配置,并且我能够执行提交,推送,拉取操作.这是我的组织的私有存储库,具有唯一的用户名,密码和URL.一切正常,这个存储库.
问题
本地存储库-2 现在,我想在同一系统上创建我自己的github项目(不同于第一个)的本地存储库,但是位于不同的位置.此存储库具有与同一系统上的其他存储库不同的配置.所以我关注的是,如何在同一客户端系统上维护特定于存储库的配置(用户名,密码,URL).
我正在同时处理2个项目.一个是我的工作,另一个是我的个人项目.我想使用git作为版本控制软件.
我在我的目录下配置了.gitconfig,如下所示.
1 [user]
2 name = gladder
3 email = gladder
Run Code Online (Sandbox Code Playgroud)
所以git可以自动获取我的用户设置.但是,我只是想知道是否可以在小范围内获得此设置?
因此,项目的用户设置可以覆盖全局用户设置.
git ×10
github ×5
git-config ×3
azure-devops ×1
directory ×1
email ×1
git-bash ×1
git-svn ×1
repository ×1
windows ×1