Git版本控制工具使用教程(三)

Git 版本控制工具 2.11.0 使用教程(三)

在上一篇博客中我们讲到了关于 Git 的进阶用法, 包括忽略文件、查看修改内容、撤销未提交的修改和查看提交记录. 本章中我们会讲到更多关于 Git 的使用技巧.

  1. 分支的用法

    分支是版本控制工具中比较高级且比较重要的概念, 它主要的作用就是在现有代码的基础上开辟一个分叉口, 使得代码可以在主干线和分支线上同时进行开发, 相互之间不会影响.
    分支的英文名是 branch, 如果要查看当前的版本库中有哪些分支, 可以使用如下命令 :

    git branch

    如果你想要创建一个分支的话, 可以执行如下命令 :

    git branch version1.0

    这样我们就创建了一个名为 version1.0 的分支.

    由于默认分支为 master, 如果我们想切换到新建立的分支, 可以执行如下命令 :

    git checkout version1.0

    这样我们就从默认 master 的分支切换到了我们新建的分支 version1.0.
    需要注意的是, 在 version1.0 分支上修改并提交的代码不会影响到 master 分支. 同样的道理, 在 master 分支上修改并提交的代码也不会影响到 version1.0 分支. 因此,如果我们在 version1.0 分支上修复了一个 bug, 在 master 分支上这个 bug 仍然是存在的. 这时将修改的代码一行行复制到 master 分支上显然不是一种聪明的做法. 最好的办法就是使用 merge 命令来完成合并操作, 如下所示 :

    git checkout master
    git merge version1.0

    这样, 就可以把 version1.0 分支上修改并提交的内容合并到 master 分支上了. 当然, 在合并分支的时候还有可能出现代码冲突的情况, 这个时候你就需要静下心来慢慢地找出并解决这些冲突.

    最后, 当我们不再需要 version1.0 这个分支的时候, 可以使用如下命令将这个分支删除掉 :

    git branch -D version1.0

  2. 与远程版本库协作

    如果你是一个人在开发, 那么使用版本控制工具就远远无法发挥出它真正强大的功能. 没错, 所有版本控制工具最重要的一个特点就是可以使用它来进行团队合作开发. 每个人的电脑上都会有一份代码, 当团队的我某个成员在自己的电脑上编写完成了某个功能后, 就讲代码提交到服务器, 其他成员只需要将服务器上的代码同步到本地, 就能保证整个团队所有人的代码都相同. 这样的话, 每个团队成员就可以各司其职, 大家共同来完成一个较为庞大的项目.

    假如现在有一个远程版本库的 Git 地址为 https://git.oschina.net/example/test.git 就可以使用如下命令将代码下载到本地 :

    git clone https://git.oschina.net/example/test.git

    之后你在这份代码的基础上进行了一些修改和提交, 那么如果你想把代码提交到远程服务器就可以使用如下命令 :

    git push origin master

    其中, origin 指定的是远程版本库的 Git 地址, master 指定的是同步到哪一个分支上.

    知道了将本地的修改同步到远程版本库上的方法, 接下来我们看一下如何将远程版本库上的修改同步到本地. Git 提供了两种命令来完成此功能, 分别是 fetchpull, fetch 的语法规则和 pull 差不多, 如下所示 :

    git fetch origin master

    执行这个命令之后, 就会将远程版本库上的代码同步到本地, 不过同步下来的代码并不会合并到任何分支上去, 而是会放到一个 origin/master 分支上, 这时候我们可以通过 diff 命令来查看远程版本库上到底修改了哪些东西 :

    git diff origin/master

    之后再调用 merge 命令将 origin/master 分支上的修改合并到主分支上即可, 如下所示 :

    git merge origin/master

    pull 命令则是相当于将 fetchmerge 这两个命令放在一起执行了, 它可以从远程版本库上获取最新的代码并且合并到本地, 用法如下所示 :

    git pull origin master

好了, Git的高级用法就先讲到这里, 下一篇会写一个例子, 让大家更加熟悉 Git 的使用方法.

你可能感兴趣的:(版本管理工具,git,版本控制工具)