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
8.分支
在之前我们讲到,我们有一个master分支,也就是我们的主分支,但是在我们多人协作的具体工作中,一条主分支是不够的,为了大家的工作互不干扰,我们需要在主分支的基础上创建自己的工作分支,等到自己的功能完善再将其合并到主分支。下面我们从创建一个分支开始吧
(1)创建分支
git branch devgit 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.0git push origin --tags //推送全部本地标签
删除远程标签
git tag -d v1.0 //先删除本地标签 git push origin :refs/tags/v1.0 //删除远程标签
常用命令
git status · 查看仓库状态
git diff 查看文档与上次提交后又做了哪些更改
git log 查看版本库提交日志 git reflog 查看每一次提交或回退命令 git branch -D test 强行删除未合并到其他分支的分支 git remote -v 查看远程库信息
转载于:https://www.cnblogs.com/gitByLegend/p/10453348.html
git分散式版本管理系统,从安装到基本使用相关推荐
- 持续集成-SVN版本管理系统的安装
2019独角兽企业重金招聘Python工程师标准>>> 本次集成的SVN版本管理系统由Apache .Subversion .Jsvn admin构成,其中,Apache 是应用服务 ...
- SVN版本管理系统的安装 CentOS + Subversion + Apache + Jsvnadmin
CI服务器:192.168.4.221 root用户操作 建议安装前更新操作系统 yum update 更新完成后重启 reboot 安装apache yum install httpd httpd- ...
- Umbral:新型分散式密钥管理系统的代理重加密方案
前言 现在,我们非常高兴地宣布,我们在定义( https://github.com/nucypher/umbral-doc/blob/master/umbral-doc.pdf )和实现( https ...
- git语言包安装_Git分布式版本管理系统快速入门指南
为什么要使用版本管理系统 无论有没有使用过专业化工具,每个人都或多或少地有版本管理的需求.我们在做论文.写报告或者设计方案时,因为难以避免的不断改动,总会形成很多个不同的版本,我们可能会用" ...
- Git版本管理系统实战(3)——gitlab(搭建私有仓库)
1.gitlab的简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 安装方法是参考GitLab在GitHub上的Wiki页面 2.gi ...
- Git 版本管理系统简介和远程仓库
版本管理系统简介 项目的版本 版本和我们平常说的软件.游戏等的版本是一个意思,比如 1.2.8 版本.比如 第1版,比如webstorm2020. 所以,版本指的就是代码编写进度当中的一些节点. 比如 ...
- bitnami redmine 4 windows一键式版本安装企业微信插件方法
最近重启了企业微信插件的开发和更新工作,代码库转换到国内的gitee上,具体地址如下: https://gitee.com/tigergm/redmine_work_wechat 其他相关地址如下: ...
- centos 7 升级 git 版本(通过安装 ius 源的方式)
文章目录 查看系统相关信息 查看CentOS的版本号 查看内核版本 查看 git 版本 通过安装第三方 yum 源的方式来更新git 下载对应的 yum 源 安装 yum 源 删除掉已经存在的 git ...
- git安装 perl ubuntu_【Git】Linux Ubuntu——源码编译安装Git 2.x 版本
Git是一个开源的分布式版本控制系统,可以有效,高速的处理从很小到非常大的项目版本管理.Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持. ...
最新文章
- 如何扩容单台服务器的存储容量?
- Quzrtz 使用oracle集群无法正常启动问题解决
- 上海day2--两年前最烧脑的环境变量
- LeetCode 376. 摆动序列 中等难度
- QtQuick controls和controls2 自定义样式
- 动易模板制作示例(三)
- [excel]解决Excel和txt转换出现的“问题
- Node.js 之 Crypto模块
- 内大计算机学院马学彬,内蒙古大学 计算机学院 2012-2013(一)课程总表.doc
- 消融实验(ablation study)是什么?
- UE4制作多人大地型游戏的优化
- RT-thread 柿饼UI demo(文本浏览+电子相册) ---- 暨柿饼入门课第一周作业附加题
- tilemap 导入unity_Unity3D中Isometric Tilemap功能实践
- 魔方自动还原程序3D版本和2D 修正版
- 玉米田 炮兵阵地 状态压缩DP
- 计算机 软件工程 应不应该考研?(二)
- 视频原理和FFmpeg
- adb shell 查看和修改电池信息
- 分布式session会话Sticky Sessions
- MODBUS-RS485布线的8条准则