我有一个.python-version文件,当我用github创建一个Python repo并指定它应该有一个时.gitignore,它会将.python-version文件添加到它.在我看来,该文件不应该被忽略,因为在不同机器上运行代码的其他人想要知道他们需要什么版本的Python.
那么为什么呢.gitignore?
可能吗?本git update-index --assume-unchanged是无解的,被忽略的文件已被跟踪.创建子模块.
例如
cat .customgitignore(1 | 2 | 3 ......)
i-do-not-need-this.extension
Run Code Online (Sandbox Code Playgroud)
猫.gitignore
basic-stuff.extension
<load> .customgitignore1
<load> .customgitignore2
<load> .customgitignore3
etc
Run Code Online (Sandbox Code Playgroud)
问题描述感兴趣的人.
我正在创建私人的配置回购.一个分支=一个配置.附加分支作为工作区.我根据需要将其他分支配置与工作空间合并.Branches-configs每个都有自己的.gitignore,只有在合并后才能应用.我试图在gitignore文件中省略冲突.
我有一个config.php假设在不同分支中的内容不同,例如testing和master.
我在另一个问题(防止合并来自Git的master中的文件)中询问如何防止此文件合并.
但我想知道,这是正确的方法吗?
我相信这是一个非常常见的用例,在不同的环境中有不同的配置文件,你想要跟踪配置,对吧?
我想将所有的dotfiles git存储在存储库中,每个机器都有单独的分支.我有一个问题我无法解决阻止我使用git它的目的.我想知道其他人是如何解决它的.
我将有一个单独的master分支,其中只包含模板定义和定义,这些定义和定义应该对所有分支都是通用的,例如:
export EMAIL="@EMAIL@"
export SURFRAW_google_results=1000
Run Code Online (Sandbox Code Playgroud)
我将用@EMAIL@机器分支上的正确电子邮件替换并提交它但SURFRAW_google_results保持不变.例如,在work分支上我会有这样的:
export EMAIL="user@corp.com"
export SURFRAW_google_results=1000
Run Code Online (Sandbox Code Playgroud)
现在,我决定改为SURFRAW_google_results=100010.它应该在全球范围内共享,所以我首先要改变它master:
export EMAIL="@EMAIL@"
export SURFRAW_google_results=10
Run Code Online (Sandbox Code Playgroud)
然后在我的基础work上master:
$ git checkout work
$ git rebase master
Run Code Online (Sandbox Code Playgroud)
现在我遇到了冲突,因为我改变的线上方的线是不同的:
<<<<<<< a60114eea1c98d2354a07bd4fd0cdd63cba62e93
export EMAIL="@EMAIL@"
export SURFRAW_google_results=10
=======
export EMAIL="user@corp.com"
export SURFRAW_google_results=1000
>>>>>>> m
Run Code Online (Sandbox Code Playgroud)
如果bash我可以迅速通过采购机制包括机器特定的部分,但不支持包括/采购其他配置,如.fluxbox/keys或.screenrc?
例如,Id喜欢修改登录页面,因此它会自动记录我.
我希望这些更改仅适用于我的开发工作站,并且在推送时不可见.如果我在一个分支上创建它,那么我必须在每次推送之前以某种方式取消合并该更改.
git是否支持?
我有一个Ruby on Rails应用程序,我试图在Heroku上托管.我还想使用GitHub公共(免费)存储库来跟踪更改.我需要签入一个包含Heroku远程仓库密码的文件,但忽略该文件,所以我不检查它到GitHub.有没有办法可以将文件添加到一个仓库,而忽略另一个仓库?
更新:我想通过使用Heroku配置变量来解决我在Heroku中存储密码的直接问题.但是,我仍然对将文件推送到指定的存储库的概念感兴趣.
我确定我的Git repo的两个分支应该只在一个文件中有所不同.确保这一点的最简单方法是完成所有工作branch1,并branch2在我切换到它时将其合并(包装到shell脚本中,因此每个交换机只需要一个命令).但是,有没有办法以更少的工作来做到这一点?
我理解这个问题可以是一般的,但是,特别是关于ASP.NET MVC,什么是在本地保存密码但不在git/svn中的最佳方法?我的数据库连接字符串当前在web.config中 - 最好以某种方式在web.config中包含一个不在git中的文件?你们有什么人做的?
我有时使用Codeigniter,在我完成本地站点的开发之后,我需要将文件迁移到服务器./config/需要更改文件夹中的所有文件以匹配服务器设置.对这些更改进行完整的提交是不对的,我只是让Git完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候将它们应用于Git?
我有一个django项目,我正在使用git.
我需要为每个分支设置不同的settings.py文件.
我已经测试了使用merge = ours将settings.py添加到.gitattributes,但它没有用,因为如果它没有任何冲突,Git将正常合并.
另外,添加settings.py到.gitignore不是一个选项,因为如果我在settings.py中更改了某些内容,我希望它被推送到同一个分支.
有没有办法在合并时忽略文件但仍然推送它?
更新:
我尝试过VonC的解决方案,并创建了两个设置:settings_production.py和settings_development.py.
所以,我点了安装gitpython并在我的settings.py中使用它,如下所示:
from git import Repo
import os
r = Repo(os.path.realpath(os.path.dirname(__file__)))
if r.active_branch.__str__( == 'master':
from settings_production.py import *
else:
from settings_development.py import *
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
git ×9
gitignore ×2
asp.net-mvc ×1
codeigniter ×1
deployment ×1
dotfiles ×1
github ×1
heroku ×1
local ×1
passwords ×1
php ×1
pyenv ×1
python ×1
svn ×1