Git是一个版本控制器,是目前来说使用范围最广,受众面积最大,最好用的版本控制器。
使用场景:回退版本、协同开发

然后我在最后发现了一个码云官方整理好的git大全,各种git命令都有
https://gitee.com/all-about-git

1 安装

1.1 window

官网下载就完事
https://git-scm.com/downloads

2 配置

一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。
Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。
生成的三个命令行窗口:

  • Git Bash:Linux命令行风格(推荐)
  • Git CMD:Windows命令行风格
  • Git GUI:图形化界面(不推荐)

在Windows下打开刚刚下载的git-bash

2.1 Linux命令行

还得先熟悉一下Linux的命令行啊

  • cd: 改变目录
  • cd .. 回到上一个目录
  • pwd 显示当前目录
  • ls 列出当前目录中的所有文件
  • touch 新建一个文件
  • rm 删除一个文件
  • mkdir 新建一个文件夹
  • rm-r 删除一个文件夹
  • mv 移动文件 mv 文件名 目标文件夹名
  • reset 重新初始化终端/清屏
  • clear 清屏
  • history 查看命令历史
  • help 帮助
  • exit 退出
  • 注释

    2.2 用户信息(必须配置)

    第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

    1. git config --global user.name "John Doe"
    2. git config --global user.email johndoe@example.com

    如果用了 —global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 —global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

    2.3 查看配置信息

    要检查已有的配置信息,可以使用命令:

    1. git config --list

    2.4 配置文件

    —system 系统级 Git\etc\gitconfig
    —global 用户级 C:\Users\用户名.gitconfig
    可以直接编辑

    3 原理

    3.1 工作区域

    Git本地有三个工作区域:工作目录、暂存区、资源库,在加上一个远程的git仓库就可以分为四个工作区域
    XP``OGT~8ZQ9F2K1E`L`EB8.png

    3.2 工作流程

  • 在工作目录中添加、修改文件;

  • 将需要进行版本管理的文件放入暂存区域;
  • 将暂存区的文件提交到git仓库。

因此git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)

4 Git项目搭建

O7J0P_B(7`4V7WQUEQ8U6H3.png

4.1 创建本地仓库

在工作目录中初始化新仓库

创建全新的的仓库,在需要Git管理的项目的根目录执行

  1. git init

可以看到仅多了一个.git目录,关于版本的所有信息都在这里面

4.2 从现有仓库克隆

克隆远程目录,将远程服务器的仓库镜像到本地

  1. git clone [url]

5 文件操作

5.1 文件状态

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库中,不参与版本控制。
    • 通过 git add 将状态变为 Staged
  • Unmodify:文件已经入库,未修改。
    • 若文件被修改,状态变为 Modified
    • 若使用 git rm 移出版本库,则状态变为 Untracked
  • Modified:文件已经修改,但并没有进行其他操作。
    • 通过 git add 将状态变为 Staged
    • 通过 git checkout 从库中取出文件,覆盖当前修改,返回到Unmodify状态
  • Staged:暂存状态

    • 执行 git commit 将修改同步到库中
    • 执行 git reset HEAD filename 取消暂存,文件状态变为 Modified

      查看文件状态

      查看指定文件状态
      1. git status [filename]
      查看所有文件状态
      1. git status

      5.2 添加所有文件到暂存区

      1. git add .

      5.3 提交暂存区的内容到本地仓库

      1. git commit -m "加上说明"

      5.4 忽略文件

      如果不想将一些文件纳入版本控制,可以在主目录下新建一个“.gitignore”文件,规则如下:
  • 以斜杠 / 开头表示目录;

  • 以星号 * 通配多个字符;
  • 以问号 ? 通配单个字符
  • 以方括号 [] 包含单个字符的匹配列表;
  • 以叹号 ! 表示不忽略(跟踪)匹配到的文件或目录;

示例:

  1. *.a # 忽略所有 .a 结尾的文件
  2. !lib.a # 但 lib.a 除外
  3. /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
  4. build/ # 忽略 build/ 目录下的所有文件
  5. doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

6 分支

常用指令

#列出所有本地分支
git branch

#列出所有远程分支
git branch -r

#新建一个分支,但依然停留在当前分支
git branch [branch name]

#新建一个分支,并切换到该分支
git checkout -b [branch]

#合并指定分支到当前分支
git merge [branch]

#删除分支
git branch -d [branch name]

#删除远程分支
git push origin --delete [branch name]
git branch -dr [branch name]

7 将本地仓库连接到远程仓库

国内还是用码云吧

7.1 注册码云

没有教程

7.2 设置SSH公钥

在Git Bash中输入

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"

连敲三个回车
然后在C:/Users/自己的用户名/.ssh
这个文件夹中将id_ed25519.pub文件中的内容复制即可。

在码云的设置页面点击ssh公钥
BARJB{4{RLGGJQ)ESD)~%QU.png
在这个位置加入ssh公钥
05IKTI7]PV_M@6BFLIGP~GP.png
然后在cmd中输入

ssh -T git@gitee.com

显示如下则成功
ML2P6(A6T{F)S1A`CYKADOA.png

8 新建远程仓库

右上角的加号里面点新建仓库,然后跟着走就行

8.1 合作开发

![)3IWMZ3Q65QY1(X7OCLL41.png
直接添加仓库成员即可

8.2 将本地项目添加到远程仓库

创建一个仓库
然后在需要添加的项目中

git init

然后在

git remote add [给远程仓库起个名] [仓库的SSH链接]

git pull [给远程仓库起的名] [分支]
//一定要先拉取,不然可能报错
git add .
git commit -m "注释内容"
git commit [文件夹] -m "注释内容"
git push [给远程仓库起的名] [分支]