1. 初识Git

1.1 什么是Git

Git 是一个分布式版本控制系统,每个人电脑上都是一份完整的代码库,包含了所有的代码提交历史。在没有网络的情况下,依然可以自由地将代码提交的本地的代码库中,等网络恢复后再推送到服务器,开发更加灵活和自由。同时还可以设置多个远程( remote,默认的 remote 通常用 origin 表示)库,当你要将代码更新到服务器上时(称作 push),就通过设置的 remote更新到指定的服务器。

1.2 Git本地结构

Git 本地结构可以分为工作区、暂存区、本地仓库

  • 工作区,就是项目文件所在的目录。工作区中有一个隐藏目录 .git,其中存放的就是 Git 的版本库信息,这就是 Git 的版本库。
  • 暂存区:我们所有修改的内容都缓存到这里,打开 .git目录,Git 版本库中有许多文件,其中最重要的就是称为 index(或者stage)的暂存区,还有 HEAD 指针,指向的是我们当前所在的分支。当我们执行提交命令时,实际上就是把暂存区的内容提交到 HEAD 对应的分支上。初始时,暂存区应该是空的,当我们把内容提交到暂存区之后,暂存区有了内容才能执行 commit命令。提交之后,暂存区会被清空,等待下一次的暂存和提交。
  • 本地仓库:暂存区提交的代码都保存到本地仓库里。

    1.3 常用术语

  • Origin:默认的 remote 的名称。

  • Master:主分支,所有提供给用户使用的正式版本,都在这个主分支上发布。
  • Tags:用来记录重要的版本历史,例如里程碑版本。
  • Fetch:从远程代码库更新数据到本地代码库。需要注意的是 Fetch 只是将代码更新到本地代码库,你还需要检出(check out)或与当前工作分支合并(merge)才能在你的工作目录中看到代码的改变。
  • Pull:从远程代码库更新数据到本地代码库,并与当前工作分支合并,等同于 Fetch + Merge。
  • Push:将本地代码库中已提交(commit)的数据推送到指定的 remote,没有 commit 的数据,不会push。
  • git clone:从服务端将项目的版本库克隆下来。
  • git init:在本地初始化版本库。
  • git status:查看工作区、暂存区状态。
  • git add:将工作区“新建/修改”的文件添加到暂存区。
  • git commit:将暂存区的文件提交到本地代码仓库。

    1.4 Git工作流程

    1、对代码进行修改。
    2、完成某项功能后提交到本地仓库,1-2 可以反复进行,直到自己觉得代码可以提交到服务器上时,执行 3。
    3、pull 拉取,或者使用 fetch 更新数据到本地并手动 merge 合并。
    4、如果存在冲突,解决冲突。
    5、push 将数据提交到服务器上的代码库上。

    2. Git常用命令

    配置Git - 图1

    3. 常见问题

    3.1 配置全局用户名和邮箱

    一般我们在使用 Git 去 push 或 pull 的时候,需要设置本地全局用户名和邮箱。 ```git —设置全局用户名和邮箱 git config —global user.name “yxw” git config —global user.email “yanxuwei666@163.com”

—查看全局用户名 git config user.name ```

3.2 Git冲突怎么解决?

Git 冲突:指的是多个开发者同时使用或者操作 git 中的同一个文件,在依次提交 commit 和 push 的时候,第一个人的操作是可以正常提交的,但之后的开发者想要执行 pull 或 push 操作的时候,就会报冲突异常 conflict。解决冲突异常办法如下:

  1. 使用 git status 查看冲突的具体文件是哪个。
  2. 尝试一下使用 git pull ,将远程代码和本地代码强行 merge 一下。
  3. 找到冲突的文件,手动修改,然后重新提交。