Git分布式管理控制工具基础

本文介绍了Git分布式版本控制的核心概念,工作流程,常用命令,包括安装配置、解决乱码、仓库管理、分支操作和冲突解决。此外,还涵盖了Git在代码托管服务中的应用和IDE中的集成,以及开发中的分支规范和最佳实践。
摘要由CSDN通过智能技术生成

GIT 分布式管理控制工具

学习笔记仅供参考

作者--Alianer


前言

原理操作图片皆是来源于黑马程序员的教程资料

基本上是看黑马视频自己摘抄的笔记,会不定时回来过一遍知识,根据自己的理解不断改进笔记

Git基本概念

常见场景

  1. 备份
  2. 代码回滚
  3. 协同开发
  4. 代码追溯,查看日志寻找问题

优点

  • 速度快
  • 简单的设计
  • 对非对称开发模式的强力支持
  • 完全分布式
  • 有能力管理类似Linux内核一样的超大规模项目

版本控制器

  1. 集中式版本控制工具,就是版本库存放在中央服务器的,项目团队每个成员在工作时从中央服务器下载代码,是必须链接局域网或者互联网才能工作,个人修改版本后需要提交到中央版本库(SVN,CVS)

    image-20210706083627705

  2. 分布式版本控制工具,分布式版本控制没有中央服务器,每个人的电脑上都是一个完整的版本库,工作时就不需要联网,多人协同时只需要把各自的修改推送到对方即可。(Git)

image-20210706083722757


Git基本工作流程

image-20210706084010364

详细流程:

  • clone(克隆):从远端仓库克隆代码到本地
  • checkout(检出):从本地仓库中检出一个仓库分支然后修订
  • add(添加):在提交前先把代码添加到暂存区
  • commit(提交):提交到本地仓库,本地仓库中保留了各个历史版本
  • fetch(抓取):从远端仓库抓取到本地,不进行任何操作。
  • pull(拉取):从远端仓库拉去到本地并且自动合并,相当于fetch+merge
  • push(推送):修改完成后,把本地代码推送至远程仓库

Git基本操作及常用命令

官网安装

https://git-scm.com/

基本配置

  1. 打开git bash

  2. 设置用户信息(信息邮箱无所谓是否存在,可以随便写)

    git config --global user.name '‘姓名’

    git config --global user.email “邮箱”

  3. 查看配置信息

    git config --global user.name

    git config --global user.email

解决git bash乱码问题

  1. 打开git bash执行以下命令

    git config --global core.quotepath false
    
  2. ${git_home}/etc/bash.bashrt 下加入下面两行代码

    export LANG="zh_CN.UTF-8"
    export LC_ALL="zh_CN.UTF-8"
    

获取本地仓库

  1. 在需要的位置创建项目文件夹(空目录)作为本地的git仓库
  2. 进入目录,右键打开git bash
  3. 执行命令 git init
  4. 如果创建成功则会在文件夹下看见隐藏的.git目录

仓库原理和基本指令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

image-20210706092140121

常用指令指令作用
git add 单个文件|通配符 git add .表示更新全部文件更新文件到暂存区
git commit -m '注释内容'把暂存区的文件提交到仓库中
git status查看修改的状态
git log[option]
option: --all 查看全部分支
–pretty=oneline 查看提交信息为一行
–abbrev-commit 使得输出的commitld更加简短
–graph 以图片的形式显示
查看提交日志
git reset --hard commitID commitID 可以通过git-log查看版本回退
git relog查看已经删除的提交记录

可以在Windows用户目录下创建.bashrc下使用alias添加命令的别名

alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'

如果Windows不支持创建点开头的文件,则在Windows用户目录下打开git bash执行 touch ~/.bashrc创建该文件

添加文件到忽略列表

我们可以在项目目录下,创建一个名字为.gitignore的文件,里面列出忽略文件的格式即可让该类文件不被git管理

*.a		//表示所有点a文件不被git管理

分支

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。

常用指令指令作用
git branch查看本地分支
git branch 分支名字创建本地分支
git checkout 分支名切换已经存在的分支
git checkout -b 分支名创建并且切换分支
git merge 分支名一个分支上的提交合并到另一个分支
git branch -d/-D删除分支-d是删除时检查,-D是强制删除

