首先,当然是安装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分散式版本管理系统,从安装到基本使用的更多相关文章

  1. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

  2. git--分布式版本管理系统

    参考博客:廖雪峰的官方网站 一.window安装git Git官网直接下载安装程序,默认选项安装即可. 1.设置自己的git(cmd命令或者git bash进入) git config --globa ...

  3. ubuntu14.04下svn版本管理系统的安装及常用命令的使用整理

    ubuntu14.04下安装svn$sudo apt-get install subversion 执行这一步就安装完成了,在ubuntu先安装很方便 安装完成后,创建版本库目录,由于是本地环境,就在 ...

  4. SVN版本管理系统的安装 CentOS + Subversion + Apache + Jsvnadmin

    CI服务器:192.168.4.221 root用户操作                            建议安装前更新操作系统 # yum update 更新完成后重启 # reboot 安装 ...

  5. git分布式版本管理系统

    Git是分布式版本管理系统Svn是集中式版本管理系统 git速度快,适合大规模协同开发 什么是分布式版本管理系统 假如有10个人,每个人的代码库都是独立的,自己想进行代码提交回滚都可以,无需链接中央服 ...

  6. git版本管理系统使用

    版本管理系统Git 关注公众号"轻松学编程"了解更多. git下载链接:https://pan.baidu.com/s/12vJn-K0lK9XlkVQbNe8S-A 密码:m4m ...

  7. Git学习之路(2)-安装GIt和创建版本库

    ▓▓▓▓▓▓ 大致介绍 前面一片博客介绍了Git到底是什么东西,如果有不明白的可以移步 Git学习之路(1)-Git简介 ,这篇博客主要讲解在Windows上安装Git和创建一个版本库 ▓▓▓▓▓▓ ...

  8. Git学习第一天--安装Git和创建版本库

    Windows上安装Git msysgit是Windows版的Git,从https://git-for-windows.github.io下载(备份:百度网盘),然后按默认选项安装即可. 安装完成后, ...

  9. 版本管理系统:svn和git

    svn是常用的版本管理系统,解决团队协作开发和版本管理问题, 一.服务器端:是一个文件存储仓库,可以设置用户并管理其访问的权限.主要功能包括 ①设置文件存储路径,是管理文件版本的基础 ②设置用户:可以 ...

随机推荐

  1. mysql存储emoji问题

    前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了 emoji符号实际上是文本,并不是图片,它们仅仅显示为图片 在mysql5.5 ...

  2. ThreadPool study

    线程池浅析 线程池顾名思义就是放线程的池子 Thread Pool. 那么为什么要有线程池呢?有些时候系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新的线程,则系统创建销毁线程的开销 ...

  3. CSS斜切角

    问题 斜切角在Web设计和印刷中是相当受欢迎的样式.它通常是在一个或多个元素的角落切一个45°的角(也就是所谓的斜切角).特别是最近,扁平化设计的势头压过了拟真设计,也使这种效果更加流行.当斜切角只存 ...

  4. java-03-动手动脑

    1. 问题:这两种方式定义的变量是一样的吗? 早期我们经常这样定义变量  int value=100;前面的示例中这样定义变量  MyClass obj = new MyClass(); 回答:一般情 ...

  5. Changing Ethernet Media Speed for AIX

    ITS UNIX Systems Changing Ethernet Media Speed for AIX First you need to find out the device name of ...

  6. 内层DIV超出后,出现滚动条问题

    使用:overflowy:'unset'属性,可以解决

  7. 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World

    操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...

  8. 11.2-uC/OS-III添加任务到就绪队列

    1.uC/OS-III提供很多服务可以把任务添加到就绪列表中. 最明显的服务是OSTaskCreate(), 它通常创建准备运行的任务并将任务放入就绪列表中.如图6-6所示,就绪列表中该优先级中已经有 ...

  9. vue--vuex详解

    安装vuex npm install vuex --save Vuex 什么是Vuex?  官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的 ...

  10. 【LeetCode每天一题】Combinations(组合)

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. Example: I ...