git push出现问题push不上去

问题:

Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 4 threads
error: pack-objects died of signal 9
error: pack-objects died of signal 9
error: remote unpack failed: eof before pack header was fully read
To xxxxx:ebox_os/ebox-apos.git
 ! [remote rejected] develop -> develop (unpacker error)
error: failed to push some refs to 'git@xxxxx:ebox_os/ebox-apos.git'

解决方法:

1.error: remote unpack failed
第一个报错信息百度了一下,可能是本地仓库过大,需要使用命令 git gc进行清理

原因在于:Git的底层并没有采用 CVS、SVN 底层所采用的那套增量式文件系统,而是采用一套自行维护的存储文件系统。当文件变动发生提交时,
该文件系统存储的不是文件的差异信息,而是文件快照,即整个文件内容,并保存指向快照的索引。这种做法,提高 Git 分支的使用效率;但也容易
导致代码仓库中内容重复程度过高,从而仓库体积过大。当遇到这种情况时,或者需要将仓库推送到远程主机时,就需要Git中的gc(garbage 
collect)功能,也就是垃圾回收功能。
————————————————
版权声明:本文为优快云博主「lihuanshuai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/lihuanshuai/article/details/37345565

2、[remote rejected] xxxx (unpacker error)
一:权限问题这个问题查资料发现大部分都是权限问题,需要所有者给你开权限;
二:还有就是 疑似某个 git 对象和远程仓库不一致了,远程仓库拒绝了推送。造成这个问题在于–thin 选项,这个选项是 git push 默认的选项,它会向远程仓库推送时进行优化,以将所发送的包降低到最小,它会把发送时忽略本地仓库和远端仓库中共有的部分,只发送不同的部分。
所以推送时可以 去掉这个参数进行推送:–no-thin

git push --no-thin origin xxx

总结:
1.查看自己是否有推送权限,没有先找所有者开通权限(不然白忙活)
2.是否已经进行git pull操作,没有先pull
3.git gc 先清一清垃圾再说,说不定就没问题了
4.–no-thin,提交时去掉优化,直接提交

参考:
版权声明:本文为优快云博主「weixin_43868398」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_43868398/article/details/114535660

### STM32CubeMX FreeRTOS CAN Queue Read Example #### 配置项目环境 为了实现基于FreeRTOS的CAN消息队列读取,在STM32CubeMX环境中需完成以下设置: - 使用STM32CubeMX创建新工程并选择目标MCU型号。 - 启用CAN外设支持,并通过RTE(Run-Time Environment)配置其参数,如波特率等。 - 添加对FreeRTOS的支持,这会自动引入必要的库文件和初始化代码。 #### 初始化FreeRTOS与CAN模块 确保已正确设置了`FreeRTOSConfig.h`中的各项参数以适应应用需求[^1]。对于CAN通信部分,则要依据具体硬件平台调整相应的初始化函数调用,通常位于`main.c`或其他由开发者指定的位置。 ```c // main.c or other designated file #include "cmsis_os.h" #include "can.h" osThreadId canReceiveTaskHandle; osMessageQueueId canMsgQueue; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_CAN1_Init(void); int main(void){ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_CAN1_Init(); osKernelInitialize(); // Initialize CMSIS-OS V2 RTX Kernel // Create the message queue capable of holding up to 10 messages. canMsgQueue = osMessageQueueNew(10, sizeof(CAN_RxHeaderTypeDef), NULL); // Start thread as specified. canReceiveTaskHandle = osThreadNew(can_receive_task, NULL, NULL); osKernelStart(); } ``` #### 创建接收任务处理程序 定义一个专门的任务用于监听来自CAN总线的数据包并通过预先建立的消息队列传递给其他组件进一步解析或响应。 ```c #define MSG_QUEUE_TIMEOUT (10) void can_receive_task(void *argument) { uint8_t rxData[8]; CAN_RxHeaderTypeDef RxHeader; while (true) { if(HAL_CAN_GetRxMessage(&hcan1,&RxHeader,rxData)==HAL_OK){ // Put received data into a queue for processing by another task. osMessageQueuePut(canMsgQueue, &RxHeader, 0, MSG_QUEUE_TIMEOUT); /* Process Data Here */ } osDelay(1); // Short delay between checks } } ``` 上述代码片段展示了如何利用FreeRTOS提供的APIs构建一个多线程应用程序框架下的CAN报文接收机制。每当接收到新的数据帧时即刻将其存入共享资源——消息队列之中等待后续操作;与此同时保持较低优先级循环执行以便让渡CPU时间片给更高紧迫性的作业单元[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值