版本控制工具 GIT 简要教程
一,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 简要教程的更多相关文章
- 版本控制工具 GIT入门教程
GIT 在团队中的中作流程 1.每个程序员在自己的分支上进行开发 2.主程序猿/Leader合并程序员程序 3.程序员之间也可以对一下提交冲突进行合并 下载和安装 GIT官方网址:http:// gi ...
- 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...
- 版本控制工具Git工具快速入门-Linux篇
版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...
- 开源分布式版本控制工具 —— Git 之旅
Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...
- 版本控制工具Git介绍-01
使用版本控制工具是为了方便团队开发,比如多人共同维护一个项目的时候,用版本控制工具可以很方便的维护项目代码,如果哪天你改了一个版本,出问题了,我们也可以很快的找到你改了什么,这里介绍使用比较多的版本控 ...
- 版本控制工具——Git常用操作(上)
本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...
- 版本控制工具 - Git
版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...
- 版本控制工具Git工具快速入门-Windows篇
版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...
- window下版本控制工具Git 客户端安装
安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http://code.google.com/p/tor ...
随机推荐
- jquery.fancybox.js 解决只加载一次的问题
问题描述:有一块图片区域,页面第一次加载的时候jQuery(".fancybox-button").fancybox({}); 使用ajax上传成功后显示在图片区域,再次jQuer ...
- Java_环境变量
介绍 第一步:下载JDK 第二步:搭建环境,双击JDK安装程序 第三步:配置环境变量 第四步:检查JDK安装是否成功 介绍: .java 源文件 我们所编写的代码都在这个文件中 .class 字节码文 ...
- LeetCode--139--单词拆分(python)
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词.你可以假设字典中没有重复的 ...
- Java面试之基础篇(1)
1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.Java有 ...
- luogu 3488 [POI2009]LYZ-Ice Skates 线段树 + 思维
Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin), ...
- mysqldump mysql数据库导入导出
syhuo_oauth数据库结构 [root@VM_58_118_centos dbback]# /usr/bin/mysqldump -uroot -P3306 --protocol=tcp --h ...
- 纯CSS手动滑动轮播图(隐藏滚动条)
HTML: <div class="bigder"> <div class="big"> <dl> <dt>&l ...
- 20181022-JSP 开发环境搭建
JSP 开发环境搭建 JSP开发环境是您用来开发.测试和运行JSP程序的地方. 本节将会带您搭建JSP开发环境,具体包括以下几个步骤. 配置Java开发工具(JDK) 这一步涉及Java SDK的下载 ...
- 「HNOI2016」矿区
https://loj.ac/problem/2052 题解 平面图转对偶图.. 首先我们转的话需要给所有的平面标号,然后找到每条边看看他们隔开了哪两个平面. 做法就是对每个点维护它的所有排好序的出边 ...
- 使用visual studio配置和运行《opengl圣经》的第一个案例
对vc++新手来说,想把opengl圣经里的教学案例运行起来还真不是一件容易的事情,而且并没有完整的操作流程教学,这里就总结一下吧: 先安装cmake,用于生成vs的工程文件,安装过程中选中“将目录添 ...