- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在使用一个 subversion 存储库,但我正在使用 git 在我的机器上本地工作。它使工作变得更容易,但它也使 subversion 存储库中发生的一些不良行为非常明显,这给我带来了问题。
在下 pull 代码后有一个有点复杂的本地构建过程,它创建(不幸的是修改)了许多文件。显然,这些更改并不意味着要提交回存储库。不幸的是,构建过程实际上是在修改一些跟踪文件(是的,很可能是因为有人在某个时候错误地将这些构建工件提交到颠覆存储库)。由于这些是修改,将它们添加到我的忽略文件对我没有任何作用。
我可以避免检查这些更改,我只是不暂存或提交它们,但是未暂存的本地更改意味着我不能在不先清理它们的情况下 rebase 。
我想知道的是,是否有任何方法可以忽略对一组跟踪文件的 future 更改?或者,是否有另一种方法来处理我遇到的问题,或者我是否只需要告诉 checkin 这些文件的人清理它们?
最佳答案
作为Nathan said ,清理这些文件(取消跟踪)是明智之举。
但是如果你必须忽略跟踪的文件(这不是忽略文件的 native Git 方式:Git 只忽略非跟踪 文件),你可以设置一个进程来复制文件的内容您想要忽略的文件,并在提交时恢复。
我最初认为 smudge/clean process , 那是一个 gitattributes filter driver可以做到这一点:
,其中:
但是,作为 stated in this post ,这意味着通过添加有状态的上下文(即被污染/清理的文件的完整路径名)来滥用此无状态文件内容转换。
这是 J.C. Hamano 明确禁止的:
Although I initially considered interpolating "
%P
" with pathname, I ended up deciding against it, to discourage people from abusing the filter for stateful conversion that changes the results depending on time, pathname, commit, branch and stuff.
甚至Linus Torvalds had some reservations当时关于all机制:
I have to say, I'm obviously not a huge fan of playing games, but the diffs are very clean.
Are they actually useful? I dunno. I'm a bit nervous about what this means for any actual user of the feature, but I have to admit to being charmed by a clean implementation.
I suspect that this gets some complaining off our back, but I also suspect that people will actually end up really screwing themselves with something like this and then blaming us and causing a huge pain down the line when we've supported this and people want "extended semantics" that are no longer clean.
But I'm not sure how valid an argument that really is. I do happen to believe in the "give them rope" philosophy. I think you can probably screw yourself royally with this, but hey, anybody who does that only has himself to blame
因此添加某种保存/恢复机制(并有效地忽略对 Git 中的一组跟踪文件的任何更改)的正确位置将在 hooks 中:
post-checkout
:在更新工作树后运行 git checkout 时调用。在那里你可以运行一个脚本来收集所有要忽略的文件并将它们保存在某个地方。
pre-commit
:在获取建议的提交日志消息并进行提交之前,您可以运行第二个脚本来恢复这些文件的内容.
关于svn - 使用 Git 处理颠覆 : Ignoring modifications to tracked files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2562523/
我正在努力掌握 perl。我正在尝试编写一些脚本作为调度模拟器。 FCFS、SSTF 和 Scan and Look 我有一个包含 block 请求列表的数组,另一个用作缓冲区。首先,我将复制第一个请
假设我正在ng-repeat处理images,它是一个包含src 和 的对象数组>标题属性。 var images = [ {src: 'a.jpg', caption: 'a'}, {src
“git branch --track”和“git checkout -b --track”之间有什么区别,如果有的话? 最佳答案 内部 git-branch 被调用,然后新分支被 check out
我在自定义 Android Switch 小部件的外观时遇到问题。我有自定义的 xml 可绘制对象,我想将其用于拇指(通常显示开或关的小按钮部分)和轨道(拇指滑过的背景)。当我使用 android:t
文档有点太简单了,我无法完全理解 A controller thus effectively has three modes of operation, determined by whether i
已在 Google Analytics(分析)帮助论坛中发布此内容,但无人能提供帮助。希望我在这里有更多的运气......: 我对我的网页使用 Google Anlaytics 异步跟踪。像个魔法一样
我有一个简单的ng-repeat,其中track by表达式不起作用。这是Fiddle . {{n}} 生成的标记“track”是表达式 [[1,2,3,4,5,5,5,5] track
我想使用 Spotify iOS SDK 从选定的播放列表中获取轨道。但它总是不返回我的数组中的任何项目。我正在使用以下代码来获取轨道: [SPTPlaylistSnapshot playlistWi
我正在尝试将一维数组分配给我的默认构造函数,但我不断收到此错误消息。有没有办法为同一个类创建两个默认构造函数,一个不带参数,一个带参数? 标题 #include #include using na
问题中的答案Android play console: internal testing version, close testing ? how does it works?说: End users
也许有人可以告诉我如何在 Switch() 中设置 Track Width、Track StrokeWidth、Thumb Diameter 的大小 Switch(
我有一个适用于 Android 和 iOS 的移动应用,两者都是使用 Xamarin 构建的。 Android - 该应用会上传到 Beta 轨道 上的 Play 商店,测试完成后,就会升级到生产轨道
我在我的 http 请求中发送一个 Json 格式的用户实体,如下所示: POST http://localhost:52054/api/Authentication/DeleteAccessToke
我正在研究 Java 类介绍的最终项目。该项目的一部分涉及从 MusixMatch using their API 获取歌词片段。我可以使用 track.lyrics.get 从 API 获取歌词,但
我将 ASP.NET Core 与 EFCore 2.0.3 和 Automapper 6.2.2 一起使用 这是我的模型: public class StudentClass {
所以我同时使用 react-native-video 和 react-native-track-player,通常两者都工作正常,但是要使用视频播放器的一些额外功能,比如缓冲,我必须使用 Exo pl
有时我听到人们讨论跟踪编程错误的好处,如果不是为了提高对常见错误的认识的话。我已经开始保留我在代码中发现的错误列表,以及可能导致这些错误的原因。我的主要问题是: 我应该保留哪些与我的错误相关的信息 跟
可以对卡尔曼滤波器更新的估计值应用上限和下限约束吗? 我有一种在实际生活中只能有非负值的状态。当我应用卡尔曼滤波器时,此状态会更新为具有负值。如何在卡尔曼滤波器中应用此限制约束? 请回复 谢谢 最佳答
我正在构建一个使用Sendgrid Marketing Email API的应用程序,目的是发送新闻通讯。它具有许多文章链接,还包括横幅广告和其他服务链接。我们显然希望继续跟踪文章链接,但要排除其他链
我所在的团队管理着许多软件项目 - 我们所做的大部分工作都是端到端的,从需求跟踪到项目管理再到采购和设置 - 财务跟踪是我们的一大难题我们的财务有一个完整的过程。目前我们使用电子表格并将所有发票和采购
我是一名优秀的程序员,十分优秀!