这特么是 git rebase -i HEAD~3
git checkout dev_sun
git rebase origin/master
git checkout master
git merge dev_sun
这样做会把你dev_sun分支上相对于origin/master分支的提交重新应用到origin/master分支上,让你的dev_sun分支看起来像是从origin/master分支最新的提交开始创建的。然后,当你想要把dev_sun分支合并回主分支时,只需要用git merge dev_sun命令就可以完成一个快进合并(fast-forward merge),而不会产生任何冲突或多余的提交。
git tag 打标签
Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)。
列出所以标签: git tag
列出1.8.5 系列标签: git tag -l "v1.8.5*"
打标签: git tag <标签名> git tag v1.4-temp
删除标签: git tag -d v1.4-temp
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
/[demo]/*
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# Editor directories and files
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
Git 新补充知识点
git stash用法
`git stash` 是 Git 中用于**暂存工作区未提交的修改**的核心命令,适用于需要临时切换分支、拉取代码或处理其他任务,但又不想提交当前未完成代码的场景。以下是完整的使用方法和场景示例:
# 最简方式:暂存所有已跟踪文件的修改(未add/已add),无备注
git stash
# 推荐:添加备注(便于区分多个stash),尤其多人协作/多任务场景
git stash save "修复道路缺陷详情页样式-未完成"
git stash list 查看备注列表
恢复暂存取方式3:恢复最新的stash,并删除该stash记录(推荐用完即删)
git stash pop
整体流程:
1. git add . 功能区代码先提交到暂存区
2. git checkout 其他分支 去干活
3. git checkout 原分支
4. git stash pop
`git stash` 仅暂存**已跟踪文件**(曾被 `git add`/`git commit` 过的文件),所以保持习惯,还是要先git add . 都放到暂存区
### git rebase用法
用自己本地分支 去rebase master
把一个分支的提交,“移植” 到另一个分支的最新提交之后,让当前分支的基线与目标分支保持一致,替代 `git merge` 的 “分叉式合并”,生成线性的提交历史。
对比 `git merge`:merge 会生成一个 “合并提交”,保留分支分叉记录;rebase 无合并提交,历史更干净。
场景 1:开发分支同步主分支最新代码(高频!)
# 1. 切到主分支,拉取最新代码
git checkout develop
git pull origin develop
# 2. 切回自己的开发分支
git checkout feature/defect-detail
# 3. 执行 rebase,将 feature 分支基于 develop 最新提交重放
git rebase develop
# 若出现冲突,
1.修改冲突文件 2.git add 冲突文件 3.git rebase --continue (继续rebase流程)
**效果**:你的开发分支提交,会被 “移到” develop 最新提交之后,历史无分叉,后续合并主分支时更顺畅。