上一篇文章我们主要讲了在Master分支上如果提交代码到服务器,由于我们日常开发中都是多人开发一个项目,涉及到分支的概念,使用过SVN的同学秒懂,trunk、branch啦。
下面我们先讲讲git的分支。
1、查看现存的分枝
F:\gitworkspace\Test>git pull Already up-to-date. F:\gitworkspace\Test>git branch * master
可以使用不带任何参数的'git branch'命令。 可以看到我们在使用master分支,*代表的意思是我们正在这个主分枝上工作。
2、创建新分支
F:\gitworkspace\Test>git branch test1 F:\gitworkspace\Test>git branch * master test1
使用 git branch test1 命令。 我们创建了一个叫test1的分支。 使用git branch我们看到了我们新创建的分支,但是我们现在还是使用的master分支。
3、切换分支
F:\gitworkspace\Test>git checkout test1 Switched to branch 'test1' F:\gitworkspace\Test>git branch master * test1
4、分支上代码修改
我们可以按照上一篇文章讲的方法,修改文件- 提交stage-commit -push到服务器。我们在test1分支上新增一个test1.txt文件。
注意push到服务器的时候可能和push到master上命令稍微有不同。多了个origin,因为origin 默认为master,所以在master上的时候是不需要这个参数的。
F:\gitworkspace\Test>git push origin test1
这样master和test1分支上的代码就不一样了。
5、合并分支
首先切换到想要合并到的分枝下,运行'git merge 分支名 '命令,譬如我们要将test1分支上修改的代码合并到master。
F:\gitworkspace\Test>git merge test1 Updating 6610af9..840158c Fast-forward test1.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test1.txt F:\gitworkspace\Test 的目录 2016/07/17 13:28 <DIR> . 2016/07/17 13:28 <DIR> .. 2016/07/17 11:41 7 README.md 2016/07/17 11:49 55 readme.txt 2016/07/17 11:55 0 test.txt 2016/07/17 13:28 6 test1.txt 4 个文件 68 字节 2 个目录 291,866,603,520 可用字节
我们还是很幸运哈。
那么我们来看下如果发生冲突的情况。在test1分支上修改test.txt文件,然后再合并到master。
那么我们就需要先解决冲突,然后再合并
6、删除分支
我们只需使用'git branch -d'命令即可删除此分枝。
F:\gitworkspace\Test>git branch -d test1 Deleted branch test1 (was 19e387e). F:\gitworkspace\Test>git branch * master如果分枝还没有被合并,那么执行这个命令就会将分枝上所做的工作一并删除,git是不允许你这么干的。如果你实在想删除的话,那么使用'-D'参数强行删除吧。最好还是不要使用强删吧,备份是程序员的基本素质,哈哈哈!
接下来我们讲讲git中的Tag,这个是不是和SVN的Tag也很像。
譬如我们要发版本,每个版本上线后,我们都要打一个Tag。
1、查看tag
要想列出git中现有的所有标签,输入'git tag'命令运行即可:
2、创建带注释的标签
在git中创建带注释的标签非常简单,在运行'tag'命令时加上-a就可以了。
F:\gitworkspace\Test>git tag -a v1.0 F:\gitworkspace\Test> F:\gitworkspace\Test>git tag v1.0
F:\gitworkspace\Test>git show v1.0 tag v1.0 Tagger: xiaodao <[email protected]> Date: Sun Jul 17 13:52:57 2016 +0800 version1.0 s commit 840158cc43ba77a1ff4537a23a05053e07d10c66 Author: <span style="font-family: 宋体, 'Arial Narrow', arial, serif;">xiaodao <[email protected]></span> Date: Sun Jul 17 13:22:32 2016 +0800 'test1' diff --git a/test1.txt b/test1.txt index e69de29..0fc3f26 100644 --- a/test1.txt +++ b/test1.txt @@ -0,0 +1 @@ +test1 \ No newline at end of file