2021Git学习笔记整理

532 阅读9分钟

Git学习笔记整理


好记性还是不如烂笔头,记录是抵抗遗忘最好的学习方式~


  1. 笔记大纲,思维导图如下:

  1. 目录架构
  • 第1章-Git介绍
  • 第2章-Git安装
  • 第3章-Git常用命令
  • 第4章-Git分支⭐(重要)
  • 第5章-Git团队协作机制
  • 第6章-GitHub操作
  • 第7章-IDEA集成Git
  • 第8章-IDEA集成GitHub
  • 第9章-国内代码托管中心-码云Gitee
  • 第10章-创建代码托管平台-GitLab

第1章-Git介绍

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。

Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。

其性能优于 Subversion(SVN)、CVS、Perforce 和 ClearCase 等版本控制工具。

来自Git官网介绍:Git (git-scm.com)

基于最新版的Git-2.31.1


1.什么是版本控制

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本, 方便版本切换。

我举个例子吧,自己魔改hexo博客,就出现过这样的困惑😂

2.为什么会出现版本控制

我个人肤浅的理解就是方便管理文件,最重要的是做项目需要团队开发,代码不方便管理,需要从个人过渡到团队开发!!!虽然有了版本控制的思想,但是没有管理的工具。所以版本控制工具就很好的解决了这个问题。


3.版本控制工具的出现

版本控制工具又分为集中式版本控制工具和分布式版本控制工具

3.1集中式版本控制工具

我所了解和查阅的资料,集中式版本控制工具用的最多的是SVN,CVS、SVN(Subversion)、VSS……

  • 概述:需要都有一个单一的集中管理的服务器,协同工作的开发者都通过客户端连到这台服务器。取出最新的文件或 者提交更新。这是版本控制系统的标准做法!

    优点缺点
    每个人都可以在一定程度上看到项目中的其他人正在做些什 么。中央服务器的单点故障
    管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统。服务器宕机
    比在各个客户端上维护本地数据库来得轻松容易。宕机期间谁都无法提交更新,也无法协同工作。

3.2分布式版本控制工具

我所了解和查阅的资料,集中式版本控制工具用的最多的是Git、Mercurial、Bazaar、Darcs……

Git分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码 仓库完整地镜像下来(本地库)。

当协同工作用的文件发生故障,事后都可以用 其他客户端的本地仓库进行恢复。

每个客户端的每一次文件提取操作,实际上都是一次 对整个文件仓库的完整备份。

分布式的版本控制系统解决了集中式版本控制系统的缺陷:

  1. 服务器单点故障的情况下也可以进行开发(因为版本控制是在本地进行)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

4.Git发展历史

4.1简介

Git 诞生于一个极富纷争大举创新的年代。来自于同样的Linux之父,林纳斯·本纳第克特·托瓦兹

Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

林大佬花了两个星期就开发出了Git,大佬就是强!!!

5.Git的工作机制

6.6 Git 和代码托管中心(远程仓库)

  • ➢ 局域网

    1. ✓ GitLab
  • ➢ 互联网

    1. ✓ GitHub(外网)

    2. ✓ Gitee 码云(国内网站)

    关于Git的介绍就到这里,大概有个了解吧~🙂


第2章-Git安装

官网下载Git (git-scm.com)

安装图解加上详细的解释:

#win+r 打开  cmd
#输入

git --version

#输出版本信息即可

安装大功告成!!!实在不行,无脑下一步安装即可


第3章-Git常用命令

Git账户设置

1.# git config --global user.name 用户名 
git config --global user.name "ck_cheng"


2.# git config --global user.email 邮箱 
git config --global user.email 2574833532@qq.com

初始化本地库

git init 
#隐藏目录有.git

查看本地库状态

git status

添加到暂存区

git add 文件名
git add . 添加所有文件

提交到本地库

git commit -m "日志信息" 文件名 

查看历史记录

git reflog  查看版本信息
git log 查看版本详细信息

版本穿梭

git reset --hard 版本号

Git 切换版本,底层其实是移动的 HEAD 指针

第4章-Git分支⭐(重要)

1.概念

在版本控制过程中,同时推进多个任务,为每个任务创建每个任务的单独分支。

从开发主线上分离开来,开发自己分支的时 候,不会影响主线分支的运行。

