版本控制工具 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 ...
随机推荐
- Beta冲刺-(3/3)
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ 这个作业要求在哪里 https://edu.cnbl ...
- dos2unix 将DOS格式转换成NUIX格式
1.命令功能 dos2unix将windows文件格式转换成unix文件格式. 2.语法格式 dos2unix file 3.使用范例 [root@localhost ~]# dos2unix wi ...
- 长沙理工大学第十二届ACM大赛-重现赛 B 日历中的数字 (实现)
链接:https://ac.nowcoder.com/acm/contest/1/B来源:牛客网 全屏查看题目 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...
- [易学易懂系列|golang语言|零基础|快速入门|(一)]
golang编程语言,是google推出的一门语言. 主要应用在系统编程和高性能服务器编程,有广大的市场前景,目前整个生态也越来越强大,未来可能在企业应用和人工智能等领域占有越来越重要的地位. 本文章 ...
- STM32 JTAG接口SWD下载接线图
- 【串线篇】spring boot使用外置的Servlet容器
嵌入式Servlet容器:应用打成可执行的jar 优点:简单.便携: 缺点:默认不支持JSP.优化定制比较复杂 (使用定制器[ServerProperties/自定义EmbeddedServletCo ...
- LOJ2320「清华集训 2017」生成树计数
由于菜鸡的我实在是没学会上升幂下降幂那一套理论,这里用的是完全普通多项式的做法. 要是有大佬愿意给我讲讲上升幂下降幂那一套东西,不胜感激orz! 首先可以想到prufer序列,如果不会的话可以左转百度 ...
- C#中[JsonIgnore]意义
字面意义是忽略序列化,就是当字段在序列化时,被[JsonIgnore]标记了的字段将被忽略序列化 序列化输出中使用Id和Name属性,但我绝对不会对AlternateName和Color感兴趣.我用[ ...
- lua脚本入门
在网上下载一些工程,里边常常存在.lua .sh .in .cmake .bat等文件 今天专门查了一下相关文件的作用 .sh 通常是linux.unix系统下的脚本文件(文本文件),用于调用默认的s ...
- mybatis insert update delete返回都是整型 0,1,增,删,改要提交事物
mybatis insert update delete返回都是整型 0,1, 没有扔 增,删,改要提交事物