git入门

作者: yxlwq | 来源:发表于2019-10-09 23:07 被阅读0次

git入门

git笔记会随着时间进行更正

更新:2019/10/09 23:02

几个概念

  • git的三个区域
    1. 工作区
      • git的初始化目录
    2. 暂存区
      • 从工作区进一步提交的文件所在区域
    3. 本地仓库
      • 从暂存区进一步提交的文件所在区域
    • 提交流程一般是:工作区(add)->暂存区(commit)->本地库

命令

  • 帮助命令

    • git help 需要查找的命令
      - > git 需要查找的命令 --help
      - > man 需要查找的命令

  • 初始化本地库

    • git init
      - 生成.git文件夹 存放git仓库配置及其数据

  • 配置本地库信息

    • git config
      - 环境参数
      - system
      - > git config --system
      - 配置信息在主机上的任何用户和文件夹下都生效
      - global
      - > git config --global
      - 配置信息在主机上的当前用户和及其所属文件夹下生效
      - 不加以上参数,只在初始化本地库的文件夹下生效
      - 配置使用者信息
      - 用户名
      - > git config user.name 用户名
      - 邮箱
      - > git config user.email 用户邮箱
      - 配置以上信息只起到提示作用,与任何平台信息无关,但是一般与使用平台命名一致

  • 添加被追踪文件至暂存区

    • git add 文件名(文件夹名)
      - 将该文件(文件夹)从工作区添加到暂存区,并进行追踪
      - > git add .
      - 将工作区的所有文件(文件夹)添加到暂存区,并进行追踪
      - 删除和移动(重命名)操作不可以被git add追踪到,只能通过git rmgit mv来提交到暂存区

  • 提交被追踪文件至本地库

    • git commit 文件名(文件夹名)
      - 将该文件(文件夹)从暂存区添加到本地库,并生成新的记录
      - 参数
      - > -m
      - 不用打开编辑器,直接在参数后添加提交描述
      - > -a
      - 若该文件曾被提交过,再次对其操作后,可直接使用该参数从工作区提交到本地库

  • 删除文件(文件夹)

    • git rm 文件名(文件夹名)
      - 删除工作区的文件名(文件夹名),且提交到暂存区
      - 参数
      - --cached 文件名(文件夹名)
      - 删除暂存区文件名(文件夹名)的操作
      ```
      已知:已提交文件test
      需求:现在将文件test从本地库中删除

    方法1:
    git rm test
    git commit -m "delete test"

    方法2:
    rm test.txt
    git commit -a "delete test"

    方法1和方法2得到结果一致

    
    
  • 移动文件(文件夹)

    • git mv 文件名1(文件夹名1) 文件名2(文件夹名2)
      - 移除工作区文件名1(文件夹名1),生成文件名2(文件夹名2),且提交到暂存区
      ```
      已知:已提交文件test1
      需求:现在将文件test1更名为test2

    方法1:
    git mv test1 test2
    git commit -m "rename test1->test2"

    方法2:
    mv test1 test2
    git rm test1
    git commit -m "rename test1->test2"

    方法3:
    mv test1 test2
    rm test.txt
    git commit -a "rename test1->test2"

    
    
  • 检查文件(文件夹)状态

    • 文件(文件夹)状态
      • 新增
      • 修改
        -删除
        -重命名
      • 未被提交
      • 未存入暂存区
    • git status
      - 对工作区和暂存区文件(文件夹)的状态进行检查显示
      - 参数
      - > -s(--short)
      - 简化检查结果显示

  • 检查文件操作详细信息

    • git diff
      - 不加参数,查看工作目录和暂存区之间的操作差异
      - 参数
      - > --cached(--staged)
      - 查看暂存区和本地库之间的操作差异

  • 查看提交历史记录

    • git log
      - 显示所有提交记录
      - > git log HEAD指针位置
      - 显示指定提交历史记录
      - 参数
      - -p
      - 查看提交历史记录的详细信息
      - --stat
      - 查看提交历史记录的简化信息
      - -数字n
      - 查看前n条提交历史记录的信息
      - --oneline
      - 将每条提交历史记录以行显示,记录简化的hash值
      - --pretty=oneline
      - 将每条提交历史记录以行显示,记录完整的hash值
      - --pretty=fomat:"放以下参数和其他字符组成的字符串"
      - 自定义提交历史记录的显示方式
      - 参数
      - %s
      - 提交时写的描述
      - %an
      - 做出文件(文件夹)操作的作者名称
      - %ae
      - 做出文件(文件夹)操作的作者邮箱
      - %ad
      - 作者做出文件(文件夹)操作的时间
      - %ar
      - 作者做出文件(文件夹)操作距今的时间
      - %cn
      - 提交者的名称
      - %ce
      - 提交者的邮箱
      - %cd
      - 提交者提交的时间
      - %cr
      - 提交者提交距今的时间
      - > 例如:git log --pretty=format:"提交者:%cn,距今时间:%cr,提交描述:%s"
      - --graph
      - 树状显示提交历史记录

  • 对远程库克隆

    • git clone https地址(ssh地址)
      - 初始化本地库且拉取远程库的所有历史版本
      - 将最新的提交历史记录对应的工作区文件(文件夹)复制到现在的工作区
      - 添加远程仓库地址别名,与原仓库的别名一致,可以直接操作并提交

  • .gitignore 文件

    • 设置提交时忽略的文件或文件夹
    • 文件内容设置
      • 以#开头的行和空行会被忽略
      • 利用正则匹配文件(文件夹)
        • 参数
          • *
            • 匹配0或任意个字符
          • ?
            • 匹配一个任意字符
          • []
            • 匹配括号里其中一个字符
          • !
            • 匹配取反的文件(文件夹)
  • 远程仓库

    • git remote
      查看本地生成的远程仓库别名
    • -v
      查看详细的远程仓库的url或者ssh
    • git remote add 仓库别名 仓库url或ssh
      生成远程仓库别名
    • git remote show 远程分支名
      查看远程分支
    • git remote rename 需要改变的远程分支别名 想要变成的远程分支别名
    • git remote rm 需要删除的远程分支别名
  • 推送分支

    • git push 远程分支的别名 被推送分支名(标签名):推送到的远程分支名(标签名)
      - 将本地库文件(文件夹)推送到远程分支
      - 填写分支名
      - 在远程仓库创建远程分支
      - 填写标签名
      - 在远程仓库创建标签
      - 删除远程分支
      - > git push 远程分支的别名 --delete 远程分支名(标签名)
      - > git push 远程分支的别名 :远程分支名
      - 创建远程分支
      - 创建前提是:需要创建的远程分支在本地已存在
      - > git push 远程分支的别名 新建远程分支名:新建远程分支名

  • 拉取远程分支到本地

    • git fetch 远程分支名(标签名)
      • 拉取指定远程分支(标签)到本地远程分支
  • 合并分支

    • git merge 本地分支名
      - 将指定本地分支名合并到当前分支
      - > git merge 合并到的本地分支名 被合并的本地分支名
      - 将两个本地分支合并
      - 合并冲突
      - 两个分支若对相同文件的相同位置做了操作,会出现合并冲突
      - 解决合并冲突
      1. 将出现冲突的文件进行更正
      2. git add
      3. git commit -m "description"

  • 拉取远程库

    • git pull 远程分支别名 被拉去的远程分支名(标签名):合并的本地分支名(标签名)
      - 是fetch和merge两个操作的合并,将远程分支拉取到本地合并到指定分支上

  • 标签

    • 种类
      • 轻量级标签
      • 含附注标签
    • 打标签
      • 轻量级标签

        • git tag 标签名
          - 为当前所处的提交打上轻量级标签,一个提交可以有多个标签
          - 含附注标签
          - > git tag -a "标签名" -m "description"
          - 为当前所处的提交打上含附注标签,一个提交可以有多个标签
          - 查看标签
          - > git tag
          - 查看所有标签
          - 参数
          - -l 标签名(可正则)
          - 查询指定标签
          - a "标签名"
          - 指定标签名
          - m "description"
          - 定义标签描述
          - 删除标签
          - > git tag -d 标签名
          - 给历史提交记录打标签
          - git tag -a "标签名" -m "description"某个历史记录的HEAD指针位置
          - 推送标签到远程分支
          - 推送指定的标签
          - > git push 远程分支别名 被推送的标签名
          - 推送全部标签
          - > git push 远程分支别名 --tags
          - 切换标签
          - > git checkout 标签名
          - 切换分支到标签所处分支,处于游离状态不能修改
          - > git checkout -b 新建本地分支名 标签名

      • git branch 新建本地分支名 标签名
        - > git checkout 该本地分支名
        - 重命名标签
        - > git tag -d 原来的标签名
        - 删除原来的标签
        - > git tag -a "新的标签名" -m "description"
        - 创建新的标签

  • 操作本地分支

    • 查看分支
      • git branch
        - 查看分支名和当前所属分支
        - 参数
        - -v
        - 查看分支和当前所属分支的具体信息
        - -a
        - 查看包含远程分支的全部分支信息
        - --merged
        - 查看已与当前分支合并的所有分支
        - --no-merged
        - 查看未与当前分支合并的所有分支
        - 创建分支
        - > git branch 新本地分支名
        - 创建文件(文件夹)为当前分支的新本地分支
        - > git branch 新本地分支名 被复制的本地分支名
        - 创建指定复制的本地分支名
        - 删除分支
        - > git branch -d 本地分支名
        - 删除已经被合并过的分支
        - > git branch -D 本地分支名
        - 删除已经未合并过的分支

  • 切换本地分支

    • git checkout 本地分支名
      - 切换到指定分支
      - 注意切换到指定标签或本地远程分支的本地分支处于游离状态,不能操作
      - > git checkout -b 本地分支名
      - 创建新本地分支并跳转到该分支
      - > git checkout -b 本地分支名(标签名) 被复制的本地分支名(标签名)
      - 创建新分支且赋予指定分支内容并跳转到该分支

  • 命令别名

    • git config alias.命令的别名 "命令名"
      - 设置git命令别名,上面的命令都不包含git,运行命令时必须带上git
      - > git config alias.命令的别名 "!非git命令名"
      - 设置非git命令别名,运行命令时必须带上git

  • 撤销操作

    • git commit --amend
      - 上一次提交作废,重新提交,将本次提交记录代替上一次的记录
      - > git reset HEAD 文件名
      - 重置暂存区指定文件的操作为最新提交记录的操作,用来撤销暂存区的失误文件(文件夹)操作
      - > git checkout -- 文件名(文件夹)
      - 重置工作区文件的操作为暂存区的操作,用来将暂存区文件操作覆盖原来对工作区的失误操作

