Git/GitHub 初用体验与总结
Git,一个神奇而又陌生的东西,居然到现在才去了解它,就像有一位仁兄说的,现在不会用Git真的都不好意思说自己搞IT的。
简单的讲,这Git是目前最先进的分布式版本控制系统,和他相对应的就是众所周知的SVN(一个集中化版本控制系统)。
集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS),比如 CVS、Subversion(SVN) 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 多年以来,这已成为版本控制系统的标准做法。这种做法带来了许多好处,特别是相较于老式的本地 VCS 来说。 现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。 事分两面,有好有坏。 这么做最显而易见的缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。 为了解决集中化版本控制系统所存在问题,分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。 同样,提及到Git,不的不说一下GitHub,感觉很多人都把他们想象成为一种东西,其实不然,GitHub是一个基于Git的代码托管平台,用于托管各种Git库,并提供一个可视化操作界面(https://www.github.com),用户可以通过Git客户端(http://git-scm.com/download/win)将自己的代码上传至GitHub,看一个Git博文时,有位仁兄还提道其他在线托管网站(http://www.bitbucket.com、 http://www.git.oschina.net),后者相对于其他两个优势是:国内的,访问速度较快,支持公共和私有项目。
具体介绍
上手操作:
1.注册账户
我们主要目的是将自己的项目寄存于到一个托管平台,那么对于这个平台就需要一个凭证,即用户名密码,去GitHub.com注册即可。
2.安装客户端
GitHub是服务端,要想在自己电脑上使用Git我们还需要一个Git客户端,我这里选用MsysGit(http://git-scm.com/download/win),这个只是提供了Git的核心功能,而且是基于命令行的。如果想要图形界面的话只要在MsysGit的基础上安装TortoiseGit(https://code.google.com/p/tortoisegit/ )即可。
3.配置Git
新建一个项目目录,在当前目录下右键,选择Git GUI Here,创建文件目录,这时,创建文件目录下会有一个.git的文件,即表示创建完成;
右键,Git Bash Here, 输入:$ ssh-keygen -t rsa -C "账户名(邮箱)",然后会要求确认路径和输入密码,我们这使用默认的一路回车就行;
右键,Git GUI Here,会看到一个可视化的窗口,Help选项,Show SSH Key,复制里面的Key值文本;
打开GitHub.com,登录后,选择Settings,选择SSH Key,在右侧添加新Key,将刚才复制的内容,粘贴到此处就可以了,Title随便起,为了让你区分其他Key值代表什么;
为了验证是否成功,右键,Git Bash Here,输入:$ ssh -T git@github.com,如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
打开Git Bash Here,输入:
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
进入要上传的仓库,右键,Git Bash Here,添加远程地址:
$ git remote add origin git@github.com:yourName/yourRepo.git
后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
4.提交上传
在本地仓库添加一个新文件,比如Readme,右键,Git Bash Here,输入:
$ git add README
$ git commit -m "first commit"
$ git push origin master
git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。
5.一般问题:
仓库中的文件可能存在于这三种状态:
1)Untracked files → 文件未被跟踪;
2)Changes to be committed → 文件已暂存,这是下次提交的内容;
3) Changes bu not updated → 文件被修改,但并没有添加到暂存区。
针对我遇到的第一个问题,解释一下在提交时,Untracked files出现往往都是文件名不正确,这列值得注意的是区分大小写,如果真实文件是Readme,那你写成readme就会提示该错误。
以上内容基本都是摘自各大Blogs,因为该类文章现在特别多,所以也不想去重复,因为自己是感兴趣,学着玩,不常用,特意整理一份,做备忘。
转自:
http://www.cnblogs.com/shuidao/p/3535299.html#!comments
https://wuyuans.com/2012/05/github-simple-tutorial/#toc-1
Git/GitHub 初用体验与总结的更多相关文章
- github初体验
1.服务端 首先得有一个github账号 用户名和密码 2.客户端 github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,我这里选用msysgit,这个只是提供了git的核心功能 ...
- GitHub初体验(小菜新手github用起来)
记得自己刚认识github的时候觉得他好高端,只知道好多牛人托管代码在上面,但是还觉得离我好遥远.其实不然,用起来,哇塞,真强大. 如果你现在像我当时一样茫然,那希望我的分享能帮助到你.(记录自己用起 ...
- Git学习笔记(windows git之初体验)
阿里国内镜像地址: https://npm.taobao.org/mirrors/git-for-windows/ 最近在学习廖雪峰老师关于git的教程,链接可以在我的首页找到.首先使用国内镜像下载并 ...
- github 初体验
一.什么是 Github? github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开. Github 由Chris Wanstrath, ...
- Git&Github介绍
git&github 什么是GIT 是一个源代码管理工具 源代码为什么要管理起来? 你写的东西就叫源代码,第三方的库和框架都不算. 让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化. ...
- Git+GitHub+SaltStack
本文主要介绍日常工作中会经常使用到的一些工具软件. [ 01 ]SaltStack简明教程 [ 02 ]Git 中文教程 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Gi ...
- Git/Github使用方法小记
今天把人间网的桌面客户端renjian-deck正式开源了,之前对javascript的了解其实非常的不够的,所以这一次的代码写的也是乱七八糟重用性及其低下,虽然我无数次的想把代码重新整理一下,不过还 ...
- 利用Typora+PicGo+OSS+Git+Github/码云搭建个人云笔记
搭建个人云笔记 对于程序员来讲,使用markdown可以帮助我们快速地写作,书写出排版好看,颜值高的笔记,使用markdown来书写文档相比于使用word要简单快捷的多 市面上有很多markdown的 ...
- git &github 快速入门
本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...
随机推荐
- vs 调试的时候 使用IP地址,局域网的设备可以访问并调试
由于项目中主要是用于微信端的访问,所以使用PC来调试就很麻烦,那么就想到用IP地址来调试,那么就手机或者移动端就可以访问,并且进行调试了 那么,主要的设置如下几步: 1. 首先保证你的项目的属性的服务 ...
- JS创建缩略图
<script language="javascript"> //显示缩略图 function DrawImage(ImgD,width_s,height_s){ /* ...
- 【转】logback logback.xml常用配置详解(二)<appender>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
计算机如何工作 三个法宝:存储程序计算机.函数调用堆栈.中断机制. 堆栈 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 Esp 堆栈指针 (stack pointer) ...
- 【emWin】例程四:显示文本
实验指导书及代码包下载: http://pan.baidu.com/s/1jHOYdqm
- 《UML大战需求分析》阅读笔记06
对<UML>撒站需求分析的阅读现在已到达尾声,虽然读这本书是应老师的要求,但是在后期的阅读中也逐渐喜欢上这本书,在阅读的过程中不断领会需求分析与UML之间的联系,让在软件需求分析阶段有了更 ...
- SEO
白帽SEO 内容优化 网站标题.关键字.描述 网站内容优化 Robot.txt文件 网站地图 增加外链引用 2. 网站结构布局优化 网站加载速度:一个页面<100k 扁平化:网站 目录层次 少, ...
- 【待整理】MongoDB 数据集
MongoDB复制集原理 https://yq.aliyun.com/articles/64?spm=5176.100239.blogcont14692.15.XzCCrj MongoDB管理:如何优 ...
- 【转载】APP留存率多少才合格——全面解析留存率
做产品经理的一般都会关注以下 提高用户留存率 提高用户粘性和活跃度 这些天,有几位朋友都找我聊产品的留存率,有做手游的,做工具的,做社交APP的,于是把以前写过的留存率文章翻出来. 次日留 ...
- 如何设置jvm内存
本文向大家简单介绍一下进行JVM内存设置几种方法,安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JR ...