提交
1 | git commit -m "commit_info" |
创建分支
是指在当前节点下,创建一个完全一样的分支,和之前的分支互不干扰。
1 | git branch <branch_name> |
切换到相应的分支上:
1 | git checkout <branch_name> |
可以用一个指令完成创建与移动:
1 | git checkout -b <branch_name> |
合并
例如我有两个分支,在每个分支上都有各自不同的更改,我们需要将两个节点本身及它们所有的祖先都包含进来。
比如,我有两个分支,分别叫做main
和bugFix
。我希望把bugFix
的修改后的内容给合并到我修改后的main
分支里。
首先切换到相应的分支:
1 | git checkout main |
和其他的分支合并:
1 | git merge bugFix |
切换提交
你可以使用git checkout
命令切换到特定的提交状态。
这将使你进入”分离头指针”状态,只能查看历史记录,而不能进行分支操作。
我的HEAD
指针原本指向我最新的提交记录,通过下面的指令将会指向具体的节点:
1 | git checkout "commit_hash" |
使用commit_hash
来移动头指针的话会比较麻烦,毕竟hash
值很长,因此有了相对引用的概念出现:
使用^
和~
来进行相对引用:
1 | git checkout <branch_name>^ |
这里就是指向了相应branch_name
的parent
节点。
例如此时我有一个分支叫做main
:
1 | commit_hash_before |
在这里parent
节点指的就是commit_hash_before
。
还可以进行强制移动:
1 | git branch -f <branch_name> HEAD~3 |
这里会把相应branch_name
的分支移动到头指针的第三级parent
提交。
撤销变更
本地上我们可以用git reset
来进行变更的撤销:
1 | git reset "commit_hash" |
对于多人协作的共同的分支,为了撤销更改并分享给他人,可以使用git revert
指令。
1 | git revert "commit_hash" |
远程操作
将远程仓库克隆到本地:
1 | git clone |
拉取远程仓库的修改,合并到本地的分支:
1 | git pull |
把本地仓库的修改,推送到远程仓库里:
1 | git push |
如果远程仓库进行了和我们本地不同的改变,可以使用如下的指令进行拉取,融合和推送:
1 | git pull --rebase |