解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一,这时就需要手动解决冲突,解决冲突步骤如下:

  1. 根据需要去处理修改冲突的地方
  2. 解决完成的冲突更新至暂存区
  3. 提交到仓库

开发中的分支规范

  • master(生产)分支:线上分支,主分支
  • develop (开发)分支:从master创建的分支用于并行开发项目功能,阶段开发完成后,即可合并到master分支下,准备上线
  • feature/xxx分支:从develop创建的分支,一般用于不同时期的并行开发,开发完成后合并到develop分支
  • hotfix/xxx分支:从master分支派生的分支,主要用于修复线上的bug,修复完成后需要合并到master,test,develop等分支
  • test分支:用于代码测试
  • pre分支:预上线分支

image-20210706102458701


Git代码托管服务

常用的远程仓库

  • GitHub 国外的面向开源或私有的软件项目托管平台
  • 码云 国内的平台,速度较快
  • GitLab 需要自己搭建web服务,一般用于企业,学校等

注册码云账号

手机号或者邮箱官方网站注册即可

配置SSH公钥

  1. 打开git bash 输入 ssh-keygrn-t rsa 获取公钥
  2. 接下来步骤一直回车即可(如果之前设置过则会覆盖)
  3. cat ~/.ssh/id_rsa.pub 查看公钥,然后复制下来
  4. 打开码云设置公钥,粘贴刚刚的公钥,命名即可
  5. 检测是否配置成功,ssh -T git@gitee.com (如果是第一次配置需要回车后打一个yes)

操作远程仓库

常用命令命令作用
git remote add [远端名称][仓库的路径(ssh)]初始化远程仓库,一般命名为origin
git remote查看远程仓库
git push [-f][--set-upstream] [远端名称[本地分支名称]:[远端分支名称]]
-f强制覆盖
–set-upstream,推送到远端的同时建立和远端分支的关联关系
推送到远程仓库
git clone [仓库路径][本地目录]克隆远端仓库,本地目录可以不写,会自动生成一个目录
git fetch [远端名称][本地名称]抓取,更新的分支但不会合并
git pull [远端名称][本地名称]拉取,更新的分支并且合并
git branch -vv查看分支关系

解决合并冲突

在一段时间,甲,乙两人修改了同一个文件的同一位置的代码,此时会发生合并冲突。

解决办法:和解决分支冲突一样,在甲先push推送之后,乙先pull一下项目,然后合并一下,解决修改同一地方的分支冲突后,在合并,最后乙再push提交到远程仓库

image-20210706135220168


使用idea操作Git

idea配置git

在idea中,如果是默认路径下的git,则会自动匹配位置,如果是手动修改安装的git,则需要配置git路径在file->setting打开窗口设置找到version control下的git选项(我自己的是汉化后的了,可以对着看看位置)

image-20210706142243069

从idea中创建仓库

找到一个项目打开,选择vcs->导入版本控制->创建git存储库

image-20210706142901325

选择对应项目文件,确定,创建成功之后会有git一些功能选项如下

image-20210706143054337

提交版本及推送分支

点击绿色的勾,选择要提交的文件,然后点击提交commit

image-20210706143306607

之后可以在git控制台上看见提交的内容

image-20210706143520415

可以在日志里面看见详细的提交内容

image-20210706143610463

然后选择推送或者之后可以选择直接提交并且推送,然后吧创建的远程仓库的地址(ssh)复制到下面url中

确定即可

Inkedimage-20210706143927568_LI

Inkedimage-20210706143917200_LI

推送后会在git中看见修改分支

image-20210706144347603

也会看见修改的具体内容差别

image-20210706144444236

一般先提交版本更新,然后再pull,克隆最新的代码,然后根据需求修改分支冲突,合并之后再push推送上去

新建分支和分支管理(两个地方都可以)

image-20210706145537217

image-20210706145549618

可以找到设置里面的终端修改成自己的git本地的bash.exe路径

就可以再idea终端使用git bash

image-20210706150119973

image-20210706150234183

规范化

  1. 切换分支前需要先提交本地修改
  2. 代码及时提交,提交过就不会丢失了
  3. 遇到任何问题都不要删除文件目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值