手记

版本管理-分支操作-笔记(未完成)

分支操作

分支的增删查改

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

未完成
0人推荐
随时随地看视频
慕课网APP