相关疑难解决方法(0)

使用Git的多个工作目录?

我不确定这是否是Git所支持的东西,但理论上它似乎应该对我有用.

我的工作流程通常涉及我同时在多个分支中编辑文件.换句话说,我经常想在一个分支中打开一些文件,而我在另一个分支中编辑另一个文件的内容.

我的典型解决方案是进行两次检查,但遗憾的是我不能在它们之间共享分支和引用.我想要的是只有两个工作目录由同一个.git文件夹管理.

我知道本地git clone解决方案(默认情况下,硬链接共享对象,以及--shared选项,它使用原始repo设置备用对象存储),但这些解决方案只减少了磁盘空间使用量,特别是在--shared的情况下,似乎充满了危险.

有没有办法使用一个.git文件夹,并有两个工作目录由它支持?或者是Git硬编码只是随时检查一个工作目录?

git

233
推荐指数
3
解决办法
8万
查看次数

提交计算机专用配置文件

我开发的一个常见场景是代码库将有几个配置文件需要特定于机器的设置.这些文件将被检入Git,其他开发人员将不小心将它们重新检入并打破其他人的配置.

一个简单的解决方案就是不将它们检入Git,甚至为它们另外添加.gitignore条目.但是,我发现在文件中有一些合理的默认值更加优雅,开发人员可以根据自己的需要进行修改.

有没有一种优雅的方式让Git很好地使用这些文件?我希望能够修改特定于机器的配置文件,然后能够在不检查该文件的情况下运行"git commit -a".

git version-control configuration

78
推荐指数
4
解决办法
9844
查看次数

可以有条件地设置gitconfig选项吗?

通过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?

git git-config

18
推荐指数
4
解决办法
3328
查看次数

如何告诉git忽略我的本地更改,但将文件保留在我的远程仓库中?

在测试/推送到生产时不断更改我的web.config文件变旧,所以当我不更改文件时,必须记住从我的暂存更改中删除它.

我尝试使用Sourcetree中的"停止跟踪"选项(我认为将该文件添加到我的GitIgnore),但看起来它会从我的远程仓库中删除该文件.

是否可以将文件保留我的远程仓库中,并停止跟踪本地更改?

git atlassian-sourcetree

13
推荐指数
1
解决办法
7103
查看次数

GitHub:Windows上两个帐户的单独凭据

我最近创建了第二个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存储执行某些操作,我用它来存储我的工作凭据?它从未要求我私人帐户的密码......

git push credentials github multiple-users

7
推荐指数
1
解决办法
2836
查看次数

Git - [includeIf] 多个 gitconfigs 不起作用

我正在尝试让多个 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吗?

git

7
推荐指数
1
解决办法
1699
查看次数

如何为不同的 git 遥控器指定多个 user.name 和 user.email?

我的本地机器上有一个存储库。这个存储库有 2 个 git 遥控器。遥控器 A 和 B。

  • 远程A需要user.name Xuser.email Y
  • 远程B需要user.name Zuser.email W

这可以在git中实现吗?如果是这样,如何?

git

6
推荐指数
1
解决办法
2476
查看次数

Git 使用了错误的身份(.ssh/config 文件未读取?)

我在公司工作中使用 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)。

有人可以帮忙吗?

谢谢

git ssh-keys

6
推荐指数
1
解决办法
217
查看次数