共计 5701 个字符,预计需要花费 15 分钟才能阅读完成。
一、前言
Git 是一款免费、开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。在平时的项目开发中,我们会使用到 Git 来进行版本控制。
Git 的功能特性:
从一般开发者的角度来看,git 有以下功能:
1、从服务器上克隆数据库(包括代码和版本信息)到单机上。
2、在自己的机器上创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、新建一个分支,把服务器上最新版的代码 fetch 下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用 pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git 有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。关于 Git 服务器的搭建过程,网上有很多的方法,本文主要是谈谈 Git 服务器搭建好之后,如何使用以及怎么使用的问题,比如权限设置、跨平台使用等。
PS: 对于 Git 服务器的搭建,本文提供以下链接,以供参考。
Ubuntu 完美安装搭建 Git 服务器 http://www.linuxidc.com/Linux/2015-07/120616.htm
GitHub 教程系列文章:
GitHub 使用教程图文详解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 服务器搭建与客户端安装 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm
二、Git 服务器操作和使用指南
1、Ubuntu 下安装 git 和使用 git 服务器
在终端输入 sudo apt-get install git 命令,安装 git
以下截图及步骤均以 hesonglin@master 这台虚拟机操作为例
Your Name 和 Email 随意填写,目的是用来标识 git 身份
新建一个文件夹如:
输入 git init 命令,将此文件夹初始化为一个 git 仓库(空仓库)
输入 ssh-keygen –t rsa 命令生成 ssh 公钥(出现停顿按回车即可)
在主文件夹目录下会生成一个.ssh 文件夹(若无则按 Ctrl + H 使之显示)
在本虚拟机上 repository 目录下新建一个目录 gitadmin 用于存放 gitosis-admin.git 仓库如:
将 Git 服务器中 gitosis-admin.git 仓库 clone 下来(git@218.108.45.14 是我建的 Git 服务器相应的换成你建的 Git 服务器即可)
Clone 正确会显示如下信息
clone 下来会有一个 gitosis.conf 的配置文件和一个 keydir 的目录。gitosis.conf 用于配置用户的权限信息,keydir 主要用户存放 ssh 公钥文件(一般以“用户名.pub”命名,gitosis.conf 配置文件中需使用相同用户名),用于服务器认证请求的客户端机器。
将本机器上生成相应的.ssh 文件夹中的 id_rsa.pub 公钥文件,按用户名命名为如 hesonglin@master.pub,复制到 keydir 目录下
编辑 gitosis.conf 文件,设置权限
将本机用户名 (如 hesonglin@master) 添加,并赋予权限
这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效
上述的 git add . 和 git commit –am“add a user”是保存和提交到本地
git push origin master 表示将上述修改内容推送到 Git 服务器
推送成功会显示下面提示信息
至此,Git 服务器就有和上述配置的 keydir 和 gitosis.conf 一样的信息
如我在 Git 服务器中已创建好了一个 teamwork.git 仓库用来管理项目如下图:
那么,现在就可以在本机上从 Git 服务器中 clone teamwork.git 以及做了修改后进行推送到 git 服务器
首先在本机先创建一个文件夹 myrepository
进入到 myrepository 下克隆 teamwork.git
得到 teamwork.git 仓库如下图所示
现在在本地的 teamwork.git 仓库中新建 readme 文件,然后进行提交和推送
每当 Git 服务器中 teamwork.git 仓库有更新时,可以在本机上通过 git pull 命令获取最新版本的数据(注意要到 teamwork 目录内)
此时本机 teamwork.git 仓库中就有了其他开发机推送的最新版本的数据(如果其他开发机 push 了最新数据)。
至此,本虚拟机就可以从 Git 服务器进行 pull 和 push 操作了。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-07/120617p2.htm
2、在 windows 上对 Git 服务器进行 pull 和 push
首先下载安装 windows 版本的 git 客户端软件,下载地址:http://msysgit.github.io/
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明 Git 安装成功!(Windows 以 chang@CHANG-PC 为例)
按照 Ubuntu 中的方法将.ssh 文件夹中的 id_rsa.pub 文件按用户名命名成 chang@CHANG-PC.pub,复制到 keydir 文件夹,修改 gitosis.conf 文件,进行提交和推送到 git 服务器。
获取之前在 Ubuntu 中推送的内容如下图
打开相应的文件夹,里面已经有了在 Ubuntu 下新建的文件 readme
再在 windows 下新建一个文件 experiment.txt
在本地添加、提交,然后推送到 git 服务器
使用 git pull 命令就会获得 git 服务器上的最新更新(下图表示的是此时已是最新版本)
同理,这时你也可以再 Ubuntu 虚拟机下 pull 获取 teamwork 仓库项目的最新版本。
这样在不同开发机之间通过 git 实现版本控制。
如果您有什么不理解的地方欢迎留言交流,文中有误导您的地方,希望海涵并给予指正。如果您觉得文章对您有所帮助,您的留言和推荐将对我是莫大的鼓舞!
Git 的详细介绍:请点这里
Git 的下载地址:请点这里
更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120617.htm
一、前言
Git 是一款免费、开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。在平时的项目开发中,我们会使用到 Git 来进行版本控制。
Git 的功能特性:
从一般开发者的角度来看,git 有以下功能:
1、从服务器上克隆数据库(包括代码和版本信息)到单机上。
2、在自己的机器上创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、新建一个分支,把服务器上最新版的代码 fetch 下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用 pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git 有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。关于 Git 服务器的搭建过程,网上有很多的方法,本文主要是谈谈 Git 服务器搭建好之后,如何使用以及怎么使用的问题,比如权限设置、跨平台使用等。
PS: 对于 Git 服务器的搭建,本文提供以下链接,以供参考。
Ubuntu 完美安装搭建 Git 服务器 http://www.linuxidc.com/Linux/2015-07/120616.htm
GitHub 教程系列文章:
GitHub 使用教程图文详解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 服务器搭建与客户端安装 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm
二、Git 服务器操作和使用指南
1、Ubuntu 下安装 git 和使用 git 服务器
在终端输入 sudo apt-get install git 命令,安装 git
以下截图及步骤均以 hesonglin@master 这台虚拟机操作为例
Your Name 和 Email 随意填写,目的是用来标识 git 身份
新建一个文件夹如:
输入 git init 命令,将此文件夹初始化为一个 git 仓库(空仓库)
输入 ssh-keygen –t rsa 命令生成 ssh 公钥(出现停顿按回车即可)
在主文件夹目录下会生成一个.ssh 文件夹(若无则按 Ctrl + H 使之显示)
在本虚拟机上 repository 目录下新建一个目录 gitadmin 用于存放 gitosis-admin.git 仓库如:
将 Git 服务器中 gitosis-admin.git 仓库 clone 下来(git@218.108.45.14 是我建的 Git 服务器相应的换成你建的 Git 服务器即可)
Clone 正确会显示如下信息
clone 下来会有一个 gitosis.conf 的配置文件和一个 keydir 的目录。gitosis.conf 用于配置用户的权限信息,keydir 主要用户存放 ssh 公钥文件(一般以“用户名.pub”命名,gitosis.conf 配置文件中需使用相同用户名),用于服务器认证请求的客户端机器。
将本机器上生成相应的.ssh 文件夹中的 id_rsa.pub 公钥文件,按用户名命名为如 hesonglin@master.pub,复制到 keydir 目录下
编辑 gitosis.conf 文件,设置权限
将本机用户名 (如 hesonglin@master) 添加,并赋予权限
这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效
上述的 git add . 和 git commit –am“add a user”是保存和提交到本地
git push origin master 表示将上述修改内容推送到 Git 服务器
推送成功会显示下面提示信息
至此,Git 服务器就有和上述配置的 keydir 和 gitosis.conf 一样的信息
如我在 Git 服务器中已创建好了一个 teamwork.git 仓库用来管理项目如下图:
那么,现在就可以在本机上从 Git 服务器中 clone teamwork.git 以及做了修改后进行推送到 git 服务器
首先在本机先创建一个文件夹 myrepository
进入到 myrepository 下克隆 teamwork.git
得到 teamwork.git 仓库如下图所示
现在在本地的 teamwork.git 仓库中新建 readme 文件,然后进行提交和推送
每当 Git 服务器中 teamwork.git 仓库有更新时,可以在本机上通过 git pull 命令获取最新版本的数据(注意要到 teamwork 目录内)
此时本机 teamwork.git 仓库中就有了其他开发机推送的最新版本的数据(如果其他开发机 push 了最新数据)。
至此,本虚拟机就可以从 Git 服务器进行 pull 和 push 操作了。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-07/120617p2.htm