• Git学习笔记


    1.Git概述

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

    1.1 基本术语

    • Fetch(获取),从远程代码库更新数据到本地代码库。注意:Fetch 只是将代码更新到本地代码库,你需要检出(check out)或与当前工作分支合并(merge)才能在你的工作目录中看到代码的改变。
    • Pull(拉取),从远程代码库更新数据到本地代码库,并与当前工作分支合并,等同于 Fetch + Merge。
    • Push(推送),将本地代码库中已提交(commit)的数据推送到指定的 remote,没有 commit 的数据,不会push
    • HEAD,指向你正在工作中的本地分支的指针
    • Master 分支:主分支,所有提供给用户使用的正式版本,都在这个主分支上发布。
    • Tags(标签):用来记录重要的版本历史,例如里程碑版本
    • Origin:默认的 remote的名称
    • Git clone(克隆版本库):从服务端将项目的版本库克隆下来
    • Git init(在本地初始化版本库):在本地创建版本库的时候使用

    1.2 工作流程

    请添加图片描述

    1.3 基本概念

    Git 工作区、暂存区和版本库概念:

    • 工作区(workplace):就是你在电脑里能看到的目录。

    • 暂存区(Index):英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

    • 版本库(Repository):工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

    请添加图片描述

    1.4 状态说明

    • 如果本地文件名颜色为红色,表示该文件是新增的本地文件且没有add。可以右键文件名(NEWREADME.md)->git->add,或者右键项目名(learn-ngari-framework-myself)->git->add。
    • 如果本地文件名颜色为绿色,表示该文件是新增的本地文件且已经add过了,可以视同文件名颜色为蓝色的文件,直接操作commit然后push。
    • 如果本地文件名颜色为蓝色,表示该文件有修改,但是没有commit过,可以右键文件名(README.md)->git->commit,或者右键项目名(learn-ngari-framework-myself)->git->commit。
    • 如果本地文件名颜色为黑色,有两种可能。第一种:本地确实没有做任何修改;第二种:有修改且commit过,但是没有push。

    1.5 注意事项

    • 提交代码
      • fetch --> pull --> add --> commit --> push
      • 由于本地代码可能会落后于远端,为确保准确性,在提交代码前必须先fetch,再pull,然后再操作commit。
      • 以上操作可以使用命令行,也可以使用IDEA中的可视化操作工具。(VCS—>Git)
      • 本地配置文件不要提交提交到远端分支,由于每个人的本地路径、启动配置等不尽相同,如果提交到远端分支拉取的时候会存在大量的冲突,且合并冲突无意义,要求大家本地的配置文件不要勾选上传到远端分支。如果不想看到这些文件出现,可以在自己的项目中增加ignore文件,配置一下即可。
    • 下载代码
      • 下载代码之前我们需要先设置一下Git的SSH Key
      • 设置完毕以后,在IDEA启动页找到Check out from Version Control选项
      • 然后在相应的代码仓库里面找到项目的对应分支的SSH地址,输入密码以后就会下载代码了

    2.Git命令

    2.1 创建仓库

    2.1.1 git init

    使用当前目录作为目录,只需要打开Git Bash,输入下面指令即可。

    git init
    
    • 1

    如果是指定目录作为仓库(newrepo为指定目录),则使用

    git init 
    
    • 1

    2.1.2 git clone

    命令说明
    git clone 克隆仓库至当前目录
    git clone 克隆仓库到指定的目录

    2.1.3 git config

    git 的设置使用 git config 命令。

    命令说明
    git config --list使用t显示当前的 git 配置信息
    git config -e编辑 git 配置文件,针对当前仓库
    git config -e --global同样的编辑git配置文件,不过是针对所有仓库
    git config --global user.name “name”设置提交代码时的用户名
    git config --global user.email xxx@163.com设置提交提交代码时的用户邮箱

    注意:如果去掉 –global 参数只对当前仓库有效。

    2.2 基本操作

    2.2.1 提交与修改

    命令说明
    git add 添加文件到暂存区
    git status查看仓库当前的状态,显示有变更的文件。
    git diff比较文件的不同,即暂存区和工作区的差异。
    git commit -m ”提交备注“提交暂存区到本地仓库,-m是添加提交备注。
    git commit --amend重写上一次的提交信息,命令执行会进入到编辑器页面
    git reset --hard HEAD^回退版本到上一个版本,^的个数代表回退到当前版本的第几个版本。
    git reset --hard <版本号>我们可以使用git reflog获得版本号,然后使用该命令回退到指定版本
    git rm 将文件从暂存区和工作区中删除。
    git mv 移动或重命名工作区文件。

    2.2.2 查看日志

    命令说明
    git log查看历史提交记录
    git blame 以列表形式查看指定文件的历史修改记录
    git reflog查看精简的提交日志

    2.2.3 远程操作

    命令说明
    git remote列出已经存在的远程分支
    git remote -v列出详细信息,在每一个名字后面列出其远程url, -v 选项显示对应的克隆地址
    git remote add url添加一个远程仓库
    git fetch从远程获取代码库
    git pull下载远程代码并合并
    git push上传远程代码并合并

    2.3 分支管理

    命令说明
    git branch列出所有分支
    git branch -d 删除分支
    git branch 创建新的分支
    git checkout 切换分支
    git merge 将某一分支合并到当前分支

    | 创建新的分支 |
    | git checkout | 切换分支 |
    | git merge | 将某一分支合并到当前分支 |

    合并分支要注意解决冲突

  • 相关阅读:
    二、nginx URL重写[rewrite]
    23 种设计模式之工厂模式
    (SVN+SSH)搭建SVN并使用SSH进行免密拉取推送代码
    73 应急响应-WEB分析php&javaweb&自动化工具
    在k8s集群中部署EdgeMesh
    java毕业设计城镇保障性住房管理系统mybatis+源码+调试部署+系统+数据库+lw
    技术停滞:如何更新?
    华为数通方向HCIP-DataCom H12-821题库(单选题:341-360)
    CSS 中的 : 和 :: 有什么区别?
    MSYS2 介绍、下载与安装、Pacman常用命令
  • 原文地址:https://blog.csdn.net/qq_52002412/article/details/126579135