注意事项
孙嘉城 edited this page 3 years ago

返回目录

注意事项

5.1 登录地址及账户密码

5.2 使用Windows的同事要特别注意

慎用Windows自带的记事本编辑文件,因为Microsoft开发记事本的团队在每个文件开头添加了0xefbbbf(十六进制)的字符来保存UTF-8编码的文本文件,因此推荐使用Sublime Text(体积小巧,插件强大)、Notepad++(作者反华,不推荐)、Atom(GitHub组织针对Git使用特别开发)、Vscode(程序猿熟悉,插件强大)等编辑器编辑源码。

此外,Windows系统默认换行符为CRLF,Linux系统默认换行符为LF。在Windows下安装Git时,默认配置为本地保存CRLF,Push时自动切换为LF,远程仓库储存LF。但Linux下的Git默认换行符为LF,Push时不检测和替换,直接推送至远程仓库。

因此,

禁止将Windows下的文件直接复制到Linux系统下覆盖原文件并提交!!!

禁止将Windows下的文件直接复制到Linux系统下覆盖原文件并提交!!!

禁止将Windows下的文件直接复制到Linux系统下覆盖原文件并提交!!!

5.3 使用Linux的同事要特别注意

Windows中对于文件的权限变化是自动忽略跟踪的,但Linux中将文件的权限变化也列为被追踪的变化,但Linux中使用共享文件夹传输文件、命令执行时是否加sudo等情况下,会导致文件权限变化,引起Git不必要的文件改动追踪出现。

因此,建议Linux操作系统的同事,在克隆或建立Git仓库后,对于单个仓库进行设置,命令如下

git config --local core.filemode false

设置后即为不再追踪文件权限变化。

5.4 关于非文本文件

Windows中对非文本文件的管理需要留意,可能存在隐藏错误(一般不会出错),且可能无法很好的节省空间。文本文件接受Git管理时,Git会以增量更新的方式保存差异,且可以使用diff等工具命令进行文本比对。但非文本文件(二进制文件之类)Git会采用直接复制的方式储存版本,且不能够使用diff等工具命令进行比对,出现合并冲突时只能手动解决。

因此对于非文本文件,Git可以管理,但其并不擅长且没有优势。管理非文本文件几乎等同于将Git当成一个云盘使用。

5.5 关于工程发布

发布的工程需要生成arm版本或x86版本的可执行文件,实车需要且仅允许部署可执行文件!!

实车需要且仅允许部署可执行文件!

实车需要且仅允许部署可执行文件!

5.6 关于代码兼容性

所有模块的代码都需要注意在版本升级过程中的兼容性,更改并提交他人负责的模块代码需要征求相应负责人的同意。

5.7 关于代码注释和提交

建议每个工程编写一个readme.md文件,提交的代码需要有充分的注释说明,提交前需要使用规范的中文或英文说明,并严格确定和审查要提交的每个文件。

Git与SVN不同,并非在哪个文件夹下执行命令就只扫描当前文件夹下的改动,而是在Git仓库子目录下任意地点执行命令,均对整个仓库进行改动追踪。因此对于仅想追踪并提交单个文件夹下的改动,请按照以下类似格式执行命令:

cd 想提交文件夹的路径
git status ./
git add ./*
git commit -m"注释" ./
git push

另外,强烈推荐按照Angular规范编写代码提交注释,具体模板及解释如下:

注:当配置提交模板后,git commit命令请勿加-m后缀,否则会跳过使用模板。下面的代码部分可直接复制粘贴并保存为为无后缀扩展名的文本文件,文件建议命名为commit_template。

type(scope): subject

body

footer

初次使用时请使用以下命令配置当前仓库的提交模板

git config --local commit.template commit_template

模板设置参考链接:https://www.cnblogs.com/MuyouSome/p/3290844.html

Angular 规范简单说明

参考链接:https://blog.csdn.net/m0_37263637/article/details/86723431

正常情况(区别于特殊的撤销情况)

type字段包括以下几种:

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

scope用于说明 commit 影响的范围,自定

subject是 commit 目的的简短描述,50字左右

Body 部分是对本次 commit 的详细描述

Footer部分包括两种

  1. 不兼容变动:当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法

  2. 关闭 Issue:例如 Closes #123, #245, #992

范例

fix(controller): fix pid parameter error

More detailed explanatory text, if necessary.
Wrap it to about 72 characters or so.

Further paragraphs come after blank lines.
- Bullet points are okay, too
- Use a hanging indent

BREAKING CHANGE: isolate scope bindings definition has changed.
To migrate the code follow the example below:
Before:
    scope: {
      myAttr: 'attribute',
    }
After:
    scope: {
      myAttr: '@',
    }    
The removed 'inject' wasn't generaly useful for directives so there should be no code using it.
Closed \#123, \#245, \#992

特殊情况(撤销/回滚)

此情况下,type字段为revert,后接被撤销 Commit 的首行内容,body部分注明被撤销的提交的哈希值

范例

revert: feat(pencil): add 'graphiteWidth' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

5.8 工程配置软件的使用

使用tool下工程tool_configivsysman配置不同项目需要使用的IVSysMan.xml文件。

工程配置软件

返回目录