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 [email protected],如果是第一次的会提示是否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 "[email protected]"

进入要上传的仓库,右键,Git Bash Here,添加远程地址:

  $ git remote add origin [email protected]: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 → 文件被修改,但并没有添加到暂存区。如果 commit 时没有带 -a 选项,这个状态下的文件不会被提交。

在提交时,Untracked files出现往往都是文件名不正确,这列值得注意的是区分大小写,如果真实文件是Readme,那你写成readme就会提示该错误。

以上内容基本都是摘自各大Blogs,因为该类文章现在特别多,所以也不想去重复,因为自己是感兴趣,学着玩,不常用,特意整理一份,做备忘。

转自:

http://www.cnblogs.com/shuidao/p/3535299.html#!comments

https://wuyuans.com/2012/05/github-simple-tutorial/#toc-1

时间: 2024-11-01 17:39:32

Git/GitHub 初用体验与总结的相关文章

使用git/github管理项目 个人总结

首先 github上的项目是开源的,别人都可以看到,所以你懂的.... 说重点: 1.创建一个新的repository: 先在github上创建并写好相关名字,描述. $cd ~/project //到project目录 $git init //初始化 $cp * *$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件) $git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可) $git remote a

GIT & GitHub 学习笔记

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活, 干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网 速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑 上.既然每个人的电脑都有一个完整的版本库

Git & GitHub

Git & GitHub 01.创建GitHub账号 请点击标题链接,阅读官网帮助 02.创建代码仓库 请点击标题链接,阅读官网帮助 03.安装Git 注:Git官网下载太慢,可在[360卫士]-->[软件管家]中搜索下载 04.打开Git命令行 在代码存放目录[鼠标右键]-->[Git Bash Here] 05.配置Git git config --global user.name "name" git config --global user.email &q

[git] github 使用简单记录

前提 :1. 已有 github 账号.2. 已安装 git .3. 在 github 和 本地 git 客户端交互秘钥.(这步我记得需要做,有点久远,不确定.) 正文: 下面是一个简单的例子.先在 github 创建新的库,在本地拉取 github 的新库,将需要需要上传到 github 的文档放到本地库,然后通过 git 上传到 github 上面.具体步骤如下: 1. 在 github 上面创建一个库. 点击 repository 界面的 New 按钮,然后填入 Repository na

git/github运用

了解git和svn很久了,但是一直没有拿来做过版本控制管理,虽然svn有用到过,但是觉得还是运用git的比较多吧,尤其github. Git术语                                                                       术语 定义 仓库 一个仓库包括了所有的版本信息.所有的分支和标记信息. Repository 在Git中仓库的每份拷贝都是完整的.仓库让你可以从中   取得你的工作副本.   一个分支意味着一个独立的.拥有自己历史

Git&GitHub学习日志

Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件.作为一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理,而且正变得越来越流行了. 最近我正在学习使用Git工具,因此收集了很多资料,比如经典的Pro Git,不仅有英文原版,还有中文翻译版,我也因此将该中文翻译整理成pdf格式. 我整理的Pro Git中文翻译下载:ProGit-

git && github 相关

权限问题(error: The requested URL returned error: 403 Forbidden while accessing):1. 将自己机器的ssh public key放到github的setting->ssh keys里面:2. 修改$bash/.git/config里面的url中的https://*为url =ssh://[email protected]/zwChan/memcached.git,当然要指向自己的github项目了. ------------

Jenkins配置git/github 插件的ssh key

参考来源:http://jingyan.baidu.com/article/a65957f4f0acc624e67f9bc1.html 方式一:本地需要生成公私钥文件,git/github中新建ssh key时,将公钥填入:jenkins中存放私钥. 方式二:本地需要生成公私钥文件,git/github中新建ssh key时,将公钥填入.jenkins中不进行密钥处理,机器会根据本地环境变量(env的配置)进行搜索->其中就有.ssh文件夹 值得注意的是:jenkins创建的工程中,填入的git

git/github初级运用自如(zz)

----//git/github环境配置 一 .  github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project name: hibernate-demo description : my first project 点击“Create Repository” : 现在完成了一个项目在github上的创建. 说明:我们创建的是一个github仓库,一个仓库里只能存放(或叫对应)一个项目. 当你创建完成一个仓库的之