git 新手指南,五分钟上手!(图解)

简介: git 新手五分钟上手!


目录

一、Git 工作流程

二、Git 工作区、暂存区和版本库

基本概念

三、Git 的基本操作

创建仓库命令

提交与修改

提交日志

远程操作

四、Git 分支管理

五、Git 查看提交历史


一、Git 工作流程

基本流程如下

    • 克隆 Git 资源作为工作流程。
    • 在克隆的资源上添加或修改文件。
    • 多人修改时,可以更新资源
    • 提交前查看历史修改记录
    • 提交修改
    • 提交完成后,后续发现错误,修改后再提交

    image.gif


    二、Git 工作区、暂存区和版本库

    基本概念

      • 工作区:就是你在本地电脑能看到的目录。
      • 暂存区:一般存放在 .git 目录下的 index 文件(.git / index)中,所有也被叫做索引。
      • 版本库:工作区有一个隐藏目录 .git, 这个不算工作区,而是 Git 的版本库。

      image.gif


        • 图中左侧为工作区,右侧为版本库,版本库中有区域暂存区,标记master的是master分支所代表的目录树。
        • 图中的这个HEAD 实践是一个指向master分支的一个游标,图中出现head的地方可以用master替换。
        • 图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。
        • 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
        • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
        • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
        • 当执行 git rm --cached <file> 命令时,会直接从暂存区删除文件,工作区则不做出改变。
        • 当执行 git checkout . 或者 git checkout -- <file> 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
        • 当执行 git checkout HEAD . 或者 git checkout HEAD <file> 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

        三、Git 的基本操作

        本文章只介绍常见的 Git 的命令。

        Git 完整命令手册地址: Git - Reference

        image.gif

        创建仓库命令

        命令 说明

        git init

        初始化仓库。
        git clone

        拷贝一份远程仓库,也就是下载一个项目。

        提交与修改

        命令 说明

         git add

        从本地添加文件暂存区。
        git status 查看仓库当前状态,显示变更的文件。
        git diff 比较暂存区和工作区的差异。
        git commit 提交暂存区到本地仓库。
        git reset 回退版本(我用的比较少)。
        git rm 删除工作区文件。
        git mv 移动或重命名工作区文件。

        提交日志

        命令 说明
        git log 查看历史提交记录。
        git blame <file> 以列表形式查看指定文件的历史修改记录

        远程操作

        命令 说明
        git remote 远程仓库操作。
        git fetch 从远程获取代码库。
        git pull 下载远程代码并合并。
        git push 上传远程代码并合并。

        四、Git 分支管理

        使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

        有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。

        作者理解:

               在一个团队中,每个人负责的板块不同,所写的代码风格不同,实现的代码依赖不同,但是在master上,大家都功能都是相辅相成的,但是不能直接上传到master上(你不能把你的测试代码上传,有可能会引起其他功能出问题。)最好是每个人都在自己的分支上开发自己的功能实现,测试完毕后,在合并到master上。

        命令 说明
        git branch (branchname) 创建分支
        git checkout (branchname)

        切换分支命令

        当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

        git merge 合并分支命令
        git branch

        列出分支

        (-b)(branchname)立即切换到该分支下

        (-d)(branchname)删除分支

        git merge 分支合并

        image.gif

        (这个不太好给演示,等后续附加图片)


        五、Git 查看提交历史

        命令 说明
        git log 查看历史提交记录。
        git blame <file> 以列表形式查看指定文件的历史修改记录。
        git log --author 查找指定用户的提交日志可以使用命令

        git log --since

        git log -- before

        例如:如果我要看 Git 项目中三周前且在四月十八日之后的所有提交
        git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

        image.gif

        也可以用 --oneline选项来查看简洁的历史记录版本。

        还有 --graph选项,是拓扑图哦。

        最后可以附加一个学习Git的的有趣网站,学会它就跟打游戏一样!觉得不错可以三连支持一波!Git 小游戏

        相关文章
        |
        3月前
        |
        开发工具 git
        Git版本控制工具合并分支merge命令操作流程
        通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
        443 15
        |
        6月前
        |
        安全 开发工具 git
        git的常用操作命令
        git的常用操作命令
        396 57
        |
        4月前
        |
        存储 缓存 开发工具
        Git stash命令的详细使用说明及案例分析。
        通过上述案例,我们看到stash命令能够在不丢失进度的情况下,帮助开发者临时切换开发上下文,这在处理多个任务或紧急bug时特别有用。正确使用Git stash可以大大提高开发的灵活性和效率。
        1376 0
        |
        7月前
        |
        存储 项目管理 开发工具
        Git常用命令及操作技巧
        以上是Git的常用命令及操作技巧,尽管看起来有些繁琐,但实际上只要花费一些时间进行实践,您将很快熟练掌握。随着使用熟练度的提高,您会发现Git对项目管理和协同工作的强大帮助。
        179 20
        |
        9月前
        |
        人工智能 前端开发 Java
        用git rebase命令合并开发阶段中多条commit提交记录
        通过 `git rebase`,可以合并多个提交记录,使开发历史更简洁清晰。操作分为 6 步:查看提交历史 (`git log --oneline`)、设置需合并的提交数 (`git rebase -i HEAD~N`)、修改动作标识为 `s`(squash)、保存退出编辑、调整提交信息、强制推送至远程仓库 (`git push -f`)。此方法适合清理本地无关提交,但若有团队协作或冲突风险,需谨慎使用以避免问题。
        1440 60
        |
        8月前
        |
        Linux 开发工具 git
        版本控制工具:Git的安装和基本命令使用指南。
        结束这段探险,掌握了Git你就等于掌握了一个宝藏,随时可以瞥见你的编程历程,轻松面对日后的挑战。Git,无疑是编程者的强大武器,开始你的Git探险之旅吧!
        297 28
        |
        开发工具 git
        git 常用命令
        这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
        |
        11月前
        |
        网络安全 开发工具 git
        mac git clone命令提示git@gitee.com: Permission denied (publickey).问题修复
        mac git clone命令拉取gitee上项目代码时提示密钥问题
        815 19
        |
        11月前
        |
        Java 网络安全 开发工具
        Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
        通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
        |
        12月前
        |
        机器学习/深度学习 Shell 网络安全
        【Git】Git 命令参考手册
        Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
        303 3