git分散式版本管理系统,从安装到基本使用
首先,当然是安装git了,不用寻思,官网下载即可
- https://git-scm.com/downloads
第二是设置账户,鼠标右键,选择git bush,在命令窗口中进行设置
- git config --global user.name "Your Name"
- git config --global user.email "email@example.com"
第三是在项目文件夹中右键git bush进入命令窗口,键入git init 初始化仓库,命令会在本地文件夹创建一个.git的隐藏文件夹,通过文件夹设置可以看到该文件夹,请勿修改该文件夹内容
- git init
哒哒哒,基本环境搭配好啦,开始基本的使用吧
1.git add 文件名.后缀
通过该命令把文件存入仓库暂存区
- git add index.html
2.git commit -m “解释文档”
通过该命令把add过的文件提交到仓库工作区,-m后面是对本次提交的解释,不建议为空,方便其他工作人员简单明了的理解你干了什么
- git commit -m "start working"
3.版本回退
有了版本提交肯定还要有版本回退不是吗?万一哪天你bug了,你肯定不想一行一行的删代码的,那么我们的git是怎么做的呢?
- git reset --hard 0023a4
咦,这些git命令大都似曾相识,就是不明白是做什么的也能看出是个命令来着,但是这个0023a4是个什么鬼来着?其实这是我们的每一次对仓库做出修改时git自动为每一次操作保留的id,你当然不需要把id全部都写出来回归版本,但是也不要输入太少,因为在git多人协作的仓库中,那提交与回退的数量也是惊人的。不过这个id,我们又是如何获取的呢?
4.获取每一次仓库更改操作保留的id
- git reflog
是不是很简单,过去的commit和reset操作全都出来啦,赶快看看你要回退到哪个版本吧!
5.撤销修改,针对文件是保留到工作区之后修改的和暂存区之后修改的两种情况会有不通过的结果
当然,你撤销修改的git代码是一致的
- git checkout -- index.html
现在呢,就遇到的两种不同的情况分析得到的不同结果,以免将来一脸懵逼。
(1)保存到工作区后的修改,然后执行git checkout:回归到版本库工作区的状态
(2)保存到暂存区后的修改,然后执行git checkout:回归到版本库暂存区的状态
其实也不麻烦不是吗》?就是无论如何,我都只退一步,这么理解会不会简单了呢?!
当然,我们能够在每一次提交之前发现自己做了一个不可修复的错误,使用 git checkout -- file 总是好的,但是,如果你不但犯了一个致命的错误,还把它提交到了暂存区了呢?当然我们是有办法修复这个错误的,我们在之前的文章中也提到了
就是 git reset --hard 00123 嘛!回退版本!直接回到上一次提交到仓库时的状态。当然,你也可以选择更加温和的方式,仅仅撤销本次提交到暂存区的操作,保留你在文档中的修改,毕竟,万一你只需要修改掉“老子不干了这句话”,回退版本会不会太夸张了。撤销提交保留修改命令为
- git reset HEAD index.html
6.删除文件
在需要删除某一个文件的时候,我们只需要输入 git rm file就可以啦,之后记得要commit一下哦,把你的删除提交到工作区,告诉仓库你删了谁
- git rm test.txt
- git commit -m "confirm rm"
7.远程库
首先你需要在GitHub仓库键入你的ssh密匙,你可以在你的c盘user/administrator/.ssh文件夹中找到,注意这是一个隐藏文件夹,查看隐藏文件夹的方式可自行百度。如果在隐藏文件夹中没有找到该文件,需要打开 git bush 键入下列命令创建该文件,空白部分为你的邮箱
- ssh-keygen -t rsa -C " @ .com"
无需设置密码,一直回车即可。然后打开GitHub,把你在c盘user/administrator/.ssh文件夹中获取的 id_rsa.pub(可用记事本打开全部复制)内容复制到GitHub设置中的ssh密匙处即可
(1)先有本地库,将本地库推送到远程。在github上创建一个仓库,例 learngit
连接远程库,注意使用英文字符,小心复制过来的字符的标点符号是中文样式导致的无法连接,注意不要复制我的下行代码,而是你的GitHub提供的路径地址,下行代码是我的库的地址
- git remote add origin git@github.com:legendforfree/learngit.git
在本地库推送到GitHub
- git push -u origin master
origin是远程仓库的意思,master,主分支,后面我们会提到分支的概念,-u的代码运用是为了将本地分支和远程分支关联起来,今后我们可以省掉这一部分。
只要本地库做出了修改,我们就可以通过下面的指令将其推送到远程库
- git push origin master
(2)先有远程库,后有本地库(建议)
键入git clone 命令克隆远程库
- git clone git@github.com:legendforfree/learngit.git
(2)既有本地库,又有远程库(不建议)
首先,会报错。
- fatal: refusing to merge unrelated histories
因为 两个 根本不相干的 git 库, 一个是本地库, 一个是远端库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并
解决
- git pull origin master --allow-unrelated-histories
8.分支
在之前我们讲到,我们有一个master分支,也就是我们的主分支,但是在我们多人协作的具体工作中,一条主分支是不够的,为了大家的工作互不干扰,我们需要在主分支的基础上创建自己的工作分支,等到自己的功能完善再将其合并到主分支。下面我们从创建一个分支开始吧
(1)创建分支
- git branch dev
git checkout dev
- git branch dev 命令是创建dev分支,
- git checkout dev 命令是切换到dev分支
当然我们也可以是选择 git checkout -b dev 一次性完成上面的两条命令
查看分支命令,并在当前分支上加*标识
- git branch
(2)合并分支
切换到主分支或组分支,使用 git merge 命令合并需要合并的分支,例如把dev分支合并到master分支
- git checkout master //切换到主分支
git merge dev //合并dev分支到master分支
(3)删除分支
把dev分支合并到主分支之后,你可以根据自己的需要看是否需要删除dev分支,git鼓励创建分支再合并删除,因为这样是更无害而安全的。
- git branch -d dev
(4)任务现场
暂存工作内容但不保留到暂存区或工作区
假设你工作还没完成,但是你接到了一个紧急的任务,因为没完成所以不能提交,git提供了一个保存任务现场的命令。
- git stash
使用该命令,你做出的不完善的工作将被隐藏。然后你就可以快乐的创建一个bug分支愉快的改bug了。当你完成工作,合并并删除bug分支之后,还得回到我们的任务现场,因为除了紧急任务需要完成,我们的日常工作也是一刻不得放缓!那么这时候,我们又该怎么办呢?
- git stash list //查看保留任务现场的列表
- git stash pop //把任务现场内容提回本地并从list删除,也可以在 pop 后面加上具体提取哪一个现场 stash@{0}
git stash drop //从list删除多余的隐藏任务现场,不提取
(5)推送分支
推送分支就是把改分支上的所有本地提交推送到远程库,推送时要指定本地分支,这样,git就会把该分支推送到远程库上对应的分支上
- git push origin dev
把我们做开发的dev分支推送到远程
(6)拉取分支
在我们推送分支之前往往需要先拉取,因为你不知道在你修改项目的时间范围内,有没有其他人往远程进行过推送,如果有推送,那么你不pull就push肯定是要bug的,拉取远程库到本地的代码为
- git pull origin dev
8.创建标签
因为git的id比较长而不规则,所以有些不好记,所以git提供了一种方法作为对指定的某一个版本进行标记
- git tag -a v1.0 -m "描述" a24534
git tag是添加标签,-a 指定标签名(-a和-m可省略)v1.0是标签名,也可以理解为产品的版本号,a24534是要打标签的分支上的那次操作的id,可以忽略,忽略默认标签给分支最后一次commit
- git tag //查看标签,标签是按照字母排序的,不是创建时间
- git tag show //查看标签具体信息
删除标签
- git tag -d v1.0
推送标签到远程
- git push origin tag v1.0
git push origin --tags //推送全部本地标签
删除远程标签
- git tag -d v1. //先删除本地标签
- git push origin :refs/tags/v1. //删除远程标签
常用命令
- git status · 查看仓库状态
- git diff 查看文档与上次提交后又做了哪些更改
- git log 查看版本库提交日志
- git reflog 查看每一次提交或回退命令
- git branch -D test 强行删除未合并到其他分支的分支
- git remote -v 查看远程库信息
git分散式版本管理系统,从安装到基本使用的更多相关文章
- Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用
文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...
- git--分布式版本管理系统
参考博客:廖雪峰的官方网站 一.window安装git Git官网直接下载安装程序,默认选项安装即可. 1.设置自己的git(cmd命令或者git bash进入) git config --globa ...
- ubuntu14.04下svn版本管理系统的安装及常用命令的使用整理
ubuntu14.04下安装svn$sudo apt-get install subversion 执行这一步就安装完成了,在ubuntu先安装很方便 安装完成后,创建版本库目录,由于是本地环境,就在 ...
- SVN版本管理系统的安装 CentOS + Subversion + Apache + Jsvnadmin
CI服务器:192.168.4.221 root用户操作 建议安装前更新操作系统 # yum update 更新完成后重启 # reboot 安装 ...
- git分布式版本管理系统
Git是分布式版本管理系统Svn是集中式版本管理系统 git速度快,适合大规模协同开发 什么是分布式版本管理系统 假如有10个人,每个人的代码库都是独立的,自己想进行代码提交回滚都可以,无需链接中央服 ...
- git版本管理系统使用
版本管理系统Git 关注公众号"轻松学编程"了解更多. git下载链接:https://pan.baidu.com/s/12vJn-K0lK9XlkVQbNe8S-A 密码:m4m ...
- Git学习之路(2)-安装GIt和创建版本库
▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...
- Git学习第一天--安装Git和创建版本库
Windows上安装Git msysgit是Windows版的Git,从https://git-for-windows.github.io下载(备份:百度网盘),然后按默认选项安装即可. 安装完成后, ...
- 版本管理系统:svn和git
svn是常用的版本管理系统,解决团队协作开发和版本管理问题, 一.服务器端:是一个文件存储仓库,可以设置用户并管理其访问的权限.主要功能包括 ①设置文件存储路径,是管理文件版本的基础 ②设置用户:可以 ...
随机推荐
- GO语言-基础语法:循环
golang只有for没有while package main import ( "fmt" "os" "bufio" ) func for ...
- poj 3348
裸的凸包,,我就来粘一下板子 把jls和dls的代码混合了一下(雾),感觉我要是能把camp里的几何掌握的差不多就稳 了.(mxy到底打了什么?) 感觉叉积实在是个好东西qwq 今晚c ...
- vue中的图标字体引入
网址:https://icomoon.io/app/#/select: 特点:样式多,免费 操作: 1.相中的,随便点,不要钱,generat fonts然后download,得到一个压缩文件,解压, ...
- linux samba建立共享文件夹
sudo apt-get install samba 1. mkdir /home/lgs/samba_share (/home/lgs为自己的家目录) 2. find -name ...
- Python学习之旅(二十九)
Python基础知识(28):常用第三方模块 一.Pillow PIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平 ...
- String类,ThreadLocal
1,StringBuffer修改缓冲区的方法是同步的 单任务使用StringBuilder更有效 2,replace和replaceAll方法区别 3,spilt方法 a,b,c ...
- idea实用插件
代码规范检测插件: Alibaba Java Coding GuideLines使用@data插件lombok数据库mapper插件mybatisX前端运行vue的插件,装起了后在Terminal上运 ...
- CSS中的display属性(none,block,inline,inline-block,inherit)
css中的display属性(none,block,inline,inline-block,inherit) display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none bl ...
- asp.net mvc 简单实现一个账号只能在一个地方登录
原理: 假设用户在机器A登陆后, 这时用户再次在机器B登陆,会以当前会话的SessionID作为键,用户id作为值,插入dictionary集合中,集合再保存在application(保存在服务器 ...
- 苹果cms安装及配置详细教程
听说这个好!php+mysql的 下载 http://www.maccms.com/down.html 下载之后解压到你的网站跟目录中,就像这个样子的 后台目录 然后重要的一步来了,在ftp工具上 ...