相关疑难解决方法(0)

Git - '假设未改变'和'跳过工作树'之间的区别

我对一个我不想提交到我的存储库的文件进行了本地更改.它是用于在服务器上构建应用程序的配置文件,但我想在本地使用不同的设置进行构建.当然,当我将'git status'作为要上演的东西时,该文件总是显示出来.我想隐藏这个特定的更改而不是提交它.我不会对文件进行任何其他更改.

经过一番挖掘后,我看到了两个选项:'假设未改变'和'跳过工作树'.这里的前一个问题谈到了它们,但并没有真正解释它们之间的区别.我的问题是:这两个命令有何不同?为什么有人会使用其中一个?

git git-index

400
推荐指数
3
解决办法
6万
查看次数

git可以在空格和制表符之间自动切换吗?

我在我的python程序中使用制表符缩进,但我想与使用空格的人合作(使用git).

有没有办法让git在推/取时自动在空格和制表符之间进行转换(例如,4个空格= 1个制表符)?(类似于CR/LF转换)

git tabs indentation

192
推荐指数
3
解决办法
5万
查看次数

如何忽略存储库中的文件?

我有一个文件(config.php),已经提交给Git存储库,但我想在本地忽略,即我希望该文件保留在存储库中,但强制Git忽略对它的任何更改.

我将文件放入.gitignore,但它仍然标记为已更改,Git仍在尝试对其进行更改,每次我提交的内容.任何想法,我错过了什么或做错了什么?

git gitignore git-rm

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

git涂抹/清除分支之间的过滤器

有很多相关的问题涉及涂抹/清洁过滤器 - 我花了几个小时阅读它们,并尝试各种选项,但仍然失败.我希望我能以某种方式询问我得到的答案对我有用.

具体来说,我已经阅读了大部分这些答案链接回来的页面:


TL;博士

这是一个详细的问题,但摘要是:

  • 我可以将DEBUG = false文件存储在一个分支上,DEBUG = true在另一个分支中,使用涂抹/清除过滤器来管理该文件吗?如何?

背景

我在bitbucket有各种远程回购.我在Win8上使用SourceTree,将远程存储库克隆到我的笔记本电脑上.我为开发,功能,发布等创建了不同的分支(遵循一个成功的Git分支模型,无论好坏).

我有一个名为的Android java类Dbug.java,它包含一个布尔值,可以在我的代码中打开/关闭各种调试日志记录,模拟等功能.

public static final boolean DEBUG = false;
Run Code Online (Sandbox Code Playgroud)

我希望这个值false在我的"生产"(主)分支上,并且true在我的功能分支上.

  • 这可能是使用过滤器,还是我已经误解了用例?
  • 我不确定过滤器是否在同一本地托管的仓库的两个分支之间如此工作,或者过滤器仅在2个回购之间工作.

创建过滤器

在本地工作,我检查了生产分支.我创建了一个debug_flag.txt使用以下内容调用的测试文件:

// false on production branch
// true on other branches
DEBUG = false;
Run Code Online (Sandbox Code Playgroud)

我在我的本地仓库的根目录中创建了一个文件.gitattributes并添加了过滤器引用:

debug_flag.txt filter=debug_on_off
Run Code Online (Sandbox Code Playgroud)

.git/config用过滤器定义更新了文件:

[filter "debug_on_off"]
    clean = sed -e 's/DEBUG = true/DEBUG = false/'
    smudge = sed -s …
Run Code Online (Sandbox Code Playgroud)

git gitattributes

17
推荐指数
1
解决办法
4027
查看次数

在Git中维护"服务器版本"的唯一方法是什么 - 只更改了配置文件?

我有时使用Codeigniter,在我完成本地站点的开发之后,我需要将文件迁移到服务器./config/需要更改文件夹中的所有文件以匹配服务器设置.对这些更改进行完整的提交是不对的,我只是让Git完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候将它们应用于Git?

php git version-control codeigniter

7
推荐指数
1
解决办法
2084
查看次数