• 我的git笔记


    git加速

    https://ghproxy.com/https://github.com/cudpp/cudpp.git
    git clone https://ghproxy.com/https://github.com/triple-Mu/YOLOv8-TensorRT.git
    
    • 1
    • 2

    安装git

    # 删除当前git
    sudo apt-get remove --purge git
    
    # 重新安装git
    sudo apt-get update
    sudo apt-get install git
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    配置git

    git config --global user.name "cqy"
    git config --global user.email "你的邮箱"
    
    • 1
    • 2

    fork并拉取公司代码remote

    # 先fork公司仓库,这步是必须的,不能够直接推送到公司的框架里面,都是先推送到自己的分支里面
    # 自己的分支里面有代码了,然后后面审核过了通过网页合并,合并就不用指令了
    
    # 给文件夹加权限 (选做)  xxxx是我文件夹的名字, 如果git clone出现权限问题了大概率就是这个问题了
    sudo chmod -R 777 xxxx
    
    # 克隆对应的项目
    git clone xxxx
    
    # remote add upstream 这里的ssh:xxxxxxxx是公司的仓库,这样就可以拉到
    git remote add upstream ssh:xxxxxxxx
    
    # 检查一下
    git remote -v
    
    # 拉上游
    git pull upstream main
    
    # 查看可以拉的分支 这个操作可以查看公司有多少个分支是我们可以拉的
    git branch -a
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    创建一个新的分支,这里我起了一个叫做deepstream的分支

    # 这个命令等价于两个操作:git branch new-feature(创建分支)和 git checkout new-feature(切换到新分支)
    git checkout -b deepstream
    
    # 这里可以git branch看一下是不是在所属的分支
    git branch
    
    # 建议先在git remove -v 检查一下再进行推送,推送的时候选自己的orin就没有问题了
    git push origin deepstream
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用 vsocde source control来管理自己的更改的代码

    # 做出更改
    
    # 点 + 号确认更改
    
    # 填写commit信息
    
    # push
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在第二个设备上用自己的fork

    这里还是很重要的,因为做AI的人很多时候训练一个设备部署一个设备,甚至测试多个不同设备部署的时候一定会用到的,这里前面部分操作跟第一个设备一样

    # clone自己的fork, 这里要确定怎么真正fork到自己创建的分支
    git clone xxxxxxxxxxxxx
    
    # remote add upstream 这里的ssh:xxxxxxxx是公司的仓库,这样就可以拉到
    git remote add upstream ssh:xxxxxxxx
    
    # 拉上游
    git pull upstream main
    
    # 检查跟第一个一不一样,看看这里能不能拉到最新的
    git remote -v 
    
    # 查看可以拉的分支 这个操作可以查看公司有多少个分支是我们可以拉的
    # 当看到和第一个设备上一样的你可以
    git branch -a
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在第二个设备使用第一个设备的分支,修改并且在第一个设备更新

    # 这里的deepstream是我第一个设备弄得分支
    git checkout deepstream
    
    # 检查
    git branch
    
    # 这里修改, 如果想在第一个设备使用到最新的
    git pull origin deepstream
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    重命名分支

    # 先看自己在哪个分支上
    git branch
    
    # 假设切换到 main 分支
    git checkout main
    
    # 重命名分支
    git branch -m deepstream new-branch-name
    
    # 切换新分支
    git checkout new-branch-name
    
    # 推送这个新分支去origin, 不push的话到不了的
    git push origin new-branch-name
    
    # 检查
    git branch -a
    
    # 如果其他的设备上git branch -a没有看到这个操作建议这边使用下面这个指令
    # 用于在更新远程跟踪分支信息时删除本地已经不存在的远程分支
    git remote update origin --prune
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在代码上建立远程连接

    我一般的工作的流程是先在Github上建一个新的仓库, 然后用ssh git clone下来, 但是有的时候有可能因为忘记过滤的问题,所以这里第一步是删除.git, 也就是之前的连接问题, 如果没有这个需求删掉这一步
    如果你想清除 Git 历史记录并从头开始(注意这样做将丢失所有历史记录,这通常是一个非常激进的方法),你可以按照以下步骤进行:

    1. 首先确保备份你的所有工作!

    2. 删除 .git 目录以删除所有 Git 历史记录和配置信息:

      rm -rf .git
      
      • 1
    3. 现在初始化一个新的 Git 仓库:

      git init
      
      • 1
    4. 确保你的 .gitignore 文件正确配置以忽略 .onnx 文件。

    5. 现在添加所有文件和目录到新的 Git 仓库:

      git add .
      
      • 1
    6. 提交你的第一个提交:

      git commit -m "Initial commit"
      
      • 1
    7. 如果你之前已经在远程服务器上有一个仓库,你将需要将其重命名或删除它,然后创建一个新的空仓库来推送你的新历史。 假设你正在使用 GitHub,你可以在 GitHub 网站上进行这些操作。

    8. 然后,将新的远程仓库添加为一个远程,并推送你的新历史:

      git remote add origin <your-repo-url>
      git push -u origin main -f
      
      • 1
      • 2

    注意,使用 -f 选项(代表“force”)将强制推送到远程仓库,这意味着它将删除远程仓库上现有的所有历史记录和数据。所以再次提醒,请确保你确实想这样做,并且已经备份了所有必要的数据和历史记录。

    有的时候会出现push不了的现象

    src refspec main does not match any
    
    • 1

    这个可能是本地仓库中没有找到名为 “main” 的分支, 是"master"分支

    # 检查分支
    git branch
    
    # 如果分支是master, 改名
    git branch -m master main
    
    # 再次Push
    git push -u origin main -f
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    域名抢注和域名注册
    红绿正方形染色问题
    通讯协议学习之路:IIC协议理论
    ADAS行业进入深水区,高阶自动驾驶迎战行业分水岭
    vue3 - vue3中的watch监听讲解
    Looper分析
    window 下兼容多各低版本的chrome测试
    8月算法训练------第三天(排序)解题报告
    linux三剑客(grep、sed、awk)基本使用
    Linux网络通信优化方法
  • 原文地址:https://blog.csdn.net/bobchen1017/article/details/133070781