Git 经验总结及 Git & GitHub 学习指南

本文分享了作者在使用Git进行版本控制和个人工作流的经验,包括Git的基本操作如init、clone、add、commit、push,以及分支管理、冲突解决、配置设置等。同时,介绍了GitHub的基础和进阶操作,如仓库管理、代码拉取与合并、协作流程等,提供了一条系统学习Git和GitHub的路径。

1. 前言

本文主要分为两部分,前一部分是本人学习和工作中使用 Git 的总结经验,后半部分是总结的 Git & GitHub 的学习指南。如果想直接体系学习,可以直接按照指南路线学习。如果你有经验,可以看看第一部分,看看我工作和平时怎么使用 Git 的,看完后如果你有更好的解决方案,或者建议,欢迎评论区交流学习。

2. Git 个人使用总结

2.1 git 简介及工作流程

Git 是一个开源的基于快照流分布式版本控制系统,旨在快速高效地处理从小型项目到大型项目的所有项目。

Git 有三种状态:

已修改:modified,表示修改了文件,但还没保存到数据库中。

已暂存:staged,表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

已提交:committed,表示数据已经安全地保存在本地数据库中。

三种状态分别对应 Git 项目的三个阶段:

工作区:对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区:是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。

Git 目录:是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

基本的 Git 工作流程如下:

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wigfgJlN-1659918359821)(Git工作目录、暂存区域以及Git仓库.png)]

注:图片来源于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 操作。

根据自己习惯和开发环境选择最适合自己的工具即可,目的都是为了提升开发效率。

TortoiseGit 使用文档

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值