• Git学习


    什么是 Git?

    Git 是一个分布式版本控制系统,用于追踪文件和项目的变化。它可以帮助开发者或团队有效地协同工作,并提供版本管理、分支管理、代码合并等功能。Git 的设计目标是速度快、简单易用。

    Git 的基本概念

    1. 仓库(Repository):Git 仓库是存储代码和历史记录的地方。它可以位于本地计算机或远程服务器上。每个仓库都有一个唯一的标识符,称为仓库地址。

    2. 提交(Commit):一个提交代表一个代码变更,包含了若干个文件的状态。每个提交都有一个唯一的标识符(commit hash),用于标记和检索。

    3. 分支(Branch):分支是基于主线发展的独立线路,用于实现不同的功能或处理不同的任务。在 Git 中,每个分支拥有自己的提交历史。

    4. 远程仓库(Remote Repository):远程仓库是存储在网络上的仓库,用于多人协作和备份代码。常见的远程仓库服务包括 GitHub、GitLab 等。
      引用km学长的博客
      在这里插入图片描述

    Git 的基本操作

    以下是几个常用的 Git 命令和操作:

    1. 初始化仓库git init 用于在当前目录下创建一个新的 Git 仓库。

    2. 添加文件git add 将文件添加到 Git 的暂存区,准备进行提交。

    3. 提交变更git commit -m "commit message" 将暂存区中的变更提交到本地仓库,-m 参数用于添加提交消息。

    在这里插入图片描述

    1. 查看状态git status 可以查看当前仓库的状态,包括已修改但未提交的文件和分支信息。

    在这里插入图片描述

    git status 命令可以输出仓库当前的状态,上面的命令输出告诉我们,cc.txt 被修改过了,但还没有准备提交的修改。
    git status 命令的输出十分详细,但其用语有些繁琐。Git 有一个选项可以帮您缩短状态命令的输出,这样可以以简洁的方式查看更改。使用 git
    status -s 命令或 git status --short 命令,将得到一种格式更为紧凑的输出。
    输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。
    新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。在这里插入图片描述
    用 git diff 这个命令能看看具体修改了什么内容

    在这里插入图片描述

    1. 查看提交历史git log 用于查看当前分支的提交历史记录,包括提交标识符、作者、提交时间等。
      在这里插入图片描述

    2. 创建分支git branch 创建一个新的分支。

    3. 切换分支git checkout 切换到指定的分支。

    4. 合并分支git merge 将指定分支的提交合并到当前分支。在这里插入图片描述在dev分支上正常提交修改后的cc.txt 切换回main分支后打开 cc.txt的修改会消失
      用git merge dev会合并工作成果

    git checkout -b dev 创建并切换分支
    git branch dev 创建新的分支
    git checkout dev 切换到分支
    git branch 查看分支
    git branch -d dev 删除分支
    git merge  合并某分支到当前分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    当git无法自动合并分支时,必须首先解决冲突,解决冲突后再提交合并完成,解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容。
    git log --graph能看到分支合并图

    1. 远程仓库: 在本地创建了Git仓库后,可以在Github上创建一个Git仓库 让两个仓库进行远程同步。
      在这里插入图片描述
      在这里插入图片描述
      从现在起,只要本地作了提交,就可以通过命令:
      git push origin master把本地 master 分支的最新修改推送至 GitHub。
    2. 推送到远程仓库git push 将当前分支的提交推送到远程仓库。
    3. 从远程仓库克隆:从零开发 最好的方式是先创建远程库 再从远程库克隆在这里插入图片描述在这里插入图片描述
      从远程仓库抓取git fetch 将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
      git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作 必须注意 git fetch 命令只会将数据下载到本地仓库——它并不会自动合并或修改当前的工作
      推送到远程仓库:git push 在这里插入图片描述

    在这里插入图片描述

    查看远程仓库的更多信息:git remote show
    修改远程仓库的简写名:git remote rename
    删除远程仓库:git remote rm

    git remote -v 查看远程仓库的简写名
    
    • 1

    在这里插入图片描述

    1. 撤销操作git commit --amend修改最近一次提交记录的信息
     `git commit -m 'initial commit'
    git add forgotten_file
    git commit --amend
    
    • 1
    • 2
    • 3
    1. 版本回退:

    Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交 1094adb… ,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^
    比较容易数不过来,所以写成 HEAD~100。
    在这里插入图片描述
    git reset --hard 1094a 回退到某个版本 根据版本号
    git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区
    在这里插入图片描述
    用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

    在这里插入图片描述
    git add 命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行 git commit 就可以一次性把暂存区的所有修改提交到分支。
    12.修改管理
    要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit
    git checkout – test.txt 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

    补充学习:

  • 相关阅读:
    Linux——线程池
    某平台简单尝试一次密码逆向
    Sqoop (一) --------- Sqoop 介绍
    C# 实现websocket双向通信
    在 Android 中创建静态应用程序快捷方式
    <专利>机器人3D视觉快速定位抓取方法及系统
    基于智能合约艺术的艺术应用——Erc404创作联盟
    具有通配符?的模式匹配算法(BF)
    1.1 数据库系统概述
    LuatOS-SOC接口文档(air780E)-- ioqueue - io序列操作
  • 原文地址:https://blog.csdn.net/m0_74033724/article/details/132992516