10 Git相关

64 阅读3分钟

image.png 这特么是 git rebase -i HEAD~3

image.png

image.png

image.png

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 最新提交之后,历史无分叉,后续合并主分支时更顺畅。

还有一种场景 git rebase -i HEAD~3 合并前几次提交记录,总出错,待续。。。