未完:reset(未写)

补充1:若大家觉得我写得还行,可以去我的github里star一下,为了以后找工作做准备,无论是否点赞,谢谢大家看完本文

我的github

相关文章

  • 工具集#01 Git 代码版本控制

    目录:Git 入门Git 进阶Git 高阶总结 1. Git 入门 Git global setup Create...

  • 工具集#01 Git 代码版本控制

    目录:Git 入门Git 进阶Git 高阶总结 1. Git 入门 Git global setup Create...

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • Why Git? Learn It!

    一次 git 入门使用分享的大纲整理,适合新手入门。 总览 为什么要用 Git? Git + SourceTree...

  • Git book

    目录 git community book git入门 git笔记 git 用法 git安装使用手册 git命令大...

  • Git与Repo入门

    Git与Repo入门

  • Git完全入门指南

    Git完全入门指南 教程参考 廖雪峰Git教程 三十分钟入门Git 概述 Git是项目版本管控的工具,可以用来追踪...

  • git 入门

    git入门 git init git add git commit -v git init 初始化本地仓库 .gi...

  • Git入门学习资源

    Git入门学习资料 廖雪峰 Git教程 Git官网 Pro Git git 简明指南 github-git-che...

  • Git入门

    Git入门 标签: 版本控制工具 Git介绍 Git is a version control system. G...

网友评论

    本文标题:git入门

    本文链接:https://www.haomeiwen.com/subject/ozmnpctx.html