目前常用的项目版本管理,协同开发的工具有SVN和GIT,本次就记录一下GIT的基本使用。

  git下载地址:https://git-scm.com/downloads

  *根据自己的操作系统进行选择(这里就省略了GIT的安装了)

  这个时候我们在D盘创建一个文件夹用来演示git的基本指令的使用。(创建的文件夹要求是英文且无空格。)

  进入到 gittest 文件夹 然后在任意位置点击鼠标右键选择 Git Bash Here

  

  此时我们需要将当前文件夹变成一个git本地仓库,使用指令是 git init

  执行了指令后,我们可以看到提示说在我们本地创建完成一个本地仓库名字为.git,这个.git文件夹是一个隐藏文件,只要打开显示隐藏文件才能看到。

  初始化本地仓库以后,我们需要设置签名,设置签名的话有两种,一种是仓库级的表示只在当前的本地仓库有效,还有一种是系统级别的,就在只要是在这个计算机上的所有项目都有效。指令如下:

  仓库级:git config user.name xxxx

      git config user.email xxxx

  系统级:git config --global user.name xxxx

      git config --global user.emal xxxx

  

  这里我就设置了一个仓库级的签名,设置完成以后我们可以在.git目录下查看到

  设置完这些以后,我们开始对本地仓库进行操作

  一、添加一个文件到本地仓库

  1、本地仓库基本操作

  在文件中随意输入一些文字,文件输入需要先按键盘的   i    才可以进行编辑文本,确认以后,先按 esc  在输入 :wq   进行保存退出

  查看当前git的工作区情况(git status)

  我们可以发现,目前提示我们要我们将文件添加到缓存区 (git add 文件名)

  继续查看当前状态

  当前表示说我们已经将文件提交到了缓存区,我们可以使用 git rm --cached 文件名   指令将文件从缓存中取出来。

  我们将文件再次添加到缓存区,然后再使用 commit 对文件进行提交

  指令解析:git commit -m "在此处写对本次提交的注释" 文件名

  最后提交完成以后,我们可看到提示表示,工作区和缓存区没有要提交的文件

  2、文件的版本切换

  首先我们查看一下当前在git中保存有哪些版本,使用 git log

  可以看到,目前就知道一个版本, HEAD 就是一个指针,执行的当前的版本

  我在git中新增了几个版本,当前HEAD指针指向的就是最后一个提交的版本。查看当前版本中的内容

  这里再记录一下, 因为如果我们使用git log 来查看版本的话,对于大量的版本来说就不太方便, 我们可以采用另外一个方式   git reflog

  这种方式相对来说就比较的简洁。然后我们开始进行文件版本的切换(git reset --hard 版本号)

  此时我们可以看到当前指针指向了第一次提交的版本,再查看文件内容

  这里可以看到文件内容就是第一次提交的内容

  3、分支的操作

  分支的好处:例如我们在开发时,一个新人来了,一般我们都不会让他直接的将代码加入到我们的代码中来,所以这个时候我们会让他先创建一个分支,让他在这个分支中书写代码,

        等他写完了再将代码合并到主干来。

  创建分支指令:git branch [分支名]

  查看当前所以分支 git branch -v

  切换分支(git checkout [分支名])

  在当前分支对文件进行修改,然后提交到本地仓库

  切换到主干,将分支进行合并

  在对分支进行合并时,就有了冲突,因为我们在分支中对文件进行了修改,主干不知道,这个时候主干就将分支合并过来后git就会告诉我们有冲突需要处理

  我们对文件进行修改,改成我们所需要的样子,然后再重新提交到本地仓库

  我们将文件的冲突解决好后,重新添加到缓存区,然后再提交到本地仓库。但是这里有一个注意事项

  ****** 解决冲突后的文件提交,不要带文件名。

