GIt
一、Git解决现有项目中存在的问题
- 安全性低
- 无法协同开发
- 无端报错
二、Git的概念(什么是Git)
git是一个分布式的版本控制及协同开发工具
三、版本控制工具的分类
3.1集中式版本控制工具 cvs svn
3.2 分布式版本控制工具 Git
四、Git的下载和安装(Windows)
- 从Git官网直接下载安装程序,然后按默认选项安装即可:https://git-scm.com/download/win
- 安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "你的名字"
$ git config --global user.email "你的email"
3.注意:git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
五、Git的使用
5.1、创建版本库
- 概念:版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
- 创建版本库:
- 1.选择一个合适的地方,创建一个空目录:
$ mkdir 版本库名
- 2 .通过
git init
命令把这个目录变成Git可以管理的仓库:$ git init
- 3.注意:瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个
.git
的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见
5.2 、创建一个文件
$ vi aaa.txt
5.3、将文件添加到暂存区
$ git add file #file添加文件名称
5.4、将文件提交到版本库
$ git commit -m "描述信息" #描述信息
5.5、查看状态
$ git status #查看状态
出现的内容:
红色:工作区已经修改没有添加到暂存区
绿色:工作区修改并且已经添加到暂存区,并未提交到版本库
nothing to commit, working tree clean
工作区与版本库保持一致
5.6、Git分区原理
5.7、查看GIt提交的每个版本
$ git log
$ git log --pretty=oneline
5.8、版本回退
Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交1094adb...
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
5.8.1、回退到上一个版本
$ git reset --hard HEAD^ #回退到上一个版本
$ git reset --hard HEAD^1~100 #回退到上N个版本
5.8.2、回退到指定版本
$ git reset --hard 3b43 #回退到上指定版本
最新的那个版本append GPL
已经看不到了怎么办?
只要上面的命令行窗口还没有被关掉,你就可以顺着往上找,找到那个append GPL
的commit id
是1094adb...
,于是就可以指定回到未来的某个版本:
当你用$ git reset --hard HEAD^
回退到add distributed
版本时,再想恢复到append GPL
,就必须找到append GPL
的commit id。Git提供了一个命令git reflog
用来记录你的每一次命令:$ git reflog #查看历史命令
5.9、撤销修改
5.9.1、撤销工作区的修改
$ git restore <file>
5.9.2、撤销暂存区的修改
$ git reset HEAD aaa.txt #撤销暂存区的修改到工作区
5.10、删除文件
5.10.1、直接删除
$ rm <file> #删除文件
5.10.2、确定删除
$ git rm 文件名
$ git commit -m "删除信息"
5.10.3、误删除
$ git restore bbb.txt #撤销工作区的修改
六、GitHub
6.1、登录注册
6.2将远程仓库(GitHub上面)的项目拉到本地
$ git clone git@github.com:用户名/要下载的项目名.git
注意:第一次可能会 拉取失败,原因可能是:
- 1.有可能仓库名称写的不对
- 2.没有权限克隆
6.3、生成公钥和私钥
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "你的email"
公钥信息在.shh文件夹下生成的id_rsa.pub文件内
私钥信息在.ssh文件夹下生成的id_rsa文件内
6.4、在GitHub上配置信任列表
登陆GitHub,打开“Settings”,“SSH Keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
6.5、创建GitHub仓库
6.6、将远程仓库(项目)拉到本地
$ git clone git@github.com:用户名/要下载的项目名.git
如果拉取成功,则会展示:
6.7、将本地对仓库(项目)的修改推送到远程仓库(GitHub)
$ git push -u origin master #第一次使用这个命令
$ git push origin master #第一次后可使用这个命令
6.8、将GitHub上的修改(也可是其他人修改)更新到本地
$ git pull origin master
6.9、将本地项目推送到远程(远程要先有一个同名空文件夹)
6.9.1、将本地项目初始化GIt仓库
进入项目的文件夹:
git init
git add .
git commit -m "描述信息"
git remote add origin git@github.com:GitHub用户名/184-test-git.git #与远程Github(同名的空文件夹)建立一个连接
git push -u origin master #将仓库推送至远程
6.9.2、在GitHub创建一个空目录
七、分支管理
7.1、概念
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支,下面用一张图来说明分支:
7.2、创建分支
$ git branch dev #dev:分支名
7.3、查看分支
$ git branch
7.4、切换分支
git checkout dev #dev:分支名字
7.5、创建并切换分支
$ git checkout -b dev #dev:分支名字
7.6、合并分支
$ git merge dev
7.7、删除分支
$ git branch -d dev
https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424 廖雪峰的官方网站