git学习笔记(精简)

185 阅读4分钟

Git

Git概述

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

为何要使用git

从个人开发过渡到团队协作,就像下图一样,如果小红和小蓝都对同一份代码进行了修改,那么最后合并的工作就可以交给git image-20220929154133758.png

Git工作机制

image-20220929155244569.png

在工作区和暂存区不会产生历史记录,提交到本地库后会生成历史记录

Git常用命令

命令作用
git config --global user.name 用户名设置用户名
git config --global user.email 邮箱名设置邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m '日志信息' 文件名提交到本地库
git reflog查看历史版本记录
git reset --hard 版本号版本穿梭

注:这里设置的用户名和邮箱是本地的,与githup无关

查看本地库状态

使用 > git status 命令查看本地库状态,如果文件名为红色,则说明文件现在属于工作区,还未添加到暂存区。

image-20220929162638246.png

当使用 git add 命令添加到暂存区后,此时的文件名会为绿色,说明文件处于暂存区,还未添加到本地库。

在暂存区的文件如果想删掉,可以使用以下命令:

git rm --cached 文件名 //这条命令只是删除暂存区的缓存文件,与工作区的文件无关

image-20220929162933032.png

当使用git commit 命令后,会添加到本地库,在查询时没有显示之前的文件,说明添加成功了。

image-20220929163232819.png

git add .          //当输入这个命令时,可以添加所有文件,而不需要一个一个添加 

Git分支

分支常用命令

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

分支的概念

在版本控制过程中,同时推进多个任务,为每个任务可以创建单独的分支。使用分支可以让程序员把自己的工作从主线上分离开来,开发自己的分支的时候,不会影响主线分支的运行。(分支底层也是对指针的应用)

image-20220929170252374.png

分支的好处:

        1. 可以同时推进多个功能的开发,提高开发效率
        2. 各个分支的开发过程中互不干扰,如果一个分支开发失败,不会影响其他分支。失败的分支删除重新开始即可。

合并冲突

image-20220929175337483.png

当两个地方修改了同一份文件时容易出现代码冲突,此时就需要人手动来解决,解决步骤:

  1. 先去发生冲突的文件里把不需要的代码删除掉并保存。
  2. 使用 git add . 命令把修改后的文件提交到暂存区。
  3. 使用 git commit -m ‘日志信息’把文件提交到本地库,注意:此时的代码不能带有文件名

vim里保存要使用 :wq命令

githup操作

常用远程库命令

命令作用
git remote -v查看所有远程地址别名
git remote add 别名 远程地址创建别名
git push 别名 分支推送本地库到远程库
git clone 远程地址克隆远程仓库
git pull 远程库地址或别名 远程分支名将远程库的内容拉取下来与本地合并

其他操作

下载仓库里某个子文件

我们在使用Git clone 码云gitee仓库中的代码时,不管是clone或下载压缩包,默认都会clone目标仓库的所有文件,如果我们只需要或者只想要获取其中的某个文件夹时,下载全部无疑浪费了我们的时间和精力,使用此方法可以只下载单个文件夹或者文件

步骤:

  1. 初始化仓库

    git init
    
  2. 设置允许clone子目录

    git config core.sparsecheckout true
    
  3. 设置需要下载的文件(把下面的‘文件名'换成需要clone的文件,注意不要删除*号)

    echo '文件名*' >> .git/info/sparse-checkout
    
  4. 设置远程库别名,方便下载

    git remote add 别名 远程库地址
    
  5. 执行拉取操作

    git pull 别名 分支
    

至此,就可以做到只克隆直接需要的单文件,而不需要克隆整个仓库了。

课程学习视频 阮一峰git教程