我使用的过滤器等中记载到结账时裂伤文件在这里.现在的问题是过滤器定义只存储在我的本地配置文件中:
$ 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同步到phonegap.因此我有以下几行:
var isPhoneGap = false;
Run Code Online (Sandbox Code Playgroud)
显然我在构建时更改了这个,但是有什么方法可以设置git来忽略这一行,或者我必须把它放在自己的文件中并忽略它吗?
我在OSX 10.6上使用Gitx和终端.
在任何项目中至少有一个配置文件是很常见的.每次与我分享项目时git,我都遇到同样的问题:
显然,必须以某种方式忽略配置,以防止开发人员特定数据泛滥到主存储库.现在有几种我常用的方法,每种方式都有一些缺陷:
.gitignore 配置文件
.git/info/exclude或设置git update-index --assume-unchanged ...为文件
.gitignore)_original在具有真实文件的情况下分发以后缀为例的配置文件.gitignore.然后每个开发人员将文件重命名为真实姓名
有没有其他可能更好的方法来处理这个问题?我怀疑我缺少一些东西,至少是一些插件.
在尝试为开发人员标准化平台时,我的一个需求是提交,.git/config以便每个人都有相同的CRLF配置,而不会忘记手动设置它.
我该如何设置?
我对所有这些消极情绪感到担忧autocrlf.如果不起作用,为什么不删除此功能?要么这个功能的制作者被误解,要么他们用它做了一个失败的实验,它应该被删除,以阻止更多的人浪费他们的时间(阅读模糊的手册页,提问,回答这些问题的人等).
我最近询问了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属性"
但是,通过一些前/后提交挂钩模拟这个关键字的东西似乎并不太棘手.我是第一个想要这个的人吗?有没有人有一些代码来做到这一点?
Python打包工具希望我们的自述文件应该命名为README或README.txt.但是,如果我们遵守这个约定,GitHub上显示为项目中的网页,其中不漂亮纯文本.(与名为README.rst的美丽HTML版本不同)
是否有任何技术可以使PyPI和GitHub对README感到高兴.
我有一些文件vim.gitignore,SVN.gitignore和CVS.gitignore(在我的硬盘上传播).
我可以简单地将这些gitignore文件.gitignore包含在新Git项目的文件中吗?
编辑:我已经有一个全局忽略文件.
我只是想忽略不同类型项目中的不同文件,这可能吗?
我希望我的远程存储库拒绝任何包含包含选项卡的文件的推送,但前提是该文件属于某个类(基于文件名).那可能吗?
我看了一下update hookgithooks,我认为这是正确的.
所以简而言之,如果出现以下情况,应该拒绝推送
*.cpp,*.h,CMakeLists.txt)我有一个裸存储库和两个工作副本 - 一个在我的机器上,另一个在服务器上.
事实证明,我必须要有.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并在删除后将其重新放入,但我觉得必须有更好的方法来做到这一点.
在维护实时系统时,我发现有时需要对文件进行临时临时更改 - 更改日志记录级别,向脚本添加跟踪选项等.
当我这样做时,我的半自动机制用于查找未提交的更改和未合并的分支通常会显示误报:
通常情况下,所有这些都需要找到尚未合并的更改,但这也意味着"隐藏"临时更改的每种方式也会被阻止.
请注意,我不希望--assume-unchanged,因为同一个文件通常包含临时更改(我不想提醒)和永久更改(我这样做),并查看处理临时更改(不承诺)Git没有提出满足所有这些要求的建议.
使用Mercurial,我会考虑使用Mercurial Queues来获得我想要的东西.我会用我的临时更改创建一个补丁,然后如果我的分析实用程序找到一个补丁队列,它会弹出它们,执行分析然后再推回它们.这将有效地仅删除临时更改,仅对我认为不是临时的更改执行分析,然后重新应用这些更改.
任何更改工作目录的方法的问题在于这会影响实时系统的行为 - 例如,我们的日志记录系统每10秒左右检查一次日志记录配置的更新.
那么,我怎样才能最好地指出git某些变化是暂时的,不应该被提交和/或合并,而其他变化应该?