如果你想学习git,一定要试试这个网站,这个网站会让你像打游戏一样的去学习git的使用。
-
节点信息
HEAD :当前操作的分支和提交
HEAD^ :上一个提交
HEAD^^ :上一个的上一个的提交
HEAD~ : 上一个提交
HEAD~3 : 向前第三个提交,~可以加数字,^只能叠加
分支名为origin/***:表示远端分支
-
branch
git branch bugFix:创建名为bugFix的分支。
git brach -f master HEAD^^:将master强制移动到HEAD的第二个父节点
git brach -u origin/master bugFix:让bugFix分支跟踪远端master分支
git brach -u origin/master:让当前HEAD指向的分支跟踪远端master分支
-
checkout
git checkout bugFix:切换到bugFix分支,即将HEAD移动到bugFix分支
git checkout HEAD~2:HEAD回退两个版本
git checkout -b bugFix origin/master:创建名为bugFix的分支,让其跟踪远端master分支,然后切换过去
git checkout .:重置,清空当前未提交的更改
-
提交
git add .:将所有修改添加到暂存区
git commit:将暂存区的改动提交到本地的版本库中,会弹出输入器让输入提交信息
git commit -m "commit_message":带提交信息的提交
git commit -am "commit message":先add,然后commit
git commit --amend:修改最近一次提交的提交信息
-
合并
git mergin:将当前HEAD和HEAD所指的分支的跟踪的分支合并,将两个提交的变换全部继承下来,会导致合并后的节点有两个父节点
git rebase:也是将HEAD与HEAD所指的分支的跟踪的分支合并,是将HEAD中的更改复制到跟踪那个分支的后面,合并后节点只有一个父节点,提交记录呈线性
git rebase master:将当前的分支合并到master分支
git rebase bugFix master:将bugFix分支和master分支合并
git rebase -i HEAD~3:弹出交互式的界面,让用户编辑完成合并等的操作,弹出的时候每一个提交都是pick,表示保存,比较常用的是:s合并到上一个并且保存提交信息,f合并到上一个提交并且不保存提交的信息
-
撤毁
git reset HEAD^:撤毁当前指向的更改,直接删除。将头向后退,就相当于没有提交过
git revert HEAD:撤毁当前指向的更改,重新提交。头继续向前,只是这次提交和上一次的提交完全相反,保存有两次提交,两次提交合并起来就相当于删除掉了
-
保存到本地
git stash:保存修改到本地,以栈的形式保存,保存之后会有指定的索引:stash@{0},stash@{1}...
git stash pop:把保存在最上面的修改拿出来,并且删除掉这个保存
git stash apply:把保存在最上面的修改拿出来,并且不删除掉这个保存
git stash list:查看保存的记录
git stash save "message":带着message保存修改到本地
git stash apply "stash@{1}":拿出指定的保存,并且不删除本地
git stash drop:删除顶上保存
git stash drop "stash@{1}":删除指定的保存
git stash clear:清空本地的保存
-
更新本地代码
git fetch:从远端仓库下载本地仓库缺失的提交记录,并且更新本地的远程分支指针origin/***
git fetch origin master:拉取远端master分支,并且更新到本地orgin/master分支
git fetch origin master:bugFix:拉取远端master分支,并且更新到本地bugFix分支
git pull:相当于执行fetch之后执行mergin,从远端仓库下载本地仓库缺失的提交记录,并且更新本地的远程分支指针origin/***,然后将本地分支与追踪的远端分支合并
git pull origin master:更新远端分支origin/master,并且与HEAD指向的分支合并
git pull origin master:bugFix:更新远端分支origin/master,并且与bugFix分支合并
-
上传本地代码
git push:将当前分支推送远端跟踪的分支
git push -f:强制推送,冲点远端代码
git push origin HEAD:将当前分支推送到远端的同名分支
git push origin bugFix:master:将bugFix推送到远端master分支