ExtJS 6将workspace.json添加到gitignore

13 git extjs

我有一个快速的ExtJS 6问题,我希望有人可以帮助我.

我正在使用git进行源控制的多开发团队工作.

我通过以下步骤设置了一个全新的Ext项目;

sencha -sdk /home/user/project/extjs-6.5.3.57 generate app Application /home/user/project/app
Run Code Online (Sandbox Code Playgroud)

构建应用程序,然后运行sencha app watch并做一些初步更改.

从那里我git init初步提交.

一切似乎都顺利,它在我的workspace.json文件中创建了一个条目,就像这样;

"frameworks": {
    "ext": {
        "path":"ext",
        "version":"6.5.3.57"
    }

},
Run Code Online (Sandbox Code Playgroud)

当团队的另一个成员想要开始开发时,会出现问题.

他们克隆回购,设置他们的sencha cmd,然后运行;

sencha app upgrade /home/user/project/extjs-6.5.3.57
Run Code Online (Sandbox Code Playgroud)

这将创建.gitignore文件中的/ build和/ ext目录.

在此之后,如果他们要运行git status则返回说工作区.json已更新.

这种变化似乎只是在检查框架是否会阻塞并添加一些空格.这是渲染的块;

"frameworks": {
    "ext": {
        "path":"ext",
        "version":"6.5.3.57"
    }


},
Run Code Online (Sandbox Code Playgroud)

我想知道是否有其他人遇到过这个以及他们是如何克服它的?..我应该将workspace.json添加到.gitignore文件中,以便它在每个开发者的机器上生成新鲜内容吗?或者我最初做错了什么?

目前我.gitignore看起来像这样;

/build
/ext
bootstrap.*
classic.json*
modern.json*
.sencha
.idea
Run Code Online (Sandbox Code Playgroud)

我正在从项目的根目录运行sencha app升级,所以我的工作目录看起来像这样

/.git
.gitignore
Readme.md
/app
app.js
app.json
build.xml
/classic
/ext
index.html
/modern
/resources
workspace.json
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Von*_*onC 7

首先,典型的ExtJS gitignore文件不包括workspace.json.
所以,你应该不会忽略它.

其次,您可以要求开发人员在他们的git配置中激活一个clean content filter driver可以删除空行的开发人员.

git config filter.workspacejson.clean sed '/^$/d'
Run Code Online (Sandbox Code Playgroud)

该过滤器' workspacejson'在Git存储库中声明为.gitattributes指令.

workspace.json  filter=workspacejson
Run Code Online (Sandbox Code Playgroud)

它会自动申请git diffgit commit任何workspace.json文件,因为在指定的.gitattributes文件.

http://git-scm.com/book/en/v2/book/08-customizing-git/images/clean.png

(来源:Pro Git书:自定义Git - Git属性)

这样,任何git diffgit commit将考虑你的workspace.json不变.