参考:http://www.runoob.com/git/git-tutorial.html

一、Git简介

1、Git 和 SVN 比较

(1)GIT是分布式的,SVN不是;

(2)GIT把内容按元数据方式存储,而SVN是按文件;

(3)GIT分支和SVN的分支不同,在SVN中就是版本库中的另外的一个目录;

(4)GIT没有一个全局的版本号,而SVN有;

(5)GIT的内容完整性要优于SVN;

(*)Git 命令参考文档:http://www.runoob.com/manual/github-git-cheat-sheet.pdf

2、Git 安装配置

(1)安装:http://www.runoob.com/git/git-install-setup.html

(2)配置

1、安装好 git 后,配置用户和邮箱

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

说明:--global代表对当前的用户有效,--system代表对所有的用户有效,不写代表对当前的项目有效(在linux环境下)

2、常用的配置命令

要检查已有的配置信息: git config --list
直接查阅某个环境变量的设定:git config user.name

3、Git 工作流程(略)

4、Git 工作区--暂存区--版本库

(1)工作区:电脑里的项目目录;

(2)版本库:工作区有一个隐藏目录.git,是Git的版本库;

(3)暂存区:英文叫stage, 或index,一般存放在(.git/index)中;

(4)说明:git 中的 check 命令可能会导致暂存区和工作区的改变比较危险,谨慎使用;

二、基本使用

1、git init

git init     当前目录作为仓库
git init newrepo  指定目录作为仓库,没有的话会创建一个

2、git add

git add *.c
git add README

文件加入版本管理,支持单文件、多文件(之间用空格隔开)以及通配符批量 add

3、git commit

git add > git commit -m '第一次版本提交'
git commit -am '备注'-----这个操作是添加提交一次性完成,不指定文件的话会添加提交所有的

4、git clone

git clone <repo>   克隆到当前目录
git clone <repo> <directory>    克隆到指定目录
git clone git://github.com/schacon/grit.git    还支持 http 等协议,默认的名字为 grit 可以在后面指定名称

5、git status

git status 用来查看在你上次提交之后是否有修改,加参数 -s 能够获得简短的输出,不加则输出的信息比较详细

6、git diff

git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别;git status 显示你上次提交更新后的更改或者写入缓存的改动,git diff 显示这些改动具体是啥;
有如下的应用:
#查看未缓存的改动:git diff
#查看已缓存的改动(add过的文件):git diff --cached
#查看所有改动:git diff HEAD
#简略显示修改信息:git diff --stat

7、git reset HEAD

git reset HEAD 作用是取消之前 git add 添加

8、git rm

git rm <file>
git rm -f <file>  强制删除,git add 之后只能强制删除,工作区和缓存区一起删除
git rm --cached <file>  从git的缓存区删除,工作区的文件会保留,实测好像和移出版本管理是一个效果
git rm –r *   递归删除

9、git mv

git mv README  README.md    必须要先添加版本管理才可以用 git 的 mv 和 rm 命令

三、分支管理

1、查看、创建、删除分支

git branch 查看所有分支
git branch test 创建一个分支
git branch -d test 删除一个分支,D大写是强制删除分支

2、切换分支

git checkout master 分支切换git checkout -b test 能够直接创建一个分支并直接切换到该分支下注意:切换分支前一定记得提交,因为切换分支会清空暂存区,未提交的修改不会生效

3、合并分支

(1)正常合并

git merge test 此命令是将test分支合并到当前分支

(2)合并冲突:

冲突的产生:主分支创建一个分支之后,主分支和分支中的同一个文件都进行了修改,则可能出现冲突解决:merge显示冲突之后,cat a.txt 查看两分支的不同之处,手动修改为相同之后,再 add commit 提交,即可完成合并

四、查看提交历史--标签

1、查看提交历史

git log 列出历史提交记录;
--oneline 选项来查看历史记录的简洁的版本;
--graph 选项查看历史中什么时候出现了分支、合并;
--reverse参数来逆向显示所有日志;
--author=Linus 指定查看某个作者的提交;
--since 和 --before, --until 和 --after 指定日期;
--no-merges 选项可以隐藏合并提交;

2、标签

达到一个重要阶段,并希望永远记住那个特别的提交快照,可以使用 git tag 给它打上标签
git tag -a <tagname> -m "runoob.com标签" 创建一个标签
git tag 查看所有的标签

五、连接到GitHub

1、git 和 github 通过 SSH 连接

(1)使用以下命令生成SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
(2)然后在 github:account--settings--SSH and GPG keys 输入上个命令产生的用户目录 .ssh 目录下的 id_rsa.pub 文件中的全部内容
(3)最后用如下命令进行连接测试:ssh -T git@github.com

2、添加、查看、删除远程仓库

git remote add [shortname] [url]    添加远程仓库
git remote -v  查看当前的远程仓库
git remote rm origin2  删除远程仓库
注意:一个仓库可以有多个别名

