git语法

Git

Git命令行操作

Git结构

本地仓库初始化

在桌面新建文件夹repositories 下任意新建文件夹

使用git init 命令 生成.git文件(隐藏文件)

.git目录中存放的是本地库相关的子目录和文件。

设置签名

  • 形式

    用户名:tom

    Email地址:(标识开发人员身份)angel@qq.com

  • 辨析:这里设置的签名和登陆远程库(代码托管中心)的账号,密码没有任何关系

  • 命令

    • 项目级别/仓库级别:仅在本地仓库范围内有效

      git config user.name tom_pro
      git config user.email angel_pro@qq.com
      cat .git/config     //查看设置签名
      
    • 系统用户级别:登陆当前操作系统的用户范围

      git config --global user.name tom_glb
      git config --global user.email angel_glb@qq.com
      //查看设置签名
      cd ~           //回到系统目录
      cat .gitconfig //.gitconfig是隐藏目录
      
      
    • 级别优先级

      就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名。

添加提交文件以及查看状态操作

提交新文件
  • 查看当前状态

    git status
    
  • 添加记事本文件

    vim hello.txt
    
  • 添加提交命令

    将工作区的新建/修改添加到暂存区

    git add [file name]
    
  • 删除提交文件

    git rm --cached 文件名.后缀
    
  • 提交

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

    git commit [file name]
    
提交修改文件
  • 查看当前状态

    git status
    
  • 添加提交信息

    将工作区的新建/修改添加到暂存区

    git add 文件名.后缀
    
  • 提交

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

    git commit -m "commit message" [file name]
    
查看历史记录
git log                    //查看详细记录
git log --pretty=oneline   //完整哈希值
git log --oneline          //部分哈希值
git reflog                 //部分哈希值+指针 HEAD@{移动到当前版本步数}
#### 版本的前进后退
  • 基于索引值操作(推荐)

    git reset --hard [局部索引值]
    
  • 使用^符号(只能后退版本)

    git reset --hard HEAD^  
    //一个^符号表示后退一步,n个^符号表示后退n步
    
  • 使用~符号(只能后退版本)

    git reset --hard HEAD~n
    //n表示后退n步
    
  • reset三个命令对比

    • –soft参数

      • 仅在本地库移动HEAD指针
    • –mixed参数

      • 在本地库移动HEAD指针

      • 重置暂存区

    • –hard参数

      • 在本地库移动HEAD指针
      • 重置暂存区
      • 重置工作区

删除文件并找回

  • 前提:删除前文件存在时的状态提交到了本地库

  • 操作:

    git reset --hard [指针位置]
    
    • 删除操作已经提交到本地库:指针位置指向历史记录

    • 删除操作尚未提交到本地库:指针位置使用HEAD

比较文件差异

  • git diff [文件名]
    
    • 将工作区的文件和暂存区进行比较
  • git diff [本地库中历史版本] [文件名]
    
    • 将工作区文件和本地库历史文件做比较
  • 不带文件名比较多个文件

Git分支

什么是分支

在版本控制过程中,使用多跳线同时推进多个任务

分支好处
  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支操作
  • 创建分支

    git branch [分支名称]
    
  • 查看分支

    git branch -v
    
  • 切换分支

    git checkout [分支名称]
    
  • 合并分支

    1. 切换到接受修改的分支(被合并、增加新内容)上

      git checkout [增加新内容的分支名]
      
    2. 执行merge命令

      git merge [已经有新内容的分支名]
      
  • 解决冲突

    • 冲突的表现

    • 冲突的解决

      1. 编辑文件,删除特殊符号

      2. 把文件修改到满意程度,保存退出

      3. git add [文件名]
        
      4. git commit -m "日志信息"
        
        • 注意:此时时 commit 一定不能带具体文件名

GitHub

https协议仓库地址 远程推送

创建远程库
image-20210718163513191
创建远程库地址别名
git remote -v //查看当前所有远程地址别名
git remote add [别名] [地址]
推送
git push [别名] [分支名]

ssh协议仓库地址 远程推送

如有原来有个别名(如clone的别人的仓库到本地的情形),则需要先删除别名。

git remote remove [别名]
创建ssh秘钥
ssh-keygen //生成ssh秘钥

在对应文件下,拷贝秘钥

在github上配置秘钥
创建远程地址别名
git remote -v //查看当前所有远程地址别名
git remote add [别名] [地址]
推送
git push [别名] [分支名]

克隆

命令
git clone [远程地址] 
作用
  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名
  • 初始化本地库

拉取

两个本地仓库sun 和moon

sun提交文件至远程仓库,moon从远程仓库克隆至本地仓库,将克隆的文件修改,重新提交远程仓库。

sun拉取远程仓库,获得新修改后的版本

  • git fetch [远程库地址别名] [远程分支]
    
  • git merge [远程库地址别名/远程分支]
    
  • git push [远程库地址别名] [远程分支]  //pull= fetch+merge
    

解决冲突

  • 要点

    • 如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉取
    • 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可
  • 实例

    • 两个本地仓库sun 和moon,拥有同一版本文件ddd.txt

    • sun提交修改文件至远程仓库,moon同时修改文件同一位置,提交远程仓库产生冲突。

    • 解决冲突

      • moon使用git pull origin master操作

        git pull origin master
        
      • 修改文件以符合要求并提交

        vim [file name]
        git add [file name]
        git commit -m "修改版本信息"  //这里不要添加文件名
        
      • 提交至远程仓库

        git push origin master
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值