git基本使用:
git commit:
通过git commit命令向仓库中提交当前版本记录,git仓库的提交记录保存的是目录下所有文件的快照,但是它不会盲目赋值整个目录,而是将当前版本与上一个版本进行对比,并将所有差异打包到一起作为一个提交记录。
git branch:
通过git branch newBranch命令可以新建一个名为newBranch的分支,分支名字是由自己取的,没有强制要求。当我们建立分支之后,如果我们需要提交记录,我们需要先使用git checkout newBranch切换到新的分支上,再进行提交。使用git checkout -b newBranch可以将新建分支与切换分支在一个命令里面完成。
合并分支的两种方法:
git merge:
通过git merge命令来将两个分支合并在一起,比如我们新建一个新的分支开发某个功能,开发完成之后再合并到主线上。
git rebase:
git rebase命令实际上就是取出当前分支一系列的提交记录,复制它们然后在指定分支逐个放下去。比如当在bugFix分支使用git rebase main就是将bugFix分支的提交记录复制然后放在main分支下面,接下来还需要更新main分支,就是切换到main分支,然后使用git rebase bugFix命令即可。
git的HEAD:
git的HEAD就是对当前检出记录的符号引用,它总是指向正在其基础上进行工作的最近一次提交记录,大多数修改提交树的git指令都是从改变HEAD的指向开始的。
查看HEAD指向可以通过cat.git/HEAD查看,如果HEAD指向的是一个引用,还可以使用git symbolic-ref HEAD查看它的指向。
通过git checkout 提交记录哈希值来改变HEAD的指向,通过git log可以查看提交记录的哈希值,在git中只需要提供能够唯一标识记录的前几个字符即可。也可以通过相对引用来改变HEAD的指向。
使用^操作符是寻找提交记录的父提交,比如 git checkout main^。也可以使用HEAD作为相对引用的参照,比如git checkout HEAD^就是在提交树上移动一次。
使用~操作符可以在提交树上一次性移动多步,在后面加一个数字指定移动的次数。
使用git branch -f main HEAD~3可以强制让main分支指向HEAD的第三级提交。
git撤销变更:
git reset:
通过git reset 命令可以把分支回退几个提交记录来实现撤销功能,撤销后原来所做的变更还在,知识处于未加入暂存区的状态。
git revert:
在本地分支使用git reset来撤销变更,但在远程分支上需要使用git revert,它可以把你的更改推送到远程仓库与别人分享。