zoukankan      html  css  js  c++  java
  • git之分支

    分支
    	分支:master分支、dev分支、功能分支、bug分支
         什么是分支:
            分支就是一条时间线,每次commit后,git会把所有commit串成一条时间线,这条时间线就是一个分支,分支上有节点,每个节点表示一个commit。
    HEAD是一个指针,指向当前的分支。
              HEAD指向master,master指向commit,所以HEAD指向当前分支
            时间线的形成:
              一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。
              每次提交后,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长
              
              
    
    
    	为什么创建分支
    		用分支完成你的,在分支上开发,然后合并到主分支上,这样不会影响主分支。
    		因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
    	创建新分支:
    		创建新分支
    			git branch  dev ////dev是新分支的名字 
    		创建新分支并切换到新分支
    			git checkout -b dev //dev新分支的名字 
    		 
    	切换到想要的分支
    		git checkout dev //dev是想要进入的分支的名字 
    	查看当前分支
    		git branch 
    	删除分支
    		git branch -d dev  	
    	合并分支
    		普通模式合并(推荐)
    			合并后的历史有分支,能看出来曾经做过合并
    				git merge --no-ff -m "merge with no-ff" dev		
    		快速合并(不推荐)
    			git merge dev  //当前在master分支上,把dev分支和master分支合并
    			fast forward合并就看不出来曾经做过合并。所以不要用快速合
    			git把master指向dev的当前提交,所以合并速度非常快。只有master没有变得时候可以这么干	
    			
    		解决冲突
    			只能手动解决冲突
    			当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
    				
    		查看git历史提交日志,图形化展示
    			git log --graph //可以看到分支合并图
    	临时保存当前分支的工作现场
    		临时保存当前分支的工作现场
    			临时保存当前分支的工作现场是什么意思?
    				保存当前分支的工作现场,保存到硬盘中
    				工作现场:包含当前分支的工作区,暂存区
    			临时保存:
    				git stash  //可以把当前分支的工作现场“储藏”起来,等以后恢复现场后继续工作:
    				git stash list命令看看刚才的工作现场存到哪去了
    		恢复分支
    			方法2(推荐):     
    				git stash pop//恢复的同时把stash内容也删了
    			方法1 
    				git stash apply //恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
    				保存多个地方
    				你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
    					$ git stash apply stash@{0}	
    				当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
    	推送分支到远程库
    		推送分支上的内容,到远程库上
    			git push origin master 推送master分支到远程库
    				origin 是远程库的名字
    				master 是本地的分支
    			git push origin dev  推送dev分支到远程库
    		创建新分支并切换到新分支,然后从远程库中拉取内容,然后关联远程库
    			git checkout -b dev origin/dev 
    		已经有分支,从远程库中拉取内容
    			git pull
    			git pull也失败了,原因是没有把本地dev分支与远程origin/dev分支的关联起来,根据提示,把dev和origin/dev关联起来
    				把本地的dev和远程库中dev分支创建关联关系
    				git branch --set-upstream-to=mayun/dev 
    
    多人协作的工作模式通常是这样:
    	首先,可以试图用git push origin branch-name推送自己的修改;
    		如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    		如果合并有冲突,则解决冲突,并在本地提交;
    		没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    		如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to=mayun/dev
    		这就是多人协作的工作模式,一旦熟悉了,就非常简单
    	
    	本地新建的分支如果不推送到远程,对其他人就是不可见的;
    	从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
         例子:

            你的小伙伴已经向origin/dev分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送

            推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送

      

  • 相关阅读:
    day 40 MySQL之视图、触发器、事务、存储过程、函数
    js多元运算
    继承以及Super
    Git工作流指南:Gitflow工作流
    JS中的逻辑运算符&&、||,位运算符|,&
    js的prototype理解
    JS对象—数组总结(创建、属性、方法)
    React-Native中props用法详解
    AJAX中同步和异步的区别和使用场景
    web前端之性能
  • 原文地址:https://www.cnblogs.com/xuanjian-91/p/10423034.html
Copyright © 2011-2022 走看看