git版本管理工具¶
🦒长颈鹿是无情的生物¶
目录
快速上手¶
下面将介绍你在使用git 80% 时间会使用到的内容
创建本地仓库¶
如果你为本地的一个项目创建管理仓库并且关联到github仓库。
为了数据安全,我们先创建一个新的项目文件吧!你可以按照下面的步骤:
首先,进入文件的根目录
# 在项目的根目录中
git init
这个时候你就拥有了一个空本地仓库, 如果将这个步骤类比照相来记忆,此时我们已经有了一个空的相册, 下一步,是选择你拍照的对象,将这些内容放入相机的镜头之中
当前项目是空的,先创建一个文件吧
Note
echo "😃" > haha_face.txt
添加文件
# 将当前目录所有文件添加到仓库
git add .
# 选择性添加某个文件
git add ./example/example.txt
Tip
大多数时候,我们只有少部分文件或文件夹不需要使用git管理,这个时候我们一般都会编写.gitignore文件放心使用git add .
,而不是多次添加指定文件
现在,你已经可以跟踪这个文件了,使用git status
你可以看到当前仓库的状态
ok,现在你已经完成了haha_face文件,就好像是相机对准一张笑脸并且拍好了照片,让我们把它洗出来放入相册吧
# -m 短参数 意思是massage 写你这次提交的信息 这会在将来某个时间帮助到你
git commit -m "add: haha_face"
现在使用git status
看看有什么不同
现在我心情不好了,不想看到任何一张笑脸
请你使用命令
echo "😭" > haha_face.txt ;
Danger
现在使用cat haha_face.txt
,你会发现笑脸不在了, 因为 >
是覆盖写入, 如果你不想之前的内容消失你需要使用 >>
追加写入
现在使用git status
你会看到现在已经修改的文件
# ⚠️注意 这种方式之适合已经被跟踪的文件
git commit -a -m "fix: i'm sad"
# 使用下面这种方式无论是未跟踪还是已跟踪的文件都会被添加
git add .
git commit -m "提交信息"
Note
如果你项目中的文件内容和更改是非常多的,git可以使用diff算法在每次更改中跟踪和记录仓库中所有文件的修改,也就是保存了你项目的不同版本但只使用极少的空间
现在已经有两个提交记录了,以后有更多的提交记录时,你可以移动HEAD回到任意一个历史上,在git 历史记录中,每个提交都可以看作是一个Node对象,你可以使用git log
查看这些历史,也可以在ide中使用插件。
❯ git log
commit 00befb3f060542789da83914013e25f28b927f2a (HEAD -> master
)
Author: disjfjdizmfnkf <3037650079@qq.com>
Date: Sun Oct 13 14:21:50 2024 +0800
fix: i'm sad
commit 4ac9c7a67b86dfba3befbe9b1330da4aff491d2b
Author: disjfjdizmfnkf <3037650079@qq.com>
Date: Sun Oct 13 14:21:09 2024 +0800
init commit
无论是哪种方式,你都可以看见这些Node的关键信息,其中sha值是使用每个节点独一无二的标识(例如上面的00befb3f060542789da83914013e25f28b927f2a),使用git checkout <哈希值/分支>
,可以一移动HEAD到某个节点或者分支
阶段一
看到这里,你已经学习了:
git init
: 在当前目录中创建一个空的本地仓库git add <文件或者目录>
: 将文件加入暂存区git commit -m "提交信息"
: 提交文件到本地仓库git status
: 查看暂存区的状态- 文件的三种状态
阶段练习¶
现在,你可以在这个网站中练习或者学习更多的git技巧了
创建远程仓库¶
登陆github之后,点击右上角的 "+" 按钮,选择 "New repository"(新建仓库)。
在创建仓库页面,输入以下信息:
- Repository name(仓库名称):输入你希望的仓库名称。
- Description(描述):可选项,输入仓库的简短描述。
- Public/Private(公开/私有):选择该仓库是公开还是私有。
- Initialize this repository with a README(用README初始化仓库):可以选择是否添加README文件。
- 完成后,点击 "Create repository"(创建仓库)按钮。
关联远程仓库¶
当你在github上创建一个仓库时,有如何关联本地和远程仓库的提示:
你完全可以直接按照提示操作,也可以看下面的分析
在已经创建的本地仓库中,使用以下命令将本地仓库与刚创建的远程仓库关联:
# 将 <URL> 替换为你在GitHub上创建的仓库的URL
git remote add origin <URL>
例如
git remote add origin https://github.com/username/repository.git
验证远程仓库是否关联成功:
git remote -v
origin https://github.com/username/repository.git (fetch)
origin https://github.com/username/repository.git (push)
现在你的本地仓库已经设置了远程仓库的地址
下面执行这段似乎没有什么意义的命令
git branch -M main
发生了什么?你的主分支已经从master变为main分支了,因为远程分支的默认主分支名就是main,为什么不是master?-- 据说是因为master有种族歧视的味道。。。
接下来,你可以将本地的提交推送到远程仓库:
git push -u origin master
-u 是 --set-upstream 的短命令,也就是关联你的本地分支(改名后的主分支main)和远程分支(origin仓库下的main分支), 这样之后你可以直接使用 git push
和 git pull
而不用每次都指定分支名了。
gitFlow(git的工作流)¶
GitFlow 是一种分支管理模型,旨在使 Git 工作流程更高效。它通过定义分支的使用和命名规则来简化开发流程,尤其适合大型项目。以下是 GitFlow 的基本概念和步骤:
分支类型¶
- 主分支 (master):始终保持可发布的状态。
- 开发分支 (develop):用于集成所有功能分支,进行测试和开发。
- 功能分支 (feature):从开发分支派生,用于开发新功能,完成后合并回开发分支。
- 发布分支 (release):从开发分支派生,准备发布新版本,修复bug,完成后合并到主分支和开发分支。
- 热修复分支 (hotfix):从主分支派生,用于快速修复生产环境中的问题,完成后合并到主分支和开发分支。
创建日期: 2024-09-06
作者: