相关疑难解决方法(0)

将git config存储为存储库的一部分

我使用的过滤器等中记载到结账时裂伤文件在这里.现在的问题是过滤器定义只存储在我的本地配置文件中:

$ cat .git/config
....
[filter "dater"]
        smudge = /home/.../expand_date
        clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"
Run Code Online (Sandbox Code Playgroud)

如果我的同事想要从这种Date扩展中受益,他们需要复制我的过滤器定义.如果我改变它,我需要通知他们等等.

那么我可以将这个过滤器定义部分存储.git/config在存储库中并让git使用它吗?

git

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

git可以忽略特定的行吗?

我在手机的原生浏览器上测试时使用git同步到phonegap.因此我有以下几行:

var isPhoneGap = false;
Run Code Online (Sandbox Code Playgroud)

显然我在构建时更改了这个,但是有什么方法可以设置git来忽略这一行,或者我必须把它放在自己的文件中并忽略它吗?

我在OSX 10.6上使用Gitx和终端.

git gitx

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

处理项目配置文件最简单的方法是什么?

在任何项目中至少有一个配置文件是很常见的.每次与我分享项目时git,我都遇到同样的问题:

  • 敏感信息(每个开发人员都有不同的DB密码等)
  • 任务特定信息(当开发人员处理需要更改某些设置的特定任务时)

显然,必须以某种方式忽略配置,以防止开发人员特定数据泛滥到主存储库.现在有几种我常用的方法,每种方式都有一些缺陷:

  • .gitignore 配置文件
    • 最基本的方式
    • 当开发人员克隆repo时,配置文件丢失,并且必须找出configs重新创建的位置
  • 配置文件不会被忽略.它包含一些虚拟信息,每个开发人员要么解开并将其放入.git/info/exclude或设置git update-index --assume-unchanged ...为文件
    • 克隆repo的任何人都可以使用这些文件
    • 它包含的先进技术可能会使第一次使用git的人感到困惑
    • 当有人意外提交配置文件时,它不允许人们拉/取(因为排除不起作用的方式.gitignore)
  • 例如,_original在具有真实文件的情况下分发以后缀为例的配置文件.gitignore.然后每个开发人员将文件重命名为真实姓名
    • 克隆repo的任何人都可以使用这些文件
    • 一个人必须在整个应用程序中搜索所有配置并重命名它们

有没有其他可能更好的方法来处理这个问题?我怀疑我缺少一些东西,至少是一些插件.

git

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

使用代码分发git配置

在尝试为开发人员标准化平台时,我的一个需求是提交,.git/config以便每个人都有相同的CRLF配置,而不会忘记手动设置它.

我该如何设置?

我对所有这些消极情绪感到担忧autocrlf.如果不起作用,为什么不删除此功能?要么这个功能的制作者被误解,要么他们用它做了一个失败的实验,它应该被删除,以阻止更多的人浪费他们的时间(阅读模糊的手册页,提问,回答这些问题的人等).

git

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

使用git-svn处理SVN关键字扩展

我最近询问了Git中的关键字扩展,我愿意接受这个设计,不要在Git中真正支持这个想法.

无论好坏,我正在进行的项目需要SVN关键字扩展,如下所示:

svn propset svn:keywords "Id" expl3.dtx
Run Code Online (Sandbox Code Playgroud)

保持这个字符串是最新的:

$Id: expl3.dtx 803 2008-09-11 14:01:58Z will $
Run Code Online (Sandbox Code Playgroud)

但我非常想用Git来进行版本控制.不幸的是,根据文档,git-svn不支持这一点:

"除了svn:executable之外,我们忽略了所有SVN属性"

但是,通过一些前/后提交挂钩模拟这个关键字的东西似乎并不太棘手.我是第一个想要这个的人吗?有没有人有一些代码来做到这一点?

svn git version-control

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

Python项目的README扩展

Python打包工具希望我们的自述文件应该命名为README或README.txt.但是,如果我们遵守这个约定,GitHub上显示为项目中的网页,其中不漂亮纯文本.(与名为README.rst的美丽HTML版本不同)

