git教程 基础命令

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
      • 查看详细的远程库详细信息
    • 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 -- 文件名(文件夹)

      • 重置工作区文件的操作为暂存区的操作,用来将暂存区文件操作覆盖原来对工作区的失误操作
  • 版本重置

    • git reset HEAD指针位置

      • 暂存区和本地库版本重置到所指定位置
      • 参数
        • -soft
          • 重置本地库
        • -mixed(默认)
          • 重置本地库和暂存区
        • -hard
          • 重置工作区,暂存区和本地库
      • 历史记录改变
        • 彻底回退,使用git log无法查看重置位置之后的历史记录
  • 版本回退

    • git revert HEAD指针位置

      • 反向回溯,每次进行新的提交,不同于resetrevert历史记录只新增
  • 变基

    • git rebase 以该本地分支为基的分支

      • 以指定分支为基,合并当前分支
    • git rebase 以该本地分支为基的分支 被合并的分支

      • 以指定分支为基合并指定分支
    • merge操作区别
      • merge是将两指定分支合并,建立新提交生成新的提交记录
      • rebase 是将多余变更记录进行记录,在基分支上进行重演,生成新的提交记录
      • 一般两者得到结果一致,但使用方法不同

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

我的github

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值