相关疑难解决方法(0)

最终将使用哪个版本的git文件:LOCAL,BASE还是REMOTE?

当有一个collison期间git merge,我打开一个名为Meld的合并工具.它打开三个文件LOCAL,BASE和REMOTE.正如我读过LOCAL是我的本地分支,BASE是共同的祖先,REMOTE是要合并的分支.

现在问我的问题:最终会使用哪个版本的文件?是REMOTE吗?如果是这样,我可以根据需要编辑它,不管BASE分支中的内容是什么?

git meld git-merge

166
推荐指数
6
解决办法
9万
查看次数

在Windows上更改.gitconfig位置

默认情况下,Windows Git将全局.gitconfig放入 c:\documents and settings\user\

如何更改该位置以便.gitconfig存储在c:\my_configuration_files\

它可以完成吗?

windows git

98
推荐指数
8
解决办法
11万
查看次数

Git忽略对部分跟踪文件的本地更改

具体来说,我维护了我的dotfiles的git存储库.我最近开始研究一台新机器,并在同一台机器上克隆了我的存储库.

现在,我希望对我的dotfiles进行一些更改,这些更改仅适用于此系统.我希望在我的存储库中忽略这些更改.

我应该继续跟踪和提交其他更改.

例如,在我的.gitconfig中,我有一个设置为:

[push]
   default = simple
Run Code Online (Sandbox Code Playgroud)

现在,在我的新机器上,git的版本使用得很旧.它仍然不支持simplepush 的设置.所以,我想改变这一点,但仅限于本地.

但是,如果我对.gitconfig进行任何其他更改,我想跟踪这些.无论如何我能做到这一点?

编辑:
我知道git update-index --assume-unchanged.它的问题是git将不再跟踪我的文件,直到我反转它.然后,它将跟踪所有变化.
我希望忽略某些变化并跟踪其余变化.

git

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

git,不要在未跟踪文件列表中显示*.pyc!

做的时候:

>git status
Run Code Online (Sandbox Code Playgroud)

它显示了"未跟踪文件"下的.pyc文件的大列表.我不希望它显示这些,因为它增加了噪音.

换句话说,我如何一直为所有项目制作git ignore .pyc文件?

编辑

我不是想要一种方法将我被忽略的文件传播给其他人,我的意思是"对于所有项目",这意味着我不想将每个新项目配置为忽略.pyc文件.

UPDATE

我应该补充说我正在使用Windows,我的git是msysgit

用户希望git在所有情况下忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常会进入用户的〜/ .gitconfig中的core.excludesfile指定的文件中.

.gitconfig是文件还是文件夹?我的主目录中没有这样的东西(C:\users\<myusername>\)

UPDATE2

谢谢大家的回复,

我使用以下方法解决了这些问题

>git config --global core.excludesfile c:\git\ignore_files.txt
Run Code Online (Sandbox Code Playgroud)

并将*.pyc放入 c:\git\ignore_files.txt

git version-control ignore

61
推荐指数
5
解决办法
6万
查看次数

为所有子文件夹设置git配置值

我知道可以设置覆盖用户级配置的每个repo配置(即/path/to/my/repo/.gitconfig覆盖~/.gitconfig).是否可以设置git配置覆盖给定文件夹的所有子文件夹的用户级设置?即,我有

|--topLevelFolder1
|--\
|   ---.gitconfig_override
|--\
|   ---childFolder1
|       \---[...]
|--\
|   ---childFolder2
|       \---[...]
Run Code Online (Sandbox Code Playgroud)

我希望定义的设置.gitconfig_override适用于childFolder1childFolder2.

我的动机如下:我有一台工作笔记本电脑,我也在业余时间用于个人项目.我的所有工作代码都嵌套在一个文件夹中.当我推动工作git repos时,我需要用我的工作角色 - 工作登录而不是名字,以及工作电子邮件.当我推送到我自己的个人(github)回购时,我想用我的真实姓名和个人电子邮件这样做.

我想到的其他可能的解决方案(和问题):

  • 为"工作"和"播放"创建单独的用户,适当地设置他们的用户级设置,并在切换上下文时以适当的用户身份登录(麻烦,加上我很容易忘记切换)
  • 创建一个脚本,在"workFolder"中搜索git repos,并添加/更新他们的.gitconfig文件以保存相应的详细信息(如果我创建一个repo并忘记在推送之前运行脚本,我将推送错误的人)
  • "hack"git,这样每次创建一个repo时,它都会检查文件路径,并在适当的情况下更新.gitconfig文件(复杂,混乱,几乎可以肯定是错误的方法 - 加上,我不会第一个线索如何去做!)

我检查了这个问题,它似乎只包含单个回购的解决方案,而不是多个.希望有人会看到错过那个问题的这个问题!

git

50
推荐指数
4
解决办法
7209
查看次数

git在推/拉时加密/解密远程存储库文件

是否可以在传输到远程存储库之前通过'git push'自动加密文件?并在'git pull'时自动解码它们.

