Git入门到精通:30分钟掌握核心技巧

06-01 1574阅读

目录

一、基础理论片

Git简介

Git安装

Git仓库

Git基本命令用法

仓库别名

二、实操命令篇

远程分支

分支的新建和合并

实操演示

1 本地新建仓库

2 gitee新建仓库

3 建立关系

4 新建分支

5 开发新功能

6 推送新分支

7 合并新分支到主分支

三、可视化工具篇

Gitee仓库的使用

IDEA的git使用

IDEA与Gitee仓库

四、Git 安全与配置篇

SSH key 与访问控制

生成和配置 SSH key

如何设置 Git 仓库权限(特别是私有仓库)

.gitignore 和 .gitattributes

五、常见问题篇

如何解决冲突?

1 产生冲突的常见情况:

2 解决步骤:

上传文件过大导致提交失败?

如何回滚提交,回滚方式有哪些?

为什么不建议强制提交?

Rebase 与 Merge 的区别?

一、基础理论篇

Git简介

Git 是一种分布式版本控制系统,最初由 Linus Torvalds 开发,用于管理 Linux 内核代码。

与集中式版本控制(如 SVN)不同,Git 每个开发者都有完整代码仓库副本,可在本地完成大部分操作。

主要特点:

  • 分布式:支持离线操作。

  • 高效:提交、切换、合并等操作快速。

  • 安全:使用 SHA1 校验内容完整性。

  • 支持多种工作流:如 Git Flow、Feature Branch 等。

    什么是集中式版本控制:

    Git入门到精通:30分钟掌握核心技巧

    • 版本库是集中存放在中央服务器的

    • 而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活

    • 干完活了,再把自己的活推送给中央服务器

    • 中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆

      缺点:

      • 集中式版本控制系统最大的毛病就是必须联网才能工作

      • 如果在局域网内还好,带宽够大,速度够快

      • 可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,体验极其不好

        什么是分布式版本控制系统:

        Git入门到精通:30分钟掌握核心技巧

        • 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,就不需要联网了

        • Git 这种系统,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录

        • 那任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复, 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份

        • 它还以指定和若干不同的远端代码仓库进行交互,因此你就可以在同一个项目中,分别和不同工作小组的人相互协作,可以根据需要设定不同的协作流程

          Git安装

          Windows 安装

          • 下载地址:Git - Downloads

          • 安装步骤:一直默认下一步即可,建议安装 Git Bash 工具。

          • 验证是否安装成功:

            git --version #查看git版本

            输出以下内容即为安装成功:

            Git入门到精通:30分钟掌握核心技巧

            对于首次安装git环境的用户来说需要做以下配置:

            git config --global user.name "你的名字" # 配置git的用戶名
            git config --global user.email "你的邮箱" # 配置git的邮箱

            Git仓库

            1 什么是仓库?

            Git 仓库是用来记录代码历史版本的地方,分为:

            • 本地仓库(.git 文件夹)

            • 远程仓库(如 Gitee、GitHub)

              2 如何初始化git仓库

              git init # 初始化本地仓库

              Git入门到精通:30分钟掌握核心技巧

              执行完命令多了个.git文件(文件是隐藏的,需要打开隐藏可见),说明已经初始化好git的本地仓库

              结构图如下所示:

              MyProject/
              ├── .git/          ← Git 的核心目录
              ├── index.html
              └── style.css

              3 如何克隆远程仓库

              git clone 远程仓库的地址 # 这里可以克隆远程仓库的地址 例如gitee gitLab github等代码托管平台

              Git基本命令用法

              git status  # 查看当前状态
              git add  #文件名   暂存文件
              git commit -m "说明"  #提交到本地仓库
              git log 查看提交历史
              git diff    #查看改动内容
              git pull    #拉取远程更新
              git push    #推送本地提交

              以上的命令式git基本命令中最常用到的一些命令

              Git 工作区与版本控制结构图:

              工作区(Working Directory)
                  ↓ git add
              暂存区(Stage/Index)
                  ↓ git commit
              本地仓库(Local Repository)
                  ↓ git push
              远程仓库(Remote Repository)

              Git入门到精通:30分钟掌握核心技巧

              针对以上命令,我们可以用刚刚生成的git仓库来进行演练一下

              Git入门到精通:30分钟掌握核心技巧

              仓库别名

              仓库别名是为了简化远程地址的管理,尤其在多个远程仓库协同时非常有用

              1 添加远程仓库

              git remote add origin "远程仓库的地址url" # 这里可以是gitee gitLab等

              这里的origin是本地仓库,和远程仓库关联在一起,也称作远程的别名

              二、实操命令篇

              远程分支

              远程分支是对远程 Git 仓库中分支状态的引用,本地并不能直接修改它们。Git 允许你从远程仓库获取更新、创建追踪分支(tracking branch),并推送你的更改。

              概念描述
              origin默认的远程仓库名(可以自定义别名)。
              远程分支存储在远程仓库中的分支,不能直接检出修改,通常以 origin/branch 形式存在。
              追踪分支本地分支与远程分支关联,一般用于同步远程分支状态(如:main 跟踪 origin/main)。
              同步远程分支状态通过 git fetch、git pull 等命令获取最新状态。

              可通过一下命令查看远程分支和本地分支的关系

              git branch -r # 查看所有远程分支

              输出示例:

              origin/main
              origin/dev
              origin/feature/login

              其中origin为本地分支,main、dev、login均为远程分支

              分支的新建和合并

              #查看本地分支:
              git branch
              #查看远程分支:
              git branch -r
              #查看本地 + 远程所有分支:
              git branch -a
              #新建分支并且切换分支
              git branch feature/login
              git checkout feature/login
              #等价于:
              git checkout -b feature/login

              实操演示

              接下来我将从新建远程仓库和本地仓库来进行代码的分支。推送的演示,远程仓库我将采用gitee 代码采用一个前端的工程项目

              1 本地新建仓库

              我已经新建了一些文件,并且初始化了仓库

              Git入门到精通:30分钟掌握核心技巧

              2 gitee新建仓库

              已经在git上新建了远程仓库,接下来跟着上面的提示绑定关系

              Git入门到精通:30分钟掌握核心技巧

              3 建立关系

              通过下面的命令我们将我们的工程第一添加到gitee上面去

              Git入门到精通:30分钟掌握核心技巧

              Git入门到精通:30分钟掌握核心技巧

              4 新建分支

              这里我们新建分支并且切换到了新建的分支上去

              Git入门到精通:30分钟掌握核心技巧

              5 开发新功能

              这里模拟开发新功能,就是将代码修改一下,可以新建一个login.html文件

              Git入门到精通:30分钟掌握核心技巧

              6 推送新分支

              这里我进行了新功能的分支添加

              Git入门到精通:30分钟掌握核心技巧

              我们可以看见远程仓库有新的分支上面有登录模块的新功能

              Git入门到精通:30分钟掌握核心技巧

              7 合并新分支到主分支

              master分支上面是没有最新的代码的这里我们需要合并分支

              Git入门到精通:30分钟掌握核心技巧

              合并分支之后还需要我们去推送代码

              git checkout master #切换到master分支
              git merge feature/change #合并分支
              git push # 推送最新代码

              Git入门到精通:30分钟掌握核心技巧

              三、可视化工具篇

              Gitee仓库的使用

              上面已经向大家介绍了如何使用gitee仓库去新建一个远程仓库,接下来我们将从编程工具IDEA去教大家如何去使用可视化界面操作git

              IDEA的git使用

              我们使用IDEA去打开我们刚刚创建的git仓库

              Git入门到精通:30分钟掌握核心技巧

              这里我改变登录界面代码 用IDEA去推送代码

              Git入门到精通:30分钟掌握核心技巧

              可以看见推送成功

              Git入门到精通:30分钟掌握核心技巧

              接下来我们将推送的代码合并到feature/change上面去

              Git入门到精通:30分钟掌握核心技巧

              IDEA与Gitee仓库

              JetBrains 出品的 IDEA(IntelliJ IDEA) 是一款功能强大的 Java 集成开发环境,不仅支持丰富的编程功能,还内置了对 Git 版本控制系统 的深度集成,极大地方便了开发者的日常协作与代码管理工作。

              IDEA 与 Gitee 仓库配合使用,

              四、Git 安全与配置篇

              SSH key 与访问控制

              Git 支持两种方式访问远程仓库:HTTPS 和 SSH。

              • HTTPS:每次操作都需要输入用户名和密码(可以配合 Token 简化)。

              • SSH:使用密钥对加密认证,更安全便捷,是企业和团队首选。

                优点:

                • 避免频繁输入账号密码;

                • 安全性更高(基于公钥加密);

                • 适合自动化部署和多设备操作。

                  生成和配置 SSH key

                  在gitee仓库的页面选择ssh克隆地址,选择生成RSA密钥 确保C盘下面有.ssh文件 没有可以新建一个

                  Git入门到精通:30分钟掌握核心技巧

                  Git入门到精通:30分钟掌握核心技巧

                  Git入门到精通:30分钟掌握核心技巧

                  输出以下内容就是配置成功

                  Git入门到精通:30分钟掌握核心技巧

                  如何设置 Git 仓库权限(特别是私有仓库)

                  创建私有仓库

                  • 在 Gitee 上新建仓库时选择 “私有”;

                  • 私有仓库默认仅创建者可访问。

                    添加协作者权限

                    • 打开你的仓库 → 设置 → 成员管理;

                    • 邀请他人加入,分配权限(只读、写入、管理员)。

                      .gitignore 和 .gitattributes

                      .gitignore:忽略哪些文件不提交

                      • 作用:告诉 Git 哪些文件不需要纳入版本控制;

                      • 常用于:临时文件、日志文件、编译产物、操作系统自动生成文件等。

                        # 忽略编译产物
                        *.class
                        *.exe
                        *.jar
                        ​
                        # 忽略 node_modules 目录
                        node_modules/
                        ​
                        # 忽略日志文件
                        *.log
                        ​
                        # 忽略 IDE 配置
                        .idea/
                        .vscode/

                        五、常见问题篇

                        如何解决冲突?

                        冲突是指在多个分支合并时,Git 无法自动决定哪个版本应该保留。

                        1 产生冲突的常见情况:
                        • 两个分支修改了同一文件的同一行内容;

                        • 一个分支删除了某文件,另一个分支却修改了该文件。

                          2 解决步骤:
                          1. 执行合并操作(例如:)

                            git merge feature/login #合并修改了的分支
                          2. 出现冲突时 Git 会提示哪些文件冲突。

                          3. 打开冲突文件,查看冲突标识:

                            text复制编辑> feature/login
                          4. 手动选择保留哪一部分内容,然后删除冲突标记。

                          5. 标记冲突已解决,提交即可:

                            git add .
                            git commit -m "解决冲突"

                          接下来我将从用刚才上面展示的项目去模拟冲突,接下来我将用IDEA去操作

                          1 在master分支修改login.html文件并且提交

                          Git入门到精通:30分钟掌握核心技巧

                          2 在feature/change分支修改login.html文件并且提交

                          Git入门到精通:30分钟掌握核心技巧

                          3 尝试合并分支

                          Git入门到精通:30分钟掌握核心技巧

                          上传文件过大导致提交失败?

                          git一般默认不提交较大的文件(最大100M),如果需要可以尝试分阶段提交,也可以在配置文件中去修改参数、在隐藏的.git文件中config文件修改参数即可

                          Git入门到精通:30分钟掌握核心技巧

                          如何回滚提交,回滚方式有哪些?

                          Git 提供多个回滚手段,视场景而定:

                          命令用途是否会改历史提交
                          git reset重置到某个提交点是(慎用)
                          git revert撤销某次提交,生成一个新的“反向提交”否(推荐)
                          git checkout -- 文件名撤销工作区的修改
                          git restore新版本替代了 checkout 的功能

                          例子:

                          • 回滚到上一次提交(保留工作目录):

                            git reset --soft HEAD~1
                          • 回滚某次提交(保留记录):

                            git revert 

                            Git入门到精通:30分钟掌握核心技巧

                            使用以下命令可以回滚提交并且撤销commit和add 保留工作区的内容

                            git reset --mixed HEAD~1

                            Git入门到精通:30分钟掌握核心技巧

                            关于 git revert:

                            我们不小心提交了“增加登录功能”,现在想撤销该提交的影响,但不想破坏提交历史(比如已经 push 到远程)。

                            git revert c7d23bb

                            Git入门到精通:30分钟掌握核心技巧

                            Git入门到精通:30分钟掌握核心技巧

                            为什么不建议强制提交?

                            风险:

                            • git push -f(强制推送)会覆盖远程分支历史,破坏团队协作;

                            • 其他成员无法拉取或丢失历史记录;

                            • 容易导致不可恢复的数据丢失。

                              建议:

                              • 在多人协作项目中,不要轻易使用 -f,除非全员知情或在 feature 分支上开发。

                              • 如果需要清理历史,使用 rebase 并确认只有你使用该分支时才推送。

                                Rebase 与 Merge 的区别?

                                特点MergeRebase
                                定义将两个分支的历史合并,产生一个新的“合并提交”(merge commit)。把一个分支的提交“移动”到另一个分支的最新提交之后,重写提交历史。
                                提交历史保留了两个分支的完整历史,会出现分叉和合并节点。会生成一条线性的提交历史,看起来更“干净”。
                                合并过程创建一个新的合并提交,把两个分支的改动合并起来。将目标分支的最新提交“放到前面”,再依次应用当前分支的提交。
                                冲突处理冲突在合并提交时处理一次。冲突可能在每个提交应用时都要处理。
                                是否改写历史不改写已有提交历史。改写提交历史(对公共分支使用需谨慎)。
                                适用场景适合保留分支的所有合并历史,适合多人协作时使用。适合想让提交历史更清晰,或者需要整理提交记录时使用。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码