Git与GitHub的简介

Git的概念

Git是一个工具,分布式版本控制系统的软件
Github是一个网站,面向开源及私有软件项目的托管平台,基于git技术的,所以称做github

Git和SVN的对比:
1)Git是分布式的,SVN是集中式;
2)Git每个历史版本存储完整的文件,SVN存储文件的差异;
3)Git可离线完成大部分操作,SVN则必须与中央服务器进行网络交互;
4)Git有着优雅的分支和合并功能;
5)Git有着更强的撤销修改和修改版本历史的能力;
6)Git速度更快,效率更好;

Git的安装:

CentOS6.5环境: yum install git

which -a git查看git的安装位置
git version 查看git的版本
git help查看Git的命令的详细信息

强烈建议读者先在GitHub上面注册一个账号

Git的简单配置

Git在使用前要先配置用户名和邮箱,以标明提交者的身份
添加user.nameuser.email
git config --global user.name jason
git config --global user.email jason@gmail.com

查看user.name/user.email
git config user.name
git config user.email

添加一个新的user.name
git config --global --add user.name newname

得到属性的值
git config user.name
git config --get user.name

得到全局所有属性的值
git config --list --global

删除一个属性,并且是指定属性名进行删除
git config --global --unset user.name newname

git config --list --global

当只有一个属性值的时候,我们可以在删除时不指定值
git config --global --unset user.name

git config --list --global

git config --global user.name jason
git config --list --global

Git命令的基本使用:

git init 创建仓库

添加一个readme.txt
git status 查看当前版本库的状态
git add filename 使用git add命令告诉git,把该文件添加到仓库
git commit -m 'comment'使用git commit命令告诉git,把文件提交到仓库

将文件提交到仓库,需要两步:

1) git add
2) git commit

要提交文件,首先明确一下git的三个区的概念:

工作区 暂存区 历史区

工作区就是你的工作文件目录
暂存区是把工作区的文件 add 进来,但是还没有提交到仓库时的缓存区域
历史区就是仓库,commit 以后存放操作版本记录的仓库

打个比方:工作区好比是货车,暂存区好比是临时存放货物的小棚子,历史区好比是放货物的仓库。
add就是把货从货车上搬到小棚子,commit就是把货从小棚子搬进仓库。

git add 可以反复添加多个
git diff 查看修改的内容
git log 可以查看所有的提交历史记录
git log filename 仅查看指定文件名的提交历史记录
git log --pretty=oneline filename
d085ee8434392d2cf88b48592f29fbeefb0818f7 commit id(版本号) SHA-1 Hash计算出来一个16进制的值

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
此命令可以输出漂亮格式的log

版本回退:

前提:知道当前版本是哪个, HEAD表示当前版本
回退到上一个版本: HEAD^   一个^就表是前一个版本, 如果N个前版本可以用HEAD~N

回退:git reset --hard HEAD^
回退之后你后悔了又想回到后退之前的那个版本: git reset --hard xxxxxxxxx
xxxxxxxxx  前面可以通过 git log filename

3commit   <== HEAD
2commit
1commit

执行了git reset --hard HEAD^之后
3commit   
2commit  <== HEAD
1commit

git reset:版本穿梭, 可以使用git log查看提交历史,以便确定回退/穿梭到哪个版本

git reflog:查看命令历史,以便确定要回到未来/过去的哪个版本

修改

什么是修改:新增一行、修改几个字符、删除一行、新增文件、删除文件
Git管理的是修改,而不是文件

撤销修改:
没有提交到暂存区时,其实就在工作区: git checkout -- file
已经提交到暂存区了: 分两步:1)git reset HEAD file 2)git checkout -- file

删除文件

手误删除,如何恢复: git checkout -- file
真删除版本库的文件: 
    1) git rm file
    2) git commit -m 'xxx'

Git远程操作之添加远程库

远程库即GitHub上的仓库,添加远程库有两种方式

1)先有本地仓库,后有远程仓库
git remote add origin git@github.com:JasonMHo/test.git
git push -u origin master
第一次使用-u,后面不再使用

2)先有远程仓库,再clone到本地(最常见的,一般都是先在GitHub上创建仓库,然后开发人员再clone到本地)
git clone git@github.com:JasonMHo/test.git
git push -u origin master
第一次使用-u,后面不再使用

Git远程操作之添加远程库具体操作步骤

1.生成ssh

生成ssh:ssh-keygen -t rsa -C 'xxx@gmail.com'
进入ssh目录:cd ssh
将ssh目录下文件id_rsa.pub里的内容拷贝出来

2.在GitHub上设置ssh的公钥

1).进入GitHub主页,点击右上角settings

git02.png

2).选择SSH and GPG keys进行公钥设置

git03.png

3).点击右上角New SSH key新建一个ssh key,Title自定义,将CentOS中生成的公钥拷贝出来,粘贴到Key中,点击Add SSH key添加ssh key

git04.png

4).输入GitHub的密码进行验证,点击Confirm password

git05.png

5).输入 ssh -T git@github.com测试一下公钥是否正常

3.在GitHub上创建仓库

1).点击右上角+,选择New repository新建仓库

git06.png

2).填写仓库名称,点击Create repository创建仓库

git07.png

与远程库建立连接
git remote add origin git@github.com:jason/abc_git.git
git push -u origin master
git push就是把当前分支(master)推送到远程
-u:第一次推送到master分支时,要设置了,后续就不需要再使用-u了

git push origin master

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,049评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,478评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,109评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,097评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,115评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,280评论 1 279
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,748评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,398评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,553评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,440评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,487评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,176评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,750评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,821评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,049评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,559评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,150评论 2 341

推荐阅读更多精彩内容