我在我的python程序中使用制表符缩进,但我想与使用空格的人合作(使用git).
有没有办法让git在推/取时自动在空格和制表符之间进行转换(例如,4个空格= 1个制表符)?(类似于CR/LF转换)
假设我检查了我的"主"分支.我已经对"master"进行了一些生产更改,现在我想将我的"实验"分支改为最新的master.但是,我想在不修改工作副本中的任何文件的情况下执行此操作.从本质上讲,我希望所有的魔法都发生在.git目录中,而不需要触及工作副本.
如果不是"不要修改我的工作副本"要求,这只是一个问题:
# current branch is master
git checkout experimental
git rebase master
git checkout master
Run Code Online (Sandbox Code Playgroud)
我真正的问题是,这会修改我的工作副本中的时间戳,即使我通过查看与我开始的完全相同的内容结束.一旦我运行"git checkout experimental",任何包含实验分支中的更改的文件都会将其mtime设置为当前时间 - 因此,自上次重新实验以来,在master中更改的所有文件也是如此.因为mtimes已经改变了,所以像构建工具这样的东西会让人觉得他们需要再做一些工作,即使在我完成时,文件的内容实际上并没有改变.(就我而言,如果项目文件的时间戳发生变化,Visual Studio认为需要花费大量时间来卸载和重新加载项目.)我想避免这种情况.
有没有办法一步完成上述所有操作,而无需修改工作副本中的任何内容 (假设在rebase期间没有冲突)?
(如果有冲突,我更倾向于将显示该错误,然后中止整个操作,而不用修改任何时间戳但是,这只是我的偏好,而不是硬性要求-我不知道什么是一切皆有可能.)
当然我可以编写一个脚本来捕获mtimes,运行git,然后重置mtimes; 但似乎Git已经有办法在没有打扰工作副本的情况下执行rebase这样的事情,因为rebase实际上是关于增量,而不是文件的实际内容.
可以做以下吗?
git rebase --interactive标准样板输出到文件,而不是输出到文件并在编辑器中打开它.git rebase使用已编辑文件的名称重新运行.用例:当然是脚本式的变基.例如,请参阅如何以非交互方式在Git中重新提交提交.
通常在分支机构工作时,我需要引入一些"临时"更改(例如额外的调试信息,或者让我更好地观察我实际工作的更改).
关于这些"临时"变化:
目前我只是将它们保持为未分级状态,并在暂存每次提交时手动跳过它们.但是我不能坚持这个解决方案,因为:
我该怎么处理呢?
gitignore 显然是不可能的,因为我不想忽略整个文件,我仍然对其他提交者的更改感兴趣(我需要不时地将分支重新绑定到主人).
我有时使用Codeigniter,在我完成本地站点的开发之后,我需要将文件迁移到服务器./config/需要更改文件夹中的所有文件以匹配服务器设置.对这些更改进行完整的提交是不对的,我只是让Git完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候将它们应用于Git?
寻找保持配置文件分离的最佳方法,但没有为新开发人员设置环境引入额外的步骤.
我猜一个子模块就足以完成这项工作,但那么我将如何根据手头的任务无缝切换配置,也就是定期拉入DEV配置,在构建期间拉出配置仓库的PROD分支?
需要是:
先感谢您.
git ×6
automation ×1
bitbucket ×1
branch ×1
build ×1
codeigniter ×1
git-branch ×1
git-rebase ×1
gruntjs ×1
indentation ×1
php ×1
rebase ×1
scripting ×1
tabs ×1