创建分支并与推送到远程
创建分支应在代码改动前还是改动后
创建brach的动作, 是从当前branch的HEAD commit处开辟一个分路. 开辟新branch时, 相对于HEAD commit的情况, 本地文件可能有两种状态:
没有任何改动
代码有改动, 部分处于
modified
状态(修改但未ADD), 部分处于staged
状态(ADD但未COMMIT)
如果代码没有改动, 创建分支后的开发流程就是标准的流程. 如果代码有改动, 无论改动处于哪种状态(modified
或staged
), 在创建分支之后, 这些改动都将跟随到新的分支上来. 使用git status
在创建并切换分支前后, 看到的内容是完全相同的.
这是因为branch其实就是将一个个commit
节点串联起来, 创建分支是在一个commit
节点处引出一条分路, 分路的下一个节点一定也是一个commit
. 而没有commit
的改动是不会因分支而区别的.
本地创建分支
可以使用以下两种方式创建一个新的分支.
上面的指令会创建一个名为branch-name
的分支, 但仍然停留在当前的分支, 而本地已经有这个分支了, 如果需要使用新分支, 需要手动切换过去.
这个指令在创建新分支的同时, 就会切换到新的工作分支上. 如果创建分支前就有未提交的改动代码, 需要在新分支上使用, 使用这个指令会更方便.
同步新分支到远程
通过上面一步, 只是在本地创建了新的分支, 远程仓库中还没有这个新的分支. 将本地的新分支推送到远程, 在远程也同步创建一个新的分支, 需要首先切换到新分支下面, 使用如下的指令:
其中:
--set-upstream
与-u
是等价的. 此参数的意思是指定当前的本地分支与远程分支的跟踪关系, 相当于在本地和远程远程之间建立绑定关系origin
代表远程[origin-branch-name]
远程分支的名称. 允许本地分支与远程分支不同, 但一般都会保持名称的一致, 避免混乱
最后更新于