1:Git 及GitHub入门css
版本控制 版本控制是指在多人协做的软件开发过程中,对各类代码,配置文件及说明文档变动的管理。最主要的功能就是追踪文件的变动。它会将何时,什么人更改了文件的什么内容等信息忠实地记录下来。例如:
html
分布式管理 提到分布式管理,不得不说Git的诞生。
Linux Torvalds 建立了开源的Linux,并由全世界热心的开源志愿者为Linux系统编写代码。可是随着为其编写代码的人愈来愈多,队伍愈来愈壮大,Linux Torvalds仅仅经过本身整合代码已经变得再也不现实了,经过版本控制系统来解决代码的管理是最好的方案。可是Linux本人对当时免费并盛行的CVS及SVN等版本控制系统极其厌恶。缘由在于 CVS 或 SVN 这些版本控制系统是 集中式管理的系统,而且每次提交代码都须要联网。因此Linux选择了一个商业的付费的版本控制系统BitIKeeper,BitKeeper受权给Linux社区能够无偿使用这个版本控制系统。可是,Linux社区自己就牛人汇集,BitKipper公司发现,Linux社区里有人试图破解BitKeeper的协议,因而乎,BitKeeper与Linux开源社区合做关系终止。再后来,Linux本身花了两周的时间使用C语言写了一个分布式的版本控制系统,就是Git。如今Git已经成为了最流行的分布式版本控制系统,在2008年GitHub上线,无数的开源项目开始迁移至GitHub。谈完Git的诞生,咱们再回到主题,说一说分布式vs集中式。node
集中式版本控制系统表明:SVN git
分布式版本控制系统表明:Git 程序员
GitHub GitHub是一个开源的私有软件项目的托管平台,于2008年上线。GitHub只支持git做为惟一的版本库格式进行托管。github
首先,注册GitHub帐号,注册完毕后点击头像位置的settings。shell
在左侧栏的Profile中 找到"SSH and GPG keys",而后你会看到"New SSH key".这个按钮,先不要着急去点击它,你会看到下面有一个可点击的连接"Check out our guide to generating SSH keys or troubleshoot common SSH Problems.",点击 generating SSH keys 而且选择第三项: Generating a new SSH key and adding it to the ssh-agent。vim
按照上面的提示操做便可:打开GitBash ,输入命令:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
,输入完毕后,敲入三次回车,便可。注意 后面须要填写你本身的邮箱。安全
运行命令ls -a ~/.ssh
。当执行完命令ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
后,会在家目录下生成一个.ssh的目录。运行命令ls -a ~/.ssh
后,能够看到 在.ssh目录下有两个文件 “id_rsa”以及"id_rsa.pub"。这两个东西就公钥和私钥,是你本地的Git仓库与GitHub 之间的钥匙和锁。其中"id_rsa"就是钥匙,而"id_rsa.pub"便是锁。bash
接下来点击 刚刚说过的 "New SSH key" 按钮,Title就是你这个SSH key的名字,下面的key的内容须要将你的公钥的内容所有复制进去,在GitBash上执行命令cat ~/.ssh/id_rsa.pub
. 而后将"ssh-rsa"至"your_email@example.com" 的所有内容复制并粘贴到key里面。添加完毕后点击 “Add SSH key” 按钮。
在GitBash上输入命令ssh -T git@github.com
.若是看到返回这样的信息:Hi DobbyKimmy! You've successfully authenticated, but GitHub does not provide shell access.
,那么说明配置成功。若是失败,则在GitHub上运行rm -rf ~/.ssh
后从第一步从新开始。若是在之后,购买了新的主机,那么就在新的PC上从新生成一个SSH key 便可,它能够和以前的key共存。
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 init
选择一个空目录,GitBash Here,而后执行命令git init
。该命令的做用是初始化,执行完该命令后,在当前目录下会建立一个名叫.git的目录。
git status -sb
接下来在当前目录再建立两个个文件如:index.html,即输入命令:
touch index.html
mkdir css
cd css
touch style.css
cd ../
复制代码
执行命令git status -sb
后,会返回这样的结果:
?? css/
?? index.html
复制代码
命令git status
是用来查看当前git的状态的,-s表明显示总结即:summary ; -b 表示显示分支即:branch。再建立文件之后,git 不知道该如何处理这两个文件,因此会出现"??"这样的符号。
git add
命令git add
能够将建立的文件添加到暂存区,可使用:git add index.html
而后再使用 git add css/style.css
一次一次地将文件添加进暂存区,也能够 一次性地 git add .
此命令表示一次性将当前目录里全部的变更都添加到暂存区。再执行完添加暂存区的命令之后 再次使用 git status -sb
能够发现 原来红色的"??"变成了绿色的"AA"。A的意思就是add,也是是说,你告诉git,这些变更的文件我要加入到仓库中。
git commit -m"xxx"
git commit -m"xxx"
命令能够将add过的内容,即:在git暂存区的内容正式提交到本地仓库(.git就是本地仓库)-m的含义是message 即:为你此次提交说明信息,且-m这个参数是必须有的。除了-m参数外,还有一个参数 -a.如:使用命令git commit -am "xxx"
该命令会将本地工做区修改过还未放入git暂存区的文件一并提交上去,至关于 git add .
命令 与 git commit -m"xxx"
两个命令一并使用,而且这个命令能够确保全部的变更提交到本地仓库。在运行完git commit -am "添加了一些变更"
命令后,使用命令git status -sb
后,发现文件没有变更了,这是由于文件变更已经记录在仓库里了 这时可使用命令:git log
查看历史变更,历史变更信息以下:
Author: DobbyKim <1175088275@qq.com>
Date: Thu Apr 4 15:36:37 2019 +0800
添加了一些文件
复制代码
git log
上文已经使用过git log
命令了,git log
是一个很是重要的命令,能够查看项目全部的历史变更信息,并且能够看到更新人的姓名 以及邮箱帐号。
文件变更
在提交至本地仓库之后,咱们对index.html进行编辑写入一些内容后保存,这是咱们再去看git status -b
,能够看到 git的状态变成了:
M index.html
复制代码
M的颜色是红色,其含义为Modified,表示index.html文件被修改了,若是你想让改动保存到仓库中,须要git add .
将改动保存到暂存区,而后再commit 执行命令git commit -am "编辑了index.html"
。执行完add 和 commit操做后,使用命令git status -sb
发现文件没有变更了,使用git log
:
$ git log
commit c96f1b9c58c517501d1d7544ef5ff76f01078d25 (HEAD -> master)
Author: DobbyKim <1175088275@qq.com>
Date: Thu Apr 4 16:04:48 2019 +0800
编辑了index.html
commit 138a29bcdd7b2b2a19e7d5a7f8150da5666623f9
Author: DobbyKim <1175088275@qq.com>
Date: Thu Apr 4 15:36:37 2019 +0800
添加了一些文件
复制代码
echo "# demo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:DobbyKimmy/demo.git
git push -u origin master
复制代码
push an existing repository from the command line
git remote add origin git@github.com:DobbyKimmy/demo.git
git push -u origin master
复制代码
本地仓库上传至GitHub只须要执行git remote和 git push 两个命令。origin 是 git@github.com:DobbyKimmy/demo.git
这个仓库的代号,remote命令的做用是让本地仓库与GitHub远程仓库创建联系。git push 则是将本地仓库内容推送到远程仓库上,origin仍是远程仓库的代号,master表明默认的主分支。
示例:建立一个GitHub仓库,这一次须要创建一个非空仓库。
/node_modules/
,
/.vscode/
就能够避免node_modules/和 .vscode/目录上传到GitHub上了。 License是开源许可证书,这里面我选择了MIT的开源许可证。建立好仓库之后,复制连接:
git clone "复制的SSH URL"
就能够下载仓库了。
下载到本地仓库之后,上传更新很简单,只须要前后执行:
git pull
命令的做用是让本地同步好远程仓库的代码。若是一个项目,你作出了修改,你的程序员同事也作出了修改,而且先于你一步提交了代码,那么你本地仓库的代码就不是最新版本的了。这时候上传代码到远程仓库会出现错误,只须要先将最新的代码从远程仓库pull 下来再次上传便可。在运用这两个命令时,从应用场景来看,git clone 是本地没有仓库时,将远程的仓库下载下来,git pull 命令则是将远程仓库新commit的数据拉到本地,再与本地仓库进行merge。git clone和 git pull 都是下载代码。从远程服务器克隆一个如出一辙的版本库到本地,复制的是整个版本库,叫作clone,这是一个从无到有的过程。git pull 是拉去远程分支更新到本地仓库的操做,git pull 至关于,从远程仓库获取最新版本,而后再与本地分支merge的过程,这是一个从有到全面,从非同步到同步的过程。