一,Git 简介

其实这个就不用说了 但是国际惯例还是介绍一下吧;

Git 是一个开源的分布式版本控制系统,用于敏捷 高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

二,Git 安装配置

1,这里咱们就介绍Windows下的安装, 下载也是十分简单 https://git-scm.com/downloads, 直接一路next, 就按照默认提示安装就好;

2,安装成功之后,在窗口内点击鼠标右键,出现Git GUI Here 和 Git Bash Here;证明安装成功;

3,Git安装完成之后,还需要最后一步设置,打开Git Bash Here 输入 :

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

因为Git是分布式版本管理系统,所以每个机器都必须自报家门:你的名字和邮箱地址;--global表示全局,表示这台机器上所有的Git仓库否会使用这个配置。

三,初始化版本库

版本库(repository),其实可以理解为一个文件夹,这和文件夹内的所有文件都可以被Git管理起来;

初始化版本库;在指定文件夹下,打开Git Bash Here 输入:

$ git init

此时文件夹内会生成一个.git文件夹,这个目录是Git来跟踪管理版本库的。

四,把代码存储到.git仓库中
$ git add ./filename  # 如果需要提交多个文件 直接用 ./ 表示当前目录下所有文件
$ git commit -m "commit description"
$ git commit --all -m "commit description" # 一次性把修改后的代码直接放到仓库中
五,查看当前状态
$ git status
六,查看日志
$ git log # 查看历史提交记录
$ git log --oneline # 查看精简版的日志
$ git reflog # 可以看到每一次切换版本的记录: 可以看到所有提交的版本号
七,回退到指定的版本
$ git reset --hard Head~0 # 这里0表示索引
$ git reset --hard 版本号 # 这里的版本号 是提交后的版本号 通过 git log --oneline查看
八,分支

默认有一个主分支 master

工作流程为:

1, 先创建一个分支

2, 切换到指定的分支

3, 然后正常写入内容, 完成后提交

4, 切换到主分支

5, 合并至主分支

$ git branch dev # 创建了一个dev的分支, 刚创建时里面的东西和master是一样的
$ git checkout dev # 切换到指定的分支(dev)
$ git branch # 查看当前的所有分支
$ git merge dev # 把当前分支与指定分支, 进行合并

从某个分支提交代码如果存在冲突的话, 需要手动去处理冲突, 然后再提交一次

九,提交和拉取
$ git push https://github.com master  # 把本地代码提交到 远程仓库的master分支
$ git pull http://github.com master # 从远程仓库的master分支把文件拉到本地
$ git clone http://github.com # 会得到远程仓库相同的版本, 如果多次执行会覆盖本地内容(一般第一次使用)

每次的提交和拉取文件都需要 输入远程仓库的地址, 这样会显得很不方便, 当然这个也是有办法解决的

$ git remote add origin http://github.com  # 相当于给连接定义了一个origin的变量, 以后再次git push 或 git pull 的时候就不需要每次都输入连接了
$ git push origin -u master # 相当于把远程仓库的master和本地的master建立了关系, 以后再次push和pull的时候就直接使用 git pull 或 git push 就可以了
pull 和 clone的区别

clone 是本地没有 repository 时,将远程 repository 整个下载过来。

pull 是本地有 repository 时,将远程 repository 里新的 commit 数据(如有的话)下载过来,并且与本地代码merge。

十,ssh方式上传代码

生成公钥和私钥

$ ssh-keygen -t rsa -C "your email"

执行命令后会在当前电脑的用户目录下生成一个文件夹.ssh(windows为例)

一个id_rsa文件, 另一个id_rsa.pub, 然后复制id_rsa.pub内的值放到github => setting =>SSH andGPG keys => New SSH keys 复制完成之后就可以通过 ssh的方式提交代码了

$ git push git@github.com:xxx/ssh.git master
速查表

版本控制工具 GIT 简要教程的更多相关文章

  1. 版本控制工具 GIT入门教程

    GIT 在团队中的中作流程 1.每个程序员在自己的分支上进行开发 2.主程序猿/Leader合并程序员程序 3.程序员之间也可以对一下提交冲突进行合并 下载和安装 GIT官方网址:http:// gi ...

  2. 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...

  3. 版本控制工具Git工具快速入门-Linux篇

    版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...

  4. 开源分布式版本控制工具 —— Git 之旅

    Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...

  5. 版本控制工具Git介绍-01

    使用版本控制工具是为了方便团队开发,比如多人共同维护一个项目的时候,用版本控制工具可以很方便的维护项目代码,如果哪天你改了一个版本,出问题了,我们也可以很快的找到你改了什么,这里介绍使用比较多的版本控 ...

  6. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  7. 版本控制工具 - Git

    版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...

  8. 版本控制工具Git工具快速入门-Windows篇

    版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...

  9. window下版本控制工具Git 客户端安装

    安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http://code.google.com/p/tor ...

随机推荐

  1. 感想 - 猴子刷视频app

    看到一个视频,内容是一只猿猴熟练地像人一样刷短视频app,惟妙惟肖:https://pan.baidu.com/s/10-eibLmuybKtRJ-CKnruYA 抽象思考和语言才是人类独有的能力,视 ...

  2. ztree点击加号+触发ajax请求

    之前做的时候一直是点击节点才触发ajax事件,配置如下:发现点击节点前面的“+”没有反应,后来发现,应该添加一个折叠的事件. onExpand:zTreeOnClick事件和onClick的一样. v ...

  3. JVM 虚拟机栈

    虚拟机栈: 栈元素是栈帧.方法调用,栈帧入栈,反之出栈. 栈帧:一个方法的运行空间. 1.局部变量表:方法定义的局部变量.方法的参数存在该表. 实例方法中有个隐含参数“this”,所以实例方法可以访问 ...

  4. 【NOIP2016提高A组8.12】礼物

    题目 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物. 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得). 每次,店员会按照一定 ...

  5. HTML中表格table标签的实例

    一.表格有边框,第一行居中对齐 二.表格没有边框 三.表格有水平标题 四.表格有垂直标题 五.合并行单元格 colspan合并单元格 六.表格有单元格边距(内边距) 七.表格没有单元格间距 八.表格有 ...

  6. A标签跳转链接并修改样式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. USACO Overplanting ( 线段树扫描线 )

    题意 : 在二维平面上给出 N 个矩形,问你所有矩形构成的图案的面积是多少(相互覆盖的地方只计算一次) 分析 :  求矩形面积并可以模拟来做,不过使用线段树来辅助做扫描线可以更高效地求解 扫描线顾名思 ...

  8. Leetcode 17. Letter Combinations of a Phone Number(水)

    17. Letter Combinations of a Phone Number Medium Given a string containing digits from 2-9 inclusive ...

  9. <知识整理>2019清北学堂提高储备D4

    今天主要讲一下数学的知识. 一.进制转换: 十进制到k进制:短除法:顺除至0,逆序取余. k进制转十进制:乘权相加. 常见进制:四进制(对应2位二进制).八进制(对应3位二进制).十六进制(对应4位二 ...

  10. (10)python学习笔记一

    学习参考博客:http://blog.csdn.net/a359680405/article/details/42486689  深表感谢 1.单行注释  #    多行注释 "" ...