git上传警告warning: LF will be replaced by CRLF

在上传keil工程时,会遇到warning: LF will be replaced by CRLF警告;

warning: LF will be replaced by CRLF in <file-name>.
The file will have its original line endings in your working directory.

同时下面这句话很重要,即“在工作区里,这个文件会保持它原本的换行符。”

如何理解LF和CRLF:

1.LF和CRLF都是换行符,在各操作系统下,换行符是不一样的,Linux/UNIX下是LF,而Windows下是CRLF,早期的MAC OS是CR,后来的OS X在更换内核后和UNIX一样也是LF.
这种不统一确实对跨平台的文件交换带来了麻烦。虽然靠谱的文本编辑器和 IDE 都支持这几种换行符,但文件在保存时总要有一个固定的标准啊,比如跨平台协作的项目源码,到底保存为哪种风格的换行符呢?

2.Git 由大名鼎鼎的 Linus 开发,最初只可运行于 *nix 系统,因此推荐只将 UNIX 风格的换行符保存入库。但它也考虑到了跨平台协作的场景,并且提供了一个“换行符自动转换”功能。

    • 安装好 GitHub 的 Windows 客户端之后,这个功能默认处于“自动模式”。
    • 当你在签出文件时,Git 试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。
      所以Git在拉取代码的时候,git会自动将代码之中与你当前系统不同的换行方式自动转换成当前系统的换行方式。
      这样一来在提交代码的时候,git会认为你未修改内容的文件也认为是修改过的,然后提示你warning: LF will be replaced by CRLF这样的信息。

有效的解决方法

如果设置core.autocrlf = false,那么很可能会出现CRLF和LF混合的情况,这样会导致一些问题,例如git diff 失去功能,会发现很多行代码并没有修改,然而被认为是修改过了。
首先core.autocrlf = true在windows上才是正确的选择,那么如何避免warning呢?还要有以下几个步骤:

    • 添加.gitattributes
    • 设置core.safecrlf = true
    • 使用dos2unix、notepad++等工具来将LF转换成CRLF

以上资料转载自:

https://www.cnblogs.com/sminocence/p/9357209.html

关于git存储空间的注意:

Git本身没有设置用户的磁盘额度,但是建议每个项目的大小保持在1G左右,当你超过75G时会产生警告,且存储库的硬限制为100GB,另外,git严格限制超过100 MB的文件;

Git没有充分设计用作备份工具。但是,有许多专门用于执行值得检查的备份的解决方案,包括ArqCarboniteMozyCrashPlan

导致Git存储库变得庞大和膨胀的另一件事是外部依赖,最好将这些文件保留在存储库之外,而是使用包管理器,大多数流行语言都附带包管理器,可以为您执行此操作。BundlerNode的软件包管理器Maven。它们每个都支持直接使用Git存储库,因此您不需要预先打包的源;

Git不建议在您的存储库中分发已编译的代码和预打包的版本;

以上资料来自:

https://help.github.com/en/articles/what-is-my-disk-quota

关于Keil工程的精简:

首先清除掉keil工程的编译文件,可以通过以下的批处理实现:

::删除Keil编译产生的一些垃圾文件
::删除Code Warrior编译产生的一些垃圾文件
del *.bak /s
del *.ddk /s
del *.edk /s
del *.lst /s
del *.lnp /s
del *.mpf /s
del *.mpj /s
del *.obj /s
del *.omf /s
::del *.opt /s ::不允许删除JTAG的设置
del *.plg /s
del *.rpt /s
del *.tmp /s
del *.__i /s
del *.crf /s
del *.o /s
del *.d /s
del *.axf /s
del *.tra /s
del *.dep /s
del JLinkLog.txt /s
del *.iex /s
del *.htm /s
del *.sct /s
del *.map /s
del *._2i /s
del *.L2P /s
del *.FED /s del *.elf /s
del *.args /s
del *.mk /s
del *.local /s exit

将以上的代码新建txt文件,拷贝进去后将文件名改为name.bat放入到keil工程中;

关于STM32-F4外设库的精简:

基于原子哥的工程模板,对采用外设库的F4工程进行精简;

删除外设库文件,保留下基本的外设库文件只有以下几个:

misc.c
misc.h //NVIC配置 stm32f4xx_rcc.c
stm32f4xx_rcc.h //时钟配置 stm32f4xx_gpio.c
stm32f4xx_gpio.h
stm32f4xx_usart.c
stm32f4xx_usart.h //串口配置要用

同时修改stm32f4xx_conf.h文件中的外设包含关系:

/* Includes ------------------------------------------------------------------*/
/* Uncomment the line below to enable peripheral header file inclusion */
//#include "stm32f4xx_adc.h"
//#include "stm32f4xx_crc.h"
//#include "stm32f4xx_dbgmcu.h"
//#include "stm32f4xx_dma.h"
//#include "stm32f4xx_exti.h"
//#include "stm32f4xx_flash.h"
#include "stm32f4xx_gpio.h"
//#include "stm32f4xx_i2c.h"
//#include "stm32f4xx_iwdg.h"
//#include "stm32f4xx_pwr.h"
#include "stm32f4xx_rcc.h"
//#include "stm32f4xx_rtc.h"
//#include "stm32f4xx_sdio.h"
//#include "stm32f4xx_spi.h"
//#include "stm32f4xx_syscfg.h"
//#include "stm32f4xx_tim.h"
#include "stm32f4xx_usart.h"
//#include "stm32f4xx_wwdg.h"
#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */
#if defined(STM32F40_41xxx)
//#include "stm32f4xx_cryp.h"
//#include "stm32f4xx_hash.h"
//#include "stm32f4xx_rng.h"
//#include "stm32f4xx_can.h"
//#include "stm32f4xx_dac.h"
//#include "stm32f4xx_dcmi.h"
//#include "stm32f4xx_fsmc.h"
#endif /* STM32F40_41xxx */

