首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Git详解

Git详解

作者头像
景画
发布2025-12-19 13:40:51
发布2025-12-19 13:40:51
2330
举报

一. Git基础操作

Git是当下最流行的版本控制器,可以控制电脑上所有格式的文档,可回退之前版本 0.查看Linux版本 cat /etc/os-release 1.查看git版本 git --version 2.卸载git Red Hat / CentOS 7-/ 老版 Fedorasudo yum remove git -y ubuntu环境下 sudo apt-get remove git -y 3.安装git Red Hat / CentOS 7-/ 老版 Fedorasudo yum install git -y ubuntu环境下sudo apt-get install git -y 4.创建本地仓库 git init 5.查看隐藏目录 la 6.查看.git中有什么文件 tree .git/ 7.配置本地仓库 (1)配置用户名 git config user,name "---" 或者生效于当前机器所有本地仓库 git config --global user.name "---" (2)配置邮件地址 git config user.email "---" 或者生效于当前机器所有本地仓库 git config --global user.email"---" (3)查看配置 git config -l (4)重置配置 重置用户名 git config --unset user.name 或者重置当前机器全局本地仓库配置git config --global --unset user.name 重置邮件git config --unset user.email 或者重置当前机器全局本地仓库配置git config --global --unset user.email

不可在.git(版本仓库)文件进行任何修改 与.git同一文件夹下, 被称为工作区 HEAD指针指向master add之后文件会先放到index缓存区 objects对象库储存修改后的文件的新的.git对象, 即工作区内容修改后, 会自动往对象库中写入新的.git对象

1.添加文件 git add 文件名(可以添加多个文件) 或者 git add . 提交所有文件 2.提交文件 git commit -m "提交的细节" 3.打印提交记录 git log 4.查看master最新一次提交的commit-id cat .git/refs/heads/master 5.通过commit-id来查看提交细节 git cat-file -p 提交ID 找到tree对应的ID后,再次git cat-file -p tree的ID,再次git cat-file -p 你想要查看的blob的ID 6. 查看当前仓库的修改状态 git status 7.查看具体修改了哪些内容 git diff 文件名

8.以简洁优美形式来展现自己的修改操作 git log --pretty=oneline

1.版本回退 (1)git reset [--soft | --minxed | --hard] commit-ID –soft: 只回退版本区内容 –mixed: 回退版本区与暂存区的内容(git中的默认级别) –hard: 回退所有区域内容(慎用)

(2)通过git log --pretty=oneline 指令来查看你的commit-ID, 然后进行回退

在这里插入图片描述
在这里插入图片描述

(3)如果不小心关闭了云服务器, 可以通过指令git reflog 查看历史commit-ID

在这里插入图片描述
在这里插入图片描述

(4)每次回退只是修改master指针的指向

在这里插入图片描述
在这里插入图片描述

1.撤销修改 (1)工作区撤销修改 git checkout -- 文件名 回到最近一次add/commit状态(用于工作区的撤销修改操作)

在这里插入图片描述
在这里插入图片描述

(2) 暂存区撤销修改 当你add添加了修改文件到暂存区的时候, 还没有提交到版本区, 那么使用版本回退命令, 把工作区与暂存区与版本区的内容保持一致 git reset --hard HEAD(如果回到上一个版本HEAD^ 以此类推加^) 文件名 (3) 版本区回退(前提是没有进行push操作推送到远程仓库) git reset --hard HEAD^* (回到上一个版本) 2.删除文件 git rm 文件名 删除工作区文件并且add到暂存区, 我们只需commit到版本区即可

在这里插入图片描述
在这里插入图片描述

二. 分支管理

1.查看分支 git branch 2.创建分支 git branch 分支名称 3.切换分支 git checkout 分支名称 既创建又选择分支快捷方式: git checkout -b dev

在这里插入图片描述
在这里插入图片描述

4.在分支上修改后add再commit 5.切换成主分支master git checkout master 6.合并分支 git merge 分支名称

在这里插入图片描述
在这里插入图片描述

