git使用简单教程-(转自linux人)
什么是Git
Git是目前世界上最先进的分布式版本控制系统。最初由Linus Torvalds编写,用作Linux内核代码的管理。如果你是windows用户,看到这里你可能会担心“是不是只能用在linux上?或者Git对于windows不是那么友好。” ,那么我告诉你你的担心是多余的,GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端;微软也通过CodePlex向开发者提供 git 版本控制系统。
为什么学习Git
除了你可以使用Git来管理自己的项目之外,还因为越来越多的人使用Github来托管自己的开源项目,
你可以找到适合你的开源项目进行学习,加入到一个团队来提高自己。同时GitHub也可以帮助你找到满意的工作!!
没错,可能有公司看到你托管到GitHub的项目而向你发出offer,在简历中 你的GitHub 可能成为加分项。
安装设置Git
1.msysgit是 Windows版的Git githttp://git-scm.com/download/win下载 安装完成后,点击开始菜单—》Git文件夹—》Git Bash 打开后 会出现下面的命令行窗体,证明你安装成功了。
2. 设置你的名字与Email,你的名字与Email会出现在你的提交记录中。
git config --global user.name "你的名字"
git config --global user.email "你的Email"
注意:git config使用--system参数时, Git 会读写/etc/gitconfig文件,该文件含有 对系统上所有用户及他们所拥有的仓库都生效的配置值
git config使用--global参数时, Git 会读写~/.gitconfig文件,该文件含有只适用于该用户的配置值
git config使用--local参数时, Git 会读写 由用户定义的各个库中Git 目录下的配置文件(.git/config),该文件含有只适用于该Git库的配置值
以上阐述的三层配置从一般到特殊层层推进,如果定义的值有冲突,以后面层中定义的为准,例如:在.git/config和/etc/gitconfig有冲突会采用.git/config值
你可以使用下面的命令来产看config的配置值
git config --list
3.在工作目录中初始化新仓库
仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪。
首先我们从命令行进入到仓库的文件夹:
使用
git init
命令来将文件夹变成Git可以管理的仓库。
这时仓库目录下多了一个.git的目录(如果没有,可能你的windows设置不显示隐藏的文件、文件夹,在文件夹选项中修改一下设置就好了。),这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
我们也可以从现有仓库克隆
git clone http://git.oschina.net/xxxxxx/xxxxxx.git
这里使用的是 clone 而不是 checkout,Git
收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态。
我们来clone 院子里寻找和谐大大的PaPaPa项目:
我先fork了一下这个项目,获取他的地址:
开始clone:
clone 完成,查看一下仓库的文件夹:
注:以上图片上传到红联Linux系统教程频道中。
Git各种操作
Git添加文件
在学习怎么添加文件之前我们先了解一下Git的工作流:
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果
首先使用git add命令将计划的改动提交到缓存区,
然后使用git commit -m 代码提交信息"命令,将代码提交到HEAD,此时还没有提交到服务器,
执行git push origin master命令以将这些改动提交到服务器,可以把 master 换成你想要推送的任何分支。
下面我们来尝试添加文件
1.在仓库文件夹内我新建了个readme.txt
2.使用命令 git add readme.txt添加到缓存区里面去。
3.用命令 git commit -m 把文件提交到HEAD。
4.使用 git status 检查当前文件状态
Git提交修改
1.首先我们先修改一下 readme.txt
2. 我们使用 git status 查看结果:
上面的信息告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
3. 我们可以使用 git diff +文件名 ,查看具体修改的内容。
4.使用git commit 提交修改的文件。
Git版本回退
1.使用git log 查询提交的历史记录
2.如果感觉显示的信息太多, 我们可以使用git log --pretty=oneline 命令
第一列一大串的字符为commit id ,是一个SHA1计算出来的一个非常大的数字,用十六进制表示,第二列为我们提交时填写的注释。
3.这时我们回退到上个版本可以使用git reset --hard HEAD^ 命令,回退上上个版本 git reset --hard
HEAD^^ ,依次类推, 当我们回退100个版本时,可以写成git reset --hard HEAD~100
可以看到 HEAD目前指向的是 commit id为9d3830c的版本。
4.我们已经回退了一个版本,我们可以撤销这次的回退 当然可以,我们使用 git reset --hard +commit id 形式版本号(没必要写全,前几位就可以了,Git会自动去找)。
可以看到 HEAD又重新指向了 commit id为4332ee4的版本。
Git删除文件与恢复文件
1.我们可以使用 git rm+文件名 命令来删除文件
2.我们使用 git status 命令 产看目前仓库状态
可以看到deleted:显示了 我们刚刚删除的文件,我们再看看仓库的文件夹,发现readme.txt 也没有了。
3.这时我们用git checkout命令来恢复刚刚删除的文件。
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
添加远程仓库
添加SSH Keys
SSH keys 是为了防止任何人随意clone 或 push 代码而产生的.
SSH keys 有公匙和密匙,你在本地生成了密匙和公匙之后,把你的公匙告诉给服务器或者其他协作者,那么你就可以在他们的git版本库clone和push代码等操作.相对于一台服务器来说,一台协作者机器对应一个SSH keys.
1.首先使用 $ ssh-keygen -t rsa -C "你的邮箱"
1.这里是输入你的SSH keys 保存的位置,就是前面括号内的路径。
2.输入口令,可以直接回车。
3.再次输入口令,可以直接回车。
打开刚刚ssh keys 保存的文件夹:
id_rsa 存放的就是私钥 , id_rsa.pub存放的是公钥,我们可以cat 路径/id_rsa.pub查看公钥。 也可以用文件管理器打开文件。
2.在github或者git@osc 添加你的公钥
远程仓库
1.在git@osc新建仓库
2.创建完成后添加后使用命令:$ git remote add origin git@git.oschina.net:你的用户名/gitstudy.git
远程库的名字是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
3.使用$ git push -u origin master把本地库的所有内容推送到远程库上
小结
关于Git,本篇文章也没讲到分支,感兴趣的同学先去看看廖雪峰老师的教程吧,这篇文章以后也会更新这部分内容,春节假期就这么匆匆过去了,感觉也没学到什么,希望继续努力。能坚持住写博客的习惯。
参考资料
1.廖雪峰老师的Git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2.Git使用简易教程:http://www.bootcss.com/p/git-guide/
git使用简单教程-(转自linux人)的更多相关文章
- Git使用简单教程,从建库到远程操作
本地库初始化 找到项目文件->右键git bash->git init 设置签名 形式: 用户名 邮箱地址 作用: 区分不同开发人员身份 注意:这里设置的签名和登录的远程库的账号密码没有任 ...
- git使用简单教程
废话不多说,直接开始 1. 进入https://github.com/ 创建你的账号,然后开始创建一个你的仓库(基本概念请自行百度),比如jun. 2. 创建好仓库之后,下载git 3,设置git,就 ...
- git github 使用教程
参考文章:文章地址: http://wuyuans.com/2012/05/github-simple-tutorial/ github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般 ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- linux下git的简单运用
linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...
- Git和Github简单教程(收藏)
原文链接:Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的 ...
- Git和Github简单教程【转】
转自:https://www.cnblogs.com/schaepher/p/5561193.html#clone 原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但 ...
- Git简单教程
该笔记总结廖雪峰Git教程, 参考网站: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017 ...
- 转:Git和Github简单教程
转自:https://www.cnblogs.com/schaepher/p/5561193.html Git和Github简单教程 原文链接:Git和Github简单教程 网络上关于Git和Gi ...
随机推荐
- c++ 数组定义及初始化
C ++提供了一种数据结构,即数组,该数组存储一个固定大小的由相同类型元素构成的顺序集合. 数组中的元素存储在一个连续内存位置中,元素可通过数组索引访问, 最低地址对应于第一个元素,最高地址对应于最后 ...
- 数据结构与算法-江西师范大学865(针对考研or面试)
可以加我微信chenyoudea免费要江西师范大学865资料全套pdf 目录 第一篇 数据结构与算法(针对考研or面试) 第二篇 真题演练 第三篇 复试 第四篇 推荐阅读 第一篇 数据结构与算法(针对 ...
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之vmware设置-02
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之vmware设置-02 欢迎加QQ群:1026880196 进行讨论 1. vmwae版本 2. 网 ...
- Go-31-杂序
标识符: 在go语言里,标识符要么从包里公开,要么不从包里公开. 当代码导入一个包时,程序可以直接访问这个包中任意一个公开的标识符.这些标识符以大写字母开头.以小写字母开头的标识符是不公开的,不能被其 ...
- 数据结构之栈(JavaScript描述)
栈数据结构 栈是一种遵从后进先出原则的有序集合.新添加或待删除的元素都保存在栈的同一端,称为栈顶,另一端就叫栈底.在栈内,锌元素都靠近栈顶,救援都接近栈底 类似栈的例子 栈也被用在编程语言你的 ...
- 什么是SQL注入漏洞?
什么是SQL注入: SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL. SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字 ...
- kubernetes集群EFK日志系统搭建
日志收集架构 Kubernetes 集群本身不提供日志收集的解决方案,一般来说有主要的3种方案来做日志收集: 在节点上运行一个 agent 来收集日志 在 Pod 中包含一个 sidecar 容器来收 ...
- 判断请求是否属于Ajax请求
我们有时候需要根据请求类型来判断返回视图名称还是JSON数据,这里记录一个判断Ajax的工具类方便日后好找 通过传入Request对象获取头信息,根据头信息判断是否属于Ajax请求 public cl ...
- Centos7 安装RabbitMQ及配置(亲测)
Rabbit MQ Linux 安装 Centos7 如果是重装先把erlang和rabbitmq卸载干净,不然还会重装失败<rabbitmq和erlang卸载> 记得删除/var/lib ...
- hdu3786 Floyd或搜索 水题
题意: 找出直系亲属 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...