1. 前言
本文主要分为两部分,前一部分是本人学习和工作中使用 Git 的总结经验,后半部分是总结的 Git & GitHub 的学习指南。如果想直接体系学习,可以直接按照指南路线学习。如果你有经验,可以看看第一部分,看看我工作和平时怎么使用 Git 的,看完后如果你有更好的解决方案,或者建议,欢迎评论区交流学习。
2. Git 个人使用总结
2.1 git 简介及工作流程
Git 是一个开源的基于快照流的分布式版本控制系统,旨在快速高效地处理从小型项目到大型项目的所有项目。
Git 有三种状态:
已修改:modified,表示修改了文件,但还没保存到数据库中。
已暂存:staged,表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交:committed,表示数据已经安全地保存在本地数据库中。
三种状态分别对应 Git 项目的三个阶段:
工作区:对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区:是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。
Git 目录:是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。
基本的 Git 工作流程如下:
- 在工作区中修改文件。
- 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
注:图片来源于1.3 起步 - Git 是什么?
更好的理解 Git 的三个区,可以参考文章:Git 工具 - 重置揭密 一文前半部分。
2.2 命令自助查询
首先,要学会自救,忘记命令的用法作用,这很正常,掌握以下命令,我们就不用去刻意记忆 git 命令用法,忘记了,查一下就行。
-
git help <verb>:获取命令的作用和使用完整说明,如:git help init。 -
git <verb> --help:同git help <verb>。如:git init --help。 -
man git-<verb>:Linux 下可用,同git help <verb>,如man git-init。
如果你已经熟悉了 git 命令的作用,只是忘记了它可以使用哪些参数,那么可以使用以下命令,快速查询某个命令能使用的参数及其作用。
git <verb> -h:列出指定 git 命令的可用参数,如:git init -h。
2.3 git init & git clone
掌握自助查询后,我们就可以开始创建 git 仓库或者拉取 git 仓库。
git init:创建一个空的 git 仓库或者重新初始化一个 git 仓库。一般使用在自己本地新建一个项目,使用 git 进行管理的时候。
如:git init ,会在当前目录创建一个 .git 文件夹,这个里面就存储 git 管理当前项目的所有文件。想了解 Git 的原理可以参看Git 内部原理。
git clone:克隆一个仓库到本地当前目录。一般,工作中我们刚进公司,都需要先 clone 一堆仓库到本地,再进行需求开发。或者你发现一个好的开源项目,也可以 clone 到本地,更方便地阅读源码。如:git clone git@github.com:git/git.git。
2.4 git add & git commit
我们已经创建好一个 git 仓库,现在我们修改了一些文件,接下来我们需要将修改的文件通过 git 管理起来。
git add:将文件加到暂存区(索引)。比如:git add * 将所有文件添加到暂存区。
git commit:将暂存区修改提交到版本库。如:git commit -m "fix bug001"。如果你本次提交和上次提交的信息一致的话, 可以使用git commit --amend直接将本次修改内容,合并到上一次提交中。避免产生冗余的提交信息。
说明:一般不同公司或者开源项目对于提交格式和信息会有约束,方便他人了解你本次修改的原因。
在 Windows 下开发的话,我推荐 TortoiseGit 工具,TortoiseGit 是Git版本控制系统的免费开源客户端,可以方便的进行 Git 操作。
根据自己习惯和开发环境选择最适合自己的工具即可,目的都是为了提升开发效率。
2.5 git push
现在我们已经实现了某个功能特性,需要将本地的代码推送到自己的远程仓库,这时我们就需要使用 git push
git push:使用本地的git项目更新远程仓库,也就是将本地修改推送到远程仓库。如:git push --all:将本地所有修改推送到远程仓库。
如果需要强制推送到远程仓库,或者直接使用本地仓库覆盖远程仓库,可以用:git push -f。注意这是一个危险操作,操作前,请确认你正在做什么。
2.6 分支及其操作
分支是 Git 中的一个重要特性,它非常好地解决了开发过程中开发迭代中,软件功能稳定性问题。通常,我们有3种分支。
-
稳定分支:功能稳定,一般用于构建版本,发布上网。
-
开发分支:功能相对不稳定,一般用于开发新特性,等新特性稳定后,会阶段性的将新特性回合到稳定分支。
-
bug修复分支:解决稳定分支发现的bug,需要同时合入稳定分支和开发分支。
分支管理是一门艺术,分支越多,维护成本会越高,这里就不展开了。
下面主要介绍下分支的基本操作:查看、创建、切换、删除。
2.6.1 查看分支
git branch:查看分支。
[root@TanjyAliyun demo]# git branch
dev
* master
* 标识当前 HEAD 指针指向的分支,也就是当前所在的本地分支。在 Git 中,HEAD是一个指针,指向当前所在的本地分支,可以将 HEAD 想象为当前分支的别名。
2.6.2 创建分支
git branch <newbranchname>:基于 HEAD 创建 <newbranchname> 新分支,但不会自动切换到新分支。如:git branch

本文分享了作者在使用Git进行版本控制和个人工作流的经验,包括Git的基本操作如init、clone、add、commit、push,以及分支管理、冲突解决、配置设置等。同时,介绍了GitHub的基础和进阶操作,如仓库管理、代码拉取与合并、协作流程等,提供了一条系统学习Git和GitHub的路径。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wigfgJlN-1659918359821)(Git工作目录、暂存区域以及Git仓库.png)]](https://i-blog.csdnimg.cn/blog_migrate/ad464453ca65dce44b6bda88934e2495.png)
最低0.47元/天 解锁文章
944

被折叠的 条评论
为什么被折叠?