7.删除分支 git branch -d 分支名称 要注意, 必须在其他分支上才能删除当前分支, 且merge合并后才能删除 8.合并冲突 在分支dev修改提交后, 又在master进行修改提交, 这时如果合并Git不能分辨我们要选择哪个修改后的结果, 于是就会产生合并冲突, 这时就需要我们进行手动处理冲突

在这里插入图片描述
在这里插入图片描述

9.查看分支合并情况(图示化) git log --graph --abbrev-commit

在这里插入图片描述
在这里插入图片描述

10.合并模式 (1)First-forword 模式: 直接使用命令 git merge 分支名称, ff

在这里插入图片描述
在这里插入图片描述

(2)no-ff模式, 合并时使用命令git merge --no-ff -m "自定义名称" 分支名称, 而我们之前发生合并冲突时使用的就是这种模式

在这里插入图片描述
在这里插入图片描述

11.bug分支 已知master主分支上运行的程序必须是最稳定最优化的版本, 但实际开发中我们可能会遇到master主分支上也会出现bug的情况, 这时我们不应该直接在master直接修复bug, 因为有可能越修复程序越崩溃, 因此我们需要在当前主分支上建一个bug分支, 专门用来修复bug, 修复好后可以合并到主分支, 而这时可能会有其他同事2在bug分支并入master分支之前另建了一个分支用来增加新功能, 当同事2写完后并入master分支时就会产生合并冲突, 解决合并冲突可以在master并入然后手动解决冲突, 但最好的方式就是master并入到dev上, 在dev修改没有问题后再次并入到master中

在这里插入图片描述
在这里插入图片描述

12.强制删除 在之前我们合并分支时候, 可以在另一个分支删除当前已经合并的分支, 但是当我们在分支开发过程中, 写完commit之后还没有merge时, 突然不想要这个分支的话, 用git branch -d 分支名称 时候删除失败的

在这里插入图片描述
在这里插入图片描述

我们需要使用命令git branch -D 分支名称 强制删除

三. 远程仓库

1.gitee远程仓库中的Issues, 作用是当遇见bug时, 可以通过该按钮来指定人员处理这个bug, 可以设置时间, 负责人, 优先级等等…

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.gitee的Pull Request这个功能是在开发工作中, 当我们新写一个功能时, 不可以直接并入主分支master, 需要提交申请, 负责人同意后才可以并入master 3. 克隆远程仓库 找到HTTPS, 点击复制, 然后在服务器输入命令 git clone HTTPS地址 进行克隆仓库(克隆远程仓库不能在本地仓库的任意一个文件夹下)

在这里插入图片描述
在这里插入图片描述

4.查看远程仓库默认名字 git remote 后者查看更详细信息 git remote -v 可以看到我们当前有两个权限 fetch拉取权限| push推送权限

在这里插入图片描述
在这里插入图片描述

5.使用SSH克隆远程仓库 在xshell查看 .ssh/是否有 id_rsa 和 id_rsa.pub这两个文件 没有那么在主页面输入命令创建服务器公钥私钥ssh-keygen -t rsa -C "gitee邮箱" 然后到gitee设置里面添加公钥== id_rsa.pub 中的密钥

在这里插入图片描述
在这里插入图片描述

在用户主目录克隆仓库 git clone SSH地址 6.本地仓库修改推送到远程仓库 git push origin 本地分支名称:远程分支名称 当本地分支与要推送的远程分支名字一致时, 可以只写一个名字, 但要注意推送之前要先commit提交 7.拉取远程仓库 当远程仓库的修改内容比本地仓库新时, 第一次拉取使用git fetch origin mastergit reset --hard origin/master, 之后拉取使用git pull origin 远程分支:本地分支

1.忽略文件 修改 .gitignore文件 vim .ignore, *.so表示所有后缀为.so文件都被忽略, !b.so表示, 忽略单个b.so文件

在这里插入图片描述
在这里插入图片描述

2.有一些文件被忽略时, 但你需要提交该文件, 也可以使用强制添加git add -f 文件名 3.当我们的.gitignore查看文件过多时, 我们不能分清什么时候忽略的该文件, 可以使用命令 git check-ignore -v 文件名

在这里插入图片描述
在这里插入图片描述

