版本控制工具——git
Git——是目前世界上最先进的分布式版本控制系统
版本控制系统:
备份(记录多个版本文件的功能), 记录操作时间线(查看历史操作,进行版本回滚、前进的功能),多端共享代码(代替各种云盘的功能),‘自动’合并(解决多人开发冲突问题)
分布式:
去中心化,也就是我们所说的分布式。Git是没有中心服务器的,每个人机器上都是一个完整的库,我们平时开发代码时的中央服务器其实和我们自己机器上的库内容基本是完全一样的。虽然平时大家都是将代码提交到中央服务器上再统一pull别人的代码,但实际情况你可以总是pull张三的库,然后push给李四等等操作。
去中心化意味着没有权威、没有主力,所有人都是平等的。这概念本身看起来好像没什么,但实际对社区影响是巨大的,去看看 http://github.com 上的fork功能,你可以fork任何一个你喜欢的项目,接着按自己的喜好修改成自己的项目,或是发起pull request请原作者merge你的功能到他们项目里去(这同样也得益于Git另一项与SVN很大不同的功能——分支策略),而且大多数开源项目都会鼓励你去fork它们。这里面没有权威,没有主从,所有人只要有兴趣都可以在其他人的基础上去构建更强大或是更有领域针对性的项目。
在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理,Git都能跟踪并记录在该目录中发生的所有更新。
下载、安装git
配置git
git version 查看版本号
git config --global user.name "自己的名字"
git config --global user.email "自己的邮箱"
git config --list / git config --l 查看
git常用指令
· git init :创建一个本地仓库
· git add test.txt :把本地文件(工作区)添加到暂存区
· git add . :把本地所有文件全部添加到暂存区
· git commit -m “describe message”:真正把暂存区的所有文件添加到仓库里
· git status :查看git仓库当前的状态
· git diff test.txt :查看文件具体修改了哪里?
· git log -p:查看最近到最远提交到仓库的文件信息(一串数字为特有的时间序列id 可以根据它进行版本前后回滚)
· git log --oneline :缩减查看信息为一行
· git tag -a 标签名 -m "备注" :例:$ git tag -a v1 -m "第一版" 给提交命个名字
· git tag -a v1 -m "important" "23c4156" :给这个版本命个名字
· git show v1 :显示谁写的tag
· git merge dev: 把dev合并到当前分支上
· git branch dev: 创建dev分支
· git checkout dev: 切换到dev分支上开发
· git reset --hard HEAD^ : 回退到上一次 commit的时候
· git reset --hard bdeacd : 版本前进 只能根据 id进行前进(id只写出前六位就好了)
· git reflog:查看每次操作仓库内的信息(commit) 这样的话当黑窗口没了的时候,也可以查询具体操作信息,进行版本回退或者前进!
· git checkout --test.txt : 工作区恢复到最近一次的commit或者add
· git rm test.txt : 删除某一个文件
· git branch:查看所有分支
· git branh -d dev:删除分支 (-D 强制删除)
· 如果在开发的过程中发现主分支master上右bug但正在开发的dev分支没开发完怎们办,切记一点不要在master分支上直接开发,保存dev工作现场回到master上创建解决bug的分支如issue分支解决完回到master分支把issue分支合并再回到dev恢复现场
git stash:保存工作现场;
git pop:恢复工作现场;
·本地仓库配合远程仓库进行操作-github(现成而且较好的远程仓库,也是世界上最大的开源社区)
远程仓库上也有主分支master, 和 其他分支如dev。那本地仓库和远程仓库如何关联呢,开发流程是什么样的呢。我们先来分析以下基本流程
1.首先要再github上创建远程仓库用来存储项目,和本地电脑达成信任关系(ssh)
2.可以通过git clone远程仓库(git clone git@github.com:HustCst/duyiApp.git)或者通过git remote add origin git@github.com:HustCst/duyiApp.git,是本地仓库和远程仓库相关联,git pull origin master,本地才有master分支!
3.之后再本地master分支上的代码上传到 远程仓库上的master分支 第一次上传使用 git push –u origin master,之后可以简化命令,把-u去掉。(如果仓库里本身就有文件,但是我们不要了,而是想把远程的代码上传上去,我们可以通过 git push origin master –f 强行让master分支上的本地文件覆盖远程master分支上的文件)
小公司开发流程:
个人开发:
再本地master分支上创建一个新的分支dev 开发完毕后合并到master分支上,把master分支直接推送到远程master分支上,那远程另一些分支如自己创建的dev用来做什么呢? 它其实就是用来保存代码的,我们如果在本地的dev分支上未开发完毕,不能把它合并到本地的master分支上,那我们可以先把本地的dev分支保存在远程的dev分支上(git push origin dev:dev ----第一个dev本地分支名称,第二个dev远程分支名称)。之后如果你得项目删除或者丢失可以重新克隆一个项目(此时只有maste分支),之后使用git fetch orgin 远程分支名(dev):本地分支名(dev),把远程分支上的代码clone下来并且在本地创建这个分支。
多人开发的或多了一个操作:
就是在合并本地dev分支的时候先,在master分支上来取以下远程master分支的代码,因为 为了确保你本地的master分支是最新的代码,所以需要这样做git pull origin master。
大公司开发流程:
其他都一样切记不要在本地master分支上开发,在其他分支如dev上开发后,合并到master上直接上传到 远程的 非master分支如dev分支,通过 git push origin master:dev; 之后项目参与者可以 new pull request 进行代码比对和阅读,项目管理人员在同意的情况下,会把远程dev分支上的东西合并到远程master分支上。
版本控制工具——git相关推荐
- iOS系列开发-版本控制工具Git的使用
iOS系列开发-版本控制工具Git的使用 作为一个开发者,与团队之间默契的配合是很重要的,我们所写的代码在无论是在公司还是在个人来说都是一份不可随意丢弃的东西,但是如果只是单纯的开发,我们很难做到今天 ...
- Linux | 分布式版本控制工具Git【版本管理 + 远程仓库克隆】
文章目录 一.前言 二.有关git的相关历史介绍 三.Git版本管理 1.感性理解 -- 大学生实验报告 2.程序员与产品经理 3.张三的CEO之路 -- 版本管理工具的诞生 四.如何在Linux上使 ...
- 版本控制工具Git 常用操作命令
2019独角兽企业重金招聘Python工程师标准>>> Git 是用于Linux 内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式 ...
- window下版本控制工具Git 客户端安装
软件开发好久,突然才发现还有git,没有用过. 安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http ...
- 版本控制工具Git(完美整理版)
版本控制Git 一.Git是什么 版本控制工具!Git是目前世界上最先进的分布式版本控制系统(没有之一). 这个软件用起来就应该像这个样子,能记录每次文件的改动 这样,你就结束了手动管理多个" ...
- 版本控制工具Git详细介绍和常用命令
一.安装Git 在linux系统使用非常方便,只需要打开shell界面,并输入: sudo apt-get install git-core 按下回车后输入密码,即可完成Git的安装.但我们可能更多情 ...
- Git分布式版本控制工具(Git命令基本操作)
1.目标 了解Git基本概念 能够概述git工作流程 熟悉Git代码托管服务 能够使用Git常用命令 能够使用idea操作git 了解Git标签 了解SSH协议传输数据 2.概述 2.1 .开发中的实 ...
- 分布式版本控制工具----git
分布式版本控制工具 版本控制 版本控制的功能 版本控制分类 git简介 git优势 git安装 git结构 代码托管中心 代码托管模式 git操作 git 分支(45minutes) 分支操作 git ...
- 分布式版本控制工具Git的安装
git分布式版本控制工具 本地仓库,远程仓库(github,gitee) 下载地址:https://git-scm.com/ 速度超级慢-23k/s 换成Git下载国内镜像地址 https://npm ...
- 版本控制工具 --- Git 详解
文章目录 一.简介 二.Git 与 SVN 区别 三.Git 命令 git 配置文件 git 基本使用 git 远程仓库 git 标签 git 分支 服务器创建 git 仓库, 并将其作为远程仓库 g ...
最新文章
- 剑指offer:面试题34. 二叉树中和为某一值的路径
- python glances来监控linux服务器CPU 内存 IO使用
- python爬虫教程视频-13天搞定Python分布爬虫
- 事务457——事务的七个传播行为
- C/C++内存分配方式与存储区
- 速卖通代运营靠谱吗?招人做对比代运营,找代运营经验分享
- FireBug 调试JS
- 计算机图形学E2——OpenGL Bresenham算法画直线
- 文件上传 jqueryForm
- 又被ESLint 调戏了!!! ESLint:Newline required at end of file but not found. eslint(eol-last) [12, 22]
- Dart基础第8篇:函数、箭头函数 匿名函数 闭包等
- gpt2 代码自动补全_如果您认为GPT-3使编码器过时,则您可能不编写代码
- 计算机统考模拟系统3.0,统考计算机模拟系统操作流程
- csgo连接到任意官方服务器失败删除文件,CSGO连接到官方任意服务器失败怎么办...
- 计算机专业哪个考研简单,考研哪些专业比较简单好考?
- 原型工具——墨刀以及Axure的比较
- 见一博客搬家公司 把老紫竹火龙果和我的blog全搬他家去了
- 中序和后序(前序和中序)序列确定一颗二叉树
- android 传输助手 mac,MacDroid for mac(安卓手机数据传输助手)
- 关于微博运营的几点思考