代码提交核心操作精简命令清单
一、 基础提交全流程(个人分支通用)
# 1. 切个人分支gitcheckout testing/dengping# 2. 浅拉取远程主分支最新(提速,适配Jenkins)gitfetch origin develop --depth=1# 3. 个人分支变基到远程主分支最新gitrebase origin/develop# 4. 仅暂存已跟踪文件变更(精准无冗余)gitadd-u# 5. 规范提交gitcommit -m"feat: 新增XX功能/fix: 修复XX问题"# 6. 变基后安全推送远程个人分支gitpush --force-with-lease origin testing/dengping二、 更新代码(pull/fetch/rebase 区分使用)
# 【仅拉取不修改本地】git fetch(安全首选)gitfetch origin develop# 完整拉取远程develop历史gitfetch origin develop --depth=1# 浅拉取仅最新1个提交(推荐自动化/变基场景)# 【拉取+直接合并】git pull(便捷)gitpull origin develop# 默认fetch+merge(会生merge记录)gitpull --rebase origin develop# fetch+rebase(整洁无merge记录)# 【拉取后整洁同步】git rebase(个人分支同步主分支最优)gitrebase origin/develop# 本地当前分支变基到远程develop快照gitrebase --continue# 变基冲突解决后继续三、 子仓库相关(含–depth=1作用)
# 主分支浅拉取+子模块浅更新(整体提速)gitfetch origin develop --depth=1gitsubmodule update --init --recursive --depth=1--force# 还原子模块到父仓库记录版本gitsubmodule update --init --recursive --force四、 PyCharm图形化对应命令(变基2种场景)
# 1. 将A变基到B(个人分支对齐主分支)gitcheckout A&&gitrebase B# 2. 变基拉入A(本地A对齐远程同名A,多人协作同分支)gitcheckout A&&gitpull --rebase origin A五、 暂存区操作(git add -u+取消暂存)
# 仅添加已跟踪文件的修改/删除(不包含新文件)gitadd-u# 取消暂存-单个文件(精准)gitrestore --staged 文件名# 例:git restore --staged jenkins/install_apk.py# 取消暂存-所有文件(批量)gitreset HEAD.# 取消暂存-指定目录gitrestore --staged 目录名/# 例:git restore --staged testing/六、 提交修改(git commit --amend)
# 场景1:修改最近1次提交信息(未推远程)gitcommit --amend# 场景2:补充文件到最近1次提交(未推远程)gitadd漏暂存文件&&gitcommit --amend七、 git pull --force(强制拉取,极端场景用)
# 强制拉取远程覆盖本地(风险高,优先用下方分步命令)gitpull --force origin 分支名# 例:git pull --force origin dengping# 更安全替代方案(分步可控)gitfetch origin 分支名&&gitreset --hard origin/分支名八、 重置本地分支(多场景可选)
# 场景1:轻量重置-清空暂存区,保留工作区修改gitreset HEAD.# 场景2:撤销工作区未暂存修改,保留暂存区gitcheckout --.# 场景3:彻底重置-回最近1次提交,清暂存区+工作区(未提交丢失)gitreset --hard HEAD# 场景4:重置到指定提交(需commit ID,git log获取)gitreset --hard 提交ID# 场景5:含子模块的完整本地重置(清所有+还原子模块)gitreset --hard HEAD&&gitsubmodule update --force&&gitclean -fdx# 场景6:删除未跟踪文件(临时文件,谨慎)gitclean -fdx九、 重置远程分支(个人分支专用,强制推送)
# 核心流程:本地先重置 → 安全强制推送覆盖远程gitreset --hard 目标提交ID# 本地重置到目标版本gitpush --force-with-lease origin 分支名# 安全推送(优先用,比-f安全)# 备选(暴力推送,不推荐)gitpush -f origin 分支名十、 合并commit(本地/远程)
# 场景1:合并本地最近N个commit(未推远程,推荐)gitrebase -i HEAD~N# N=数量,例:合并3个写HEAD~3# 编辑界面:pick改squash(保留信息)/fixup(丢弃信息),保存后改合并信息# 场景2:合并远程分支commit(安全无历史改写,主分支用)gitcheckout 接收分支(如develop)gitfetch origin 功能分支(如dengping)gitmerge --squash origin/功能分支gitcommit -m"合并XX功能"十一、 避坑&高频补充命令
# 变基冲突解决后继续gitrebase --continue# 查看提交日志(找commit ID)gitlog --oneline# 解除浅拉取,补全完整历史gitfetch --unshallow origin 分支名# 备份未提交修改(重置前用)gitstash save"备份备注"# 恢复备份的修改gitstash pop要不要我帮你把这份清单按使用频率排序,突出日常高频命令方便快速查找?