Git的基本使用

1、Git简介

1.1、Git结构

  • 本地库:存储历史版本
  • 暂存区:临时存储 ,git commit 提交 到本地库
  • 工作区:写代码使用 ,git add 提交到 暂存区

1.2、Git和代码托管中心

代码托管中心:维护远程库

局域网:Gitlab服务器

外网: gitHub和码云

1.3、团队内部和跨团队合作

w

2、Git的常用命令

2.1、本地库初始化

命令:

git init

生产 .git/目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yncvQwsI-1596106388153)(C:\Users\txc\Desktop\git学习\snipaste_20200729_220543.jpg)]

注意此目录文件不要删除

2.2、设置签名

  • 形式:

    • 用户名:
    • 邮箱 :
  • 用途:目的是区分不同的开发人员,同远程代码库的用户名和密码没有关系

  • 命令:

    • 项目级别/仓库级别:仅在当前本地库范围内有效,配置信息保存在 本地库的 .git/conf 文件里

    • 配置用户名

    ```shell
    git config user.name   xxxx_pro
    ```
    
    • 配置邮箱

      git config user.email  xxxx_pro@163.com
      
    • 系统用户级别:登录系统的当前用户有效, 配置信息保存在 系统用户 .git/conf 文件里

      • 配置系统级别用户名

        git config  --global user.name   xxxx_pro
        
      • 配置系统级别用户邮箱

        git config  --global user.email   xxxx_pro@163.com
        

      优先级:项目级别优先于系统用户级别,二者都有时采用项目级别的签名,项目级别没有采用系统用户级别,都没有会报错

2.3、 查看状态

  • 命令:查看工作区,和缓冲区的状态

    git  status
    

2.4、添加操作

  • 命令:将工作区 的新建和修改添加到缓存区
git add   文件

2.5、提交操作

  • 命令:将暂存区的内存提交到本地库
git commit -m "commit description message"   文件名

2.6、查看历史记录

命令 :

git log 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZQ6p1Ul-1596106388156)(C:\Users\txc\Desktop\git学习\gitlog命令.jpg)]

  • 多屏显示控制方式:

    • 空格向下翻页
    • b 向上翻页
    • q 退出
  • 命令:

    git log --pretty=oneline
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qRIesZGp-1596106388158)(C:\Users\txc\Desktop\git学习\gitlog-pretty.jpg)]

  • 命令:

    git   --oneline
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P2jzRfPd-1596106388161)(C:\Users\txc\Desktop\git学习\gitlog-oneline.jpg)]

  • 命令:

    git  reflog
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E2DR6Mfd-1596106388164)(C:\Users\txc\Desktop\git学习\git reflog.jpg)]

    head相当于指针,操作head指针操作版本

2.7、前进后退版本

1.基于索引值操作

  • 命令

    git  reset  --hard   局部索引值
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bYYO3RQN-1596106388165)(C:\Users\txc\Desktop\git学习\回到过去.jpg)]

2.基于 head ^ 、~ 操作

  • 命令:^ 一个 后退一个版本,n个^后退n步

    $ git reset --hard  head^
    $ git reset --hard  head~n   后退n步
    

2.8、Reset的参数对比

1. git reset --soft

  • 仅仅在本地库移动head指针

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gs2XNNuL-1596106388166)(C:\Users\txc\Desktop\git学习\soft.jpg)]

2. git reset --mixed

  • 在本地库移动head指针

  • 重置缓存区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1GjJxG2-1596106388167)(C:\Users\txc\Desktop\git学习\mixed.jpg)]

3. git reset – hard

  • 本地库移动指针

  • 重置缓存区

  • 重置工作区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02mIIidJ-1596106388169)(C:\Users\txc\Desktop\git学习\hard.jpg)]

2.9、永久删除文件找回

前提是已提交到本地库,再进行删除文件

  • 操作:git reset --hard 指针位置

2.10 、文件比较

  • 命令: 将工作区的文件和缓存区文件比较

    git dif  文件名
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L7dAk8Ss-1596106388170)(C:\Users\txc\Desktop\git学习\snipaste_20200730_004154.jpg)]

  • 命令:将工作区的文件和本地库的历史记录进行比较

    git diff  HEAD^   文件 
    

不指定文件,会比较所有文件

3、Git的分支

  • 简介示意图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ygaC0y0W-1596106388171)(C:\Users\txc\Desktop\git学习\snipaste_20200730_005850.jpg)]

  • 优点:

    • 并行推进多个功能开发,提高开发效率

    • 各个分支开发,不互相影响

创建分支

  • 命令

    $ git branch fix_hot
    

查看分支

  • 命令:
    $ git branch  -v

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuczg0Jb-1596106388172)(C:\Users\txc\Desktop\git学习\查看分支.jpg)]

切换分支

  • 命令:

    $ git checkout   fix_hot
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgfQ3fpi-1596106388173)(C:\Users\txc\Desktop\git学习\切换分支.jpg)]

合并分支

  • 命令: 合并 必须在接受修改的分支上(Master)

    $ git  merge fix_hot
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2z1Ga5O-1596106388174)(C:\Users\txc\Desktop\git学习\合并.jpg)]

  • 冲突产生原因:master分支和fix_hot分支 对同一行数据进行修改或操作

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9lu0Ym1V-1596106388175)(C:\Users\txc\Desktop\git学习\冲突表现.jpg)]

    1. HEAD 到=========== 为当前分支修改的内容
    2. ========= 到 master 为被合并的分支修改的内容

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LA8VIQac-1596106388176)(C:\Users\txc\Desktop\git学习\合并冲突.jpg)]

  • 解决冲突:

    1. 重新编辑文件,删除特殊符号
    2. 把文件改到满意的程度,保存退出
    3. git add 文件名
    4. git commit -m " " 注意:提交不带具体的文件名

4、本地库与远程库交互

成员一上传至远程库

  • 在 github 中创建远程库

  • 在本地创建远程库地址别名:

    $ git remote  add origin https://github.com/xxx/huashan.git
    
  • 查看别名版本

    $ git remote  -v
    
  • 将本地库上传至远程库:origin 为别名, master为上传Master分支

    $ git push  origin  master
    

成员二克隆至本地库

  • 命令:团队协作,另一成员clone至本地库,修改完再push到远程库,中间需要权限,添加为团队。

    $ git clone https://github.com/txcHello/huashan.git
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RYkTK917-1596106388177)(C:\Users\txc\Desktop\git学习\克隆.jpg)]

  • 效果

    • 完整的把远程库下载到本地
    • 创建 origin 远程地址别名
    • 初始化本地库

成员一 合并 成员二的文件

  • 命令:pull=fetch+merge

  • git fetch [远程库地址别名] [远程分支名]

只是将远程库的文件拉取到本地,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKR9V69g-1596106388178)(C:\Users\txc\Desktop\git学习\访问远程地址Fetch.jpg)]

  • git merge [远程库地址别名/远程分支名]

  • git pull [远程库地址别名] [远程分支名]

解决冲突

要点
 如果不是基于 GitHub 远程库的最新版所做的修改, 不能推送, 必须先拉
取。
7)]

  • 效果
    • 完整的把远程库下载到本地
    • 创建 origin 远程地址别名
    • 初始化本地库

成员一 合并 成员二的文件

  • 命令:pull=fetch+merge

  • git fetch [远程库地址别名] [远程分支名]

只是将远程库的文件拉取到本地,[外链图片转存中…(img-KKR9V69g-1596106388178)]

  • git merge [远程库地址别名/远程分支名]

  • git pull [远程库地址别名] [远程分支名]

解决冲突

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值