分支在实际中有什么用呢? 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险. 现在有了分支,就不用怕了. 你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作, 而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作. 创建与合并分支 在版本回退里,你已经知道,每次提交…
软件开发中,bug 就像家常便饭一样.有了 bug 就需要修复,在 Git 中,由于分支是如此的强大,所以,每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一个代号 101 的 bug 的任务时,很自然地,你想创建一个分支 issue-101 来修复它,但是,等等,当前正在 dev 上进行的工作还没有提交: $ git status # On branch dev # Changes to be committed: # (use "git…
一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下--no-ff方式的git merge: 首先,仍然创建并切换dev分支: $ git checkout -b dev Switched to a new branch 'dev' 修改readme.txt文件,并提交一…
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下--no-ff方式的git merge: 首先,仍然创建并切换dev分支: $ git checkout -b dev Switched to a new branch 'dev' 修改readme.txt文件,并提交一个新的commit…
  1. git 文档 https://github.com/progit/progit/blob/master/zh/02-git-basics/01-chapter2.markdown https://github.com/progit/progit/tree/master/zh http://www.uml.org.cn/pzgl/201204285.asp   如果是windows操作系统,可以装可视化的版本控制器:小乌龟.这样的话就不用敲git命令了.小乌龟安装配置如下: http:/…
1.创建本地分支 local_branch git branch local_branch 2.创建本地分支local_branch 并切换到local_branch分支 git checkout -b local_branch 3.切换到分支local_branch git checkout local_branch 4.推送本地分支local_branch到远程分支 remote_branch并建立关联关系 a.远程已有remote_branch分支并且已经关联本地分支local_branc…
git fetch origin branchname:branchname 可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchname git checkout --track origin/remoteName -b localName 获取远程分支remoteName 到本地新分支localName,并跳到localName分支,这里加了--track,让创建的本地分支localName跟中远程的origin/remoteName…
应用场景:开发过程中经常用到从master分支copy一个本地分支作为开发分支 步骤: 1.切换到被copy的分支(master),并且从远端拉取最新版本 $git checkout master $git pull 2.从当前分支拉copy开发分支 $git checkout -b dev Switched to a new branch 'dev' 3.把新建的分支push到远端 $git push origin dev 4.关联 $git branch --set-upstream-to=…
了解分支 如果想实现多人协作.划出Bug区.Feature区等功能,就需要分支功能.(确实很强大的地方) 每次commit时,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.而此时HEAD也指向master. 每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长. 当我们创建新的分支dev的时候,将HEAD指向dev,这时候就在dev分支上了. 创建和进入分支 创建分支…
1. 创建并切换到dev分支 git checkout -b dev // git checkout命令加上-b参数表示创建并切换,相当于以下两条命令 git branch dev git checkout dev 2. 查看分支 git branch命令会列出所有分支,当前分支前面会标一个*号 git branch 简单的合并案例: 假设在 dev 分支上对 readme.txt 上做了修改并提交,再切换到 master 分支,这时 master 上是没有关于 readme.txt 的修改的.…