解决错误error: src refspec master does not match any.error: failed to push some refs to

无法将空文件夹(这里的空文件夹是指不能只有文件夹,需要有一个文件)上传到github上,需要在文件夹中创建一个文件,这里选择创建一个README文件

touch README
git add README
git commit -m 'first commit'
git push origin master

GitHub使用整理——关于上传Keil工程一些注意的点的更多相关文章

  1. 在github上新建一个仓库并上传本地工程

    扫盲:在github上新建一个仓库并上传本地工程 http://1ke.co/course/194 我自己新建了个项目,一步一步流程如下. zhoudd@desay:~/桌面/mini_embed_d ...

  2. gitHub新项目的上传

    github作为一个开源托管平台,除了有机会学习各位大神的开源项目,还能托管自己写的一些小Demo,作为github新进菜鸟,今天就整理下上传Demo所需的命令和操作步骤,防止我这谜一样的记忆力. 1 ...

  3. GitHub入门:如何上传与下载工程?

    由于经常要在家写代码,所以需要有个能够方便访问代码管理工具.最近尝试了一下GitHub.经过了一翻纠结之后,基本上掌握了他的使用方式.  要使用GitHub需要首先在其网站上进行注册.其官方网站是ht ...

  4. Github从注册到上传本地项目详解!!!

    由于本人对于git并不是很熟悉,所以能从一个初学者或者说是未知者的角度去给大家解释每一步的操作. 另外如果本文不够详细的话,请参考 廖雪峰git教程  偷偷有码git从入门到上传本地项目 那么开始! ...

  5. GitHub:本地项目上传与团队协作

    第一部分:我的本次作业成果 我自己个人的github地址是:colintz的个人仓库 我们开发团队小组的github地址是:小组3集中营 第二部分:强烈推荐的github资源 对于和我一样,初次接触g ...

  6. Github Upload Large File 上传超大文件

    Github中单个文件的大小限制是100MB,为了能突破这个限制,我们需要使用Git Large File Storage这个工具,参见这个官方帖子,但是按照其给的步骤,博主未能成功上传超大文件,那么 ...

  7. win10 将本地项目上传到github (第一次+再次上传)

    推荐网址: https://blog.csdn.net/zamamiro/article/details/70172900 https://blog.csdn.net/qq_15800305/arti ...

  8. 在eclipse中使用github进行代码的上传操作以及如何建立分支

    Eclipse或STS对github进行基本操作 一.Github上传代码 1. 首先新建一个maven或者其他java项目. 接着把本地默认的git存放项目地址改变一下.   以上git项目存放地址 ...

  9. 使用GitHub代码仓库Repositories上传自己的项目代码

    1.下载客户端github(必须下载,需要该软件所提供的Git shell输入命令来上传项目)下载地址: https://github-windows.s3.amazonaws.com/GitHubS ...

随机推荐

  1. 深度学习概述教程--Deep Learning Overview

          引言         深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里, ...

  2. C#基础加强篇—委托、Lambda表达式和事件(下)

    3.事件 事件作为C#中的一种类型,为类和类的实例定义发出通知的能力,从而将事件和可执行代码捆绑在了一起.事件是对象发送的消息,以发信号通知操作的发生.操作可能是由用户交互引起的,也可能是由某些其他的 ...

  3. window下golang生成静态库给C语言调用

    buidmod为c-archive能在window下生成 ,c-shared则不行 1.golang生成c-archive静态库 main.go package main import "C ...

  4. 详解 Qt 线程间共享数据(使用signal/slot传递数据,线程间传递信号会立刻返回,但也可通过connect改变)

    使用共享内存.即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的. Qt 线程间共享数据是本文介绍的内容,多的不说,先来啃内容.Qt线程间共享 ...

  5. PING[ARC2]: Heartbeat failed to connect to standby 'gqtzdb_dg'. Error is 16047

    Data Guard搭建完毕之后,执行开启归档路径2,结果发现不同步, SQL> alter system set log_archive_dest_state_2=enable; 查看错误日志 ...

  6. Hadoop中重要概念简要总结

    Hadoop是一个利用大规模计算机集群,可处理大量数据的分布式并行框架. Hadoop 官网 Hadoop的核心设计包括HDFS和MapReduce. HDFS HDFS(Hadoop Distrib ...

  7. [Leetcode]Single Number && Single Number II

    Given an array of integers, every element appears twice except for one. Find that single one. 非常简单的一 ...

  8. 青云QingCloud黄允松:最高效的研发管理就是没有管理

    摘要: 对于底层技术创新而言,没有管理是最好的管理,小规模作战,快速试错,迅速转变方向,迭代周期一定要短. 钛媒体注:钛媒体.商业价值联合主办的第五届“MIIC移动互联网创新大会”如期举行.2015 ...

  9. sublime3使用笔记

    1.ctrl+n 新建一个文件: 2.alt+shift+数字 分屏显示: 3.ctrl+alt+down(向下键) 连选很多行的指定开始位置: 如图: 紧接着再按shift+right(选中需要更改 ...

  10. oracle 和 mysql 常用语句对比汇总

    文章目录 一.数据库管理 1.1 用户管理 1.1.1 mysql用户.权限管理 1.1.2 oracle 用户.角色.权限管理 二.DQL 语句 2.1 基础查询 1.常量查询的区别: 2.字符串拼 ...