1.Git是什么?
Git是目前世界上最先进的分布式版本控制系统!
2.Git的历史
Linus在1991年创建了开源的Linux,Linux的壮大是靠全世界热心的志愿者参与的,在2002年以前,世界各地的志愿者把源码文件通过不同的方法发给Linus,然后由Linus通 过手工合成的方式合并代码,到了2002年,LInux代码库已经很难通过手工的方式管理了,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper出于人道主义精神
,授权Linux社区免费使用这个版本控制系统,但是一些原因导致BitKeeper公司在2005年收回了Linux社区的免费使用权。于是Linus花了两周的时间自己用C 写了一个分布式
版本控制系统,这就是Git!
3.集中式VS分布式
什么是集中式版本控制系统?
集中式版本控制系统的代表是CVS及其改良版SVN,集中式的工作机制是:版本库放在中央服务器中,工作时先从服务器中获得最新的版本,工作结束时再将更新的版本推送 至服务器。其缺点是必须联网且受网速影响大!
什么又是分布式版本控制系统?
分布式版本控制系统的工作机制是:每个工作电脑里都有一个完整的版本库,工作时只需将修改的信息推送给对方就可以了,因为没有中央服务器,所以其不需要联网,安全 性也更高!
4.安装Git
目前只介绍windows上的安装方式:
①下载msysgit(msysgit是windows版的Git):https://git-for-windows.github.io
②安装完成后,在开始菜单里找到Git->Git Bash,蹦出一个类似窗口命令行的东西,就说明Git安装成功了!
③最后输入命令:
$ git config --global user .name "Your Name"
$ git config --global user .email "email@example.com"
5.创建版本库
①创建一个空目录:$ mkdir mygiit
②打开目录:$ cd mygit
③显示当前目录:$ pwd
④初始化:$ git init
完成这一步之后你可以发现在你创建的文件夹中多了一个.git文件,如果没有,请设置隐藏文件为可见!
6 文件操作
①把文件添加到版本库
首先在你创建的文件夹的根目录下创建一个文件,如test.txt,注意不要用windows自带的笔记本编辑,这可能会带来不可预知的问题!
在你创建的文件中编写一些内容:
Git is a version control system
Git is free software
②把文件添加到仓库
$ git add test.txt
③把文件提交到仓库
$ git commit -m "write a test file"
-m "write a test file"这段代码是对本次提交的说明
④查看仓库状态
$ git status
⑤查看被修改的内容
$ git diff test.txt
⑥查看历史版本
$ git log
$git log --pretty=oneline
⑦版本回退
$ git reset --hard HEAD^ 回退一个版本
$ git reset --hard HEAD^^ 回退两个版本
$ git reset --hard HEAD~100 回退100个版本
7 工作区和暂存区
工作区(Working Directory)
你创建的文件夹就是一个工作区
版本库(Repository)
隐藏的.git就是一个版本库
他们的工作机制是这样的:
8 撤销修改
$ git checkout -- test.txt
$ git reset HEAD file
9 删除文件
$ rm test.txt
恢复
$ git checkout -- test.txt
10 远程仓库
如何建立远程仓库?
①注册属于你的github账号,如果有,请忽略!
②创建SSH Key
(1)何为SSH?
SSH为建立在应用层基础上的安全协议。
(2)如果你计算机是windows系统,请操作:系统盘->用户->Administrator
查看该目录下是否有一个名为.ssh的文件夹,如果没有请操作:开始->
Git->Git Brash,然后键入代码:
$ ssh-keygen -t rsa -C "youremail@example.com"
操作成功之后,你会在目录中找到一个名为.ssh的文件夹,里面包含了两个文件id_rsa和id_rsa.pub
这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。
③登录你的Github,添加SSH Key
在title中填入任意主题,然后将id_rsa.pub中的内容粘贴到Key文本框中。
这里补充一下为什么需要添加SSH key,这是为了保证推送文件的用户是你本人,如果你需要在多台电脑上推送,只需要把每台电脑的key添加到github。
11 同步本地和远程仓库
关联远程仓库
$ git remote add origin git@github.com:lzjdp/learngit.git
把本地仓库的内容推送到github仓库
$ git push -u origin master
从远程库克隆
在GitHub上创建一个新的仓库,勾选Initialize this repository with a README这个选项
$ git clone git@github.com:lzjdp/gitskills.git
12 分支管理
①创建一个dev分支,并切换到dev分支
$ git checkout -b dev
git checkout 命令加上-b参数表示创建并切换,相当于以下两条命令
$ git branch dev
$ git checkout dev
②查看当前分支
$ git branch
③合并分支
$ git merge dev
④删除分支
$ git branch -d dev