网站首页 > 技术文章 正文
目录
1什么是git?
1.1了解版本控制
1.2常见的版本控制工具
1.3版本控制分类
2配置git
2.1下载软件
2.2启动git (推荐使用linux命令行启动)
2.3常用linux命令练习
2.4git的配置
3git基本理论
3.1四大区域
3.2git的工作流程
4在项目中使用git
4.1本地仓库搭建
4.2文件的四种状态
4.3忽略文件
5码云的使用
6idea集成git
7git工作流程
1什么是git?
1.1了解版本控制
在了解git之前,我们首先要明白什么是版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录
组织和保护你的源代码和文档
统计工作量
并行开发、提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
而控制版本的工具有很多,git就是其中之一
1.2常见的版本控制工具
- git
- svn
- cvs
- vss
- tfs
- visual studio online
现在最主流,最常用的工具是git和svn
1.3版本控制分类
- 本地版本控制 --rcs
在本地记录文件的每次更新,适合个人使用
- 集中版本控制 --svn
将所有的版本数据全部保存到服务器上,协同开发者可以从服务器上同步更新或者上传自己的修改
- 分布式版本控制 --git
当服务器崩掉之后,svn上的所有用户都无法进行下一步开发,使用具有风险,于是就出现了分布式开发git,它将所有的版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有的历史版本,同时可以离线在本地进行提交的操作,将信息先提交至暂存区,连接网络后再push到服务器中
2配置git
2.1下载软件
在官网 https://git-scm.com/
或者 淘宝镜像 http://npm.taobao.org/mirrors/git-for-windows/
下载git
2.2启动git (推荐使用linux命令行启动)
1开始菜单启动
?
2 任何一个位置(桌面 文件夹)下鼠标右键选择
?
2.3常用linux命令练习
在桌面新建练习文件夹,双击进入练习文件夹,鼠标右键 选择 git bash here 打开命令行页面,发现此时已经定位到了当前目录下
?
mkdir命令在该目录下新建两个目录test1和test2
?
cd 进入test1
?
cd ..退回到test1
?
ls 列出所有目录
?
pwd显示根目录
?
touch创建一个文件
?
mv移动一个文件 将tete.html移动到test1文件夹下
?
rm删除文件
?
reset重新初始化终端/清屏 clear查看历史命令 help帮助 exit退出
2.4git的配置
查看配置 git config -l
?
查看系统config
?
查看当前用户config
?
git配置文件存放位置
C:\Users\自己的账户名\ .gitconfig
3git基本理论
3.1四大区域
- 工作区 项目代码的存放位置
- 暂存区 用于临时存放改动,事实上它只是一个文件,保存即将提交到文件的列表信息
- 资源库 安全存放数据的位置,这里面存放着所有版本的数据,其中head指向最新放入仓库的版本
- 远程的git仓库 用于托管代码的服务器
3.2git的工作流程
- 在工作区域编写代码
- 将新增的代码或者需要改动的代码文件放入暂存区 (add命令)
- 将暂存区的文件提交到资源库 (commit命令)
- 将资源库的文件提交到git仓库(push命令)
所以,git管理的文件有三种状态,分别是已修改(modified),已暂存(staged),已提交(commited)
4在项目中使用git
?
4.1本地仓库搭建
创建本地仓库
git init
?
克隆远程仓库
git clone [url]
随便找一个开源项目
?
?
?
?
4.2文件的四种状态
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
git status [filename] 查看文件当前状态
?
git status 查看所有文件状态
4.3忽略文件
在主目录下建立 .gitignore文件
规则:
- 以空行或者#开始的行会被忽略
- 可以使用linux通配符 *代表任意多个字符 ?代表一个字符 [abc]代表可选字符范围 {string}表示可选字符串
- 如果名称前以!开始 表示例外规则,将不被忽略
- 如果名称的最前面是一个路径分隔符/ 表示要忽略的文件在此目录下,而子目录中的文件不忽略
- 如果名称的最后面是一个路径分隔符/ 表示要忽略的是次目录下该名称的子目录
eg
#为注释
*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
5码云的使用
设置本机绑定ssh公钥,实现免密码登陆
?
把id_rsa.pub中的公钥信息粘贴到 设置->安全设置->ssh公钥->公钥
?
?
?
6idea集成git
新建一个仓库,将git相关文件拷贝到对应的代码目录下
?
打开idea
?
add到缓存区
项目右键 -》git-》 add
?
或者使用命令 git add .
?
add到缓存区后 项目文件颜色变为绿色
提交
右上方快捷commit或者命令行 commit -m "信息"
?
?
?
push到远程仓库
命令行 git push
?
?
查看仓库 提交成功
?
7git工作流程
这篇文章写的很详细,推荐给大家~
https://www.ruanyifeng.com/blog/2015/12/git-workflow.html
?
- 上一篇: Git 如何处理大仓库(git库存)
- 下一篇: 给自己点时间再记记这200条Git命令
猜你喜欢
- 2024-09-27 git生成公私钥,并放到github中,免用户名、密码下载代码
- 2024-09-27 这才是真正的Git——Git 全功能揭秘
- 2024-09-27 如果你还不会用git回滚代码,那你一定要来看看
- 2024-09-27 开发工程师的工具包之Git(go开发工程师下载)
- 2024-09-27 idea使用git stash暂存代码。#git
- 2024-09-27 嵌入式高手教程第7集 如何用Git管理本地代码 三哥说技术
- 2024-09-27 Java面试题之项目管理工具 Git 篇
- 2024-09-27 程序员开发必会之git常用命令,git配置、拉取、提交、分支管理
- 2024-09-27 Git 代码防丢指南(代码提交到git怎么忽略文件)
- 2024-09-27 git使用方法,自己整理记录一下(git怎么用?)
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 550℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 502℃MySQL service启动脚本浅析(r12笔记第59天)
- 480℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 478℃启用MySQL查询缓存(mysql8.0查询缓存)
- 458℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 438℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 435℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)