赞
踩
git和github对程序员的重要性不言而喻,github上能托管代码,而托管方式依赖于git,因此学好两者是程序员必不可少技能。网上大部分文章花费了巨幅的篇章介绍,结果大部分新手看完还是一脸懵逼,仍分不清工作区、暂存区、仓库区,于是我想着写一篇短小精悍的文章帮助新手了解。
登录github:https://github.com/ ,点击右上角的SIGN UP进入注册界面,跟着步骤依次填好,此处较为简单,需要注意的是Step2的personal plan选Unlimited public repositories for free,即选择公有免费的,如下图:
注册完后进入一个陌生页面,不用理会太多,因为对于新手来说,项目、PR、Issue等暂时用不到,在接受一个陌生的领域,首先先掌握必备的,等熟悉了,其他的也就自然而然不是问题了。
点击右上角头像,选择setting,进入账号设置页面(如下图),必备:头像、name、email,其余选填,至此github账号注册成功,准备托管第一个项目。
点击右上角+,选择New repository,即表示创建一个仓库,托管的仓库一般称之为远程仓库,选择完进入如下界面,相关注释如下图;仓库命名为demo(样品),Description(描述)暂时写为This is a demo,点击create repository创建成功。
跳转进入该界面
至此github告一段落,接下来进入本地文件夹创建项目进行提交。
git是linux于2005年开发的版本控制系统,也是目前世界上最先进的分布式版本控制系统(没有之一),其作用就是源代码管理。
git的命令虽然不多,但突然要记住一大堆命令还是很麻烦,在此介绍最最常用,并且服务于项目提交的命令。
本人用的是Mac,Mac是自带git的,不过这里统一把各操作系统的安装网址提供给大家,这部分较为简单,不详细介绍。
安装成功后打开终端,输入git,能出现下图所示提示(终端颜色是我设置的,不用在意),则表明安装成功。
首先进入桌面创建项目,用linux命令搞定,以下命令皆是在Mac上操作,打开终端:
cd ~/Desktop(进入桌面)
mkdir demo(创建demo文件夹)
cd demo(进入demo文件夹)
touch test.py(创建test.py文件)
实际上用vi创建文件会更好,考虑到部分同学还不熟悉vim编辑器,这边暂时不用。创建完后,进入文件夹打开文件,输入a = 1,按Ctrl+S保存退出,结果如下图(我用的是Sublime Text编辑器):
此时终端位于demo文件夹,输入git init,初始化文件夹,可以理解为将该文件夹转换为本地仓库,与远程仓库对应(通常本地仓库名和远程仓库名一致,便于管理)。此时进入demo仓库,发现多了一个隐藏文件.git(Mac快捷键shift+command+. 查看隐藏文件),双击进入.git,里面有诸多文件,这些文件构成了git初始化的配置。这些配置都不能改,这边只是了解下,回到demo文件夹,在隐藏.git(重新按shift+command+.)。
在谈论该命令前,得先了解下本地仓库的三大作战区:工作区、暂存区、仓库区,其分别代表的意义如下图,也就是说,在上传到远程仓库前,必须得先依次从工作区上传到仓库区,那如何判断文件在哪个区呢?此时git status就登场了。
终端输入git status,发现test.py位于工作区(如下图),因为只要本地仓库文件发生改变(之前往test.py里写入a=1并保存),那么git就会自动纳入工作区。
在上方图片Untracked file下方提示使用use "git add ",该提示意思就是用git add test.py将文件加入暂存区,再次用git status查看,如下图:
接下来提交到本地仓库就完成了本地的操作,输入git commit -m “first_commit”,其中-m是message的缩写,也就是表示你要给这次提交附加什么说明,我这边附加的说明是first_commit(第一次提交),查看结果:
至此本地仓库操作完毕,接下来把该项目连接到远程仓库上传。
当本地仓库有了项目后,需要上传到远程仓库,那首先肯定得先构造连接,github的连接有两种方式,其一是通过HTTPS协议连接,其二是通过SSH(secure shell)协议连接,这边我们采取后者,因为前者每次提交得输账号密码,比较麻烦。
Mac和Linux都是默认安装了SSH,终端输入ssh出现以下信息,则表明ssh已安装:
紧接着输入 ssh-keygen -t rsa ,意思是指定 rsa 算法(非对称算法加密)生成密钥,接着连续三个回车键(提示会让输密码,但实际上没必要再额外给SSH加密了,所以直接回车键跳过),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,其中id_rsa 是密钥, id_rsa.pub 就是公钥。Mac/linux生成的文件位于~/.ssh(win系统在 /c/Documents and Settings/username/.ssh 下),那我们进入该目录,查看如下:
接下来就是把密钥留在本地,将公钥粘贴到github上,当构成连接时,github把公钥和密钥进行匹配,匹配成功则进行连接。首先查看本地公钥,输入以下命令:
cat id_rsa.pub
将弹出的内容复制,然后进入到github,点击右上角头像,选择setting,然后点击最左侧 SSH and GPG keys(顺数第6个) ,再点击右边的NEW SSH key,进入如下页面,将复制的内容粘贴,无须填标题,直接提交就ok。
提交成功后回到终端,输入ssh -T git@github.com命令确认提交成功:
接下来将远程仓库的连接地址拿到,也就是进入创建的项目demo中,如下图:
在终端输入git remote add origin 项目地址,这条命令的意思就是添加一个远程仓库,其中origin就是远程的意思,这个单词是大家约定俗成的用法,添加成功后输入git remote -v查看本地都有哪些远程仓库,接下来就可以提交了,也就是git push origin master(master表示主分支,分支的概念进阶再说):
出现如下信息,则表示提交成功!
这时候回到github,刷新项目,则发现demo里多了一个文件test.py,至此代码正式提交ok。
基本到此就能完成项目上传了,但还有许多基础未讲,如如何clone和pull?如何建立分支?如何回滚版本?如何取消工作区/暂存区/仓库区的项目等等,这些都带进阶版再行讨论。
进阶链接:git&github新手进阶篇
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。