资讯动态

Git/Bash/Vim命令全指南:提升开发者效率

发布时间:2026/10/29 14:33:12 来源:尧图企业网站定制
1. 开发者必备Git/Bash/Vim命令全指南作为开发者我们每天都要和Git、Bash、Vim这三个工具打交道。它们就像程序员的瑞士军刀Git负责版本控制Bash是命令行操作的利器Vim则是高效的文本编辑器。掌握它们的常用命令能极大提升工作效率。我整理了一份自己日常开发中高频使用的命令清单涵盖了从基础到进阶的各种场景。这些命令都是经过多年实战验证的特别适合Linux/Mac开发者Windows用户通过Git Bash也能使用大部分功能。2. Git命令大全2.1 基础配置与初始化首次使用Git需要配置用户信息git config --global user.name Your Name git config --global user.email your.emailexample.com设置默认编辑器为Vimgit config --global core.editor vim查看当前配置git config --list初始化新仓库git init克隆现有仓库git clone https://github.com/user/repo.git2.2 日常开发流程查看工作区状态git status添加文件到暂存区git add filename # 添加单个文件 git add . # 添加所有修改提交更改git commit -m commit message提示使用git commit -v可以查看diff信息后再提交查看提交历史git log git log --oneline --graph --decorate # 简洁版带分支图2.3 分支管理创建新分支git branch new-branch切换分支git checkout branch-name git checkout -b new-branch # 创建并切换合并分支git merge branch-name删除分支git branch -d branch-name # 安全删除 git branch -D branch-name # 强制删除2.4 远程操作添加远程仓库git remote add origin https://github.com/user/repo.git推送本地分支git push -u origin branch-name拉取远程更新git pull origin branch-name2.5 高级技巧暂存当前修改git stash git stash pop # 恢复撤销工作区修改git checkout -- filename修改最后一次提交git commit --amend交互式变基git rebase -i HEAD~3 # 修改最近3次提交3. Bash命令精华3.1 文件操作列出目录内容ls -la # 显示隐藏文件切换目录cd ~ # 家目录 cd - # 返回上一个目录创建目录mkdir -p path/to/dir # 自动创建父目录复制文件cp -r source dest # 递归复制目录移动/重命名mv oldname newname删除rm -rf dirname # 谨慎使用3.2 文本处理查看文件内容cat filename less filename # 分页查看 head -n 10 filename # 前10行 tail -f filename # 实时查看日志查找内容grep pattern filename grep -r pattern dirname # 递归搜索排序与去重sort filename | uniq3.3 系统信息查看进程ps aux | grep process-name磁盘空间df -h du -sh * # 查看当前目录各文件大小内存使用free -h3.4 网络相关测试连通性ping example.com curl -I example.com # 查看header wget https://example.com/file端口检查netstat -tulnp lsof -i :80803.5 实用技巧命令历史history | grep keyword !123 # 执行历史中第123条命令后台运行nohup command # 退出终端仍运行定时任务crontab -e # 编辑定时任务4. Vim高效编辑4.1 基本操作启动Vimvim filename模式切换普通模式ESC插入模式i可视模式v命令行模式:保存与退出:w # 保存 :q # 退出 :wq # 保存并退出 :q! # 强制退出不保存4.2 移动光标基本移动h j k l # 左 下 上 右 w b # 下一个/上一个单词 0 $ # 行首/行尾 gg G # 文件首/尾跳转50G # 跳转到第50行 /pattern # 搜索 n N # 下一个/上一个匹配4.3 编辑操作删除x # 删除当前字符 dd # 删除整行 dw # 删除单词复制粘贴yy # 复制行 p # 粘贴撤销重做u # 撤销 Ctrlr # 重做4.4 高级功能多窗口:split # 水平分割 :vsplit # 垂直分割 Ctrlw w # 切换窗口标签页:tabnew # 新建标签页 gt gT # 切换标签页宏录制qa # 开始录制宏a q # 停止录制 a # 执行宏a4.5 配置技巧创建~/.vimrcsyntax on 语法高亮 set number 显示行号 set tabstop4 tab宽度 set expandtab tab转空格 set autoindent 自动缩进 set hlsearch 高亮搜索 set ignorecase 忽略大小写 set cursorline 高亮当前行5. 组合使用技巧5.1 Git与Vim结合设置Git使用Vim作为默认编辑器后可以在提交信息时使用Vim的强大编辑功能。例如在写提交信息时按i进入插入模式写提交信息按ESC返回普通模式使用/搜索检查拼写使用:%s/old/new/g全局替换:wq保存退出5.2 Bash脚本中使用Git自动化部署脚本示例#!/bin/bash # 切换到项目目录 cd /path/to/project # 拉取最新代码 git pull origin master # 安装依赖 npm install # 重启服务 pm2 restart app5.3 Vim中执行Bash命令在Vim中可以直接执行Bash命令:!ls -la 执行ls命令 :r !date 插入当前日期5.4 实用别名设置在~/.bashrc中添加alias gsgit status alias gagit add alias gcgit commit alias glgit log --oneline --graph --decorate alias gpgit pull alias gpushgit push alias vimvim -p # 多文件用标签页打开6. 常见问题解决6.1 Git问题问题1fatal: not a git repository (or any of the parent directories): .git解决方案git init # 初始化仓库 或 cd /path/to/git/repo # 切换到正确目录问题2git pull时出现冲突解决步骤查看冲突文件手动解决冲突用Vim编辑标记冲突已解决git add conflicted-file git commit6.2 Bash问题问题1bash: command not found可能原因命令不存在未安装相应软件PATH环境变量未包含命令路径解决方案which command # 查看命令位置 echo $PATH # 检查PATH问题2bash: permission denied解决方案chmod x script.sh # 添加执行权限6.3 Vim问题问题1Vim中无法退出解决方案确保在普通模式按ESC输入:q!强制退出问题2Vim配置不生效检查步骤确认~/.vimrc文件存在检查文件权限查看是否有语法错误vim -c so ~/.vimrc7. 进阶技巧与优化7.1 Git高级配置设置命令别名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 color.ui true7.2 Bash优化自定义提示符PS1export PS1\[\033[01;32m\]\u\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 历史命令优化export HISTSIZE10000 export HISTFILESIZE20000 export HISTTIMEFORMAT%F %T 7.3 Vim插件管理使用Vim-plug管理插件安装Vim-plugcurl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim在~/.vimrc中添加call plug#begin(~/.vim/plugged) Plug tpope/vim-fugitive Git集成 Plug scrooloose/nerdtree 文件浏览器 Plug vim-airline/vim-airline 状态栏 call plug#end()在Vim中运行:PlugInstall7.4 性能优化Git大型仓库优化git config --global core.preloadindex true git config --global core.fscache true git config --global gc.auto 256Bash启动加速# 在~/.bashrc中延迟加载耗时代码 if [ -f ~/.bashrc_heavy ]; then . ~/.bashrc_heavy fiVim启动优化 延迟加载大型插件 autocmd VimEnter * call plug#load(nerdtree)8. 实际工作流示例8.1 典型Git工作流开始新功能开发git checkout -b feature/new-feature开发过程中git add . git commit -m 实现核心功能同步远程变更git fetch origin git rebase origin/main推送变更git push -u origin feature/new-feature创建Pull Request8.2 代码审查流程查看变更git diff HEAD~3 # 查看最近3次提交的变更交互式变基git rebase -i HEAD~5 # 整理最近5次提交修改提交历史后强制推送git push -f注意强制推送只适用于自己的分支不要在主分支上使用8.3 紧急修复流程从主分支创建修复分支git checkout -b hotfix/urgent-issue main修复问题并提交git add . git commit -m 修复紧急问题合并回主分支git checkout main git merge --no-ff hotfix/urgent-issue git push删除临时分支git branch -d hotfix/urgent-issue9. 环境配置建议9.1 Git配置优化全局.gitignoregit config --global core.excludesfile ~/.gitignore_global内容示例.DS_Store *.log *.tmp node_modules/9.2 Bash环境配置常用函数# 快速进入项目目录 function pj() { cd ~/projects/$1 } # 创建目录并进入 function mkcd() { mkdir -p $1 cd $1 }9.3 Vim开发环境针对不同语言的配置 Python开发 autocmd FileType python setlocal expandtab shiftwidth4 softtabstop4 JavaScript开发 autocmd FileType javascript setlocal expandtab shiftwidth2 softtabstop2 Markdown写作 autocmd FileType markdown setlocal spell9.4 终端多路复用使用tmux提高效率tmux new -s session-name # 新建会话 tmux attach -t session-name # 附加到会话常用快捷键Ctrlb c: 新建窗口Ctrlb n/p: 切换窗口Ctrlb d: 分离会话10. 安全注意事项10.1 Git安全不要提交敏感信息# 检查仓库历史中的敏感信息 git log -p | grep -i password\|secret\|key如果发现已提交的敏感信息git filter-branch --force --index-filter \ git rm --cached --ignore-unmatch path/to/file \ --prune-empty --tag-name-filter cat -- --all10.2 Bash安全避免执行不可信脚本# 先检查脚本内容 cat script.sh | less设置严格模式set -euo pipefail # 脚本开头添加10.3 Vim安全禁用模型ine执行set modelines0 set nomodeline只加载可信插件 只从官方源安装插件 Plug author/plugin, {rtp: path}11. 跨平台注意事项11.1 Windows特殊处理Git Bash配置# 解决Windows换行符问题 git config --global core.autocrlf true路径转换# 在Git Bash中使用Windows路径 /c/Program\ Files/11.2 MacOS特殊配置安装最新版工具brew install git bash-completion vim解决MacOS特殊键问题 在~/.vimrc中添加 set backspaceindent,eol,start11.3 Linux发行版差异不同包管理器# Debian/Ubuntu sudo apt install git vim bash-completion # CentOS/RHEL sudo yum install git vim bash-completion # Arch sudo pacman -S git vim bash-completion12. 性能监控与调优12.1 Git性能分析查看耗时操作GIT_TRACE_PERFORMANCE1 git status优化大仓库git gc --aggressive git repack -ad12.2 Bash性能分析测量命令执行时间time command分析脚本性能bash -x script.sh # 调试模式12.3 Vim性能调优识别慢速插件:profile start profile.log :profile func * :profile file * 执行慢速操作 :profile pause :q然后查看profile.log分析瓶颈13. 备份与迁移13.1 Git仓库备份克隆镜像git clone --mirror https://example.com/repo.git推送备份git push --mirror backup-remote13.2 Bash配置备份打包配置文件tar czvf bash_backup.tar.gz ~/.bashrc ~/.bash_profile ~/.bash_aliases13.3 Vim配置迁移同步配置rsync -avz ~/.vimrc ~/.vim/ userremote:/path/to/backup/使用版本控制管理配置git init ~/.dotfiles cd ~/.dotfiles git add .bashrc .vimrc ... git commit -m Initial config backup14. 扩展学习资源14.1 Git深入学习Pro Git电子书https://git-scm.com/book/GitHub学习实验室https://lab.github.com/Git可视化学习https://learngitbranching.js.org/14.2 Bash进阶Bash手册man bashBash脚本指南https://guide.bash.academy/ShellCheck在线检查https://www.shellcheck.net/14.3 Vim精通Vim官方文档:helpVim冒险游戏https://vim-adventures.com/Vim配置示例https://github.com/amix/vimrc15. 持续集成中的应用15.1 Git Hooks预提交检查#!/bin/sh # .git/hooks/pre-commit # 运行测试 npm test if [ $? -ne 0 ]; then echo 测试失败提交中止 exit 1 fi15.2 Bash自动化脚本部署脚本示例#!/bin/bash set -e echo 开始部署... git pull npm install npm run build pm2 restart app echo 部署完成15.3 Vim与CI集成在CI中使用Vim批处理vim -es -c :%s/old/new/g -c :wq file.txt16. 团队协作规范16.1 Git工作流选择功能分支工作流Git FlowGitHub FlowGitLab Flow16.2 提交信息规范推荐格式类型(范围): 简要描述 详细说明 相关issue: #123类型示例feat, fix, docs, style, refactor, test, chore16.3 代码审查要点使用git diff查看变更关注代码风格一致性检查潜在性能问题验证边界条件处理17. 疑难问题排查17.1 Git疑难杂症问题detected dubious ownership解决方案git config --global --add safe.directory /path/to/repo问题unable to update local ref解决方案git gc --prunenow git remote prune origin17.2 Bash奇怪行为问题脚本在终端可以运行但cron失败可能原因环境变量不同相对路径问题权限问题解决方案在脚本中设置完整PATH使用绝对路径在cron中重定向输出调试17.3 Vim异常处理问题Vim卡死无响应解决方案尝试Ctrlc如果无效在另一个终端killall -9 vim问题插件冲突排查步骤禁用所有插件逐个启用测试查看:messages错误信息18. 个人工作流优化18.1 快捷键配置Git别名git config --global alias.lg log --color --graph --prettyformat:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset --abbrev-commitBash快捷键bind \C-p: history-search-backward bind \C-n: history-search-forwardVim映射nnoremap leadergs :GstatusCR nnoremap leadergc :GcommitCR18.2 终端主题配置使用Oh My Bashbash -c $(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)选择主题# 在~/.bashrc中 OSH_THEMEagnoster18.3 开发环境集成Vim与终端集成 在Vim中打开终端 :terminalGit与IDE集成VS Code Git集成IntelliJ Git工具Vim fugitive插件19. 现代化替代方案19.1 Git增强工具lazygit终端UItigGit仓库浏览器git-town高级工作流19.2 Bash替代品Zsh功能更强大Fish用户友好PowerShell跨平台19.3 Vim现代化NeovimVim的现代化分支VSCode Vim插件在编辑器中用VimIDE Vim模拟IntelliJ IdeaVim20. 实战经验分享20.1 Git实用技巧交互式暂存git add -p查找引入bug的提交git bisect start git bisect bad git bisect good commit20.2 Bash高效用法进程替换diff (curl http://example.com/file1) (curl http://example.com/file2)并行执行for i in {1..10}; do (command $i ) done wait20.3 Vim专业技巧项目范围搜索:vimgrep /pattern/g **/* :copen多文件搜索替换:args **/*.js :argdo %s/old/new/g | update21. 工具链整合21.1 Git与CI/CD集成Git钩子示例#!/bin/sh # .git/hooks/pre-push npm run lint npm test21.2 Bash自动化部署使用SSH部署ssh userserver cd /app git pull npm install pm2 restart app21.3 Vim与调试器集成使用vim-dadbod连接数据库:DB postgresql://user:passhost:port/dbname :DBSelect * from users;22. 性能对比测试22.1 Git操作速度优化不同配置下的git status时间对比配置项耗时(ms)默认1200启用fsmonitor400添加.gitignore优化30022.2 Bash脚本性能不同循环方式速度比较# 传统for循环 time for i in {1..1000}; do echo $i /dev/null; done # 使用内置命令 time printf %s\n {1..1000} /dev/null22.3 Vim启动时间插件对启动时间的影响插件数量启动时间(ms)0501020030800优化建议延迟加载非必要插件23. 安全最佳实践23.1 Git安全配置禁用危险命令git config --global receive.denyNonFastForwards true git config --global receive.denyDeletes true23.2 Bash安全脚本安全脚本编写原则总是用引号包裹变量使用set -euo pipefail检查输入参数避免使用eval23.3 Vim安全设置禁用不安全功能set modelines0 set secure set nomodeline24. 跨平台开发技巧24.1 处理路径差异统一路径处理# 在脚本中使用相对路径 SCRIPT_DIR$(cd $(dirname ${BASH_SOURCE[0]}) /dev/null pwd)24.2 换行符问题Git自动转换git config --global core.autocrlf input # Linux/Mac git config --global core.autocrlf true # Windows24.3 工具兼容性检测平台case $(uname -s) in Linux*) OSLinux;; Darwin*) OSMac;; CYGWIN*) OSCygwin;; MINGW*) OSMinGw;; *) OSUNKNOWN:${unameOut} esac25. 个人配置管理25.1 使用版本控制管理配置创建dotfiles仓库git init --bare $HOME/.dotfiles alias config/usr/bin/git --git-dir$HOME/.dotfiles/ --work-tree$HOME config config --local status.showUntrackedFiles no25.2 同步配置到新机器克隆配置git clone --bare https://github.com/user/dotfiles.git $HOME/.dotfiles alias config/usr/bin/git --git-dir$HOME/.dotfiles/ --work-tree$HOME config checkout25.3 配置冲突解决如果文件已存在mkdir -p .config-backup config checkout 21 | egrep \s\. | awk {print $1} | xargs -I{} mv {} .config-backup/{}26. 终端生产力套件26.1 Tmux集成Git与Tmux结合# 在~/.tmux.conf中 bind-key g run-shell git status26.2 终端复用分屏工作流左侧Vim编辑代码右上运行测试右下Git操作26.3 通知集成Git操作完成通知git commit notify-send Git Commit完成27. 代码质量保障27.1 Git预提交检查使用pre-commit框架pip install pre-commit pre-commit install配置.pre-commit-config.yamlrepos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer27.2 Bash代码检查使用ShellCheck# 安装 brew install shellcheck # Mac apt install shellcheck # Debian/Ubuntu # 使用 shellcheck script.sh27.3 Vim语法检查ALE插件配置let g:ale_linters { \ javascript: [eslint], \ python: [flake8], \} let g:ale_fixers { \ *: [remove_trailing_lines, trim_whitespace], \}28. 文档与知识管理28.1 Git仓库文档README规范项目简介安装说明使用示例开发指南28.2 Bash脚本文档脚本头注释#!/bin/bash # 脚本名称: deploy.sh # 功能描述: 自动化部署脚本 # 作者: Your Name # 创建日期: 2023-01-01 # 最后修改: 2023-01-1528.3 Vim笔记系统使用VimwikiPlug vimwiki/vimwiki let g:vimwiki_list [{path: ~/vimwiki/, \ syntax: markdown, \ ext: .md}]29. 扩展功能探索29.1 Git扩展命令自定义Git命令#!/bin/sh # git-extra: ~/bin/git-extra case $1 in cleanup) git gc --aggressive git prune ;; *) echo Usage: git extra [cleanup] exit 1 ;; esac29.2 Bash插件系统使用bash-itgit clone --depth1 https://github.com/Bash-it/bash-it.git ~/.bash_it ~/.bash_it/install.sh29.3 Vim IDE化完整开发环境配置 语言服务器协议 Plug neovim/nvim-lspconfig 自动补全 Plug hrsh7th/nvim-cmp 文件浏览 Plug preservim/nerdtree 状态栏 Plug vim-airline/vim-airline30. 持续学习路径30.1 Git精通路线基础命令掌握分支管理策略内部原理理解大型仓库优化定制化工作流30.2 Bash进阶方向脚本调试技巧高级文本处理进程控制信号处理性能优化30.3 Vim大师之路高效移动技巧宏录制与使用正则表达式精通插件开发Neovim Lua配置掌握这些命令后我的日常开发效率至少提升了3倍。最初可能需要经常查阅备忘但坚持使用2-3周后这些操作就会变成肌肉记忆。建议新手先从最常用的20%命令开始逐步扩展到其他功能。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