V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
FieldFarmer
V2EX  ›  git

Git 可以使用中文作为分支名?

  •  
  •   FieldFarmer · 2020-05-28 11:01:59 +08:00 · 9404 次点击
    这是一个创建于 1400 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很多功能模块的分支一堆英文不能很清楚的表达意思,想直接用中文作为分支名,不知道 git 是否支持会不会乱码,公司自己搭的 gitlab,分支名没有要求一定要中文,网上搜资料也找不到,想试下但是又怕乱码了

    第 1 条附言  ·  2020-05-28 13:30:02 +08:00
    目前已经在使用中文名的分支了,暂时没发现问题,可能以后会有问题吧,等到有 BUG 再到这个问题下告诉大家
    第 2 条附言  ·  2020-05-29 08:59:31 +08:00
    这里统一回复大家:
    BUG 彻底修复后,想知道每个分支的修改内容很容易,我可以看每个 commit 的注释内容来区分每个分支,但是现在我的问题是:本地有一堆英文分支没有 push,比如我为了修复 5 个 BUG,创了 5 个英文分支都比较类似 xxFix 、xxBugFix (由于这 5 个 BUG 属于一个大模块,但不是同一时间创建的),当我依次修复了 a 、b 、c 、d 、e 分支时,此时处于 e 分支时,发现了一个与 a 分支有同级问题,想从 e 分支切换至 a 分支修改,但是关键是我处于 e 分支,我并不能分清刚刚出现的问题是属于 a 分支还是 bcd 分支,若为了一个新问题再创一个问题,则又陷入英文分支名无法分清的问题)。

    最后总结:问题关键点 1 、我个人无法用英文准确的描述同一模块多个 BUG 而产生的多个分支名。2 、git 我还需要再多练练
    44 条回复    2020-05-29 12:50:24 +08:00
    wysnylc
        1
    wysnylc  
       2020-05-28 11:07:57 +08:00   ❤️ 1
    可以
    ETiV
        2
    ETiV  
       2020-05-28 11:08:58 +08:00 via iPhone   ❤️ 1
    push 上去发现乱码了再删呗
    hantsy
        3
    hantsy  
       2020-05-28 11:12:43 +08:00   ❤️ 1
    工作代码范围的所有说明,建议用英文,包括代码注释,Commit 信息 等。
    ligiggy
        4
    ligiggy  
       2020-05-28 11:12:48 +08:00   ❤️ 1
    @ETiV 那你可以帮帮我吗(手动狗头)
    Vegetable
        5
    Vegetable  
       2020-05-28 11:18:26 +08:00   ❤️ 1
    按理说,你代码里肯定会有中文,gitlab 能正常显示。分支名也不会有问题,起码 git 本身完美支持
    dalidali
        6
    dalidali  
       2020-05-28 11:19:12 +08:00   ❤️ 1
    中文无问题
    FieldFarmer
        7
    FieldFarmer  
    OP
       2020-05-28 11:25:04 +08:00
    好的,那我就放心用了,此贴已结,感谢大家
    statement
        8
    statement  
       2020-05-28 11:54:52 +08:00 via iPhone   ❤️ 6
    说建议都用英文的。是不考虑实际情况嘛? 全用英文 需要整个团队都有良好的英文读写能力。 至少国内 80%公司做不到 包括那些泄露代码出来的大厂很多都是中文。 建议发帖也用英文
    wysnylc
        9
    wysnylc  
       2020-05-28 11:59:33 +08:00
    @statement #8 人家肯定是日常全英文交流的啦
    cheng6563
        10
    cheng6563  
       2020-05-28 11:59:34 +08:00 via Android
    可以是可以,但配合 docker 用的时候可能会炸。。
    szq8014
        11
    szq8014  
       2020-05-28 12:01:40 +08:00
    git 的主要维护者不是有一个日本人吗,他肯定会考虑到 CJK 这边的问题的
    nieyujiang
        12
    nieyujiang  
       2020-05-28 12:04:31 +08:00
    中文名没问题,但是 ci 自动化之类的东西跟 git 关联可能会有问题.
    CEBBCAT
        13
    CEBBCAT  
       2020-05-28 12:14:13 +08:00 via Android   ❤️ 2
    你别忙着终结这个帖子,你先问问老大让不让,不然的话小心被“看智障一样的眼神”杀死
    no1xsyzy
        14
    no1xsyzy  
       2020-05-28 12:22:12 +08:00
    也可以开 issue 然后 branch 名字用 issue 编号,还有地方讨论,一举两得
    GeruzoniAnsasu
        15
    GeruzoniAnsasu  
       2020-05-28 12:23:40 +08:00 via Android   ❤️ 1
    git 连 emoji 都支持,中文放心用
    knightdf
        16
    knightdf  
       2020-05-28 12:31:30 +08:00
    为什么要给自己找麻烦呢?
    arvinsilm
        17
    arvinsilm  
       2020-05-28 12:44:47 +08:00
    实在不行用拼音+驼峰也比中文强
    forcecharlie
        18
    forcecharlie  
       2020-05-28 12:46:40 +08:00
    可以,如果乱码则是相关平台没做好,git 的分支名有特定的规则:

    ```
    /*
    * How to handle various characters in refnames:
    * 0: An acceptable character for refs
    * 1: End-of-component
    * 2: ., look for a preceding . to reject .. in refs
    * 3: {, look for a preceding @ to reject @{ in refs
    * 4: A bad character: ASCII control characters, and
    * ":", "?", "[", "\", "^", "~", SP, or TAB
    * 5: *, reject unless REFNAME_REFSPEC_PATTERN is set
    */
    ```
    sunzongzheng
        19
    sunzongzheng  
       2020-05-28 12:48:55 +08:00
    一直用,看起来很清晰
    FieldFarmer
        20
    FieldFarmer  
    OP
       2020-05-28 13:14:03 +08:00
    @CEBBCAT 已经问过了,可以的
    ibreaker
        21
    ibreaker  
       2020-05-28 13:59:21 +08:00
    建议使用易语言配合使用,味道更佳
    ArtIsPatrick
        22
    ArtIsPatrick  
       2020-05-28 14:14:45 +08:00 via iPhone
    英文不是程序员必备技能?
    FieldFarmer
        23
    FieldFarmer  
    OP
       2020-05-28 16:20:01 +08:00
    @ArtIsPatrick 七八个 moduleFix,moduleBugFix,moduleImprove 这种,有时候 bug 比较紧急的时候,根本想不出来一句英文来描述这个 bug 修复,比如用户登录失败,你非要整个 userLoginFail 也不是不可以,但是一个按钮点击没反应,你相对来说很难想得到 buttonResponseInValid ;这么多分支,经常要互相切换,有时候会搞不清楚自己改的代码在哪个分支。
    1iuh
        24
    1iuh  
       2020-05-28 16:24:24 +08:00
    我们以前升级 gitlab 版本的时候, 因为中文仓库名遇到过问题,折腾了很久。
    yinzhili
        25
    yinzhili  
       2020-05-28 16:58:58 +08:00
    是可以用中文做分支名,但是没有在 jenkins/teamcity 这种 CI 工具系统中实践过,不知道有没有潜在的问题
    KentY
        26
    KentY  
       2020-05-28 17:01:07 +08:00
    用中文还是英文先不说了... 没什么可讨论的.
    只是我感觉到原来大多数人不是用命令行操作 git 的....还挺吃惊的.
    maichael
        27
    maichael  
       2020-05-28 17:02:58 +08:00
    分支名很重要吗……重要的不是 commit message 吗,临时分支有个能看出大概的名字就好了,合完就删。
    libook
        28
    libook  
       2020-05-28 17:10:41 +08:00
    英语汉语之间并不是所有词汇都一一对应的,有些概念仅限于中文语境下存在,那么你是不可能找到一个英文信达雅地来表达的,硬翻译的话很可能会出现中国人看不懂、外国人整不明白的情况。

    除非你需要与不同语言的开发者协作,那样的话你需要有公共的词典来详细解释每个专用词是什么意思。

    所以我建议在开发工作流测试通过的前提下,使用能让人直接理解的文字来描述,比如“Buffer”就是“Buffer”,“地推”就是“地推”,一句话里也可以多种语言混合,总之最终目的是让协作的开发者,哪怕是过了十天半个月后的自己能够一目了然看懂含义。
    joesonw
        29
    joesonw  
       2020-05-28 17:51:27 +08:00
    @FieldFarmer 你这个不是中英文的问题, 是开发管理的问题. 正常开发模式是基于 issue 开分支开发.
    ArtIsPatrick
        30
    ArtIsPatrick  
       2020-05-28 18:19:37 +08:00 via iPhone
    @FieldFarmer 这种分支名没必要描述那么清楚吧?提 pr 的时候写清楚修复了什么问题就行了。
    ArtIsPatrick
        31
    ArtIsPatrick  
       2020-05-28 18:22:47 +08:00 via iPhone
    @ArtIsPatrick 如果搞不清楚分支说明分支名起的没有代表性,这时候辨识度比信达雅更重要。
    mccken
        32
    mccken  
       2020-05-28 18:24:59 +08:00
    可以的,我司现在 git 分支就明确要求带有中文名,方便明确含义:

    feature/ tapd 上迭代的名字
    mmrx
        33
    mmrx  
       2020-05-28 19:10:53 +08:00 via Android
    本地开发没问题不代表在 ci/cd 服务器里也没问题,遇到个问题需要远程到服务器调试查日志,命令行里切分支给你装个拼音输入法?内部再搞一些运维自动化工具,参数处理专门对中文做编码解码么
    hq136234303
        34
    hq136234303  
       2020-05-28 20:02:43 +08:00
    @statement 不应该仅仅这样 团队沟通建议也用英文。有毒吧 上面的
    forgottencoast
        35
    forgottencoast  
       2020-05-28 20:25:32 +08:00
    仅仅用 git,没有用其他管理工具么?
    我们都是用 Issue 的 id 做为分支名称的,简单好用,又方便。
    Zien
        36
    Zien  
       2020-05-28 20:41:03 +08:00
    别直接这样,建议用 ID 做分支名,在 ID 管理页面描述清楚即可。
    momocraft
        37
    momocraft  
       2020-05-28 21:14:07 +08:00   ❤️ 1
    甚至可以用 origin/something 作为 *本地* 分支名

    现在就拿起键盘, 给你的同事一个惊喜
    drizzt9
        38
    drizzt9  
       2020-05-28 21:20:56 +08:00
    @ArtIsPatrick 不是
    sleshep632
        39
    sleshep632  
       2020-05-28 21:58:41 +08:00
    理论上 utf-8 字符都可以,之前试过,居然 python3 支持中文函数名 /变量名
    xingheng
        40
    xingheng  
       2020-05-28 23:34:04 +08:00
    亲,如果你跟我在一个组共事,我会砍死你的哟~

    临终前你会听到:为什么这我需要在命令行不断切换输入法?
    xiadong1994
        41
    xiadong1994  
       2020-05-29 00:12:37 +08:00 via iPhone
    好奇在 windows 下用默认 cmd 跑 git 命令的,汉字是用的 utf-8 还是用 gbk
    thedrwu
        42
    thedrwu  
       2020-05-29 07:10:53 +08:00 via Android
    那么问题来了,数字和字母用全角还是半角
    ArtIsPatrick
        43
    ArtIsPatrick  
       2020-05-29 07:18:24 +08:00 via iPhone
    @drizzt9 谢谢回答,我是反问不是疑问。
    HankAviator
        44
    HankAviator  
       2020-05-29 12:50:24 +08:00 via Android
    https://stackoverflow.com/questions/273695/what-are-some-examples-of-commonly-used-practices-for-naming-git-branches

    意思不清楚就应该先约定命名规范。
    自动补全彻底废掉+切输入法+选词。基于字母系统的文字就算了,汉字这种语素文字,不做读音映射,用在开发的非注释部分效率是真的低。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1060 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:13 · PVG 03:13 · LAX 12:13 · JFK 15:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.