《GitHub入门与实践》阅读整理笔记

GitHub上混迹多年,近来想到应该整理一下关于GitHub使用的知识和技能,以成系统,于是重读《GitHub入门与实践》一书,并做一点如下的阅读笔记。

一、什么是GitHub
GitHub是为开发者提供Git仓库的托管服务。同时还为开发者或团队提供一系列助其高效率、高品质地编写代码的其他功能。
GitHub与Git的区别。GitHub与Git是完全不同的两个东西。在Git中,源代码会存入叫“Git仓库”的资料库中,而GitHub则是在网络上提供Git仓库的一项服务。
社会化编程。GitHub服务为开源世界带来了社会化编程的概念。放眼世界,注意那些日新月异的源代码、技术、设计以及文化,会对自己编写的源代码及成果带来巨大影响。
GitHub与以往仓库托管服务最大的不同点,在于它以人为中心。以往的仓库托管服务都是以项目为中心,每个项目就是一个信息封闭的世界。

二、Git的导入
Git仓库管理功能是GitHub的核心。使用GitHub前需清楚Git的相关知识,并且本地安装Git环境。
Git是分散型版本管理系统,是为版本管理而设计的软件。在Git出现以前,人们普遍采用Subversion等集中型版本管理系统。
安装。最近的Mac中都预装了Git。而各版本的Linux中也都以软件包的形式提供了,可直接使用。Windows环境中,最简单快捷的方式是使用msysGit(略...) 。
初始设置。首先设置使用Git时的姓名和邮箱地址。名字用英文输入。
git config --global user.name "Firstname Lastname" git config --global user.email "your_email@example.com"
另外,将color.ui设置为auto可以让命令的输出拥有更高的可读性。
$ git config --global color.ui auto

三、使用GitHub的简要相关准备
创建账户、设置SSH Key 。。。。。。
创建仓库、连接仓库、编写代码、提交。。。。

四、Git实际操作学习

1、基本操作
git init ---初始化仓库
要使用Git进行版本管理,须先初始化仓库。初始化成功后,执行git init命令的目录下就会生成.git目录。此.git目录里存储着管理 当前目录内容所需的仓库数据。
在Git中,将此目录的内容称为“附属于该仓库的工作树”。文件的编辑等操作在工作树中进行,然后记录到仓库中,以此管理文件的历史快照。若要将文件恢复到原先状态,可从仓库中调取之前的快照,在工作树中打开。
mkdir git-tutorial cd git-tutorial
$ git init

git status ---查看仓库的状态
工作树和仓库在被操作的过程中,状态会不断发生变化,可用git status命令查看当前状态。
$ git status

git add ---向暂存区中添加文件
如果只是用Git仓库的工作树创建了文件,那么该文件并不会被记入Git仓库的版本管理对象中。要想让文件成为Git仓库的管理对象,就需要用git add命令将其加入暂存区。暂存区是提交之前的一个临时区域。
touch README.md git status

git commit ---保存仓库的历史记录
git commit命令可将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,可以在工作树中复原文件。
$ git commit -m "First commit"

git log ---查看提交日志
git log命令可以查看以往仓库中提交的日志,包括什么人什么时候进行了提交或合并。可显示commit哈希值、author及date等。
git log git log --pretty=short 只显示第一行简述信息; git log 命令后加上目录名,则只会显示该目录下的日志。加文件名,则显示与该文件相关的日志。 git log README.md
git log -p,git log加上-p参数可以查看提交所带来的改动,文件的前后差别就会显示在提交信息之后。
如$ git log -p README.md

git diff---查看更改前后的差别
git diff可查看工作树、暂存区、最新提交之间的差别。
$ git diff
注:建议在执行git commit命令之前执行git diff HEAD命令,查看本次提交与上次提交之间有什么差别。

2、分支操作
进行多个分支并行作业时,会用到分支。在这类并行开发过程中,往往同时存在多个最新代码状态。不同分支中,可以同时进行完全不同的作业。等该分支的作业完成之后再与master分支合并。通过灵活运用分支,可多人高效地并行开发。
git branch --- 显示分支一览表
git branch git checkout -b ---创建、切换分支 git checkout -b feature-A 创建名为feature-A的分支并切换。也可连续执行两条命令实现:
git branch feature-A git checkout feature-A
git checkout master---切换到master分支。
git checkout - 切换回上一分支。
git checkout - 特性分支。集中实现单一特性的分支。日常开发只能够往往会创建数个特性分支,同时在此之外保留一个随时可以发布的稳定分支。稳定分支通常为master。基于特定主题的作业在特效分支中进行,主题完成后再与master分支合并。 主干分支。上述特性分支的原点,同时也是合并的终点。通常用master分支作主干分支。拥有多个版本发布时,主干分支也有多个。 git merge ---合并分支 首先切换到master分支。 git checkout master
随机合并feature-A分支。
git merge --no-ff feature-A git log --graph --- 以图表形式查看分支。可以用图表形式输出提交日志。 git log --graph

3、更改提交到操作
Git的另一特征是可以灵活操作历史版本。凭借分散仓库的优势,在不影响其他仓库的前提下对历史版本进行操作。
git reset --hard fd0cbf0d4a25f747230694d95cac1be72d33441d (对应哈希值) git commit --amend---修改提交信息 git commit --amend
执行此命令后,编辑器会启动,在其中可修改提交信息。
git rebase -I ---压缩历史

4、推送至远程仓库
git remote add ---添加远程仓库
git remote add origin git@github.com:github-book/git-tutorial.git 执行命令后,Git会字哦那个将git@github.com:github-book/git-tutorial.git远程仓库的名称设置为origin(标识符)。 git push ---推送至远程仓库 git push -u origin master 当前分支的内容会推送给远程仓库的origin 的master分支。-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的upstream(上游).
$ git push -u origin feature-D 推送至远程仓库的feature-D分支。

5、从远程仓库获取
git clone --- 获取远程仓库
git clone git@github.com:github-book/git-tutorial.git 执行命令后,默认处于master分支下,同时系统自动将origin设置成远程仓库的标识符。 git checkout -b feature-D origin/feature-D
-b 参数的后面是本地放开中新建分支的名称。新建分支名称后面是获取来源的分支名称。
git pull ---获取最新的远程仓库分支
$ git pull origin feature-D
在本地feature-D分支中执行此命令,将本地的feature-D分支更新到远程仓库feature-D最新状态。

五、Pull Request
Pull Request是社会化编程的象征。是修改源代码后,请求对方仓库采纳该修改时的行为。

。。。待续

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

推荐阅读更多精彩内容