Git 学习:
Git是一个免费的,开源的,分布式版本控制系统,可以高效处理小型乃至大型项目。(ps:相反的集中化管理系统代表 SVN)
版本控制指,记录不同阶段一个或者若干个文件内容变化,以便将来查询特定版本修订情况的系统。具备回溯特质。
Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
当需要忽略某些文件时
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
Git 三种使用结构
Git 本地结构示意图
Git跨团队结构示意图
远程仓库即代码托管中心:一般分两类
第一类 局域网环境下,可以构建Gitlab服务器,适用于公司内项目。
第二类 外网环境下,可以以GitHub或者Gitee作为托管中心。
版本控制中分支概念:
版本控制中使用多条线同时推进任务,多条任务线即分支
图解分支
分支优势:同时有多个分支并行开发,互不影响,提高开发效率。分支若失败,放弃即可,不会对主干造成影响。
Git常用命令:
add 把文件添加到缓存区
commit 把缓存区文件提交到git本地库
git commit -m “说明” 文件x 加x指提交x到仓库,不加x提交暂存区所有文件
git commit -a -m “说明” 跳过暂存区提交所有文件到仓库
git commit --amned 补交文件,和上次提交算一次提交
status 查看缓存区和本地库的状态
rm 移除文件
rm 文件x 在暂存区移除文件x
git rm 文件x 在工作区删除文件x
git rm --cached 文件x 在仓库在删除文件x
mv 重命名
git mv 原来名 新名 把原来名字改为新名字
查看日志简化版三种方式 :
log 查看日志 日志中 space--下一页 b--上一页 q—退出
git log - -oneLine / git log - - pretty-oneline
git reflog 包含了版本号信息
reset - - 参数 索引 前进或倒退版本
git reset --hard ,本地库指针移动时,重置工作区,重置暂存区
git reset --hard 文件x 把提交到暂存区的x撤销到已修改为保存到暂存区状态
git reset --mixed,本地库移动时,重置暂存区,工作区不变
git reset --soft, 本地库移动时,工作区和暂存区都不动
diff 比较工作区,暂存区,本地库文件区别,两种方式
git diff 文件名 比较工作区和暂存区差异
git diff -cached 比较已暂存文件和上次比较文件差异
git diff HEAD 文件名或者索引 比较缓存区和本地库区别
分支相关命令
git branch -v 查看分支
git switch -c 分支名x 创建分支
git checkout -b 分支名x 创建分支
git branch 分支名x 创建分支
git checkout 分支名x 切换到x分支
git switch 分支名x 创建分支
git merge 分支名x 合并分支x
远程库相关命令
git remote -v 查看远程引用别名
git remote add 别名x 远程http链接url 把url远程引用保存为x
git push 别名x 分支b 把分支b上传到x中
git clone 链接url 把远程仓库克隆到本地
git clone -b 分支 链接url 把远程仓库某分支克隆到本地
git fetch 远程库m 分支x 抓取远程库m上分支x,本地工作区并没有更新,下载后可用merge更新,如 git merge origin\master 和为pull操作
git pull 远程库m 分支x 加载远程库m上分支x到工作区
git pull 远程库url 分支x --allow-unrelated-histories 把远程库无关联的项目加载到
如何解决开发中团队提交冲突:
- 团队开发的时候避免在一个文件中改代码
2.在进行修改一个文件之前,首先进行pull拉下来操作,在基础上再push
本地git
生成ssh密匙:
主目录中:执行git命令
ssh-keygen -t rsa -C 邮箱x 邮箱是github注册时邮箱
记录一下在使用IDEA产生的错误:
问题描述:在使用Git时无法正常commit和push
产生原因:在发送时创作者信息少填或填错,如图
解决方法:没有用户添加用户信息,有用户的选择 完整信息或者留空自动选取默认创作者