分布式版本控制工具Git

一、Git技术简介

Git是一个分布式版本控制系统,与集中式的SVN不同。

1. 主要特点

集中式特点:

  1. 所有人的资源全部保存在中央服务器。
  2. 所有人开发前都需要从中央服务器上下载同步其他人的代码才能继续开发,慢。
  3. 中央服务器一旦数据丢失,意味着所有数据全部丢失。

分布式特点:

  1. 每个人的电脑都是一个完整的版本库
  2. 每个人修改完毕之后,会将资源发送至其他每个同事的电脑。
  3. 如果个人电脑数据丢失,随便从其他人那里复制一份即可。

二、Git环境搭建

1.下载Git客户端

https://git-scm.com/downloads

2.安装Git客户端

注释:Git使用了cygwin在windows下模拟了unix环境,所以支持很多unix文件操作命令。

a) 将git客户端下载后安装在非中文目录下。

b) 下载Git图形化工具:smartGit

http://www.syntevo.com/static/smart/download/smartgit/smartgit-win32-setup-jre-17_0_5.zip

3.创建版本库

解释:所谓版本库,就是本地的仓库,本质就是一个文件夹,只不过该文件夹会受到git的管理,每个文件的创建修改都能跟踪

例如要将d盘下的work目录中创建gitrepo目录作为git仓库文件夹。

仓库创建好之后,会生成.git的目录,.git的目录,是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。默认是隐藏的。

三、Git的常用版本控制命令

1. 添加文件到版本库

· 示例: 向版本仓库中添加一个HelloGit.java文件。

· 注意事项:

① 版本控制器只能记录文本文件的改动痕迹。

② 二进制文件只能记录大小变化。

③ 文本文件必须使用UTF-8编码

④ windows用户不要使用系统自带记事本编辑器。

· 操作:

1.1 在git的仓库目录或者子目录中创建一个HelloGit.java文件。

1.2 使用 stage 操作将文件把文件交给git管理的暂存区【相当于数据库的dml语句,将数据修改存放在rollback seagment回滚段,暂存区与当前客户端对应】

1.3 使用 commit 完成文件的提交【相当于数据库的提交事务,将暂存的内容提交给git管理。】

使用commit提交文件需要设置 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置

2. 版本管理机制

开发中会对代码文件进行一次又一次修改,就好比我们打rpg游戏,每打败一个boss就存档一次,如果某次打boss失败了,我们也可以利用存档回退到之前的某个进度,不至于从头开始。git也一样,每次修改到一定程序,就要利用commit命令产生一个快照,日后一旦改错了,也可以利用commit快照回退之前的某个快照时刻

① stage是将当前修改提交到暂存区。

② commit 才是一次性将暂存区的数据同步到仓库。

③ 每次commit,其实就是对当前进度生成一个快照,就表示当前进度。

进度模型:

3. 版本管理

4.1 工作区修改撤销

4.2 内容已经被提交到暂存区staged

如果需要将工作区的内容页撤销掉,需要使用git checkout -- file。

4.3 内容已经commit到仓库区:使用版本回退。

① 使用git log命令查看文件的修改详细历史记录。

② 跳到指定版本

③ 工作区文件撤销和仓库保持一致,需要对工作区文件撤销操作。

4.4 删除文件

ps:本质也是提交修改,删除也是一种修改。

① 删除工作区的文件,然后再smartgit中提交修改。

四、远程仓库

1. 创建远程仓库

1.1 使用邮箱在第三放GitHub网站注册一个账号。

开源中国码云:http://git.oschina.net/

1.2 创建远程仓库

注意:远程仓库和本地仓库名必须一致,否则无法提交。

2. 绑定远程仓库

2.1 复制远程仓库的地址

2.2 在smartgit中添加远程仓库地址进行绑定。

2.3 先确保项目已经commit。

2.4 点击项目文件夹,然后点击pull。将本地仓库和远程仓库绑定。

2.5 将本地项目推送到远程仓库.

3. 从远程仓库克隆

注释:最正确的工作流程是先创建远程仓库,然后克隆远程仓库

3.1:创建远程仓库

3.2:克隆远程仓库

git clone 远程仓库项目的地址

3.3 使用smart克隆clone远程仓库到本地

3.4 可以在克隆到本地的仓库进行操作。

4. git操作命令简图


说明:

workspace:本地工作区

Index/Staged:暂存区

Repository:本地仓库

Remote:远程仓库

五、分支管理

1. 概念

分支就好比是火影中的影分身之术,比如你要同时完成学习Spring和Linux两件事,你可以分身,然后一个分身花5天时间去学习Spring,另一个分身花5天学习Linux,这5天之内各个分身互不干扰,5天之后分身合并,你就同时掌握了Spring和Linux两种技术。

2. 作用

比如开发中,你有一个任务需要1个月完成,如果完成再提交,过程中有代码丢失的风险,但是完成之前就提交可能导致别人无法工作。通常来讲,一个人使用一个分支。

3. 分支管理

ps:系统默认有一个主分支--master

3.1 查看目前所有的分支:git branch

3.2 创建分支:git branch 分支名

3.4 合并分支:

4. 解决冲突

ps:所谓冲突一般就是两个人开发中在各自的分支中修改了同一个文件,并且要提交。

就好比你有两个分身,都学习了做饭西红柿炒鸡蛋,一个放糖,一个放盐,合并的时候必须把这个矛盾手动解决,