2.分支操作

命令作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

3.代码冲突

冲突产生的表现:后面状态为 MERGING

冲突产生的原因: 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替 我们决定使用哪一个。必须人为决定新代码内容。

4.解决冲突

编辑有冲突的文件,删除特殊符号,决定要使用的内容

特殊符号:<<<<<<< HEAD 当前分支的代码 ==== 合并过来的代码 >>>>>>> 分支名

注意:修改后,执行提交(注意:此时使用 git commit 命令时不能带文件名)


第5章-Git团队协作机制

1.团队内协作

2.跨团队协作


第6章-GitHub操作

1.远程库操作

命令作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容到远程仓库
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与 当前本地分支直接合并
git clone 远程地址将远程仓库的内容克隆到本地

2.邀请加入团队

添加人员

3.SSH免密登录

具体操作如下:
1.--进入当前用户的家目录
cd

2.--删除.ssh 目录
rm -rvf .ssh

3.运行命令生成.ssh 秘钥目录[注意:这里-C 这个参数是大写的 C]
ssh-keygen -t rsa -C 2574833532@qq.com
一路回车

4.进入.ssh 目录查看文件列表
cd .ssh
ll -a

5.cat id_rsa.pub
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys

第7章-IDEA集成Git

1.配置 Git 忽略文件

作用:忽略掉能够屏蔽 IDE 工具之 间的差异。

创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore)

建议也放在用 户家目录下

2.git.ignore 文件模版内容如下:

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

3.在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

[user]
name = ck_cheng
email = 2574833532@qq.com
[core]
excludesfile = C:/Users/Daly/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

4.定位 Git 程序

IDEA打开File-->settings

就是在idea里进行分支操作


第8章-IDEA集成GitHub

1.设置 GitHub 账号

第9章-国内代码托管中心-码云Gitee

IDEA 集成码云

IDEA 安装码云插件 Idea 默认不带码云插件,我们第一步要安装 Gitee 插件。

跟Github一样差不多的操作


第10章-创建代码托管平台-GitLab

1.简介

GitLab 是由 GitLabInc.开发,使用 MIT 许可证的基于网络的 Git 仓库管理工具,且具有 wiki 和 issue 跟踪功能。使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。

GitLab 由乌克兰程序员 DmitriyZaporozhets 和 ValerySizov 开发,它使用 Ruby 语言写 成。后来,一些部分用 Go 语言重写。截止 2018 年 5 月,该公司约有 290 名团队成员,以 及 2000 多名开源贡献者。

GitLab 被 IBM,Sony,JülichResearchCenter,NASA,Alibaba, Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX 等组织使用。

2. GitLab 官网地址

官网地址:about.gitlab.com/

安装说明:about.gitlab.com/installatio…

3.服务器准备

准备系统为 CentOS7 以上版本的服务器,要求内存 4G,磁盘 50G。 关闭防火墙,并且配置好主机名和 IP,保证服务器可以上网。

4.安装包准备

Yum 在线安装 gitlab- ce 时,需要下载几百 M 的安装文件,非常耗时,所以最好提前把 所需 RPM 包下载到本地,然后使用离线 rpm 的方式安装。

下载地址: packages.gitlab.com/gitlab/gitl…

5.编写安装脚本

 vim gitlab-install.sh
 
 sudo rpm -ivh /opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
 
 sudo yum install -y curl policycoreutils-python openssh-server cronie
 
 sudo lokkit -s http -s ssh
 
 sudo yum install -y postfix
 
 sudo service postfix start
 
sudo chkconfig postfix on

curl https://packages.gitlab.com/install/repositories/gitlab/gitlabce/script.rpm.sh | sudo bash

sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlabce

给脚本增加执行权限

chmod +x gitlab-install.sh

 ll
 
# 然后执行该脚本,开始安装 gitlab-ce。注意一定要保证服务器可以上网。
 ./gitlab-install.sh 
 
 

6.初始化 GitLab 服务

执行以下命令初始化 GitLab 服务,过程大概需要几分钟,耐心等待…

 gitlab-ctl reconfigure

7.启动 GitLab 服务

执行以下命令启动 GitLab 服务,如需停止,执行 gitlab-ctl stop

 gitlab-ctl start

8.idea集成Gitlab