Git操作原理入门

Git工具的使用

团队开发如果没有版本控制,对代码、文档、资源文件的管控将是一场噩梦

  • 首先了解一下版本控制的历史
    • 1990s ----> VSS (Visual Source Safe) / CVS (Concurrent Version System) ----> 锁定模式
    • 2000 ----> Subversion (SVN) ----> 合并模式
    • 2005 -----> Git -----> 合并模式 ----> 分布式版本控制系统
  • Git的使用:

把一个文件夹里的东西放到本地仓库里面(第一次提交)

  • 把一个文件夹里的东西放到本地仓库里面(第一次提交)
    • cd 文件夹名 ----> 进入该文件夹里面

    • git init ----> 初始化(把一个文件夹变成版本控制的本地仓库)

      • 会多一个.git 的隐藏文件夹,即你创建的本地仓库,该文件夹里面的东西绝对不能动
      • ls .git -----> 可以查看里面有些什么东西
        在这里插入图片描述
    • git status ----> 查看状态:(查看文件夹即工作目录和仓库状态是否一致)—> 该命令还可以提示你接下来应该做什么

    • git add filename(文件名) -----> 把文件添加到仓库的缓存区(暂存区)

    • git add . —> 将所有文件都放在缓存区

      • 这是Git基本工作流程的第一步
    • git rm --cached 文件名 -----> 从缓存区移除文件

    • 如果第一次使用git执行提交操作,需要先执行两条配置命令

      • git config --global user.email “jackfrued@126.com”
      • git config --global user.name “jackfrued”
    • git commit -m “…原因…” ----> 把缓存区的内容同步到本地仓库中

      • git commit可以同时提交目录结构和说明
      • 该命令以实际提交改动,此时改动已经提交到了HEAD,但是还没有到远端仓库
    • git log ----> 查看提交日志

      • git log --abbrev-commit --graph --pretty=oneline --> 以比较简短的版本查看
      • git log只显示当前分支的变动

不小心误删除文件或者文件夹

  • 不小心误删除文件或者文件夹
    • rm hello.py
    • rm -rf html
    • git restore 文件名/ 文件夹名 -----> 用仓库的内容恢复工作区
  • 不小心改错文件了,不想修改了(误修改)
    • git status
    • git restore 文件名 —> 用仓库的内容恢复工作区
  • 不小心误删文件了,并使用了git add . 保存进暂存区了,需要两个步骤
    • git restore --staged 文件名
    • git restore 文件名

版本回退

  • 回到初始版本
    • git reset 版本号 -----> 版本回退
    • git reset --hard 版本号 -----> 版本回退
      • –soft -----> 只回退仓库,不回退暂存区和工作区
      • –mixed ----> 回退仓库和暂存区,但是不回退工作区(默认)
      • –hard ----> 将工作区、仓库和暂存区都回退到指定版本
  • 在做了回退之后,又想看到未来版本的版本号,就可以用下面的方式来查看
    • git reflog —> 可以查看到所有版本的初始号

设置远端仓库并做文件的交互

  • 设置远端仓库
    • git remote -v ----查看
    • git remote add origin 仓库的URL
    • git remote remove origin
  • 将本地仓库内容推送到服务器(上传) — 第一次建立联系
    • git push -u origin master
      • 在前面我们通过执行git commit -m "…原因…"命令已经将改动保存在本地仓库的HEAD里面了,再执行该命令就可以将这些改动提交到远端仓库
      • 可以将master换成你想要推送的任何分支
    • 当上传过一次之后,再上传时就可以直接写git push
  • 将仓库的东西克隆到本地
    • git clone --depth=1 仓库的URL 文件夹的名字 (代表只克隆最后的那个版本)
  • 从仓库中下拉内容到本地(看到他人的更新)
  • git pull ----> git fetch + git merge

配置SSH免密访问

  • 配置SSH免密访问
  • 对称加密:加密和解密是同一个密钥
    • attack at dawn -----> dwwdnf dw gdzq (每个字母往后面挪三个字母)
  • 非对称加密:加密和解密不是同一个密钥 ----> RSA
  • 密钥对:公钥、私钥,用公钥加密的内容,只有私钥的持有者才能解密
    • 如果要免密访问,首先要生成密钥对,把其中的公钥部署到Git服务器上,自己保管好私钥
  • ssh-keygen -t rsa -b 2048
    • -t ----> 控制算法
    • -b ----> 比特
    • -C ----- 邮箱
  • id_rsa 中保存的是自己的私钥
  • id_rsa.pub 中保存的是公钥

解决冲突

  • 解决冲突

    • git pull ---- Merge Conflict 将代码拿下来
    • git diff ----- 找冲突的位置
  • 找当事人协商解决如何解决冲突,不要武断!!!

  • 重新本地试试版本控制(git add -----> git commit)

  • 重新向服务器推内容(git push )

  • 克隆之后没有虚拟环境和依赖项,要自己安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值