分支的增删查改
git branch <branchName> // 创建一个分支
git branch -d <branchName> // 删除指定的分支
git branch -v // 现实所有的分支信息
有两个指针
master ==> 主分支
HEAD ==> HEAD指向当前的提交
maser和HEAD会自动指向新的提交分支。
当使用commit命令后会创建一个引用指向前一个提交。
next引用
git branch next
会在HEAD所指向的分支上创建另外一个引用。并且next保持在创建next时的那个节点,当再次有新的提交节点,master和HEAD会指向新的提交节点,而next保持不变。
(一个分支的引用只是一个文本文件)
git checkout
git checkout <branchName> // 将HEAD当前指正指向<branchName>节点,并复制工作目录与暂存区。
git checkout -b <branchName> // 会直接创建一个分支然后切换到他
相当于
git branch <branchName> + git checkout <branchName>
git checkout <reference> // 可以移动任何引用对象上。
git checkout next // 可以回到之前创建的next节点上
git checkout - // 回到上一个分支
git checkout -b issue-26 // 创建一个新的分支并移动到他
git checkout通过移动HEAD检出版本,可用于分支切换。
通过这个命令,一个把HEAD移动到任意节点。git checkout接下来把移动到的节点的工作区与暂存区斧子过来。
当我们git checkout next重新回到时再提交,next引用和HEAD会一起指向新的分支。
git checkout 可以通过传入分支移动到分支节点
也可以通过 commitID 移动到之前的任意分支。
这时HEAD可能与具体的分支分离了。这个状态叫做detached head
将当前分支回退到历史某个版本
git reset --mixed <commit> (默认)
git reset --soft <commit>
git reset -hard <commit>
git reset --mixed <commit> (默认)
会把HEAD master一起移动到<commit>。并把内容复制到暂存区
git reset -hard <commit>
会把HEAD master一起移动到<commit>。并把内容复制到暂存区和工作目录
git reset -hard <commit>
会把HEAD master一起移动到<commit>。并不修改暂存区和工作目录
k
git reflog
使用捷径
A^:A上的父提交
A~n:在A之前的第n次提交
保存目前的工作目录和暂存区的状态,并返回到干净的工作空间。
保存当前工作目录和暂存区
git stash save 'push to stash area'
git stash list
git stash apply stash@{0}
git stash drop stash@{0}
git stash pop = stash apply + stash drop
合并分支
git merge
git
共同学习,写下你的评论
评论加载中...
作者其他优质文章