首先推荐一个学习GIT的好网站:Learn Git Branching
可视化的学习相当不错,唯一的不足可能是中英翻译的关系总感觉少了一些东西
借用一张图片,这张图片详细描述了远程仓库与本地文件的关系。
个人习惯,首先在网页上对主仓库 Fork 出自己的远程仓库,然后 clone 自己的远程仓库,主要更改(push)自己的远程仓库,并注意保持自己的远程仓库与主仓库的同步。
以下这部分是一些基础 GIT 方法
🍃简单提交,一般需要用 -m 附加一段说明
git add <file>
git commit -m <note>
🍃新建分支,并切换到该分支
git branch <branch name>
git checkout <branch name>
🍃新建分支,并切换到该分支
git checkout -b <new branch>
🍁使用 checkout 不仅能切换分支,还能切换 commit。本质上是因为 HEAD 既可以指向 branch 也可以指向 commit,或者说 branch 也只是一个指向 commit 的引用。(关于这些更具体可以参考Git---进阶 1:HEAD、master 与 branch_git (head -> main)-CSDN博客)
🍃合并分支,将当前位置(HEAD)与指定分支合并
git merge <branch name>
🍃合并分支,以更加线性的方式
git rebase <branch name>
🍃相对引用(相对的是HEAD),使用checkout,HEAD后面直接跟
- ^ 表示上一级
- ~<num> 表示上num级
具体一个用法 git checkout HEAD~4,切换到上 4 级
🍃移动分支(使用相对引用 / 也可以直接使用哈希值)
git branch -f main HEAD~3
🍃撤销变更,两种方式
①回退几个提交记录来实现撤销(原变更还在,但是处于未加入暂存区状态)
git reset
git reset HEAD~1
②针对本地使用git reset比较方便,但是对于远程分支无效。git revert通过一个新的提交来作为更改的引入
git revert
git revert HEAD