Git理论 -工作流程 - 常用命令

Git概念和环境安装

1. Git概述

  • Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰

  • Git是目前世界上最先进的分布式版本控制系统。

  • Git是免费、开源的

  • 最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper


2. Git环境搭建

环境安装:

  • 下载:https://git-scm.com/ 点击download选择自己电脑版本就行。

  • 安装:双击Git-2.28.0-64-bit.exe安装就行

  • Git的源码:https://github.com/git/git/

  • Git GUI:git第三方图形化工具 TortoiseGit(小乌龟,可以用颜色来区分,文件是已修改、已提交之类的),安装之后需要重启电脑,才能有符号表示

Git理论 -工作流程 - 常用命令_第1张图片

注意事项:目录不能够有中文、空格、最好就是单词和数字,可以安装一个TortoiseGit海龟客户端,很流畅。

安装好之后:鼠标右键有Git和 TortoiseGit选项就安装成功了

Git理论 -工作流程 - 常用命令_第2张图片

版本控制概念

1. 备份、还原

  • 备份:对当前数据产生一个副本

  • 还原(恢复):用以前副本的数据覆盖来当前的数据(代买)
    Git理论 -工作流程 - 常用命令_第3张图片

2. 比较:比较两份数据的差异(compare/diff)

  • 整体比较:hash值比较(工具:Hash校验工具)

      hash值就是调用摘要算法(md5、sha-1、sha-256、crc. 等摘要算法),产生一个特征码,用特征码是否相同来比较两个文件是否相同。

       SHA1算法:固定长度比较(得到的hash码值一样,则文件内容相同)

  • 细节比较:(逐行比较)

       Beyond Compare 4 :文本比较工具,一行一行比较文本内容

3. 分支

  创建对当前所有的数据产生(copy)一个“更大”的副本,就是对当前所有数据复制copy产生多个副本,然后多人可同时开发。

  • 与原来副本互不干扰

  • 分支的地方是相同的,当前数据默认分支master(主分支)

  • 分支的意义:提高团队效率

4. 合并

  通过比较两份数据的差异,将目标数据与当前数据在一起,产生一份新的数据。(合并不是覆盖,在原有基础上增加的就合并,对相同的修改就需要判断)

  应用:将其他分支的数据合到主分支上面(主分支不开发,一般用于合并,开发数据追加到主分支)。

  冲突:两份(多份)数据,相同的位置被修改,不能够简单的覆盖替换,根据实际情况来合并(会都保存下来后期修改)


## 集中式和分布式

1. 集中式与分布式

  • 本地版本控制 (个人使用,没有团队协作)

  • 集中式版本控制 (团队使用,数据在服务器,不可以离线工作,操作会经过网络,不断从服务器写数据读数据,服务器会有较大压力) - SVN是集中式的版本控制系统的代表

  • 分布式版本控制 (团队使用,数据在每个用户本地,可以离线工作,Git代表,可以从服务器读取数据,用户之间也能交互数据)【有服务端仓库,也有本地仓库 - 服务器、本地都有数据】- 最先进的分布式管理系统Git

2. Git和SVN的区别

  • SVN是集中式的版本控制系统的代表

  • Git优点(分布式优点):Git是分布式版本控制系统,具有高效(团队协作)、离线工作、服务器压力小、易于合并等优势。


Git使用流程

Git理论 -工作流程 - 常用命令_第4张图片

  • workspace:工作区(你写代码的地方)

  • Index:暂存区(将多个文件座位一次性提交给本地库)

  • Repository:本地库:提交的所有版本数据

  • Remote:远程库,是用来托管代码的服务器

  (通过上面的add/commt/push/pull命令,将数据从xx地方提交/拿去到xx地方)

Git的工作流程

  1. 在工作目录中添加、修改文件;

  2. 将文件放入暂存区域;git add命令(git add.将所有文件添加到暂存区)

  3. 将暂存区域的文件提交到本地库。(git commit)

  4. 将本地库文件提交到远程库,实现服务器托管。(git push)

工作目录下的所有文件会先提交到暂存区,然后提交到本地库(清空暂存区),因为git提交一次只能提交一个文件,所以会先放到暂存区,然后一起提交到本地库。然后本地库再提交到远程库

Git常用操作指令[***]

  1. cd跳转指定位置,在git里面文件分隔符是**/**

  2. git init git初始化指令,初始化完之后在指定文件会有.git文件夹(就是git系统目录)

  3. 级别区分

  • –local 项目级 : 当前项目所有都用

  • –global : 当前用户级别使用

  • –system : 系统级别(一般不用)

    git config --global git config user.name xxx设置当前用户名

  1. 配置用户名和邮箱

    git config --global user.name "用户名"

    git config --global user.email "[email protected]"

  2. Git建本地仓库 git clone / git init

  • $ git init 在当前目录新建一个Git代码库

  • $ git init [project-name] 新建一个目录(名称为project-name),将其初始化为Git代码块

  • $ git clone [url] 下载一个项目和它的整个代码历史

  1. git add命令

    从工作区向暂存区写入

    $ git add [file1] [file2] 添加指定目录到暂存区,包括子目录

    $ git add [dir] 添加当前目录的所有文件到暂存区

    $ git add . 点代表添加当前目录的所有文件到暂存区

    $ git add -p 对于同一个文件的多处变化,可以实现分次提交

  2. git的查看命令

  • git status `命令

    显示工作目录和暂存区的状态,只显示到文件

    • git log命令

      显示项目历史的信息

    • git log --stat命令

      查看简要统计

    • git show sha1或者head标记

      看某个具体的 commit 的改动内容

    • git diff命令

      显示工作目录和暂存区的状态,细到内容

    • git diff HEAD命令

      显示工作目录和上一次的状态,细到内容

  1. git commit命令 : 提交暂存区文件到本地库
  • $ git commit -m [message] 提交暂存区的指定文件到本地库
  1. 分支合并【***这是重点】
  • $ git branch [branch-name] 新建一个分支,但依然停留在当前分支
  • $ git switch [branch-name] 切换分支
  • $ git switch master 其他分支合并到当前的主分支

你可能感兴趣的:(每日学习,linux,git,git常用命令,git工作流程)