• 【Git速成】


    版本控制:版本更新之后对不同版本保留、操作
    分布式版本控制系统

    Git安装

    在这里插入图片描述
    Git Bash : Unix和Linux风格的命令行
    Git CMD : Windows风格的命令行
    Git GUI : 图形界面的Git

    基本的Linux命令

    命令描述
    cd切换目录
    cd ..切换为上级目录
    pwd显示当前所在的目录路径
    ls列出当前目录下的所有文件
    touch在当前文件下新建文件,touch a.txt在当前目录下新建a.txt文件
    rm删除一个文件,rm a.txt删除当前目录下的a.txt文件
    mkdir新建一个目录,mkdir b在当前目录下新建b目录
    rm -r删除一个目录,rm -r b在当前目录下删除b目录
    mv移动文件,mv a.txt b将当前目录下的a.txt文件移动到当前目录下的b目录中
    reset初始化终端(清屏)
    clear清屏
    history查看历史命令
    help帮助
    exit退出
    #注释

    蓝色表示目录、白色表示文件、绿色表示程序

    Git配置

    配置命令

    git config -l 查看配置
    git config --system --list 查看系统配置
    git config --global --list 查看本地配置
    git config --global user.name "zhao-xiaotian" 设置用户名
    git config --global user.email "2645228782@qq.com" 设置邮箱

    配置文件路径

    Git\etc\gitconfig 保存系统配置
    C:\Users\Administrator.gitconfig 保存用户全局配置

    Git理论

    在这里插入图片描述
    工作区:平时放代码的地方
    暂存区:本质是一个文件,临时存放你的代码变动,一般来说看不到
    本地仓库:本地的代码库,.git目录一般隐藏,HEAD文件指向最新版本
    远程仓库:一般指Github或Gitee

    git add命令会将代码添加至暂存区,git commit命令会把暂存区的代码提交到本地仓库,git push命令会将本地仓库的代码推送到远程仓库。

    git pull命令会将代码从远程仓库拉回本地仓库,git reset命令会将代码从本地仓库重置回暂存区,git checkout命令会将代码从暂存区检出至工作目录。

    Git项目搭建

    常用代码

    代码说明
    git init本地仓库初始化
    git clone [url]下载目标url仓库的代码
    git add [filename]添加文件到暂存区(filename写成 . 表示所有文件)
    git commit提交暂存区的内容到本地仓库 (-m “提交信息”)

    Git文件操作

    文件的4种状态

    • Untracked:未跟踪,该文件不参与版本控制,通过git add使状态变为Staged
    • Staged:暂存状态,通过命令git commit同步修改到库,状态会变为Unmodify。使用命令git reset HEAD filename取消暂存,状态变为Modify
    • Unmodify:文件未修改,版本库的快照和当前文件一样,当修改文件后,状态会变为Modify。如果使用git rm则移出版本库,状态变为Untracked
    • Modify:文件已下载,可通过git add添加到暂存区,使状态变为Staged。如果使用git checkout可以恢复到Unmodify状态,原理是用库中版本直接覆盖。

    查看文件状态

    # 查看指定文件状态
    git status [filename]
    
    # 查看所有文件状态
    git status
    
    • 1
    • 2
    • 3
    • 4
    • 5

    忽略文件

    有些文件一般不需要纳入版本控制,比如:数据库文件、临时文件、设计文件等
    在主目录下建立".gitignore"文件,此文件规则如下:

    1. #表示注释。
    2. *表示通配符,?表示一个字符,[abc]中括号表示可选字符范围,{aaa,bbb,ccc}表示可选字符串范围。
    3. !表示例外规则(不会被忽略)。
    4. /表示路径分隔符,最开始的 / 表示根目录
    5. 在路径后加/表示该路径下的所有文件

    举个例子:

    *.txt	#忽略所有txt文件
    !lib.txt	#但不忽略lib.txt
    /temp	#忽略根目录下的temp,/表示根目录
    temp/	#忽略temp目录下的所有文件
    temp/*.txt	#会忽略temp/a.txt,但不会忽略/temp/b/a.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用码云 Gitee

    本机绑定SSH公钥

    免密登录

    # 进入 C:\Users\(当前用户的用户名,每个人不一样)\.ssh 目录
    # 生成公钥
    ssh-keygen
    # 加密,官方推荐算法rsa
    # ssh-keygen -t rsa
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    把 .pub 文件打开,里面的内容就是公钥
    在这里插入图片描述

    idea集成git

    1. 找一个地方下载git远程仓库的代码
    2. 本地新建项目(一般同名)
    3. 在项目目录里粘贴下载下来的远程仓库的所有文件(同名文件选覆盖)
    4. 查看出现以下图标就说明远程仓库的内容拷贝到本地项目了
      在这里插入图片描述

    文件状态

    在这里插入图片描述
    红色表示选中(已跟踪),绿色表示添加到了暂存区,蓝色是已修改

    版本控制

    在这里插入图片描述
    查看版本控制,在idea里老版本是version control,新版本是Git

    文件操作

    1. 添加到暂存区(add)
    2. commit提交
    3. push到远程仓库

    关于分支

    分支就像是不同的版本,互不干扰

    在这里插入图片描述

    常用命令

    # 列出所有本地分支
    git branch
    # 列出所有远程分支
    git branch -r
    # 新建一个分支,但依然停留在当前分支
    git branch [branch-name]
    # 新建一个分支,并切换到该分支
    git checkout -b [branch]
    # 合并指定分支到当前分支
    $ git merge [branch]
    # 删除分支
    $ git branch -d [branch-name]
    # 删除远程分支
    $ git push origin --delete [branch-name]
    $ git branch -dr [remote/branch]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    分支冲突

    当某个文件咋子合并分支时,两个分支都修改了这个文件,就会发生冲突。
    选择某个分支,让这个文件都改成这个分支的文件内容就可以消除冲突。

  • 相关阅读:
    TextIn.com API使用心得
    uniapp引入vant报错
    一个37岁程序员的逆袭之路
    通过@classmethod 实现多态
    C++11打断线程的几种方式
    UE4动作游戏实例RPG Action解析一:角色移动,旋转,动画创建,创建武器,及武器配置
    javaweb01
    min_max_gray
    ovirt4.5-engine 安装
    Linux拔网线后网卡仍然处于激活状态
  • 原文地址:https://blog.csdn.net/weixin_52122251/article/details/125169342