Git

记录Git学习的点滴

TIP

最后更新时间:2019年09月10日

字数:4776

盛年不重来,一日难再晨。及时当勉励,岁月不待人

学习资源

版本控制系统

  • 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
  • 版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制

集中式版本控制系統

  • 比如:SVN
  • 集中式版本控制系统都有一个单一的集中管理的服务器(中央服务器),保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新
  • 特点:
    • 需要一个中央服务器来管理代码的的版本和备份
    • 所有的用户电脑都是从中央服务器获取代码或者是将本地的代码提交到中央服务器
    • 依赖与网络环境,如果连不上中央服务器,就无法提交和获取代码

分布式版本控制系统

  • 比如:git
  • 分布式版本控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份
  • 特点:
    • 需要一台服务器作为代码仓库
    • 每个用户电脑都是一个服务器(代码仓库),并且和代码仓库是镜像的,用户修改和获取代码都是提交到自己的服务器当中
    • 不需要网络就可以进行工作
    • 当连接网络时,用户可以选择将自己的服务器与代码仓库进行同步

git简介

git三个区

  • 工作区:我们书写代码的地方,工作的目录就叫工作区
  • 暂存区:暂时存储的区域,在git中,代码无法直接从工作区提交到仓库区,而是需要先从工作区添加到暂存区,然后才能从暂存区提交到仓库区。暂存区的目的是避免误操作
  • 本地仓库区:将保存在暂存区域的内容永久转储到 Git 仓库中,生成版本号。生成版本号之后,就可以任何的回退到某一个具体的版本

git基本命令

git init

  • git init
  • 初始化git仓库,想要使用git对某个项目进行管理,需要git init进行初始化
# 初始化仓库, 在当前目录下生成一个隐藏文件夹.git
git init
1
2

git config

如果是第一次提交,需要配置提交者信息,推荐和github的账号邮箱一致

# git config  user.name 你的目标用户名
# git config  user.email 你的目标邮箱名

# 使用--global参数,配置全局的用户名和邮箱,只需要配置一次即可。推荐配置github的用户名和密码
git config  --global user.name "你的用户名"
git config  --global user.email "你的邮箱"

# 查看配置信息
git config --list
1
2
3
4
5
6
7
8
9

git config

  • 作用:查看文件的状态
  • 命令:git status
    • 红色表示工作区中的文件需要提交
    • 绿色表示暂存区中的文件需要提交
  • 命令:git stauts -s 简化日志输出格式

git clone

  • 克隆代码到本地
git clone 代码仓库地址
1

git add

  • 作用:并且将文件由 工作区添加到暂存区,在git中,文件无法直接从工作区直接添加到仓库区,必须先从工作区添加到暂存区,再从暂存区添加到仓库区。
  • 命令:git add 文件名/目录名
# 将index.html添加到暂存区
git add index.html

# 将css目录下所有的文件添加到暂存区
git add css

# 将当前目录下所有的js文件添加到暂存区
git add *.js

# 添加当前目录下所有的文件
git add .
git add -A
git add --all
1
2
3
4
5
6
7
8
9
10
11
12
13

git commit

作用:将文件由 暂存区 添加到 仓库区,生成版本号

# 将文件从暂存区提交到仓库
git commit -m "提交说明"

# 如果不写提交说明,会进入vi编辑器,没有写提交说明,是提交不成功的。
git commit   # 需要使用vi输入内容

# 如果是一个已经暂存过的文件,可以快速提交,如果是未追踪的文件,那么命令将不生效。
git commit -a -m '提交说明'

# 修改最近的一次提交说明, 如果提交说明不小心输错了,可以使用这个命令
git commit --amend -m "提交说明"
1
2
3
4
5
6
7
8
9
10
11

git log

  • 作用:查看提交日志
  • git log 查看提交的日志
  • git log --oneline 简洁的日志信息

git pull

取回远程主机某个分支的更新,再与本地的指定分支合并

git pull <远程主机名> <远程分支名>:<本地分支名>

git pull origin
表示:本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。

git pull
如果当前分支只有一个追踪分支,连远程主机名都可以省略
1
2
3
4
5
6
7

git fetch

从远程获取最新版本到本地,不会自动合并

git push

用于将本地分支的更新,推送到远程主机。

git push <远程主机名> <本地分支名>:<远程分支名>
1

生成密钥对(Mac)

大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。

生成公钥的过程在所有操作系统上都差不多。

首先你要确认一下本机是否已经有一个公钥。

SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录

 // 进入目录
 cd ~/.ssh
 // 查看当前目录下面的文件
 ls
1
2
3
4
  • 有 .pub 后缀的文件就是公钥,另一个文件则是密钥
  • 如果么有文件就自己生成
ssh-keygen -t rsa -C "your_email@youremail.com"
1
  • -t:是选择kye的type。分别有 RSA 和 DSA 两种
  • -c:指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息,用自己的邮箱即可
  • 连续三次回车:一个密语字符串(passphrase)和2次口令(password),空都代表没有
  • 最后把公司文件发给相关人员即可