我不确定这是否是Git所支持的东西,但理论上它似乎应该对我有用.
我的工作流程通常涉及我同时在多个分支中编辑文件.换句话说,我经常想在一个分支中打开一些文件,而我在另一个分支中编辑另一个文件的内容.
我的典型解决方案是进行两次检查,但遗憾的是我不能在它们之间共享分支和引用.我想要的是只有两个工作目录由同一个.git文件夹管理.
我知道本地git clone解决方案(默认情况下,硬链接共享对象,以及--shared选项,它使用原始repo设置备用对象存储),但这些解决方案只减少了磁盘空间使用量,特别是在--shared的情况下,似乎充满了危险.
有没有办法使用一个.git文件夹,并有两个工作目录由它支持?或者是Git硬编码只是随时检查一个工作目录?
我开发的一个常见场景是代码库将有几个配置文件需要特定于机器的设置.这些文件将被检入Git,其他开发人员将不小心将它们重新检入并打破其他人的配置.
一个简单的解决方案就是不将它们检入Git,甚至为它们另外添加.gitignore条目.但是,我发现在文件中有一些合理的默认值更加优雅,开发人员可以根据自己的需要进行修改.
有没有一种优雅的方式让Git很好地使用这些文件?我希望能够修改特定于机器的配置文件,然后能够在不检查该文件的情况下运行"git commit -a".
通过Github我在几台不同的计算机和服务器上使用相同的"点文件".在我直接控制的Mac和Linux机器上,我安装了Sublime Text 2并设置为我的git merge和commit编辑器.但是,在远程(即不在我的直接控制下)服务器上,我会选择使用vim.
我宁愿不.gitconfig为这些远程服务器创建和维护第二个.有没有办法做这样的事情:
[core]
if [[ $IS_REMOTE -eq 1 ]]; then
editor = "vim"
else
editor = "subl -n -w"
fi
Run Code Online (Sandbox Code Playgroud)
我以某种方式根据主机名设置$ IS_REMOTE?
在测试/推送到生产时不断更改我的web.config文件变旧,所以当我不更改文件时,必须记住从我的暂存更改中删除它.
我尝试使用Sourcetree中的"停止跟踪"选项(我认为将该文件添加到我的GitIgnore),但看起来它会从我的远程仓库中删除该文件.
是否可以将文件保留在我的远程仓库中,并停止跟踪本地更改?
我最近创建了第二个GitHub帐户,分别是我的工作和我的私人项目(之前,我只有工作帐户).我将https与Windows凭据存储结合使用.要自动选择正确的帐户,我会按照此处的建议存储我的私人帐户信息~/.gitconfig和工作帐户信息.~/work/.gitconfig
不幸的是,当我尝试在我的私有存储库中推送更改时,我收到以下错误:
$ git push
remote: Permission to privateuser/privaterepo.git denied to workuser.
fatal: unable to access 'https://privateuser@github.com/privateuser/privaterepo.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)
我将远程URL设置为git remote set-url origin https://privateuser@github.com/privateuser/privaterepo.git类似于此处的建议.推进我的工作回购仍然工作正常.当我输入git config user.name我的私人/工作回购时,我分别得到我的私人/工作用户名 - 应该是这样.
新的私有存储库有什么问题?为什么git仍然认为我是workuser,当我试图推送到我的私人回购?它是否必须对Windows Credential存储执行某些操作,我用它来存储我的工作凭据?它从未要求我私人帐户的密码......
我正在尝试让多个 gitconfigs 在我的 repos use 上工作[includeIf]。我在~/Development/Business/work/有一个定期回购,在~/Development/Business/test/有一个测试回购。
以下全局 gitconfig 和特定 gitconfigs 如下:
~.gitconfig
[user]
name = First Last
email = email@email.com
[includeIf "gitdir:~/Development/Business/test/"]
path = ~/Development/Business/test/.gitconfig
Run Code Online (Sandbox Code Playgroud)
~/Development/Business/test/.gitconfig
[user]
name = First Last
email = test@email.com
Run Code Online (Sandbox Code Playgroud)
我的 HOME 环境变量是 C:\
当我git config user.email在路径上运行时,~/Development/Business/test/repo1我收到以下输出:
git config user.email
email@email.com
Run Code Online (Sandbox Code Playgroud)
但是,预期的结果应该是:
git config user.email
test@email.com
Run Code Online (Sandbox Code Playgroud)
当我运行git --show-origin user.email输出是
文件:C://.gitconfig email@email.com
它不应该指向test/.gitconfig吗?
我的本地机器上有一个存储库。这个存储库有 2 个 git 遥控器。遥控器 A 和 B。
user.name X和user.email Y。user.name Z和user.email W。这可以在git中实现吗?如果是这样,如何?
我在公司工作中使用 gitlab.com,在个人工作中使用 github.com。我已经阅读了很多线程,很多关于身份问题的主题,但是,我仍然无法理解为什么它对我不起作用。
我有一个~/.ssh/config文件如下
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/perso_id_rsa
Host gitlab
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
还有大师 ~/.gitconfig
[user]
email = my_company_address
name = my_company_name
[includeIf "gitdir:~/Workspace/perso"]
path = ~/Workspace/perso/.gitconfig
Run Code Online (Sandbox Code Playgroud)
而一个 ~/Workspace/perso/.gitconfig
[user]
email = my_perso_email
name = my_pseudo
Run Code Online (Sandbox Code Playgroud)
当我从 ~/Workspace/perso/my_perso_project 中的 perso 项目提交时,提交作者是我的公司地址(提交毫无问题地推送到 github)。
有人可以帮忙吗?
谢谢