Git的一些基本命令(一)
- 声明
- git commit
- git branch branch_name
- git checkout branch_name
- git checkout -b branch_name
- git merge branch_name
- git rebase branch_name
- git checkout commit_name
- git checkout branch_name^
- git checkout branch_name~i
- git branch -f branch1_name branch2_name~i
- git reset branch_name~i
- git revert branch_name~i
- git cherry-pick commit_name ···
- git rebase -i branch_name~i
- git commit --amend
- 参考网址
- 结语
声明
本文是对Git部分指令的归纳汇总,由于本人也刚刚入门Git,因此可能存在许多疏忽与漏洞,不喜勿喷!望大家指正,相互学习。
git commit
创建一个新的提交记录,执行后第一幅图将会变成第二幅图
git branch branch_name
创建一个分支,例如执行git branch newImage,则第一幅图将会变成第二幅图
git checkout branch_name
切换当前所在分支,例如执行git checkout newImage,则第一幅图将会变成第二幅图
git checkout -b branch_name
创建一个新的分支同时切换到新创建的分支上,例如执行git checkout -b newImage,则第一幅图将变成第二幅图
git merge branch_name
合并分支,将branch_name分支上的内容合并到当前主分支中,例如执行git merge bugFix,则第一幅图将变成第二幅图
git rebase branch_name
合并分支的另一种方法,将branch_name作为基础,将主分支上的内容添加到branch_name分支上,从而实现合并,例如执行git rebase main,则第一幅图将变成第二幅图
git checkout commit_name
分离HEAD,将HEAD指向commit_name上,例如执行git checkout c1,则第一幅图将变成第二幅图
git checkout branch_name^
branch_name^表示branch_name的父结点,例如执行git checkout main^,则第一幅图将变成第二幅图
git checkout branch_name~i
branch_name~i表示从branch_name指向的结点处向上移动i步所在的结点,例如执行git checkout HEAD~4,则第一幅图将变成第二幅图
git branch -f branch1_name branch2_name~i
移动分支,表示将branch1_name分支移动到branch2_name~i上,例如执行git branch -f main bugFix^,则第一幅图将变成第二幅图(注:branch_name^与branch_name~1等价。)
git reset branch_name~i
git reset通过把分支记录回退几个提交记录来实现撤销改动。git reset向上移动分支,原来指向的提交记录就跟从来没有提交过一样,例如执行git reset HEAD~1,则第一幅图将变成第二幅图
git revert branch_name~i
对于远程操作,即撤销更改并分享给别人,我们需要使用git revert。例如执行git revert HEAD,则第一幅图将变成第二幅图(注:在我们要撤销的提交记录后面多了一个新提交,这是因为新提交记录C2’引入了更改——这些更改刚好是用来撤销C2这个提交的。也就是说C2’的状态与C1是相同的。revert 之后就可以把你的更改推送到远程仓库与别人分享啦。)
git cherry-pick commit_name ···
复制粘贴提交数据,将提交数据添加在主分支上,例如执行git cherry-pick C2 C4,则第一幅图将变成第二幅图
git rebase -i branch_name~i
因为-i的存在,Git会打开一个UI界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。当UI界面打开时,你能做3件事:调整提交记录的顺序(通过鼠标拖放来完成);删除你不想要的提交(通过切换pick的状态来完成,关闭就意味着你不想要这个提交记录);合并提交,它允许你把多个提交记录合并成一个。例如执行git rebase -i main~3,则将出现如下变化:
这时产生了一个UI界面,通过鼠标拖动、点击omit按钮进行调整即可。我随意调整后如下:
然后点击确认,得到最终形式:
git commit --amend
进行一些小修改,执行之后第一幅图将变成第二幅图(注:C3’是修改后的版本)
参考网址
结语
后续内容持续更新中,未完待续······