Git 快速上手

因为任职的公司在管理版本时,基本使用 Git 命令行方式,所以把 Git 简单重新整理下。

本文不会长篇大论的讲解 Git,因为在 Git 官网有非常详细的说明。只会基于作为小白式的开始,介绍项目中最常用的一些命令。能够使大家快速地上手使用。

当然除了使用命令行,还有一些 GUI 工具,比如 SourceTree、Github 等。不过在了解 Git 的工作原理后,可以在使用 GUI 时更加游刃有余。

如有错误,欢迎指正。如有建议,欢迎交流。

鉴于全文文章过长时,人的注意力难以集中。这里贴出 Git 介绍和 Git 摘要。

机智.jpg

把 “Git 如何使用” 放在了 Notion 原文 里。可能打开较慢,请耐心等待。
打工人.jpg

什么是 Git

Git 是一个免费开源的分布式版本控制系统。相比于其他的 VCS(Version Control Systems),其特点主要是分布式和强大的分支管理。

如何理解版本控制系统呢?


想必大家在写文档或毕业设计时,出于某种“以前的内容可能会再次用到”的想法,在修改文档时一般会拷贝一份之前的文档,然后再在拷贝的文档上进行删除、修改或其他编辑。然后在经历过多次修改之后,可能出现诸如“xxx初版”、“xxx改版”、“xxx最终版”、“xxx最终不改版”.....。

然后有一天,当你想看下某段文字在编辑之前的内容,结果却不记得是在哪个拷贝文件里。只能一头乱麻的一个个文件的翻看。

如果这时候,有一个系统能够自动帮你记录每次修改的修改记录。在需要时,只需要查看某次改动即可,这样是不是很方便?

Git 就是具有这种功能的系统.

什么是集中式、分布式呢?


集中式版本控制系统(CVCS:Centralized Version Control Systems)是在本地版本控制系统的基础上进一步发展。

集中式是把所有版本文件放在中央服务器的。当工作时,需要从服务器获取最新的版本,然后进行修改。修改之后,再提交到中央服务器。

比如 SVN 就是集中式的。


CVCS.png

集中式的相较于本地式的优点是,每个人都在某种程度上知道项目中其他人再做什么。管理员也可以精准地把控。

集中式的缺点是,需要联网才能工作,如果网速不能达到要求,那么整个协同的过程是非常让人不爽的。其次是风险太大,如果服务器出现了故障或者数据丢失,在没有备份的情况下,简直是灾难。

分布式版本控制系统(DVCS:Distributed Version Control Systems)不同于集中式版本控制系统。

分布式是没有“中央服务器”的,每个人电脑上的本地仓库都保存了整个项目的完整备份。


DVCS.png

分布式的优点,不需要联网工作,每个人的修改都可以先提交到本地仓库,然后在合适的时机再提交到远程仓库从而推送给其他人看到。不会出现数据丢失的情况。

先丢一份 Git 命令摘要,便于快速查找。 Notion 原文是对 Git 的简单介绍,便于帮助理解。

摘要

说明:以下所有涉及到 都是占位说明符,都可以整体替换对应的内容。比如:

git clone 
 
// 使用时
git clone [email protected]

安装在 macOS

  1. 通过安装 Xcode 安装

  2. 通过 Homebrew 安装

    $ brew install git
    
    
  3. 通过提示安装。比如在终端(Terminal)中输入 git --version,如果没有安装,则会提示安装。

配置

对所有本地仓库操作设置关联的用户名和邮箱地址:

git config --global user.name 
git config --global user.email 

创建仓库

创建本地仓库:

git init

将本地仓库与远程库关联:

git remote add origin 

克隆远程仓库:

git clone 

更改

将文件进行快照:

git add 

将所有文件进行快照:

git add .

将快照提交到本地仓库:

git commit -m "Descriptive Message"

在 commit 之前让 Git 自动保存快照(即跳过手动保存至暂存区):

git commit -a -m "Descriptive Message"

-a 会包含所有 Git 跟踪的改动文件,并在 commit 之前自动保存快照。

查看当前分支的版本历史:

git log

查看指定 commit 的数据和内容变化:

git show 

查看仓库状态:

git status

撤销

撤销工作区的修改:

git checkout -- 

撤销暂存区的快照,保留改动内容在工作区:

git reset HEAD 

撤销指定的 commit 之后所有的提交,但本地保留改动内容:

git reset 

或
git reset --soft 

撤销所有提交到指定的 commit,不会保留之后的记录:

git reset --hard 

请谨慎使用 --hard !

分支

查看所处分支:

git branch

创建新分支:

git branch 

切换指定分支:

git checkout 

将分支合并到当前分支:

git merge 

删除指定分支:

git branch -d 

同步更改

下载远程库跟踪分支的所有历史:

git fetch

将远程跟踪分支合并到当前本地分支:

git merge

获取远程跟踪分支的所有新提交,更新至本地对应分支(是 fetch 和 merge 的结合):

git pull

将本地分支提交到远程仓库:

git push

标签

创建标签:

git tag 

查看标签:

git tag

删除标签:

// 删除本地标签
git tag -d 

// 删除远程库标签
git tag -d 
git push origin :refs/tags/

把标签推送至远程库:

git push origin 

// 推送本地所有未推送的标签
git push origin --tags

别名

创建别名:

git config --global alias. 

删除别名:

git config --global unset alias.

最后,命令行也可以与 GUI 配合使用。比如直接把文件拖入 SourceTree,即可在 SourceTree 中进行使用。

Git 怎么用

请移步 Notion 原文。可能打开较慢,客官请耐心等待。

你可能感兴趣的:(Git 快速上手)