zoukankan      html  css  js  c++  java
  • git基本操作


    本文转载自:https://blog.csdn.net/xiaogeldx/article/details/89223650

    @

    为什么要使用git

    传统文档管理

    在这里插入图片描述

    • 我们在写毕业论文时可能会遇到多次修改之后的论文命名方式:
      • 论文_改.doc、论文_改改.doc、论文_改改改.doc、论文_改改改改.doc、论文_改改改改再改.doc、
        论文_改改改改再改TM不改了.doc

    源代码管理的好处

    • 方便多人协同开发
    • 方便版本控制

    git的诞生

    • 作者 Linux之父:Linux Torvalds
    • git 开发目的:为了辅助 Linux 内核开发
    • 是 Linux Torvalds 在无奈被逼的情况下创造的
    • 2008年,github 网站上线,为开源项目免费提供 git 存储,无数开源项目开始迁移至github
    • git 迅速成为最流行的分布式版本控制系统(没有之一)

    git结构

    结构分析

    • git 是分布式管理系统,服务器和客户端都有版本控制能力,都能进行代码的提交、合并……
    • 结构图1
      在这里插入图片描述
    • 结构图2
      在这里插入图片描述

    本地代码管理

    • 工作区(workspace):添加、修改、删除文件
    • 暂存区(index):将工作区中的操作完成小阶段的存储,是版本库的一部分
    • 本地仓库区(respository):对个人开发的一个小阶段代码存储
      • 记录的各版本可以查看或者回退
      • 但是在暂存区的版本一旦提交就再也没有了(保存到仓库区中)

    本地仓库操作

    安装git

    在Linux安装

    sudo apt-get install git

    查看是否安装成功

    git --version

    创建项目

    1. 创建一个项目文件夹用于演示(MyProjects)
    2. 新建本地仓库
    cd ~/MyProjects/
    #初始化,使其变成 git 的仓库
    git init
    #会创建一个 .git 隐藏文件
    

    在这里插入图片描述
    3. 配置个人信息

    #全局配置个人信息
    git config --global user.name 'xiaogeldx'
    git config --global user.email 'xxx@qq.com'
    #针对本项目的个人配置信息
    git config user.name 'xiaogeldx'
    git config user.email 'xxx@qq.com'
    #配置信息出现在 .git/config 文件中
    

    在这里插入图片描述
    4. 新建测试文件
    vim test01.py
    5. 查看文件状态
    `git status

    当前在工作区`

    在这里插入图片描述
    6. 将工作区添加到暂存区

    #添加项目中所有文件
    git add .
    #或者添加指定文件
    git add test01.py
    

    在这里插入图片描述
    7. 将暂存区文件提交到仓库区
    git commit -m '一些描述'
    在这里插入图片描述
    8. 查看历史版本

    git log
    git reflog
    #git reflog 可以查看所有分支的所有操作记录(包括 commit 和 reset 的操作),包括已经被删除的 commit 记录,git log 不能查看已经删除了的 commit 记录
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    回退版本

    • 方法一:
      • HEAD 表示当前最新版本
      • HEAD^ 表示当前最新版本的前一个版本
      • HEAD^^ 表示当前最新版本的前两个版本,以此类推
      • HEAD-1表示当前最新版本的前一个版本
      • HEAD-10表示当前最新版本的前十个版本,以此类推
        git reset --hard HEAD^
    • 方法二:
      当版本非常多时可选择的方案
    #通过每个版本的版本号回退到指定版本
    git reset --hard 版本号
    
    • 回退到最新版本
      在这里插入图片描述
    • 回退到最新版本的前一个版本
      在这里插入图片描述
    • 通过版本号回到新建了test02.py
      在这里插入图片描述

    撤销修改

    • 只能撤销工作区、暂存区的代码
      • 撤销工作区代码
        git checkout 文件名
        在这里插入图片描述
      • 撤销暂存区代码
    #第一步:将暂存区代码撤销到工作区
    git reset HEAD 文件名
    #第二步:撤销工作区代码
    git checkout 文件名
    

    在这里插入图片描述
    在这里插入图片描述

    • 撤销仓库区的代码就相当于回退版本操作

    版本对比

    • 对比本地仓库与工作区
      • 在工作区,修改文件
        git diff HEAD -- test1.py
    • 修改前对比
      在这里插入图片描述
    • 修改后对比
      在这里插入图片描述
    • 对比本地仓库各版本代码
      git diff HEAD HEAD^ -- test1.py

    文件删除

    • 误删处理,撤销修改
    #删除文件
    rm 文件名
    #git撤销修改
    git checkout -- 文件名
    

    在这里插入图片描述

    • 确定删除处理
    #删除文件
    rm 文件名
    #git确定删除文件,对比添加文件git add
    git rm 文件名
    #删除后记录删除操作版本
    git commit -m '删除描述'
    

    在这里插入图片描述
    在这里插入图片描述

    远程仓库

    克隆远程仓库

    git clone 远程仓库的ssh

    • 查看远程连接信息
      git remote -v
    • clone 将远程仓库的文件克隆到本地并形成连接
      在这里插入图片描述

    上传到远程仓库

    git push

    • 例:
      • 先添加一句话,通过 echo
      • 然后提交到暂存区
      • 提交到本地仓库区
      • 上传到远程仓库
        在这里插入图片描述

    拉下远程仓库文件

    git pull 远程仓库的ssh

    pull和clone的区别

    • pull 所在的文件夹必须是 git 的仓库,clone 可以是随意的文件夹
    • pull 只从远程仓库拉下文件,不建立连接,clone 从远程仓库得到文件并建立连接
      在这里插入图片描述
    • pull 想要连接远程仓库需要 git remote add gitee 远程仓库的ssh
      gitee 自己起的,表示远程仓库克隆或下拉到本地仓库的名字,默认是origin,上传远程仓库时会用到
      在这里插入图片描述
    • clone 从本地仓库上传到远程仓库用 git push,pull 从本地仓库上传到远程仓库用 git push 远程仓库名 分支的名
      在这里插入图片描述
      在这里插入图片描述

    • 当远程上传时发生冲突,说明远程仓库的文件(部分或全部)在本地仓库没有,这时用 git push gitee master就不好用
      • 可以用git push gitee +master强制推送,此时会覆盖掉本地仓库没有的文件
      • 可以先把本地仓库没有的文件从远程仓库拉下,然后再一起上传

    删除远程仓库

    • git remote rm 远程仓库名
      在这里插入图片描述
  • 相关阅读:
    python中时间日期格式化符号的含义
    关于long long int和__int64用%I64d和%lld输出在不同编译语言下的正确性
    并查集 poj2236
    数据结构 最长公共子序列问题
    449B
    oj判题WA/RE怎么办
    如何准确区别python中strftime strptime的用法
    通过HttpWebRequest在后台对WebService进行调用 【转】
    利用maven 下依赖包
    Maven的安装
  • 原文地址:https://www.cnblogs.com/xiaogeldx/p/10694018.html
Copyright © 2011-2022 走看看