赞
踩
Git介绍: 分布式版本控制工具 VS 集中式版本控制工具
Git安装:基于官网发布的最新版本2.31.1安装
Git命令:基于开发案例 详细了解git的常用命令
Git分支:分支特性 分支创建 分支转换 分支合并 代码合并冲突解决
Idea 集成Git
===================GitHub==================—————是git官方的代码托管中心
创建远程库
代码推送 Push
代码拉取 Pull
代码克隆Clone
SSH免密登录
Idea集成GitHub
==================Gitee码云=================—————国内版本的代码托管中心
创建远程库
Idea集成gitee码云
码云链接GitHub 进行代码的复制和迁移
===================GitLab====================——————基于局域网的托管中心
GitLab服务器的搭建和部署
Idea集成GitLab
熟练掌握Git GitHub GitLab Gitee
目录
git是一个免费的、开源的分布式版本控制系统,可以加快属高效的处理从小行到大型的各种项目。
git易于学习,占地面积小,性能极快,它具有廉价的本地库(在本地磁盘上),方便的暂存区域和多个工作流分支等特性,其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最终重要的是可以记录文件修改的历史记录,从而让用户能够查看历史版本,方便版本切换。
个人开发过渡到团队协作。
CVS、SVN、VSS......
集中化的版本控制系统诸如 CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新,多年以来,这已成为版本控制系统的标准做法。
这种做法带来许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么,而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
Git、Mercurial、Bazaar、Darcs......
像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障。事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
分布式版本控制系统出现后,解决了集中式版本控制系统的缺陷:
1.服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
工作区:代码存放的磁盘的目录的位置
暂存区:通过git把写的代码添加到暂存区,临时存储,即暂存区代码也是可以删掉的,还没有生成对应的历史版本。
本地库:commit提交本地库,一旦提交到本地库,会生成对应的历史版本,就不能删除。
本地库:可以推送至 PUSH 远程库。
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单成为远程库。
1)局域网——————GitLab
2)互联网——————GitHub、Gitee
hooks(钩子): 存放一些 shell 脚本
Info > exclude:控制 Info 中显示的信息
logs: 保存每次操作的信息,包括更新记录中的 HEAD master 等工作区文件
object: 存放 git 对象,每次提交的时候的信息
refs > heads 当前提交的信息
remote 更新的时候的信息
tags 标签,比如说版本号
COMMIT_EDITMSG:commit 的时候的信息
config:git 的仓库配置文件,包括仓库的地址和文件路径
description:仓库的描述
FETCH_HEAD:版本链接,合并的时候的仓库的版本
HEAD:映射到 ref 引用,能够后找到下一次 commit 的前一次 hash
index:暂存区
1)基本语法
git config --global user.name 用户名
git config --global user.email 邮箱
cat ~/.gitconfig 查询用户
TAB键连按可自动帮助你补充识别
说明:签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
credential 凭证存储
git首次安装必须设置一下用户名,否则无法提交代码。
注意:这里设置用户签名和将来登录GitHub(或者其他带托管中心)的账号没有任何关系。
1)基本语法 git init
2) 实操案例:
生成一个.git目录,隐藏文件,
linux查看本地文件—————ll
linux查看隐藏文件命令————ll -a
进入隐藏文件.git里面
cd.git/
在ll查看文件.git所包含的文件
cd ..———— 返回上一层目录
查看本地库状态————git status
默认分支为master————当前分支。
No commits yet————当前未提交任何东西,即当前是一个空的git库。
nothing to commit————不仅没提交过,还没其他东西需要提加。
vim hello.txt——新增文件命令
注意:在vim里面,yy为复制,p为粘贴,在按“yy”之前需先按Esc
按下a i r o等 进入编辑状态,yy复制本行 p 粘贴到下一行
yy 16P粘贴16行
按shift + : wq ————保存,保存后才能退出
ll——可以查看在git-demo目录下的文件——即hello.txt
cat hello.txt——查看hello.txt文件内容
tail -n 1 hello.txt——查看文件末尾最后一行
git status
on branch master————未改变,在master分支下
No commits yet————未改变,未提交任何内容
第三行改变——untracked files——未被追踪的文件——hello.txt是红色,表明虽然文件有了,但那只是存在工作区,git还未追踪这个文件。
nothing added to commit but untracked files present (use "git add" to track)
你现在没有添加任何动手,但是你现在确实有一个未被追踪的文件,你应给使用git add命令追踪他,添加到暂存区。
git add hello.txt——将hello.txt添加到暂存区
warning:git默认帮助你转换换行符。windows里面换行符是CRLF,Linux里面换行符是LF。
git add hello.tex 添加暂存区——git status 再次查看本地库状态
hello.txt 由红色变成到绿色——说明当前git已经知道,追踪到了这个文件,说明这个文件只是存在暂存区里面。
on branch master————未改变,在master分支下
No commits yet————未改变,未提交任何内容
第三行暂存区———git rm --cached hello.txt,删除暂存区这个文件
注意:此操作只删除了暂存区内的文件,工作区仍然留有文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。