目录
git 是一个分布式版本控制工具
什么是版本控制
版本控制是一种记录文件内容变化,一遍将来查阅特定版本修订情况的系统
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
版本控制工具
集中式版本控制工具
CVS、SVN等,有一个单一的集中管理的服务器
优点:
每个人都可以看到项目中的其他人正在做些什么
管理员可以掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来的轻松容易
缺点:
中央服务器的单点故障(如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作)
分布式版本控制工具
Git
优点:客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,时候都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的我完整备份。
缺点:
-
服务器断网的情况也可以进行开发(因为版本控制是在本地进行的)
-
每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
Git工作机制
Git常用命令
//命令名称 //作用 git config --global user.name 用户名 设置用户签名 git config --gilbal user.email 邮箱 设置用户邮箱 git init 初始化本地库 git status 查看本地库存状态 git add 文件名 添加到暂存区 git commit-m "日志信息" 文件名 提交到本地库 git reflog 查看历史记录 git reset --hard 版本号 版本穿梭
初始化本地库
基本语法
git init -----------------初始化状态 vim 文件名 新增文件 cat 文件名 查看文件 vim中 yy 是复制,p是粘贴 :wq 保存 tail -n 1 文件名 查看文件的最后一行
添加暂存区
git add 文件名 git rm --cached <file> 删除暂存区中的文件 git status 查看状态
提交本地库
git commit -m“日志信息” 文件名 git reflog 查看版本信息 git log 查看版本详细信息
修改历史版本
git reset -- hard 版本号
Git分支操作
什么是分支
初学者可以认为就是复制一份,在复制的部分上进行操作
分支的好处
-
同时并行推进多个功能开发,提高开发效率
-
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支可以删除重新开始即可
分支的操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并在当前分支上 |
产生冲突
原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容
GitHub
远程库操作
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推动本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
克隆远程仓库到本地
clone 会做如下操作
-
拉取代码
-
初始化本地仓库
-
创建别名
git clone 想要克隆文件的远程地址
注:克隆不需要登录账号,直接在所需要克隆位置的文件夹下 右键 git Bush Here 就可以了
SSH免密登录
-
新建一个.ssh文件夹
-
在文件夹内点击 git bush here
-
输入 ssh - keygen - t rsa -C 邮箱
-
连续敲三次回车
-
里面会生成两个文件 一个公钥(id_rsa.pub) 一个私钥(id_rsa)
-
查看公钥文件 cat id_rsa.pub
-
复制SSH公钥添加到GitHub上
-
连接成功