尚硅谷Git学习笔记

版本控制介绍
多人协作开发、记录变更历史

集中式和分布式管理的区别
集中化的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本。协同开发人员从这个服务器拉去最新文件提交代码。这远比在各个客户端上维护本地数据库来的轻松。
缺点:单点故障,如服务器出现故障,无法协同开发提交代码。

分布式版本控制系统,各个客户端可以在本地管理自己的版本,从远程服务器中获取最新资源,提取的不是最新文件的快照,而是将代码仓库完整的镜像到本地。当远程的服务器出现故障,都可以用某个客户端本地仓库进行恢复。因为客户端每次提取文件操作都是对整个仓库代码的完整备份。

相比较于集中式的优点
1、断网的情况下也可以进行开发,在本地进行版本控制
2、每个客户端保存的都是完整的项目,更安全。

git的三大分区
工作区:代码存放的磁盘的目录的位置,也就是写代码的地方
暂存区:临时存储,可以撤回,无版本记录,通过git add 添加
本地库:commit 提交,此时会生成git 记录

git代码托管中心
开源:
gitHub git 官方使用的服务器,基于外网,服务器在国外
gitee 国内版本的github
不开源:
gitlab 局域网

git 常用命令
设置用户签名:就是在首次安装git的时候设置用户名和邮箱,这个是设在客户端的,和代码托管中心的用户名没有关系。作用是区分操作者的身份
git init 初始化本地仓库,相当于通过这个命令给git对这个目录管理权。执行之后会生产.git 文件夹,window下默认隐藏。不能修改生成的文件夹。
git status 查看状态,红色的未被git追踪的文件,需要git add
git add 文件名 追踪某个文件 git rm --cache 文件名
git commit -m ‘版本信息’ 文件名 将暂存区的文件提交到本地库,形式历史版本
git reflog 查看提交记录,显示的版本号是前7位的 git log 是详细的完整信息,可以看作者和时间以及完整的commit id
git reset --hard 七位数commit id (这个id是目标版本,不是需要回退的版本)
会生成一条新的commit记录位为removing 将本地版本回退
.git 文件夹下面,HEAD 文件就是当前指向的分支
refs 文件-heads-记录的就是当前的版本号

什么是分支
同时并行多个功能开发,相当于创建了一个单独的副本。各个开发中互不影响
git branch 分支名 创建
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 合并分支

如何解决合并冲突
为什么会有冲突:合并两个分支的时候,两个分支在同一个文件的同一个位置有两套完全不同的修改,git无法替我们觉得使用哪一个。必须人为决定。
<< 等号下面是需要合并的分支的修改
解决完冲突后需要把修改的文件添加到暂存区,提交本地库

本地与远程
git remote add 别名 远程地址
git remote -v 查看当前所有远程地址的别名
git push 别名 分支 将本地分支推送到远程仓库
git pull 别名 分支 拉取远程到本地
git clone 远程地址 如果是公共库,不需要认证;如果是私有的需要认证;凭证管理器可以查看和删除账号。
git clone 帮我们做了三件事:
1、拉取代码 2、初始化本地仓库 3、创建别名,默认origin

如何设置SSH 免密登录
如何生成?
git 输入命令sh-keygen -t rsa -C 邮箱
连续三次回车,然后可以进入c盘用户中涨到.ssh文件夹,里面两个文件一个是私钥,一个是公钥。
也可以直接使用命令行查看:cd .ssh/
cat id_rsa.pub
将这个公钥复制到代码托管中心,设置–SSH–添加公钥–复制刚才生产的公钥。

gitlab 的使用
需要安装,搭建、启动一个服务。
服务启动之后,可以直接通过ip的形式访问,也可以通过域名的方式,但是需要本地在host中添加了
写法 :192.786.76.90 域名

你可能感兴趣的:(尚硅谷,git,学习,笔记)