Git 可以使用中文作为分支名? - V2EX
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 10461 次点击
    这是一个创建于 1963 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很多功能模块的分支一堆英文不能很清楚的表达意思,想直接用中文作为分支名,不知道 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 这边的问题的
    ZeoKarl
        12
    ZeoKarl  
       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
    亲,如果你跟我在一个组共事,我会砍死你的哟~

    临终前你会听到:为什么这我需要在命令行不断切换输入法?
    trn4
        41
    trn4  
       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     Solana     2826 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 13:13 PVG 21:13 LAX 06:13 JFK 09:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86