是否有任何技术可以使PyPI和GitHub对README感到高兴.

python github

35
推荐指数
4
解决办法
9444
查看次数

我可以在.gitignore文件中包含其他.gitignore文件吗?(比如c-like语言中的#include)

我有一些文件vim.gitignore,SVN.gitignoreCVS.gitignore(在我的硬盘上传播).

我可以简单地将这些gitignore文件.gitignore包含在新Git项目的文件中吗?

编辑:我已经有一个全局忽略文件.
我只是想忽略不同类型项目中的不同文件,这可能吗?

git gitignore

19
推荐指数
3
解决办法
6097
查看次数

防止在某些文件中推送包含选项卡的git(例如*.cpp,*.h,CMakeLists.txt)

我希望我的远程存储库拒绝任何包含包含选项卡的文件的推送,但前提是该文件属于某个类(基于文件名).那可能吗?
我看了一下update hookgithooks,我认为这是正确的.

所以简而言之,如果出现以下情况,应该拒绝推送

  1. 有所列类型的一个文件(*.cpp,*.h,CMakeLists.txt)
  2. 包含一个或多个制表符.

git githooks

18
推荐指数
1
解决办法
4993
查看次数

如何.gitignore并删除已提交的文件而不影响其他工作副本?

我有一个裸存储库和两个工作副本 - 一个在我的机器上,另一个在服务器上.
事实证明,我必须要有.gitignore一个特定于每台机器的文件.我们称之为' settings.py'.此文件已提交.

我确实把' settings.py'在.gitignore中忽略了它.当我现在更改我的机器上的文件时,git status仍然告诉我

modified:  settings.py
Run Code Online (Sandbox Code Playgroud)

我想我必须删除settings.py,如下所示:

git rm --cached settings.py
Run Code Online (Sandbox Code Playgroud)

然后git add .,接着git commit.

但是,当我现在把它推到裸仓库并将其拉到服务器上的工作副本时,会settings.py被删除 - 这很糟糕,因为我必须保持这个特定的settings.py.

我想我可以复制settings.py并在删除后将其重新放入,但我觉得必须有更好的方法来做到这一点.

git file gitignore delete-file

17
推荐指数
2
解决办法
7601
查看次数

我应该如何向git表明变化是暂时的并且不应该被提交?

在维护实时系统时,我发现有时需要对文件进行临时临时更改 - 更改日志记录级别,向脚本添加跟踪选项等.

当我这样做时,我的半自动机制用于查找未提交的更改和未合并的分支通常会显示误报:

  • 如果我保留未提交的更改,或者只是暂停,那么我的检查程序脚本将repo标记为脏.
  • 如果我将它们作为"临时更改提交"提交,则会将其标记为"远程分支之前的更改"
  • 如果我在没有遥控器的新分支上提交它们,它们会被标记为"没有遥控器的分支".

通常情况下,所有这些都需要找到尚未合并的更改,但这也意味着"隐藏"临时更改的每种方式也会被阻止.

请注意,我不希望--assume-unchanged,因为同一个文件通常包含临时更改(我不想提醒)和永久更改(我这样做),并查看处理临时更改(不承诺)Git没有提出满足所有这些要求的建议.

使用Mercurial,我会考虑使用Mercurial Queues来获得我想要的东西.我会用我的临时更改创建一个补丁,然后如果我的分析实用程序找到一个补丁队列,它会弹出它们,执行分析然后再推回它们.这将有效地仅删除临时更改,仅对我认为不是临时的更改执行分析,然后重新应用这些更改.

任何更改工作目录的方法的问题在于这会影响实时系统的行为 - 例如,我们的日志记录系统每10秒左右检查一次日志记录配置的更新.

那么,我怎样才能最好地指出git某些变化是暂时的,不应该被提交和/或合并,而其他变化应该?

git workflow

14
推荐指数
1
解决办法
255
查看次数

标签 统计

git ×9

gitignore ×2

delete-file ×1

file ×1

githooks ×1

github ×1

gitx ×1

python ×1

svn ×1

version-control ×1

workflow ×1