3、提取和推送远程仓库

(1)提取远程仓库的内容
git fetch origin
若远程仓库有更新,使用命令以下命令进行合并:
git merge origin/master
(2)推送到远程仓库
git add runoob-test.txt
git commit -m "添加到远程"
git push origin master

注意:push 前先要 commit

4、其他注意事项

(1)关于 checkout

git checkout a.txt        是从暂存区恢复git checkout HEAD a.txt   是从版本库恢复数据

(2)关于 rm 和 git rm 命令的区别

普通的 rm 命令只作用于工作区;提交生效前先要通过 add 将修改放入暂存区;git rm 命令作用于工作区和暂存区;

(3)关于 git log 和 git reflog

log    命令只能查看 commit 的记录;reflog 可以查看所有的记录,包括 commit、reset、merge;

(4)本地删除文件后且进行了提交,怎么恢复

git reflog              找到相应的 HEAD;git reset --hard  XXXX  通过 reset 命令恢复,其中最后的 XXXX 是 HEAD 的地址(或者键???);

(5)关于 git pull

git pull = git fetch + git merge冲突解决:将本地的内容和远程的内容改成一致的,再 add 和 commit 一下即可;

(6)本地删除文件后怎么从 github 恢复

git fetch origin                  先从远程仓库拉取;git reset --hard origin/master    将工作区、暂存区和本地仓库全部替换为远程仓库 origin 的 master 分支;后面如果 origin 仓库没有修改可以直接用这个命令进行恢复;

使用Git进行版本管理的更多相关文章

  1. 微信小程序如何使用 Git 实现版本管理和协作开发

    前言 在微信小程序开发的过程中,代码版本管理往往需要使用第三方工具进行管理.虽然微信Web开发工具提供了对Git文件版本状态的提示,但实际的使用体验依然不尽人意. 随着微信Web开发工具的更新,最新的 ...

  2. 实验一 GIT 代码版本管理

    实验一  GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)   熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...

  3. 实验一  GIT 代码版本管理

    实验一  GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ini ...

  4. 实验一Git代码版本管理

    GIT代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git init git ...

  5. 实验一&#160;&#160;GIT 代码版本管理

    实验一  GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)   熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...

  6. 软件工程实验一 Git代码版本管理

    实验一  GIT 代码版本管理 一.实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2)熟练掌握git的基本指令和分支管理指令: 二.实验内容: 1)安装git: 2)初始配置git ,gi ...

  7. 用好SVN与Git,版本管理都不是问题

    介绍一下SVN SVN:代码控制器(版本控制器),主要是为了多人协同开发项目,管理代码.也可以管理个人代码.也叫程序界的”后悔药“. SVN(是subversion的简称)是近年来一款基于C/S架构的 ...

  8. 实验1 GIT代码版本管理

    (一)实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: (二)实验内容: 1)安装git 2)初始配置git ,git init git sta ...

  9. 实验一 git代码版本管理

    实验目的 1. 了解分布式系统版本管理的核心机理. 2. 熟练掌握 git 的基本指令和分支管理指令. 实验内容 1. 安装 git.2. 初始化配置 git,git init ,git status ...

随机推荐

  1. JS DOM与BOM

    DOM知识点 [DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API).DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过js ...

  2. Hadoop 集群安装(主节点安装)

    1.下载安装包及测试文档 切换目录到/tmp view plain copy cd /tmp 下载Hadoop安装包 view plain copy wget http://192.168.1.100 ...

  3. SQL Server 创建服务器和数据库级别审计

    一.概述 在上一篇文章中已经介绍了审计的概念:本篇文章主要介绍如何创建审计,以及该收集哪些审核规范. 二.常用的审核对象 2.1.服务器审核对象 1.FAILED_LOGIN_GROUP( Audit ...

  4. [Swift]LeetCode38. 报数 | Count and Say

    The count-and-say sequence is the sequence of integers with the first five terms as following: 1. 1 ...

  5. [Swift]LeetCode287. 寻找重复数 | Find the Duplicate Number

    Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), pro ...

  6. [Swift]LeetCode934. 最短的桥 | Shortest Bridge

    In a given 2D binary array A, there are two islands.  (An island is a 4-directionally connected grou ...

  7. [Swift]LeetCode987. 二叉树的垂序遍历 | Vertical Order Traversal of a Binary Tree

    Given a binary tree, return the vertical order traversal of its nodes values. For each node at posit ...

  8. python glob的安装和使用

    基本概念 glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,类似于Windows下的文件搜索,支持通配符操作.*,?,[]这三个通配符,*代表0个或多个字符,?代表一 ...

  9. mac openresty 源码安装 坑

    下载openresty源码安装 下载页面http://openresty.org/cn/download.html 下载上一个版本的稳定版 https://openresty.org/download ...

  10. Python内置函数(19)——eval

    英文文档: eval(expression, globals=None, locals=None) The arguments are a string and optional globals an ...