Git分布式版本管理工具的基本使用
来源:互联网 发布:不需要网络的游戏大全 编辑:程序博客网 时间:2024/05/29 12:15
一:简介
GIT:分布式版本管理工具,需要先将代码提价的本地仓库,然后再提交到远程仓库;使用流程:用户先将文件添加到本地版本库的当前分支中的暂缓区,然后再将本地版本库中的暂缓区提交到本地版本库的当前分支中,然后再将当前分支提交到远程仓库中(即服务器)
用户 —add—> 【暂缓区】—commit—> 【当前分支】—push—>【共享版本库|远程服务器】,相对于svn,git增加了一个中间环节,因每个开发者本地都有本地版本库,即使在没有网的情况下也可以进行版本管理
基本使用过程
首先将代码克隆下来clone,修改代码,将代码提交commit到本地版本库,然后将本地版本库推送到push共享版本库,如果需要获取最新的代码就要从共享版本库中拉取下来pull
origin:远程版本库名称(Git创建好的),可以创建多个
master:默认创建的分支名称
git版本库的基本目录:
SVN和Git的比较
Git和SVN最大的不同就是Git是分布式版本管理,就是用户将代码先提交到本地仓库,然后再提交到远程仓库,这样即使在没有网络的情况下也可以使用Git进行版本管理,而SVN是直接将代码提交到远程服务器的,如果没有网络就不能进行版本管理。
git对于版本回退好像操作比较麻烦,需要其他同事都要版本回退进行配合;
图形化界面
- SourceTree https://www.sourcetreeapp.com/
- GitHub https://mac.github.com/
- Xcode
初始化代码仓库
git init // 在当前目录下会生成一个.git的文件夹(一个空的版本库)
// 配置当前版本库的用户名和邮箱
git config user.name “zhangsan”
git config user.email “zhangsan@163.com”
// 配置全局的用户名和邮箱(所有版本库都通用的)
git config - -global user.name “zhangsan”
git config - -global user.email “zhangsan@163.com”
.git目录:
工作区:本地仓库文件夹中除了.git目录以外的其他内容
版本库:.git目录,用于记录版本信息
暂缓区stage
分支:初始化版本库是会自动创建一个master分支作为默认的分支
HEAD指针:用于记录当前的分支
常用命令
git status // 查看文件状态(红色:该文件被添加或者被修改,但是没有添加到暂缓区,绿色:该文件在暂缓区,但是没有提交到本地版本库),只有在暂缓区track中的文件才可以被commit,一但提交暂缓区就会被清空
git add // 将文件添加到版本库中的暂缓区,在图形工具中不在暂缓区中一般显示问号?
git add . // 将工作区所有不在暂缓区的所有内容添加到暂缓区
git commit -m “注释” 文件名 //(提交到本地仓库) 将暂缓区的所有内容提交到本地版本库的当前分支
git rm // 删除指定的文件,rm之后需要commit一下
git log // 查看提交的版本信息(只有普通的版本信息,如果有版本回退的是不显示的)
git reflog // 也可以查看所有版本回退的操作
// 版本回退(也就是svn中的还原),一般需要进行备份,防止操作失误,回退的是本地版本,还需要push -f 到远程服务器, 因其他同事本地版本库仍然是原来的,所以其他同事要么重新克隆,要么也要在本地版本库回退一下
git reset - -hard HEAD // 版本强制回退当前版本
git reset - -hard HEAD ^ // 回退到上一个版本
git reset - -hard HEAD ^^ // 回退到上上一个版本
git reset - -hard 版本号(前5位)
无论是新添加的文件还是修改了文件都需要add命令将文件添加到暂缓区,使用命令行比较烦,一般图形工具都会默认自动做了这件事
git help // 查看git的所有命令的解释
搭建Git服务器(共享版本库)
- 自己搭建(非常繁琐)
- 代码托管 GitHub、OSChina
- 一个文件夹 git init –bare
- 一个U盘
项目经理创建一个共享版本库(以文件夹的形式),一般使用OSChina作为共享版本库
git init - - bare
项目经理将共享版本库的所有内容克隆到本地
git clone <共享版本库地址>
创建忽略文件.gitignore(经理操作), 文件的内容 https://github.com/github/gitignore/blob/master/Objective-C.gitignore,这样再创建项目后再提交就不会提交一些不需要提交的文件了
git push origin master // 推送到远程服务器中
版本备份(打tag)
git tag // 查看所有的tag
git pull // 拉取代码(可以拉取所有的包括tag)
git branch // 查看本地分支以及当前所在分支
git branch -r // 查看远程分支
git checkout // 切换分支,checkout既可以切换分支也可以切换tag
1、 1.0版本开发完毕,上传到AppStore,并对其进行备份
git tag -a <tagname> -m "注释" // 现在只是在本地打的taggit push origin <tagname> // 将tag推送到远程服务器中
2、 开始开发2.0版本,开发过程中发现1.0有bug,需要某人来修复
首先将远程版本库的代码clone下来,克隆到一个新的目录下,切换到指定标签,创建分支(修复bug不是在tag中修复的而是在分支中修复的)git clone <url>git checkout <tagname> // 将当前环境切换到指定的taggit checkout -b <branchname> // 创建分支,并切换到该分支,然后修改bug
3、 bug修复好,上传到AppStore,再为该版本打一个分支来备份一下(标签名不允许重复,要唯一)
git tag -a <tagname2> -m "注释"git push origin <tagname2>
4、 开发新版本的同事 和bug分支近行合并
Source Control --> pull --> origin/<branchname> // 先将新分支的代码拉取下来,新分支和主分支就合并了Source Control --> push --> origin/master // 推送到主分支中
5、 删除分支(需要3步)
// 删除分支时当前分支不能是要删除的分支git checkout master // 切换到master分支git branch -d <branchname> // 删除本地分支git branch -r -d origin/<branchname> // 删除本地版本库分支 git push origin - -delete <branchname> // 删除远程
创建新人共享版本库
首先创建一个新的共享版本库,然后新添加一个远程仓库,最后将Xcode中的工程推送到新的远程仓库中,新同事就从新的远程仓库中就行clone就好。
使用Xcode 添加一个新的远程仓库(Source Control—> Config xxx…—> Remote—>Add Remote…Name(新远程仓库的名字)&Address(新的远程仓库地址))
然后将工程推送push到新的远程版本库
新人就可以克隆clone新的远程版本库
- Git分布式版本管理工具的基本使用
- 分布式版本管理工具GIT使用心得
- 分布式版本管理工具GIT
- 分布式版本管理工具Git
- Git版本管理工具的使用
- Git版本管理工具的使用
- 版本管理工具git的使用
- 版本管理工具git的使用
- 谈谈分布式版本管理工具Git
- git版本管理工具使用
- Git版本管理工具使用
- 分布式版本管理系统Git的基本介绍与使用
- android studio Git版本管理工具的使用
- 关于版本管理工具 git 的具体使用
- git——分布式版本管理工具
- Git分布式版本管理工具--安装,配置
- 版本管理工具Git(2)git的安装及使用
- 版本管理工具Git使用总结
- RecyclerView3-面向接口优雅地实现多类型列表
- 运维笔记30 (lvs负载均衡的(nat,tun,dr三种模式,ldirectord健康检测,ldirectord结合heartbeat)keepalived+lvs介绍)
- 求素数,判断素数,筛法
- Java中static静态变量的初始化解析
- maven引入spring支持相关jar
- Git分布式版本管理工具的基本使用
- phpstudy添加虚拟主机的三部曲
- 【Linux】Linux中常用操作命令
- Nexus自定义上传本地Jar包
- Linux下让redis以服务方式运行
- logback简易教程
- Android 自定义View (一)
- 获取类的属性
- hue安装与配置