git 的那点东西,随心记的更多相关文章

  1. 如何使用Git 下载GitHub的东西

    1. 先安装git 2. 注册一个github账号 3. 新建一个项目 3. 打开git 运行以下命令: cd /d/workspace (切换目录到 d盘的workspace) git init ( ...

  2. v8随心记

    因为node原因,研究v8已经有段时间了,但是一直也没有抽空写点什么,现在想想有好多当时清晰的东西又模糊了.哎,伤心的很啊.但是一时又想不起什么章法,所以只能随手胡乱写了. 下载.编译: https: ...

  3. Ngui使用随心记

    Ngui的一些基础使用心得! BB:首先BB一下我觉得NGUI和UGUI哪个好?我首推UGUI,先不说是官方内置,在使用的方便性上也要好很多,而且NGUI停止更新了!还有就是NGUI有BUG! Ngu ...

  4. 对git的理解及常用指令

    以前总听说git[分布式版本控制系统]自己愣是搞不懂它到底要干哈-什么叫版本控制系统根本理解不了.现在工作需要必须要用到,结果好像就突然懂了git是干什么滴. 所以!原理这个东西的理解是要建立在大量的 ...

  5. Git 中级用户的25个提示

    我使用 Git 大约已经有18个月时间,自认为能很好地驾驭它了.但是当我们请到 GitHub 的 Scott Chacon 来到 LVS 公司(一个博彩/游戏软件供应商/开发商)做专场培训时,我在第一 ...

  6. 【Tools】Pro Git 一二章读书笔记

    记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧.   Pro Git (Scott Chacon) 读书笔记:   ...

  7. git教程1

    主要参考: 官方书籍: Pro Git 中文版:http://git.perlchina.org/book/zh 英文版:http://git.perlchina.org/book http://gi ...

  8. Git更新代码到本地

    一段时间没用git,发现一些东西记不住了,这里记一点常用的命令. 正规流程 git status(查看本地分支文件信息,确保更新时不产生冲突) 若出现冲突,会有提示的 git checkout – [ ...

  9. 【转】SVN与Git比较

    摘要Svn是目前得到大多数人认可,使用得最多的版本控制管理工具,而Git的优势在于易于本地增加分支和分布式的特性,可离线提交,解决了异地团队协同开发等svn不能解决的问题.本文就这两种版本控制工具的异 ...

随机推荐

  1. Java 笔试题

    有一些还是存在问题,欢迎大家一起探讨. 在Java类中,使用以下( )声明语句来定义公有的int型常量MAX. A. public int MAX = 100; B. final int MAX = ...

  2. 详解python的数字类型变量与其方法

    以下内容引自:https://www.jb51.net/article/97752.htm python数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间.下面 ...

  3. 信息论相关概念:熵 交叉熵 KL散度 JS散度

    目录 机器学习基础--信息论相关概念总结以及理解 1. 信息量(熵) 2. KL散度 3. 交叉熵 4. JS散度 机器学习基础--信息论相关概念总结以及理解 摘要: 熵(entropy).KL 散度 ...

  4. Vacuum Pump Manufacturer - Vacuum Pump Range Use: Considerations

    The vacuum pump is a versatile bottle that holds your lotion, shampoo and conditioner. Keep away fro ...

  5. Mysql 锁定 读情况

    在一个事务中,标准的SELECT语句是不会加锁,但是有两种情况例外. SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE SELECT ... LO ...

  6. Mysql ,用户管理命令

    添加用户.删除用户与授权以下对数据库的操作完全可以利用管理软件完成,比如在Navicat上进行操作,对数据库进行用户和权限管理. 1.创建用户:以root用户登录到数据库进行用户创建 命令: CREA ...

  7. web前端面试第一次[addEventListenr();绑定事件]

    //当一个元素同时处理多个函数,这里使用按钮 //addEventListener(string类型,处理函数,boolean); <input type="button" ...

  8. scrapy 开发流程

    一.Spider 开发流程 实现一个 Spider 子的过程就像是完成一系列的填空题,Scrapy 框架提出以下问题让用户在Spider 子类中作答: 1.爬虫从哪个或者那些页面开始爬取? 2.对于一 ...

  9. Vue 中引入echarts

    安装依赖 npm install echarts -S 或者使用淘宝的镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org ...

  10. java中常用的数据结构--Collection接口及其子类

    java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类. 一.集合和数组的区别 二.C ...