git命令入门

git命令入门 Git 命令完整手册 基础配置最先做# 设置用户名和邮箱gitconfig--globaluser.name你的名字gitconfig--globaluser.email你的邮箱# 中文文件名正常显示不显示八进制gitconfig--globalcore.quotepathfalse# 查看所有配置gitconfig--global--list1️⃣ 初始化# 方式一全新项目初始化gitinit# 在当前目录初始化Git仓库gitinit 项目名# 新建文件夹并初始化# 方式二关联已有远程仓库gitremoteaddorigin https://github.com/用户名/仓库名.git# 查看远程仓库地址gitremote-v# 修改远程仓库地址gitremote set-url origin https://github.com/用户名/新仓库名.git# 删除远程关联gitremote remove origin2️⃣ 推送到远程 首次推送# 第一步初始化gitinit# 第二步添加所有文件gitadd.# 第三步首次提交gitcommit-mfirst commit# 第四步关联远程仓库gitremoteaddorigin https://github.com/用户名/仓库名.git# 第五步推送首次用 -u 绑定分支gitpush-uorigin main 日常更新推送# 查看哪些文件改动了gitstatus# 添加指定文件gitadd文件名# 添加所有改动文件gitadd.# 提交写清楚改了什么gitcommit-m修改说明# 推送到远程gitpush origin main3️⃣ 克隆与拉取更新 首次克隆# 克隆远程仓库到本地gitclone https://github.com/用户名/仓库名.git# 克隆到指定文件夹gitclone https://github.com/用户名/仓库名.git 自定义文件夹名# 克隆指定分支gitclone-b分支名 https://github.com/用户名/仓库名.git 更新拉取本地无修改# 直接拉取gitpull origin main 更新拉取本地有修改⭐️# 第一步备份最保险cp-r项目目录 备份目录_$(date%Y%m%d_%H%M%S)# 第二步把本地修改藏起来gitstash# 第三步拉取远程最新代码gitpull origin main# 如果第三步效果满意不需要本地修改了gitstash drop# 彻底删除暂存的本地修改# 如果需要合并本地修改gitstash pop# 把本地修改拿出来合并 stash 相关命令gitstash# 暂存本地修改gitstash list# 查看所有暂存记录gitstash pop# 恢复最近一次暂存并删除记录gitstash apply# 恢复最近一次暂存保留记录gitstash drop# 删除最近一次暂存记录gitstashclear# 删除所有暂存记录4️⃣ 分支管理# 查看所有本地分支gitbranch# 查看所有分支含远程gitbranch-a# 新建分支gitbranch 分支名# 切换分支gitcheckout 分支名# 新建并切换常用gitcheckout-b分支名# 合并分支把xxx合并到当前分支gitmerge 分支名# 删除本地分支gitbranch-d分支名# 删除远程分支gitpush origin--delete分支名5️⃣ 查看状态与历史# 查看文件状态gitstatus# 查看提交历史gitlog# 精简版历史好看gitlog--oneline# 图形化历史gitlog--oneline--graph--all# 查看某个文件的改动内容gitdiff文件名# 查看暂存区和上次提交的差异gitdiff--staged6️⃣ 撤销与回退# 撤销工作区修改未addgitrestore 文件名# 撤销暂存区已add未commitgitrestore--staged文件名# 回退到上一次提交保留改动gitreset--softHEAD~1# 回退到上一次提交丢弃改动⚠️危险gitreset--hardHEAD~1# 强制推送回退后用⚠️危险gitpush origin main--force 日常工作流程总结新项目 git init → git add . → git commit → git push -u origin main 日常更新 git add . → git commit -m 说明 → git push origin main 拉取更新本地无改动 git pull origin main 拉取更新本地有改动 备份 → git stash → git pull → git stash pop或drop 查看状态 git status → git log --oneline 命令速查表场景命令初始化git init关联远程git remote add origin URL添加文件git add .提交git commit -m 说明首次推送git push -u origin main日常推送git push origin main克隆git clone URL拉取git pull origin main暂存修改git stash恢复暂存git stash pop删除暂存git stash drop查看状态git status查看历史git log --oneline查看分支git branch -a注关于分支、stash、rebase等高级操作后续继续Git Branch 常用命令总结一、查看分支# 查看本地所有分支gitbranch# 查看远程所有分支gitbranch-r# 查看本地 远程所有分支gitbranch-a# 查看每个分支最后一次提交信息gitbranch-v# 查看已合并到当前分支的分支gitbranch--merged# 查看未合并到当前分支的分支gitbranch --no-merged二、创建分支# 创建新分支不切换gitbranchbranch-name# 创建并立即切换到新分支gitcheckout-bbranch-name# 基于某个 commit / tag 创建并切换gitcheckout-bbranch-namecommit-id# 新版写法Git 2.23gitswitch-cbranch-name三、切换分支# 切换到已有分支gitcheckoutbranch-name# 新版写法Git 2.23gitswitchbranch-name# 切换到上一个分支类似 cd -gitcheckout -gitswitch -四、重命名分支# 重命名当前分支gitbranch-mnew-name# 重命名指定分支gitbranch-mold-namenew-name# 重命名后同步到远程gitpush origin--deleteold-namegitpush originnew-name五、删除分支# 删除本地分支已合并才能删gitbranch-dbranch-name# 强制删除本地分支未合并也能删gitbranch-Dbranch-name# 删除远程分支gitpush origin--deletebranch-name# 清理本地已失效的远程追踪分支gitremote prune origin# 查看哪些远程追踪分支已失效gitremote prune origin --dry-run六、合并分支# 将指定分支合并到当前分支gitmergebranch-name# 禁用 fast-forward保留合并记录gitmerge --no-ffbranch-name# 合并但不提交暂存到工作区gitmerge --no-commitbranch-name# 放弃本次合并冲突时回退gitmerge--abort七、变基 Rebase# 将当前分支变基到目标分支gitrebasebranch-name# 交互式变基整理提交历史gitrebase-iHEAD~N# N 为最近几次提交# 变基时发生冲突解决后继续gitrebase--continue# 放弃变基回到变基前状态gitrebase--abort八、追踪远程分支# 拉取远程分支并在本地创建追踪分支gitcheckout-bbranch-nameorigin/branch-name# 新版写法gitswitch-cbranch-name--trackorigin/branch-name# 设置已有本地分支追踪远程分支gitbranch-uorigin/branch-namegitbranch --set-upstream-toorigin/branch-name# 查看本地和远程的追踪关系gitbranch-vv# 推送并建立追踪关系gitpush-uoriginbranch-name九、cherry-pick摘取提交# 将某个 commit 应用到当前分支gitcherry-pickcommit-id# 摘取多个 commitgitcherry-pickcommit-id1commit-id2# 摘取一段连续 commit不含起点gitcherry-pickstart-id..end-id# 摘取一段连续 commit含起点gitcherry-pickstart-id^..end-id# 冲突后继续gitcherry-pick--continue# 放弃 cherry-pickgitcherry-pick--abort十、常用场景速查场景命令新建并切换分支git checkout -b name从远程拉一个新分支到本地git checkout -b name origin/name把 dev 合并到 main切到 main →git merge dev删除已合并的本地分支git branch -d name强制删除未合并分支git branch -D name删除远程分支git push origin --delete name整理最近 3 次提交git rebase -i HEAD~3推送并追踪远程git push -u origin name查看所有分支追踪关系git branch -vv清理失效远程分支git remote prune origin 建议功能开发始终在新分支上进行不要直接在main/master上提交合并前先git fetch更新远程信息用--no-ff合并保留完整历史方便回溯注本博文为个人自学记录留存推荐技术爬爬虾讲解的这部分内容很清晰附一个截图