目前常用的项目版本管理,协同开发的工具有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就会告诉我们有冲突需要处理

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

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

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

最新文章

  1. 跟着鸟哥学Linux系列笔记1
  2. discuz 使用阿里云OSS
  3. Swift中的Masonry第三方库——SnapKit
  4. 【DataStructure In Python】Python模拟二叉树
  5. 点这里进入ABP系列文章总目录
  6. 【转】Windows与Linux(Ubuntu)双系统时间不一致的解决方法
  7. QSqlDatabase的进一步封装(多线程支持+更加简单的操作)——同时支持MySQL, SQL Server和Sqlite
  8. 关于Scrapy框架的安装
  9. 【C语言】写一个函数,实现字符串内单词逆序
  10. WPF报表自定义通用可筛选列头-WPF特工队内部资料
  11. 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别
  12. OpenResty 执行阶段的概念和用途
  13. Cython入门Demo(Linux)
  14. Eclipse控制台输出log日志中文乱码
  15. python之列表操作(list)
  16. softlab对接Jenkins工程
  17. Swagger ui测试中的验证 apikey
  18. 2017-2018-2 20165318 实验二《Java面向对象程序设计》实验报告
  19. Dream------scala--Tuple、Array、Map与文件操作
  20. Memcached 集群架构方面的问题

热门文章

  1. postman使用get请求的url地址传参中文乱码问题
  2. 阿里云Centos7安装mysql5.7
  3. flask blueprints
  4. 十八 OGNL特殊符号的作用,#,%,$
  5. 导入spark程序的maven依赖包时,无法导入,报错Unable to import maven project: See logs for details
  6. 61二叉搜索树的第k个结点
  7. A way to use NAT network by using Oracle virtualBox
  8. UniGUI设置背景图片(09)
  9. 使用mybase、Typora搭配坚果云实现个人云笔记
  10. python生成器三元表达式