Git1️⃣版本控制 & Git

1、版本控制(❗)

1.1、VC

版本控制(Version Control)

对软件开发过程中,各种程序代码、配置文件及说明文档文件变更的管理

主要场景

  1. 备份与还原
  2. 协同开发:解决版本同步和开发通信问题,提高协同开发效率。
  3. 追踪文件变更:包括时间、提交者、变更内容等信息。

1.2、VCS

版本控制系统(Version Control System)

用于版本控制的系统。

集中式 分布式(DVCS
版本库位置 中央服务器 本地仓库、远程仓库
工作方式 从中央服务器下载代码,将修改提交到中央服务器 从远程仓库获取最新版本,将修改提交到本地仓库,再同步到远程仓库
联网 必须联网 工作时无需联网,同步到远程仓库时才需联网
示例 SVN 和 CVS Git

2、Git

2.1、说明

Git:为 Linux 开发而生,开源的分布式控制系统(DVCS)

  • 1991-2002:大部分 Linux 内核维护工作花费在提交补丁、保存归档等琐事。
  • 2002:启用 BitKeeper 分布式版本控制系统,管理和维护 Linux 代码。
  • 2005:BitKeeper 开始收费,Linux 开源社区(尤其是 Linux Torvalds)着手开发 Git。

设计目标

  1. 简单设计
  2. 并行开发:对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  3. 速度和数据量:有能力高效管理类似 Linux 内核一样的超大规模项目
  4. 完全分布式:去除中央服务器的概念,每台机器都维护一个版本库

涉及 Linux 知识

  • 工具
    1. Xftp 可视化操作文件
    2. vim 编辑器
  • 命令
    1. ls/ll:查看当前目录
    2. cat:查看文件
    3. touch:创建文件
    4. mv:移动/重命名文件

2.2、安装

  1. 从官网下载 .exe 安装包,打开安装即可。

    image-20220513103429342

  2. 安装完成后,鼠标右键有以下选项:

    • Git GUI:图形界面

    • Git Bash:命令行工具

      image-20220513103138518

2.3、配置

2.3.1、Git Bash 中文乱码

  1. Git Bash 中执行:

    git config --global core.quotepath false
    
  2. ${git_home}/etc/bash.bashrc 文件中追加内容:

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

2.3.2、用户信息(❗)

Git 提交时会包含提交者的信息,需提前配置。

(通常是 Git 平台/团队中的用户名)

  1. 设置用户信息:进入 Git Bash 中执行

    git config --global user.name "用户名"
    git config --global user.email "邮箱"
    
  2. 查看配置信息

    git config --global user.name
    git config --global user.email
    

2.3.3、指令别名

为常用指令配置缩写,减少重复编写工作。

  1. 创建 .bashrc 文件

    • 创建:进入用户目录的 Git Bash(C:\users\用户名\

      # 创建文件:~ 代表用户目录
      touch ~/.bashrc
      
    • 内容:配置指令别名,示例如下

      # 查看目录内容
      alias ll='ls -al'
      # 输出 Git 提交日志
      alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
      
  2. 加载生效:在 Git Bash 中执行

    source ~/.bashrc
    

3、Git 工作流程(❗)

核心工作流程

  • 拉代码

    • clone:从远程仓库中克隆代码到本地仓库
    • fetch:从远程仓库中更新代码到本地仓库,不合并
    • checkout:从本地仓库中检出(切换)分支
    • pull:从远程仓库中更新代码到本地仓库,自动合并后放到工作区(相当于 fetch + merge)
  • 推代码

    • add:工作区指定内容 → 暂存区

    • commit:暂存区所有内容 → 本地仓库

    • push:本地仓库代码 → 远程仓库

      image

posted @ 2022-05-12 15:07  Jaywee  阅读(128)  评论(0编辑  收藏  举报

👇