使用GitHub(二):配置并使用Git创建版本库

使用GitHub(二):配置并使用Git创建版本库

  • 本文简单介绍使用GitHub对代码进行版本控制,包括添加SSHkey配置Git使用Git创建版本库并在GitHub上进行管理,主要目的是对学习内容进行总结以及方便日后查阅。
  • 详细教程和原理可以参考廖雪峰的Git教程猴子都能看懂的Git教程
  • 本文版权归马涛涛所有。
  • 本文所引用的图片和文字版权归原作者所有,侵权删。
  • 如有错误请在下方评论区指出,欢迎积极讨论。

配置Git


    git config --global user.name 你的英文名
    git config --global user.email 你的邮箱
    git config --global push.default matching
    git config --global core.quotepath false
    git config --global core.editor "vim"

五句话,依次运行。

使用Git创建版本库


使用 git 有三种方式,请按照需求选择。

  1. 只在本地使用
  2. 将本地仓库上传到 GitHub
  3. 下载 GitHub 上的仓库

其中1+2的最终效果=3

1只在本地使用


1.1 初始化

  1. 创建目录作为我们的项目目录:mkdir git-demo-1

  2. 进入目录 cd git-demo-1

  3. git init,这句命令会在 git-demo-1 里创建一个 .git 目录

  4. ls -la 你就会看到 .git目录,它就是一个「仓库」,不要进去看。

  5. git-demo-1目录里面添加任意文件,假设我们添加了两个文件,分别是 index.htmlcss/style.css

    touch index.html
    mkdir css
    touch css/style.css
    
  6. 运行 git status -sb 可以看到文件前面有 ??

        touch index.html
        mkdir css
        touch css/style.css
    

这个 ?? 表示 git不知道你要怎么对待这些变动。

  1. 使用 git add 将文件添加到「暂存区」
  1. 你可以一个一个地 add

        git add index.html
        git add css/style.css
    
  2. 你也可以一次性 add

git add .

意思是把当前目录(.表示当前目录)里面的变动都加到「暂存区」

  1. 再次运行 git status -sb,可以看到 ?? 变成了 A
## Initial commit on master
A  css/style.css
A  index.html

A 的意思就是添加,也就是说你告诉 git,这些文件我要加到仓库里

  1. 使用 git commit -m "信息" 将你 add过的内容「正式提交」到本地仓库(.git就是本地仓库),并添加一些注释信息,方便日后查阅

  2. 你可以一个一个地 commit

git add index.html
git add css/style.css
  1. 你也可以一次性 commit
    git commit . -m "添加了几个文件"
    
  2. 再再次运行 git status -sb,发现没有文件变动了,这是因为文件的变动已经记录在仓库里了。
  3. 这时你使用 git log 就可以看到历史上的变动:
commit f0d95058cd32a332b98967f6c0a701c64a00810a
 Author: frankfang <frankfang1990@gmail.com>
 Date:   Thu Sep 28 22:30:43 2017 +0800

添加几个文件
  1. 以上就是 git add / git commit 的一次完整过程。

1.2 文件变动

