原文连接:点我git
首先新司机接触 Git 和 Github 可能会搞不清楚二者之间的关系,这里稍微解释一下:github
1.Git是一款免费、开源的分布式版本控制系统 windows
2.Github是用Git作版本控制的代码托管平台bash
本地仓库
主要介绍:ssh
创建本地仓库
(注意此处忽略选择目录,也就是说在现实操做中咱们须要新建或跳转到咱们选择的文件夹,来创建本地仓库)分布式
能够看到命令执行后在当前目录下出现一个.git目录,是Git用来跟踪管理版本库的。加密
查看当前项目状态
建立完本地仓库,先查看下当前项目状态spa
能够看到如今是处于master分支,master分支都是最终版本的代码,因此后面涉及到协同工做中其余分支merge到master分支概念,后再提。.net
仓库状态
1.3是添加和快照,这里咱们能够看到Trygithub已经给咱们建立好的一个txt文档。这时候再执行git status查看此时建立一个txt后仓库会有的状态状态。3d
这里咱们看到,仓库状态显示,一个没有被跟踪到的文件“octocat.txt”,并还没有提交。
添加
这里的git add命令是为了让文件添加到Git暂存区,其实也就是让git知道有个新文件添加进来了。
暂存区和工做区概念可参考 git工做区和暂存区
查看添加文件后仓库当前状态
这里能够看到仓库当前状态为
已经提交修改
新文件:octocat.txt
提交(快照)
这里commit有的地方叫提交,有的地方叫快照,但都是一个意思。
这里
1 git commit -m "你的注释"
实际上操做是将暂存区的的文件提交到当前分支。
但简单来讲,也能够理解为咱们每次对项目作修改时都须要有一个注释(快照)。这样使得咱们在之后再看咱们的项目时知道咱们当时修改了什么东西。
添加全部.txt类型文件并快照
这里能够发现,只要是.txt格式的文件,不管是在octofamily目录下仍是根目录下都被添加
查看日志
到目前为止已经执行了两个git commit命令,此时咱们想看一下咱们已经有的全部快照,因而执行git log 命令。
到此为止,在本地仓库所作的全部工做结束。
远程仓库
主要介绍:
远程仓库
这里要作的是将你的本地仓库与GitHub上远程仓库连接起来。
这个工做的主要意义是,将你的修改提交到远程仓库(pull),也能够将别人的修改从远程仓库拉到本身的本地仓库里(push),以便共享。
但首先你要有个本身的GitHub帐号,并建好remote repository。
需注意,本地Git仓库和GitHub仓库之间的传输是经过SSH加密的。这里须要作:
这里进入你想要做为远程仓库的repository的界面,在
Clone or download获得你所要连接的远程仓库 URL。
在1.10中,它所提供的https://github.com/try-git/try_git.git 即为须要链接的远程仓库 URL。
pull & push
上传本地仓库内容至远程
git push -u origin master
第一次推送master分支时,加上了-u参数,在之后的推送或者拉取时就能够简化命令。
拉取远程仓库中别人的修改
git pull origin master
差别
查看在最后一次提交以后的全部变动git differ HEAD
查看添加(add)而并未提交(commit)的变动 git differ --staged
撤销
此处详细介绍了git reset 的使用
改变暂存区的快照,工做区无变化
git checkout -- file的使用
改变工做区的快照
分支操做
建立分支clean_up: git branch clean_up
跳转分支clean_up:git checkout clean_up
此时可见on branch clean_up处于分支clean_up
删除分支中全部.txt类型文件:git rm '*.txt'
此时可见下方目录中全部*.txt类型文件都被删除
在分支进行删除操做依旧须要提交快照:git commit -m "Remove all the cats"
合并(merge)
跳转回master分支,发现*.txt类型文件依旧存在:git branch master
执行合并,将在clean_up分支上的修改合并到master上:git merge clean_up
删除分支clan_up:git branch -d clean_up
push
完成远程仓库中所git push