即,如果我有一些远程服务器与git存储库共享访问,我不希望我们的项目没有权限被盗...也许在推和拉之前有一些特殊的git-hooks?

git encryption

41
推荐指数
4
解决办法
2万
查看次数

如何维护(大多数)并行分支只有一些差异

场景:我正在尝试在git下获取我的unix点文件.我必须在(至少)cygwin环境和一些标准的Linux发行版(ubuntu和opensuse)之间工作,并且我有特定于cygwin的文件/代码行.由于我不想检查无用的文件或者不得不处理我的dotfiles中的大量案例,我正在为我的每个环境创建分支.但是我做的大部分编辑对所有环境都是通用的,所以几乎每次我提交时我都需要将该更改传播到我的所有分支.

所以基本上我有几个几乎相同的分支,除了一些提交,并且我需要在所有分支中进行大多数提交.

问题:如果有的话,推荐的git工作流程是什么?或者,对于我的场景,是否有更好的设置(不使用多个分支?)?

[我尝试过采摘樱桃,但这涉及到相当多的工作,更不用说这里的所有重复提交以及保持我的分支同步的噩梦.]

git dotfiles

24
推荐指数
2
解决办法
7630
查看次数

在.gitconfig中隐藏GitHub令牌

我想将所有的dotfiles存储在GitHub上,包括.gitconfig,它要求我在.gitconfig中隐藏GitHub令牌.

为此,我有一个".gitconfig-hidden-token"文件,这是我打算编辑的文件并放在git下隐藏令牌:

...
[github]
user = giuliop
token = --hidden--
...
Run Code Online (Sandbox Code Playgroud)

如果我修改".gitconfig-hidden-token"文件来创建".gitconfig"文件,我需要启动一个shell脚本:

cp .gitconfig .gitconfig.backup
sed 's/--hidden--/123456789/' .gitconfig-hidden-token > .gitconfig
Run Code Online (Sandbox Code Playgroud)

缺点是每次修改文件时都需要手动启动脚本.有没有更好的,完全自动化的方法来做到这一点?

linux git bash github

15
推荐指数
2
解决办法
5546
查看次数

我可以从另一个加载一个.gitconfig文件吗?

可能重复:
是否可以在.gitconfig中包含文件

使用bash和zsh,我可以获取子文件,以便更好地组织我的配置.

我可以做类似的事.gitconfig吗?

git git-config

11
推荐指数
2
解决办法
2832
查看次数

在Windows上为git设置全局配置选项时,它将在何处写入?

如果你在Windows上设置这样的东西:

git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)

这个全局设置写在哪里?

git configuration newline global

8
推荐指数
1
解决办法
7246
查看次数

在.gitconfig中指定Windows路径的语法是什么?

我正在尝试使用include.path此处描述配置,但我似乎无法在Windows上找到正确的路径语法.

我目前的.gitconfig:

[include]
    path = 'D:\Scott\Shared\config\common.gitconfig'
Run Code Online (Sandbox Code Playgroud)

但是git抱怨道: fatal: bad config file line 2 in C:\Users\Scott/.gitconfig

什么是逃避Windows路径的正确方法?注意:我使用的是Powershell的git而不是git bash.

windows git powershell path

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

如何版本 .git/config 文件?

我有一个 .gitignore 文件,如下所示:

.*
!.gitignore
Run Code Online (Sandbox Code Playgroud)

我想对我的.git/config文件进行版本控制,以便在我执行git pull.git/config 文件时自动更新。

我怎样才能做到这一点?

我试过类似的东西:

.*
!.gitignore
!.git/config
Run Code Online (Sandbox Code Playgroud)

但这没有用。我知道如果我创建了一个链接 ( ln -s .git/config configurations/git/config),我可以对其进行版本控制,但我想要一种更好的方法来自动更新原始链接。

我正在考虑创建一个指向它的硬链接 ( ln .git/config configurations/git/config configuration/git),但这似乎不是最好的方法。有没有办法避免这种情况?对硬链接进行版本控制时,Git 会正常工作吗?

编辑:解释为什么要这样做

这样做的主要动机是我想对我的用户的主文件夹进行版本控制。我将使用此版本控制来帮助我进行某种部署。我想保持所有克隆同步。如果我处理不好,就会出现冲突,我会处理好这件事。也许我也会对另一个受保护的 git 文件进行版本控制。

git version-control config gitignore

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

有没有办法告诉git忽略文件的某些行?

我正在尝试将我的.bashrc .gitconfig和其他有用的配置放到github上(因为我想分享一些有价值的代码片段),但问题是我不想分享某些"关于我的有价值的信息" ,

那么有没有办法告诉git忽略文件的某些模式或行(例如.gitignore?)

注意:我想知道如何进行我的bashrc共享(我将保留bashrc公共事物并将私有移动到我不会分享的bashprofile)但我有点想知道如何共享我的gitconfig(有一些非常好的别名)

谢谢

git gitignore

4
推荐指数
1
解决办法
3538
查看次数