GIT版本管理工具

Git简介和软件安装

  1. 简介
    1. 版本控制软件提供完备的版本管理功能,用于存储追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件
    2. 版本管理工具主要有两个作用
      1. 代码版本管理
      2. 多人协作开发
      3. 版本管理是一个合格的程序员的必备的基础技能
        1. 版本常用工具一个是git一个是svn
      4. Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
  2. git安装
    1. 官网Git
    2. 或者通过其他软件商店下载
    3. 小乌龟 TortoiseGit 安装
      1. 记得选择使用openssh
      2. 安装完以后记得设置用户和邮箱

Git本地仓库创建和一些基本概念

  1. 使用git init 命令创建本地仓库
  2. 仓库区和工作区

.git文件夹为仓库区 ,类似于一个数据库存储着每一次提交的变化

.git所在目录称为工作区 ,我们在这里创建项目,和其他文件

  1. 使用git add <文件名> 可以把文件添加到暂存区 ,暂存区存储将要被提交的文件变化
  2. 使用commit命令提交暂存区存储的变化并生成一个新的版本
  3. 使用git status命令查看状态,git log命令查看日志

Git服务器和远程仓库创建

  1. 可以搭建,自己搭建git服务器
  2. 免费服务器
    1. github.com 全球最大开源项目托管平台
    2. 2.gitee.com 国内知名开源项目托管平台 码云
    3. 注册gitee账号,并创建仓库

Git 克隆

  1. https方式
    1. 第一次克隆需要我们输入账号密码
  2. ssh方式
    1. ssh是一种开源非对称加密通信协议,
    2. ssh只是一种协议,有开源实现也有商业实现,git默认使用开源实现的openssh
    3. ssh通信需要一对密钥(公和私一对),私钥留在自己电脑上,公钥给其他的电脑
    4. 使用GitGUI生成密钥,并把公钥放在服务器上
    5. 安装完git第一次克隆会请求是否允许使用ssh,需要我们输入一个"yes".或者点击ok

添加,提交,推送,拉取

  1. 添加 add (如果使用使用小乌龟 勾选即为add)
  2. 提交 commit
    1. 提交只提交到本地仓库,需要推送才会到把变化更新到服务器仓库
  3. 推送 push
    1. 如果服务器版本比我们新则不会推送不成功,需要先拉取
  4. 拉取 pull
    1. 拉取时应确保工作区整洁(先提交本地再拉取服务器的变化)

分支

  1. master是仓库的主分,为了避免开发过程中程序员之间相互影响,我们一般选择创建一个新的分支来开发新功能
  2. 创建分支
  3. 切换分支
  4. 合并分支

冲突

  1. 冲突如何产生的
    1. 两个分支修改了同一个文件,合并的时候会发生冲突
  2. 如何解决冲突
    1. 协商修改冲突位置,并重新提交
  3. 如何减少冲突
    1. 先pull在修改
    2. 确保自己正在修改的文件是最新版本的
    3. 各自开发各自的模块,如果要修改公共文件,最好先确认有没有人正在修改
    4. 不要擅自修改同事的代码

忽略

.gitignore

使用 touch .gitignore 命令来创建一个忽略文件

|----------------------------------------------------------------------------------------------|
| #按文件名忽略文件夹 文件夹名/ ([Aa]忽略大小写) #按路径忽略文件夹 /文件夹名(路径)/ #忽略文件 *.后缀名 #反忽略,对文件和文件夹都有效 !*.文件名 !A/ |

空文件夹会被自动忽略

版本回退

在版本日志界面选择一个节点,使用重置(Reset)命令

子模块

子模块就是一个git仓库包含其他git仓库

当我们需要把其他开源项目作为本项目的一个库,并可可以随时拉取更新的时候或者我们的项目需要分模块独立开发的时候可以使用子模块

克隆有子模块的仓库,需要选择递归

issue和PullRequest

相关推荐
丁总学Java30 分钟前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh
萌狼蓝天1 小时前
【NAS】绿联NAS+极狐Gitlab+1Panel
git
deja vu水中芭蕾6 小时前
git push origin HEAD:refs/for/分支名
git
海岛日记10 小时前
git常用操作
git
喝鸡汤10 小时前
一起学Git【番外篇:如何在Git中新建文件】
git
“αβ”10 小时前
Windows下使用git配置gitee远程仓库
git
谢家小布柔15 小时前
Git图形界面以及idea中集合Git使用
java·git
winner888116 小时前
git merge 冲突 解决 show case
java·git·git merge·git冲突
玩电脑的辣条哥21 小时前
怎么给git动图扣除背景?
git·抠图
谢家小布柔1 天前
git中的多人协作
git