分支理解
当使用 git commit
进行提交操做时,Git
会先计算每个子目录的校验和,而后在Git
仓库中这些校验和保存为树对象。 随后,Git
便会建立一个提交对象,它除了包含上面提到的那些信息外,还包含指向这个树对象(项目根目录)的指针。如此一来,Git
就能够在须要的时候重现这次保存的快照。git
blob
对象, 保存文件快照对象blob
索引本地分支管理fetch
git branch
查看当前本地有多少分支git branch -v
查看每一个本地分支的最后一次提交git branch -vv
查看本地分支的全部跟踪分支git branch --merged
查看合并到当前分支的分支有哪些git branch' --no-merged
查看未合并到当前分支的分支有哪些git branch branch-name
建立分支git branch -d branch-name
删除branch-name
分支git branch -D branch-name
强制删除branch-name
分支远程分支管理指针
(remote)/(branch)
命名, 它们是远程分支的本地引用, 表示上次你链接远程仓库时候分支所处的状态git ls-remote [remote-name]
获取远程应用的完整列表git remote show [remote-name]
显示远程分支更多信息git push origin --delete branch-name
删除远程分支分支切换code
git checkout branch-name
切换分支git check -b branch-name
建立并切换到新分支上git checkout -b [branch] [remotename]/[branch]
建立一个跟踪远程分支的本地分支git checkout --track [remotename]/[branch]
设置本地分支跟踪远程分支git branch -u [remotename]/[branch]
设置本地分支跟踪远程分支变基cdn
git rebase branch-name
将当前分支变基到branch-name
分支上git rebase --onto master server client
取出 client 分支,找出处于 client 分支和 server 分支的共同祖先以后的修改,而后把它们在 master 分支上重演一遍git config --global pull.rebase true
更改git pull
默认为git pull --rebase
其它相关server
git fetch remote-name
抓取远程仓库有而本地仓库没有的数据, 并不合并, 至关于更新跟踪分支git log --oneline --decorate --graph --all
查看提交历史, 分支指向以及项目分支分叉状况git merge branch-name
将branch-name
合并到当前分支上git push [remote] [branch]
推送分支到远程仓库