您的位置:首页 > 其它

【git】git的分支

2016-03-21 16:50 351 查看

1.认识

★git如何保存数据 :每次提交之间的关联是提交对象中包含了前一次树对象的指针,这样层层关联



★分支本质:仅仅是指向提交对象的可变指针

2.分支命令

2.1 创建分支 :不同分支上的操作互不影响 (master只是git为你默认创建的一个分支,和自己创建的一样,只是名字不同)

git branch <branch-name> //创建分支

2.2 查看不同的分支

git branch -a  //查看本地和远程的所有分支
git branch -r //查看远程分支
git branch -l //查看本地分支
git branch -v //查看每一个分支的最后一次提交
git branch --merged //查看哪些分支已经合并到当前分支 --no


★查看各个分支当前所指对象

git log --oneline --decorate


2.3 切换分支

git checkout <branch-name>
★原理 : 在 .git 文件夹中保存着一个名为HEAD的文件,其中记录着当前项目所在的分支
★创建并切换分支

git checkout -b <branch-name> //相当于两条命令,一条创建,一条切换
git checkout -b issue53 //创建 issue53分支并切换


2.4 合并分支

git merge <branch-name>  //将当前所在的分支和 <branch-name>合并 ,简单将指针向前推进(fast-forward)
★合并有冲突的分支:按上面所述命令合并后,有冲突的文件会以未合并状态(unmerged)标识出来,使用git status 查看,然后手动解决,解决后用git add标示已解决

git status
git add

2.5删除分支

git branch -d hotfix  //对于已合并的分支,删除分支hotfix
git banch -D hotfix //  对于未合并的分支 ,强行删除分支


2.6 推送 :将代码推送到远程服务器上

git push <remote-name> <branch-name>
git push origin master //推送到远程的origin服务器的master分支上
git push origin <local branch-name>:<remote branch-name> //本地和服务器上的分支名不同
git push origin servefix:remote-server //将本地的serverfix推送到远程的origin的remote-server上

2.7 拉取

git pull //相当于git fetch  然后 git merge


2.8跟踪分支

★从远程服务器上检出本地分支会自动创建一个跟踪分支(上游分支),git pull就是根据跟踪分支来向那个分支抓取

★检出并创建分支和其快捷方式

git checkout -b <local branch-name> <remote-name>/<branch-name>

git checkout --track <remote-name>/<branch-name> //创建并检出分支的快捷方式

2.9 删除远程分支

git push origin --delete serverfix //删除远程分支serverfix


2.10变基 rebase

★ merge :把两个分支的最新快照(C3、C4)以及最近的共同祖先(C2)三方合并,生成一个新的快照并提交 (记录实际发生过什么)

★★实现过程(test合并到master)

git checkout master //切换到master分支
git merge test //将test分支合并到master分支


★rebase:和merge的结果一样,但是能保证提交历史的整洁,就好像没有分叉一样,即和merge的提交历史不一样 (过程中发生的故事)

★★原则:未推送或者未分享给别人的本地修改执行变基操作

★★实现过程(test合并到master)

git checkout test //切换到test分支
git rebase master //将test分支和master分支所做的修改提取重新排列保存为临时文件,最后应用此文件
git checkout master //重新回到主分支,此时的文件已重新排序
git merge test //进行一次快进合并


《以上为git 分支的相关操作,整理学习》,详情参看 :git官网文档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: