尚硅谷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无法替我们觉得使用哪一个。必须人为决定。

<<<HEAD 下面的是当前的修改

等号下面是需要合并的分支的修改

解决完冲突后需要把修改的文件添加到暂存区,提交本地库

本地与远程

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 域名

相关推荐
AH_HH5 小时前
如何学习Vue设计模式
vue.js·学习·设计模式
雪碧透心凉_5 小时前
Win32汇编学习笔记09.SEH和反调试
汇编·笔记·学习
XWM_Web6 小时前
JavaAPI.02.包装类与正则表达式
java·开发语言·学习·eclipse
破浪前行·吴6 小时前
【初体验】【学习】Web Component
前端·javascript·css·学习·html
PangPiLoLo6 小时前
架构学习——互联网常用架构模板
java·学习·微服务·云原生·架构·系统架构·nosql
跳跳的向阳花6 小时前
05、Docker学习,常用安装:Mysql、Redis、Nginx、Nacos
学习·mysql·docker
serenity宁静7 小时前
Center Loss 和 ArcFace Loss 笔记
笔记·深度学习·机器学习
14_117 小时前
Cherno C++学习笔记 P51 创建并使用库
c++·笔记·学习
小鱼小鱼.oO7 小时前
SpringcloudAlibaba黑马笔记(部分)
笔记
檀越剑指大厂7 小时前
【Git系列】解析与解决Git错误:RPC失败;curl 56 OpenSSL SSL_read: error:140943FC
git·rpc·ssl