发现一个非常好用的git学习网站:https://learngitbranching.js.org/
可以可视化地展示每个命令的结果
小记:
1 本地:
checkout 相对位移
-
“^”代表父提交,当一个提交有多个父提交时,可以通过在”^”后面跟上一个数字,表示第几个父提交,”^”相当于”^1”.
-
~<n>相当于连续的<n>个”^”.
git rebase -i interactive 交互式地选择或重新排序
git cherry-pick 选择需要地提交到分支中
2 远程交互:
git pull = git fecth + git merge <fetch到的远程分支>
git pull --rebase = git fetch + git rebase <fetch到的远程分支>
git push <remote> <place>
eg: git push origin master 切到本地仓库中的“master”分支,获取所有的提交,再到远程仓库“origin”中找到“master”分支,将远程仓库中没有的提交记录都添加上去,搞定之后告诉我。
git push origin <source>:<destination>
eg: git push origin foo^:newbranch
git fetch 默认会下载仓库中地所有提交,并更新本地远程分支
git fetch <remote> <place> 只下载place分支,并更新origin/place分支
git fetch <remote> <source>:<destination> 亦可,即push的反向操作
eg: git fetch origin master^:foo 将远程master分支的父节点下载到本地foo分支
如果<source>置空,则push命令会删除仓库destination分支,fetch会在本地创建新分支
git pull <remote> <source>:<destination> = git fetch <remote> <source>:<destination> + git merge <destination>
通关还是有点成就感的哈哈,小菜鸡要加油!