4.配置命令别名 一些长命令我们写起来很麻烦, 所以我们可以设置别名, 例如打印漂亮缩写的commit提交日志是命令git log --pretty=oneline --abbrev-commit我们可以设置精简的别名 git config --global alias.lpa 'log --pretty=oneline --abbrev-commit' 表示设置全局别名, alias.别名 ‘要起别名的命令’

四. 标签

1.创建标签, 默认是给最近一次提交打上标签 git tag 自定义标签名

在这里插入图片描述
在这里插入图片描述

2.给历史提交打上标签, 并加上详细表述 先查看历史标签git log --pretty=oneline --abbrev-commit git tag -a v0.9 -m "自定义描述" 历史commit-ID

在这里插入图片描述
在这里插入图片描述

3.查看标签 gti tag 4.查看标签详细信息 git show 标签名称

在这里插入图片描述
在这里插入图片描述

5.删除标签 git tag -d 标签名称 6.推送标签 git push origin 标签名 后者一次推送所有标签 git push origin --tags 7.删除标签 在本地仓库删除后, 推送到远程仓库, git push origin :标签

在这里插入图片描述
在这里插入图片描述

五. 同一分支多人合作(远程仓库创建分支)

1.查看远程仓库分支 git branch -r 2.查看所有分支 git branch -a 3.本地创建分支并与远程仓库分支建立联系 git checkout -b 本地创建的分支origin/远程分支

在这里插入图片描述
在这里插入图片描述

4.查看本地与远程分支连接情况 git branch -vv

在这里插入图片描述
在这里插入图片描述

5.与远程仓库建立连接 git branch --set-upstream-to=origin/远程分支 本地分支 6.本地修改后提交并推送, powershell修改后再提交推送时, 会产生冲突, 这时就需要先拉取文件后解决冲突再次提交推送 7.推送流程 先在本地master和dev分支pull一下, 获取到当前远程仓库最新代码, 然后在本地master合并到dev, 如果有冲突解决合并冲突, 解决完冲突后然后dev合并到master上, 最后master推送给远程仓库的origin/master中

在这里插入图片描述
在这里插入图片描述

六. 不同分支多人合作(本地仓库创建分支)

1.在master上先pull拉取最新的数据后, 再在本地master创建分支, 创建文件进行开发后, 采用命令git push origin 本地分支名称, 远程仓库会自动创建分支 2.开发者1 与 开发者2 开发新功能时, 分别在不同分支上进行开发, 提交的时候不会产生冲突 3.如果开发者2生病, 开发者1代替开发者2继续开发: 先拉取分支git pull

4.开发者1开发一半后提交 5.开发者2病好了, 然后继续开发, 需要先绑定远程仓库分支2, 然后拉取最新信息, 最后开发完成后提交推送该分支 6.合并仓库先拉取master分支内容, 然后切换到feature-1分支, 将master合并到该分支上, 有冲突解决冲突后, push该feature-1分支, 最后在远程仓库通过PR进行合并 7.删除已经在远程仓库删除的分支打印的日志 git remote prune origin

七. Git Flow分支模型

1.master分支只读确唯一的分支, 一般由release分支合并, 在master上的推送都需要打上标签tag做记录, 作为主分支不允许直接在master分支上修改代码, 不可被删除 2.develop分支, 为开发分支, 基于master主分支创建的唯一且只读分支, 始终保持最新和bug修复状态, 由feature分支合并 3.feature分支 作为新功能开发分支, 以develop分支为基准创建的, 命名格式为feature/user_createtime_feature, 开发完成后需要合并到develop分支, 上线发布后需要删除 4.release分支, 预发布分支, 本次上线的所有feature合并到develop创建, 可部署到预发布集群, 命名格式:release/version_publishtime, 测试出bug的话, 回归验证develop分支是都也有该问题, 上线后可删除 5.hotfix分支, 补丁分支后bug修复分支, 基于master分支创建, 修复完成后合并到master和develop分支上, 并推送远程, 一旦上线后就删除

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. Git基础操作
  • 二. 分支管理
  • 三. 远程仓库
  • 四. 标签
  • 五. 同一分支多人合作(远程仓库创建分支)
  • 六. 不同分支多人合作(本地仓库创建分支)
  • 七. Git Flow分支模型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档