只是好奇GIT是否有类似Subversions Changelist功能的东西,我觉得它在飞行中非常方便,我知道我可以运行类似的东西
__CODE__但我很好奇是否有内置方法?干杯.
Pat*_*k M 15
我为此搜索了一下,我想我已经找到了我在上面评论中提到的TortoiseSVN ignore-on-commit变更列表用例的替代品.有问题的命令是git update-index --assume-unchanged <path/name>.Git帮助有这个说:
- [无糖]假设 - 不变
指定这些标志时,不会更新为路径记录的对象名称.相反,这些选项设置和取消设置路径的"假定未更改"位.当"假定未更改"位打开时,Git停止检查工作树文件是否有可能的修改,因此您需要手动取消设置该位以在更改工作树文件时告诉Git.当在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大项目时,这有时是有用的.
此选项还可以用作粗略的文件级机制,以忽略跟踪文件中未提交的更改(类似于.gitignore对未跟踪文件的更改).如果需要在索引中修改此文件,例如在提交中合并时,Git将失败(优雅); 因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况.
我在Nick Quaranto的GitReady博客上找到了对该选项的解释,其中包括以下内容:
显然,有很多警告可以发挥作用.如果您
git add直接使用该文件,则会将其添加到索引中.将提交与此标志合并将导致合并正常失败,因此您可以手动处理它.
但那只是我战斗的一半.下一步是知道你忽略了什么(并希望记住原因).这是由Abe Voelker在一个恰当命名的问题上的这个方便的评论提供的.只需.gitconfig使用代码段编辑您的文件即可
[alias]
ignored = !git ls-files -v | grep "^[[:lower:]]"
Run Code Online (Sandbox Code Playgroud)
[alias]如果您的文件中已存在该位,请勿添加该位.现在git ignored会告诉你这样的事情:
h configs/environment/local.php
h configs/logging/log4php.xml
Run Code Online (Sandbox Code Playgroud)
你可以用别名了一步借此ignore和unignore与下面几行:
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
Run Code Online (Sandbox Code Playgroud)
kni*_*ttl 13
我自己从未使用过SVN更改列表,但如果我理解正确,它允许您将文件分组到更改列表中,然后单独提交这些更改列表.(对?)
我不认为你真的需要Git这样的功能.您已经可以单独分阶段(git add)每个文件或其中的一部分(git add -p)并提交它们.您可以为每个更改列表创建分支,然后合并/重新绑定这些分支.或者您可以创建多个提交,然后使用交互式rebase(git rebase -i)重新排序它们.
而不是svn diff --changelist something,你将简单地使用git show changelistbranch.
您不必推送那些本地/临时分支机构.没有人需要看到它们,直到你认为它们准备好被释放到野外.
您甚至可以命名为"changelist branches":,git branch changelist/name_of_your_changelist然后您将按照前缀对所有更改列表进行分组.
我错过了什么吗?
| 归档时间: |
|
| 查看次数: |
7884 次 |
| 最近记录: |