【git】进阶使用,自存档
git高级
git rebase
是用来把一个分支的提交记录,放在另一个分支记录的基础上,重新构建提交jilu
-
可以用来清理提交历史
-
git rebase -i HEAD~3
-
之后会打开编辑器
-
pick abc123 First commit
squash def456 Second commit
squash ghi789 Third commit-
第一个pick不能改aquash,因为第一个是要合并到的commit,
-
如果不确定更改是否正确,可以中止当前 rebase 并重新开始
- git rebase --abort
-
如果edit-to更改有问题,那就重新更改
- git rebase --edit-todo
-
-
squash
- 合并
-
drop或者直接删
- 删除
-
-
-
-
同步分支代码
-
git checkout feature-branch
git fetch origin
git rebase origin/main- git fetch origin:拉取远程仓库所有分支的更新。
git fetch origin master:仅拉取远程仓库 master 分支的更新。
- git fetch origin:拉取远程仓库所有分支的更新。
-
将 feature-branch 的本地提交基于 远方仓库origin/main 最新提交重新排列
-
这里git rebase origin/main可以替换为git pull --rebase origin main
- 不推荐直接pull,直接pull时,如果远方有新的commit是你本地没有的,且本地也有新的commit是远方没有的,就会冲突,合并后会产生合并commit,显得臃肿
-
-
解决分支冲突
git log --oneline
精简模式显示提交记录
git cherry-pick
一个精准提交选择命令
-
用来指定特定的本地没有的提交合并过来,而不是向rebase或者pull合并全部提交
-
合并本地已有提交会报错,此时可以跳过
- git cherry-pick --skip
-
取消
- git cherry-pick --abort
-
如果挑选的提交与当前有冲突,处理完后,还要选
-
git add .
-
git cherry-pick --continue
-
-
-
git cherry-pick abc123
-
git cherry-pick abc123 def456 ghi789
git fetch
git fetch origin master
- 将远程仓库拉到本地仓库
git diff origin/master
- fetch后使用,查看你的本地分支和远程分支之间的差异,没问题直接pull
几个概念
-
远程仓库
-
本地仓库
-
暂存区
-
工作区
b站技术蛋