目前公司用的代码管理工具是 SVN
,用久了倒是有点记不清 git
的用法了,趁着这几日空了回顾回顾,果真发现了个好玩的网站 learngitbranching,还补上了以前钻研不会的知识盲区,记录下答案~
下面代码块为 learngitbranching
提供的答案(使用 show solution
命令就可以看到),视频是我自己写的答案,有些对不上,不过倒是殊途同归
基础篇
Git Commit
$ git commit
$ git commit
Git Branch
$ git branch bugFix
$ git checkout bugFix
Git Merge
$ git checkout -b bugFix
$ git commit
$ git checkout main
$ git commit
$ git merge bugFix
Git Rebase
$ git checkout -b bugFix
$ git commit
$ git checkout main
$ git commit
$ git checkout bugFix
$ git rebase main
高级篇
分离的 HEAD
$ git checkout C4
相对引用(^)
$ git checkout bugFix^
相对引用2(~)
$ git branch -f main C6
$ git checkout HEAD~1
$ git branch -f bugFix HEAD~1
撤销变更
$ git reset HEAD~1
$ git checkout pushed
$ git revert HEAD
移动提交记录
Git Cherry-pick
$ git cherry-pick C3 C4 C7
交互式 rebase
$ git rebase -i overHere
# 选择 C3 C4 C5,然后调换 C4 C5 的位置
杂项
只取一个提交记录
$ git rebase -i main
# 只选择 C4
$ git rebase bugFix main
提交的技巧 #1
$ git rebase -i HEAD~2
# 调换 C2 C3 的位置
$ git commit --amend
$ git rebase -i HEAD~2
# 调换 C3' C2'' 的位置
$ git rebase caption main
提交的技巧 #2
$ git checkout main
$ git cherry-pick C2
$ git commit --amend
$ git cherry-pick C3
Git Tag
$ git tag v1 side~1
$ git tag v0 main~2
$ git checkout v1
Git Describe
$ git commit
高级话题
多次 Rebase
$ git rebase main bugFix
$ git rebase bugFix side
$ git rebase side another
$ git rebase another main
两个 parent 节点
$ git branch bugWork main^^2^
纠缠不清的分支
$ git checkout one
$ git cherry-pick C4 C3 C2
$ git checkout two
$ git cherry-pick C5 C4 C3 C2
$ git branch -f three C2
Push & Pull —— Git 远程仓库!
Git Clone
$ git clone
远程分支
$ git commit
$ git checkout o/main
$ git commit
Git Fetch
$ git fetch
Git Pull
$ git pull
模拟团队合作
$ git clone
$ git fakeTeamwork 2
$ git commit
$ git pull
Git Push
$ git commit
$ git commit
$ git push
偏离的历史提交
$ git clone
$ git fakeTeamwork
$ git commit
$ git pull --rebase
$ git push
锁定的 Main
$ git reset --hard o/main
$ git checkout -b feature C2
$ git push origin feature
关于 origin 和它的周边 —— Git 远程仓库高级操作
推送主分支
$ git fetch
$ git rebase o/main side1
$ git rebase side1 side2
$ git rebase side2 side3
$ git rebase side3 main
$ git push
合并远程仓库
$ git checkout main
$ git pull
$ git merge side1
$ git merge side2
$ git merge side3
$ git push
远程追踪
$ git checkout -b side o/main
$ git commit
$ git pull --rebase
$ git push
Git push 的参数
$ git push origin main
$ git push origin foo
Git push 的参数2
$ git push origin main^:foo
$ git push origin foo:main
Git fetch 的参数
$ git fetch origin main~1:foo
$ git fetch origin foo:main
$ git checkout foo
$ git merge main
没有 source 的 source
$ git push origin :foo
$ git fetch origin :bar
Git pull 的参数
$ git pull origin bar:foo
$ git pull origin main:side
一点碎碎念——弄视频真是要了老命
视频是用远程控制软件录屏做的,直接上传到B站报P1-该视频数据有误,请检查并修复视频数据后重新上传
,网上查到导入视频编辑软件再导出就可以了,试了下果然行~
把三十几个视频重新生成好,因为是尊贵的非正式会员所以一天只能上传五个视频,so ~~