V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fxjson
V2EX  ›  程序员

简化 git 命令

  •  
  •   fxjson · 46 天前 · 4910 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发中 git 几乎成了标配,git 命令使用时,必须输入 git command 方式,于是想去掉前面多余敲的字母 git, commit 即可提交,pull 即可拉代码,而不需要 git pull,所以自己就写了个脚本,用起来没发现啥问题,分享给大家,github.com/fanqingxuan/gitbin

    第 1 条附言  ·  45 天前
    楼主来了,感谢各位,linux 命令还是不够活学活用,第一反应没想到用 alias
    70 条回复    2021-03-06 09:54:55 +08:00
    linvon
        1
    linvon   46 天前   ❤️ 11
    你可知道有个叫 alias 的东西
    leoleoasd
        2
    leoleoasd   46 天前
    你可知道有个叫 alias 的东西
    fxjson
        3
    fxjson   46 天前
    @linvon 你是说 git alias 吗,alias 之后,貌似 git 字符不能省略吧
    nightwitch
        4
    nightwitch   46 天前
    emmm,有点尴尬,这应该算 Linux 基础?
    alias commit = "git commit"就能完成你的工作。。
    learningman
        5
    learningman   46 天前
    楼上那个放到.bashrc,可以自动应用
    starcraft
        6
    starcraft   46 天前 via Android
    我只对 log history 输出类做了条 alias,因为根本记不住。其他一直手打,没什么简化的想法。
    Kasumi20
        9
    Kasumi20   46 天前   ❤️ 2
    [email protected]和$*可以快速地向下传递参数

    "[email protected]"最为常用, 不改变参数结构

    "$*"则将整个参数作为一整个参数向下传递

    不用""包裹的话, [email protected]和$*都会将原先的空格稀释掉, 这可能会相当麻烦, 请务必使用"[email protected]"和"$*"
    Vegetable
        10
    Vegetable   46 天前
    zsh...
    xarthur
        11
    xarthur   46 天前 via iPhone
    @starcraft 可以用 tig
    whincwu
        12
    whincwu   46 天前 via Android
    zsh 有个 git 插件,gc 就是提交,gp 就是推送,等等有几十个别名可以直接用
    zzw1998
        13
    zzw1998   46 天前 via iPhone   ❤️ 5
    你们这下把楼主整尴尬了😅
    wellhome
        14
    wellhome   46 天前 via iPhone
    zsh 下 gc gl 。
    breezeFP
        15
    breezeFP   46 天前
    oh-my-zsh 启用 git 插件
    jieliujas
        16
    jieliujas   46 天前
    vscode 自带 git 插件,鼠标点一下完事
    fyy21
        17
    fyy21   46 天前
    gst ga gd 不更简单点<手动狗头>
    cjwfuture666
        18
    cjwfuture666   46 天前
    建议搞个人工智能,眼神识别 换个眼神就可以提交 更方便
    chiu
        19
    chiu   46 天前 via Android   ❤️ 1
    可爱
    faqqcn
        20
    faqqcn   46 天前
    你可知道,Linux 下 zsh 自带的的 alias 。
    Windows 下使用 Windows Terminal + Powershell,然后在配上下面这个项目的 alias
    https://github.com/gluons/powershell-git-aliases/blob/master/src/aliases.ps1

    需要先安装 posh-git
    yuanmomo
        21
    yuanmomo   46 天前 via iPhone
    gcmt,gcmtp,gp
    JerryChen666
        22
    JerryChen666   46 天前   ❤️ 3
    alias cd = "rm -rf" 试试
    hongch
        24
    hongch   46 天前
    楼主本来已经收获了编程的喜悦,结果.....
    我给你第一个 star
    4kingRAS
        25
    4kingRAS   46 天前
    重复造轮子的尴尬
    hongch
        26
    hongch   46 天前
    另外 commit 的 elif 换成 switch case 吧。。。
    shawndev
        27
    shawndev   46 天前
    能记住准确命令的,去掉 git 前缀其实节约不了多少心智负担。
    比如:git log --graph --decorate --oneline --simplify-by-decoration --all
    karatsuba
        28
    karatsuba   46 天前
    懒是第一生产力
    collery
        29
    collery   46 天前
    习惯了 zsh 的 git 缩减版命令,偶尔在 windows 写代码,命令得敲完整
    muskill
        30
    muskill   46 天前
    楼主:别说了,别说了,好像找个地洞钻下去
    smilenceX
        31
    smilenceX   46 天前
    为什么不用 GUI 工具,鼠标点点多轻松
    fortunezhang
        32
    fortunezhang   46 天前
    @fxjson gl = git pull 之所以没有省略 g 是因为 g 开头的都是 git
    ioudan
        33
    ioudan   46 天前
    star 一下 以资鼓励
    weixiangzhe
        34
    weixiangzhe   46 天前
    zsh 开起 git 插件后, 就有好多 alias 了,还是口头支持一下楼主吧
    [url=https://sm.ms/image/CZxprBFmw5AJvDM][img]https://i.loli.net/2021/03/04/CZxprBFmw5AJvDM.png[/img][/url]
    gaolingyi
        35
    gaolingyi   46 天前
    我选择 gui, 但还是支持一下楼主
    lhyUnited
        36
    lhyUnited   46 天前
    @collery 太真实了
    chinvo
        37
    chinvo   46 天前
    谁不是从啥也不懂的新人开始的呢
    adamwong
        38
    adamwong   46 天前
    你可知道 sh 有 alias,git 也有 alias
    Junh
        39
    Junh   46 天前 via iPhone
    我选择 GUI
    littlewing
        40
    littlewing   46 天前 via iPhone
    你们怎么能这样,你看,楼主都不说话了
    Rwing
        41
    Rwing   46 天前
    你们怎么能这样,你看,楼主都不说话了
    fatestigma
        42
    fatestigma   46 天前
    安利一波 Emacs 插件 magit,纯键盘操作
    bb = git checkout <base>
    bn = git branch <new> <base>
    cc = git commit
    c-ac = git commit --all
    pp = git push
    p-fp = git push --force-with-lease
    la = git log --all -n256 --graph --decorate
    而且 stash 单行或单个 hunk 都非常方便。
    xy2401
        43
    xy2401   46 天前
    我对 win 上简化命令好奇。之前搜索过。没有很好的解决方案。
    lz 的我看都是 bash 应该不支持 win 上 cmd 吧
    tediorelee
        44
    tediorelee   46 天前
    你们都是些坏人(
    chen90902
        45
    chen90902   46 天前
    虽然有些尴尬,但支持下楼主哈哈哈哈哈哈
    brader
        46
    brader   46 天前   ❤️ 1
    @xy2401 windows 也支持 alias 哦,我一直都是这样用的,你打开 git bash,然后
    vi /etc/profile
    在最下面添加
    alias g='git'
    alias ga='git add'
    alias gb='git branch'
    alias gba='git branch -a'
    alias gcm='git commit -m'
    alias gcam='git commit -a -m'
    alias gco='git checkout'
    alias gcm='git checkout master'
    alias gd='git diff'
    alias gl='git pull'
    alias gp='git push'
    alias gst='git status'
    alias gm='git merge'
    alias gr='git remote'
    alias lg="log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"


    你就可以愉快的使用 git 啦。
    xy2401
        47
    xy2401   46 天前
    git bash 已经不算 win 了吧。只是 win 上的 bash 环境
    我不是 限定于 git 。就是一些 cmd 一些命令好长 想简化。但是我找过 powershell 上类似的别名 作用好像好奇怪
    superrichman
        48
    superrichman   46 天前 via iPhone
    @xy2401 win 用 cmder,可以设置 alias
    Enying
        49
    Enying   46 天前 via Android
    痛心
    paoqi2048
        50
    paoqi2048   46 天前   ❤️ 4
    LZ:我是🤡
    brader
        51
    brader   46 天前
    @xy2401 看个人习惯吧,反正我喜欢用 git bash,方便多了,cmd 能干的事它都能干,而且内置支持了很多小工具,和各种协议,输出又有颜色,相对于 cmd 来说,更接近 linux,用着舒服。
    sherlockwhite
        52
    sherlockwhite   46 天前
    场面一度非常尴尬
    Stlin
        53
    Stlin   46 天前
    zsh 有个 git 插件呀 一直都在用
    otakustay
        54
    otakustay   46 天前
    alias pd="git push origin HEAD:refs/for/develop"
    alias pm="git push origin HEAD:refs/for/master"
    alias gs="git status"
    alias ca="git ci --amend"
    alias ga="git add"
    syhily
        55
    syhily   46 天前
    oh my zsh 的 git 插件一坨简化,巨好用。
    libook
        56
    libook   46 天前
    我也有过类似的需求,所以自己做了一个 ZSH 工具箱,把常用的脚本和快捷指令都放在里面改,楼主可以参考我这个:
    https://github.com/libook/IdleBox/blob/master/zshrcs/public/shortcuts-git
    oxromantic
        57
    oxromantic   46 天前
    摔门而出
    lakehylia
        58
    lakehylia   46 天前
    gg gl hf ?魔兽对战?
    Suddoo
        59
    Suddoo   46 天前
    尴尬
    yuxi521
        60
    yuxi521   45 天前
    一直用的 idea 自带的 鼠标点点点
    darksword21
        61
    darksword21   45 天前 via iPhone
    好单纯
    sigl0p
        62
    sigl0p   45 天前
    一直用乌龟 GIT 的搞不清你们在说啥
    b00tyhunt3r
        63
    b00tyhunt3r   45 天前
    这一课叫生产环境中需求才是永远滴神
    henryhu
        64
    henryhu   45 天前
    oh my zsh 插件不香吗?
    codehz
        65
    codehz   45 天前 via Android
    @brader 缺陷:会暴力转换路径,试试在里面运行 wsl echo /mnt
    liuy1994g
        66
    liuy1994g   45 天前
    oh my zsh 的
    ga gc gp gl
    zengxs
        67
    zengxs   45 天前
    除了 shell 自带的 alias 命令,git 命令本身也支持 alias

    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.ci commit
    git config --global alias.st status
    git config --global alias.last 'log -1 HEAD'

    这样就可以直接用 git co 替代 git checkout 这些了,而且这些配置会直接写入 .gitconfig 文件

    windows 环境下没有 bash, zsh 这些的话可以考虑这个方案
    brader
        68
    brader   45 天前
    @codehz 没理解什么是暴力转换路径呢,哈哈。我这样用了 2 年了,暂时没遇到什么问题和困扰
    brader
        69
    brader   45 天前
    @zengxs 还是我那个好使点,git 自带的,一定要 git 前缀,我那个利用 git bash 的 alias,可以类似 gp gl gco 这样用
    Lussac
        70
    Lussac   44 天前
    @xy2401 CMD 可以直接为每一个命令写一个 .cmd 或 .bat 文件,用 %1 ~ %9 分别接收参数, %* 接收所有参数。

    例如 echo @git commit -m %*> gcm.cmd

    之前简单写过一个这种的 https://github.com/LussacZheng/win-alias
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2762 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 10:23 · PVG 18:23 · LAX 03:23 · JFK 06:23
    ♥ Do have faith in what you're doing.