执行合并是会出现上图中的状态,需要两个分支所对应的人共同协商给出冲突解决结果,将文件修改之后,然后由其中一个人完成add和commit,然后再合并。

5. 远程仓库分支管理

5.1 将指定分支推送到远程:git push origin 分支名

6. 分支管理策略

6.1 master分支,主分支,时刻与远程仓库保持一致。

6.2 dev分支,开发分支,涉及到多人协作,且保存这多人共同的开发进度。如果所有人的开发进度需要与远程保持一致,则需要推送到远程,否则本地也可以。

六、标签管理

概念:tag其实就是对某个commit的快照添加个标记,快照虽然也有版本号,但是是一串32位的UUID很难记忆也不易于沟通,而换成标签tag:v1.0 、v2.0这样的标记就很容易记忆。比如“将master主分支上,v1.0标签的项目打包发布”就比 “将master主分支上a732s8a89s88d...版本的项目打包发布”容易的多。

1. 创建标签

切换到要添加标签的分支上,找到对应的版本,右键选择Add Tag操作。

2. 管理标签

2.1 查看所有标签

2.2 删除标签

在标签右键--->Delete即可。

2.3 把标签推送到远程仓库

选中标签--->右键-->push to

七、 Eclipse整合操作

1. 创建项目分享到git远程仓库。

2. 从git仓库克隆项目

3. 开发过程中的操作流程

八、 常用的第三方在线Git仓库

原文地址:https://www.cnblogs.com/awzf/p/9957181.html

时间: 2024-10-11 13:59:56

分布式版本控制工具Git的相关文章

开源分布式版本控制工具 —— Git 之旅

转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-tourofgit/ Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的复杂性,并由此拔高了学习成本,某种程序上影响了开发者使用或者迁移 Git 的项目进度,笔者同样感同身受,这也是本文的出发点. 不同于各种 Git 用法指南,本文在介

版本控制工具 GIT入门教程

GIT 在团队中的中作流程 1.每个程序员在自己的分支上进行开发 2.主程序猿/Leader合并程序员程序 3.程序员之间也可以对一下提交冲突进行合并 下载和安装 GIT官方网址:http:// git - scm.com 具体怎么装,一直点下一步就是了(PS:windows) 创建一个库 启动git bash,由于是刚刚安装,所以还没有任何工程库 创建一个目录 mkdir gitproject 进入gitproject目录 cd gitproject 初始化工程库 git init 系统给出提

版本控制工具git入门

版本控制工具的历史 不说了,放张图 两者的区别:集中式需要一个中心服务器放置最新的文件,需要联网操作.分布式可以再不联网的情况下操作,前提要拥有版本库 git安装  略 github注册 略 如何在github上创建一个新的项目 如何克隆到本地 cd到想要克隆的文件夹下面 git clone 路径 例如: git clone https://github.com/xiaobie123/deomtext1.git

版本控制工具 GIT 简要教程

一,Git 简介 其实这个就不用说了 但是国际惯例还是介绍一下吧; Git 是一个开源的分布式版本控制系统,用于敏捷 高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持. 二,Git 安装配置 1,这里咱们就介绍Windows下的安装, 下载也是十分简单 https://git-scm

it入门之:学会使用Git 分布式版本控制工具

环境:window 工具:git & TortoiseGit 下载安装以及配置环境变量 :略略略 创建Github账户:登录https://github.com/用自己的常用邮箱创建账户,用来管理自己的代码 打开Git-bash 输入: ssh-keygen -t rsa -C "[email protected]" #连续三次回车,默认:/c/Users/Administrator/.ssh · 在c盘,当前用户文件夹下,有个.ssh 文件夹,在里边 找到 id_rsa.pu

Git分布式版本控制工具

一.安装Git  1.下载Windows版的Git:msysgit:官方下载地址:http://msysgit.github.io,安装选定要安装的目录(路径杜绝中文),剩下的按照默认安装即可,参考:GIt安装教程 .   2.安装完成后,在开始菜单里找到"Git"->"Git Bash",弹出一个类似命令行的窗口:或是在CMD命令提示符下,输入git回车可以看到很多提示,就说明Git安装成功!   3.初始化目录 生成隐藏文件 .git 负责版本的保存 [e

谈谈分布式版本管理工具Git

一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. 三.Git与SVN的的主要区别? Git是分布式版本控制系统,那么它不但和SVN一样有中央服务器,而且每个人的电脑也是一个完整的版本库,这样,工作的时候联网就不是必须的了,因为版本可以先在自己的电脑上

初始版本控制工具-Git

该博文完全参考郭霖的<第一行代码> 安装Git Ubuntu系统: 只需要打开shell界面,并输入: sudo apt-get install git-core 按下回车后输入密码,即可完成Git的安装. Windows系统: 先下载Git安装包,下载地址:https://git-for-windows.github.io/,下载完成后点击安装包进行安装,之后一直点击"下一步"就可以完成安装. 创建代码仓库 在"开始"里面找到并打开Git Bash.

版本控制工具--GIT 基本命令(1)

一.安装GIT,在官网上下载安装即可(下面模拟环境是window7) 二.基本操作: 1.创建GIT库: ①先使用mkdir命令创建一个空目录,再使用git init将该目录变成GIT库,会在该目录下创建一个.git目录,默认是隐藏的 说明:pwd命令是显示当前路径 在.git下的config文件(建议使用notepad++打开)中,添加保存: [user] name=Ibelive [email protected] 这边如果不添加个人信息的话,下面的操作将不能正常进行. 2.添加文件到版本库