如果我想继续改文件,应该怎么做呢?

  1. start css/style.css 会使用默认的编辑器打开 css/style.css(macOS 上对应的命令是 open css/style.css

  2. 然后我们在 css/style.css 里写入 body {background: red},保存退出

  3. 运行 git status -sb 发现提示中有一个 M

    ## master
    M css/style.css
    

    这个 M 的意思就是 Modified,表示这个文件被修改了

  4. 此时你如果想让改动保存到仓库里,你需要先 git add css/style.css 或者也可以 git add .

    注意:由于这个 css/style.css 以前被我们 add 过,你往文章上面看,我们是 add 过 css/style.css的,所以此处的 git add操作可以省略,但我建议你使用 git 的前一个月,不要省略 git add。

    换句话说,每一次改动,都要经过 git addgit commit 两个命令,才能被添加到 .git 本地仓库里。

  5. 再次运行 git status -sb 发现 M 有红色变成了绿色。

  6. 运行 git commit -m` "更新 css/style.css",这个改动就被提交到 .git 本地仓库了。再说一次,不要去 .git 目录里面。

  7. 再再次运行 git status -sb,会发现没有变更了,这说明所有变动都被本地仓库记录在案了。

git status -sb 是什么意思:
git status 是用来显示当前的文件状态的,哪个文件变动了,方便你进行 git add 操作。

  • -s 的意思是显示总结(summary)
  • -b 的意思是显示分支(branch)
  • 所以 -sb 的意思是显示总结和分支。

1.3 总结

至此,我们来总结一下用到的命令

  1. git init,初始化本地仓库 .git

  2. git status -sb,显示当前所有文件的状态

  3. git add 文件路径,用来将变动加到暂存区

  4. git commit -m "信息",用来正式提交变动,提交至 .git 仓库

  5. 如果有新的变动,我们只需要依次执行 git add xxxgit commit -m 'xxx' 两个命令即可。

    别看本教程废话那么多,其实就这一句有用!先 add 再 commit,行了,你学会 git 了。

  6. git log 查看变更历史

2 将本地仓库上传到 GitHub


如何将我们这个 git-demo-1 上传到 GitHub 呢?

  1. 在 GitHub 上新建一个空仓库,名称随意,一般可以跟本地目录名一致,也叫做 git-demo-1

    建立空仓库
    建立空仓库

    按照截图所示,除了仓库名,其他的什么都别改,这样你才能创建一个空仓库

  2. 点击创建按钮之后,GitHub 就会把后续的操作全告诉你,如图
    请点击一下 ssh

    点击SSH
    点击SSH

    点击SSH2
    点击SSH2
  3. 点击一下 ssh,你就会使用默认的 HTTPS 地址。但是千万不要使用 HTTPS 地址,因为 HTTPS地址使用起来特别麻烦,每次都要输入密码,而 SSH 不用输入用户名密码。

为什么 SSH 不用密码呢,因为你已经上传了 SSH public key。详情请看上一篇博文使用GitHub(一)

  1. 由于我们已经有本地仓库了,所以图中下面半部分就是你需要的命令,我们一行一行拷贝过来执行

    • 再次点击 SSH 按钮
    • 命令 git remote add origin git@github.com:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/git-demo-1.git,复制并运行它
    • 复制第二行 git push -u origin master,运行它
    • 刷新当前页面,你的仓库就上传到 GitHub 了.

在建立空库的情况下,以上两步在本地建一个Git仓库和将Git仓库上传到GitHub上加起来就等同于下面的第3条。

3 直接在 GitHub 创建一个仓库,然后下载到本地


上面两步讲了

  • 在本地创建仓库
  • 将本地仓库上传到 GitHub

这里讲第三种用法,那就是直接在 GitHub 创建一个仓库,然后下载到本地

  1. 在GitHub 上新建一个仓库git-demo-2,这次就不创建空仓库了,而是自带 READMELisence 的仓库,创建截图如下:

    创建新的仓库
    创建新的仓库

    然后点击创建按钮。

  2. 这样一来,这个仓库就会自动拥有三个文件:


    仓库文件
    仓库文件
  3. 使用 git clone 命令下载到本地

  4. 点击页面中唯一的绿色按钮「clone or download」,会看到一个弹出层


    clone
    clone

    请确保弹出层里的地址是 SSH 地址,也就是 git@github.com 开头的地址,如果不是,就点击 Use SSH 按钮,就点击
    Use SSH 按钮
    。然后复制这个地址。

  5. 打开 Git Bash,找一个安全的目录,比如 ~/Desktop
    运行 git clone 你刚才得到的以git@github.com开头的地址,运行完了你就会发现,桌面上多出一个 git-demo-2

  6. cd git-demo-2进入这个目录。

  7. 运行 ls -la 你会看到,远程目录的所有文件都在这里出现了,另外你还看到了 .git 本地仓库。这时你就可以添加文件,git add,然后 git commit 了。

三种方式都说完了,它们分别是:

  • 在本地创建仓库
  • 将本地仓库上传到 GitHub
  • 下载 GitHub 上的仓库到本地

其实呢,还有很多种不同的方式,但是,记住这几种就行了,够用了。我们并不想要了解 git 的所有高级用法,我们的目的很明确:能通过 Git
命令使用 GitHub 就行

总结:

回顾一遍已经学到的命令:(这次只多了一个 git clone 命令)

  • git clone git@github.com:xxxx,下载仓库

  • git init,初始化本地仓库 .git

  • git status -sb,显示当前所有文件的状态

  • git add 文件路径,用来将变动加到暂存区

  • git commit -m "信息",用来正式提交变动,提交至 .git 仓库

  • 如果有新的变动,我们只需要依次执行 git add xxxgit commit -m 'xxx' 两个命令即可。

    别看本教程废话那么多,其实就这一句有用!先 add 再 commit,行了,学会 git 了。

  • git log 查看变更历史

如何上传更新

你在本地目录有任何变动,只需按照以下顺序就能上传:

git add 文件路径
git commit -m "信息"
git pull  (一定不要忘记这一个命令)
git push

为何要push之前要pull?
push是推送pull是拉取的意思。假如你在远端修改了文件,然后本地并没有同步更新,这时候你push的时候就会出现错误,因为两端不同步了。多人合作的时候这种问题就会出现的更多,所以现在养成push之前要pull的习惯。

下面是例子

cd git-demo-1
touch index2.html
git add index2.html
git commit -m "新建 index2.html"
git pull
git push

然后去 git-demo-1 的 GitHub 页面,就能看到 index2.html 出现在里面了。

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

推荐阅读更多精彩内容

  • 配置 GitHub 进入 https://github.com/settings/keys 如果页面里已经有一些 ...
    半斋阅读 282评论 0 1
  • 配置 GitHub 进入 Github的SSH keys 如果页面里已经有一些 key,就点「delete」按钮把...
    鹧鸪少阅读 605评论 0 0
  • 配置 GitHub 进入 https://github.com/settings/keys 如果页面里已经有一些 ...
    joker731阅读 252评论 0 0
  • 近期迷上了一个APP叫做慕课,MOOC,是一个舶来品,简单讲就是世界名校的老师在线上分享学习视频和讲义,给你布置作...
    雅各布666阅读 9,855评论 2 3
  • 中国式众筹华南同学会自今年9月30号成立以来,短短两个月时间,已经策划组织了八场活动。两个月前,杨勇老师亲临深圳布...
    阿渡SZ阅读 300评论 0 0