0%

Git快速入门篇

最近在某互联网公司实习,日常工作经常会使用到 Git,因为团队协作离不开Git,所以对于新人来说,我们需要对 Git 的基本操作非常熟悉,并且对其基本原理有一定的把握。本章将主要介绍 Git 的基本概念和操作,在之后的章节中我们也会对 GitLab 的配置做详细的介绍,因为公司团队协作用的主要就是 GitLab。

Git快速入门篇

1. Git基础

Git是一款分布式版本控制工具,常用于管理软件代码版本。

1.2 Git文件的状态

Git

未加入Git 工作区Working Directory 暂存区Staging Area 本地仓库Repository
未跟踪或者被.gitignore忽略的文件 修改过的且被Tracked的文件 修改过的文件在 git add 之后会暂存到暂存区。暂存区的文件会形成快照,为后面提交做准备。 暂存区的文件在 git commit 之后会保存到本地仓库,并形成 commit 信息,包括:完整快照、时间、提交人信息、log等。
未跟踪的文件通常显示为红色 工作区的文件通常显示为红色 暂存区的文件通常显示为绿色
Untracked(未跟踪) Modified(已修改) Staged(已暂存) Committed(已提交)

1.3 本地仓库和远程仓库

Git1

1.4 分支Branch

分支是 Git 中最重要的概念,通常每个仓库都有一个 master 分支。

  • 分支可以让工作并行,不同分支的工作不会相互影响
  • 两个分支合并时可能会出现冲突,解决冲突之后才能完成合并

2. Git常用命令

2.1 Create repositories

  • git init

    Turn an existing directory into a git repository

    将当前的文件夹初始化为 git 本地仓库

  • git clone

    Clone a repository that exists on GitHub, including all of the files, branches, and commits

    将 GitHub 上的仓库拷贝到本地

2.2 .gitignore

The .gitignore file are used to exclude files from being tracked with Git.

gitignore 文件用来设置一些文件不被 Git 所管理。

2.3 Branches

CMD Function
git branch [branch-name] 新建分支
git checkout [branch-name] 切换到指定分支
git merge [branch-name] 合并指定分支到当前分支
git branch -d [branch-name] 删除指定分支

2.4 Snchronize changes

CMD Function
git fetch 从远程分支下载所有历史记录
git merge 合并远程分支到当前本地分支
git push 上传本地分支的 commits 到 GitHub
git pull 更新本地工作分支,使其与远程相应的分支同步,它是 git fetch 和 git merge 的结合

3. Git Workflow

经典分支模型:

分支 说明 命名规范 checkout from merge to
master 主干,最稳定的分支,可随时用作release发版,只能从其他分支合入,不能在上面做任何提交
develop 开发主干,是稳定的最新的分支。主要合并其他的分支如 feature 分支和 bugfix 分支
feature 新功能分支 feature/* develop develop
release 发布分支,对应一次新版本的发布,只接受 bugfix release/* develop develop, master
hotfix 紧急修复分支,生产环境中发现的紧急 bug 的修复 hotfix/* master, release develop, master

GitWorkFlow

4. 经典场景

4.1 多人协作

基本步骤如下:

  1. 克隆仓库
  2. 如果远程分支被其他人的分支合并更新,则需要拉取远程分支,合并更新当前的本地分支
  3. 推送更新

4.2 回滚

命令 方法 描述
git reset [hashValue] 恢复到某一次提交 将该次提交之后的所有提交都丢弃(HEAD 指针会移动到指定的那一次提交,并丢弃之后的提交)
git revert [hashValue] 恢复某一次提交 将某一次提交的修改恢复回去(HEAD 指针会在当前提交之后创建一个新的提交并移动到该位置,该新的提交的状态与指定的某一次的提交的状态一致)
git reflog 与 git reset 结合使用 用 git reflog 查看所有 git 相关操作的记录,包括对应的 Hash 值,然后搭配 git reset 可以恢复到任意位置

4.3 重写历史

命令 描述
git commit –amend 修改最后一次提交
git rebase -i 1. 修改多个提交信息 2. 重新排序提交 3. 压缩提交 4. 拆分提交

Git 相关资料