一、优势

  • 分布式版本控制系统,断网情况下也能进行版本管理
  • 不是源文件的管理,而是差异性管理,没有冗余文件

    二、两大概念

    区域:

    git提供三个不同的区域,用来存放不同的内容
  • 工作目录

  • 暂存区域
  • git仓库

状态:

git提供三种(也可以说是四种)不同的记录状态
  • 已修改modified=>红色
  • 已暂存staged=>绿色的
  • 已提交commited灰色(没有颜色)
  • 有一个特殊的状态:未追踪Untracked=>红色的

    配置SSH公钥
  • 安装完git应该做的第一件事情

  • 设置用户名称与邮箱地址,这很重要,因为每一个git提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改

    通过—global选项,设置全局配置信息
  • git config —global user.name “你的姓名”

  • git config —global user.email “你的邮箱”
  • ssh-keygen -t rsa -C “你的邮箱” 生成秘钥
  • 生成密钥之后再 我的电脑=>c盘=>用户=>用户信息=>.ssh=>id_rsa.pub(把密钥粘贴进去)

    打印所有的config
  • git config —list

    打印指定config
  • git config user.name

    创建仓库
  • git init 初始化仓库,会再当前文件夹下生成一个.git文件夹,非必要设置不要随便更改

  • git status 来查看仓库文件状态
  • git add 文件夹/文件/.来添加文件到暂存区
  • git commit -m “提交信息”提交到本地仓库
  • git push 提交到远程仓库
  • git log 查看所有日志
  • git log -oneline 查看简要日志
  • git reflog 查看操作日志
  • git commit —amend -m “新提交信息” 继续上次未提交成功后重新提交/覆盖上次提交的信息
  • git rm <文件路径> 从git仓库与工作区中删除指定文件
  • git rm —cached <文件路径>只删除git仓库中的文件
  • rm以后,需要commit这次操作,否则rm将保留再暂存区 git commit -m ‘修正的信息’

    添加到远程仓库
  • git remote add <仓库> 仓库SSh地址

  • 第一次推送分支git push -u orgin master
  • 已建立关联后推送分支 git push origin master

    撤销操作
  • 从暂存区撤销一个指定文件 git reset HEAD 文件名称

  • 从暂存区中,撤销所有文件 git reset HEAD .

该命令既可以用于回退版本 回退到指定的commitID版本 git reset —hard commitID

比较
  • 比较工作区和暂存区 git diff文件
  • 比较暂存区和仓库 git diff —cached [commitId] 文件
  • 比较工作区和仓库 git diff commitId filename
  • 比较仓库不同版本 git diff commitID1 commitId2

    分支
  • 查看分支 给it branch

  • 创建分支 git branch 分支名称
  • 切换分支 git checkout 分支名称
  • 也可以使用 git checkout -b 分支名称 创建分支
  • 分支合并:B合并到A,需要切换到A分支, git merge 被合并分支
  • 查看已经合并的分支 git branch —merged
  • 查看未合并的分支 git branch —no-morged
  • 删除分支 如果分支为未合并状态,则不允许删除 git branch -d 分支名称
  • 强制删除 git branch -D 分支名称

    远程分支
  • 提交到远程(分支)

  • git push origin [本地分支名称]:[远程分支名称]

  • 远程先创建好分支然后拉取到本地

  • git checkout -b [本地分支名称] origin/[远程分支名称]

  • 拉取远程分支到本地

  • git pull origin [远程分支名称]:[本地分支名称]

  • 查看远程仓库

  • git remote show origin

  • 查看本地分支

  • git branch

  • 查看远程分支

  • git branch -r

  • 查看所有分支

  • git branch -a

  • 删除本地分支

  • git branch -d [本地分支名称]

  • 删除远程分支

  • git push origin —delete [远程分支名称]
  • or
  • git push origin :[远程分支名称]

  • 设置默认提交分支

  • git branch —set-upstream-to=origin/[远程分支名称] [本地分支名称]
    合并记录

合并 HEAD 前两个祖先记录
git rebase -i HEAD~2

变基操作(慎用)
git pull —rebase

解决乱码

git status 显示乱码
git config —global core.quotepath false

终端乱码
菜单 -> 设置 -> 文本 -> 本地 / 编码

或修改配置文件
[gui]
encoding = utf-8
#代码库统一使用utf-8
[i18n]
commitencoding = utf-8

log编码

  1. [svn] <br /> pathnameencoding = utf-8
  2. ### 支持中文路径
  3. [core]<br /> quotepath = false
  4. ### status引用路径不再是八进制(反过来说就是允许显示中文了)

五大分支 (不要动!!!)

master

  • 生产分支
    - 上线产品

    develop

  • 准生产分支
    - 备份昨天线上产品

    features

  • 开发新功能分支
    - 开发新功能

    hotfix

  • 修改bug分支
    - 打补丁修改细节等处理问题分支

    test

  • 测试分支