版本控制工具 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 ...
随机推荐
- [ZJOI2006]物流运输(动态规划,最短路)
[ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个 ...
- [CF1161C] Thanos Nim
传送门 题意:\(2n\)堆石子,每堆\(a_i\)个,先手每次选中\(n\)堆石子,并从每堆中拿走任意个(可以不同).轮到某人时不足\(n\)堆则判负,问先手是否必胜.\(n\leq25,a_i\l ...
- js倒计时功能中newData().getTime()在iOS下会报错,显示 nan
最近在做移动端项目 ,有个设置开始时间和结束时间,然后倒计时 这个活动还有几天.在安卓上能正确转换时间,但在iOS上不能显示,为NaN-NaN1-NaN Invalid Date, 就好比new D ...
- shell之文本过滤(正则表达式)
shell之文本过滤(正则表达式) 分类: linux shell脚本学习2012-09-14 12:59 213人阅读 评论(0) 收藏 举报 当从一个文件或命令输出中抽取或过滤文本时,可以使用正则 ...
- git的初步研究1
工作中很多项目再往git上迁移,所以打算研究下git git是个版本控制系统 理解git工作区.暂存区.版本库的概念 工作区:在电脑中能看到的目录 暂存区:index即索引 即首先add加入暂存区 c ...
- java伪代码读后感
愚公,在这位名家身上,浓缩了项目的组织者,团队经理,编程人员,技术分析师等众多角色的优秀素质.原始需求的产生“惩山北之塞,出入之迁”项目沟通的基本方式“聚室而谋之”项目的目标“毕力平险,指通豫南,达于 ...
- java 8 接口默认方法
解决问题:在java8 之前的版本,在修改已有的接口的时候,需要修改实现该接口的实现类. 作用:解决接口的修改与现有的实现不兼容的问题.在不影响原有实现类的结构下修改新的功能方法 案例: 首先定义一个 ...
- 计蒜客 T2237 魔法 分类讨论
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...
- Activiti的分配任务负责人(八)
1分配任务负责人 1.1 固定分配 在进行业务流程建模时指定固定的任务负责人 在 properties 视图中,填写 Assignee 项为任务负责人.注意事项由于固定分配方式,任务只管一步一步执行任 ...
- FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法
转 http://blog.csdn.net/linweig/article/details/5556819 flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19 ...