问题产生
一般我们不要git上传编译后的文件,github也不鼓励上传二进制文件,而且上传了编译文件还会拖慢另外设备的同步项目的速度,所以我不想上传我的编译生成的二进制文件,
但是因为自己在linux下生成c++的编译文件之前的配置都是没有后缀的,所以gitignore不好检测排除
解决
方案一
- 直接头铁去网上找了很多”如何gitignore 忽略上传二进制文件”,然后按照大佬们说的gitignore配置了好久
- 最终配置成下面这样,但是git上传记录证明我的配置不合理,失败了…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| ## 忽略所有文件和目录 *
## 增加指定扩展名文件和Makefile文件 ### C && makefile !*.cpp !*.c !*.h !Makefile
### py !*.py
### md !*.md
### pic !*.png !*.jpg
### some others !*.sh !*.bat !*.gitignore
|
方案二
- 想到了linux下可执行文件不是还有
.out
文件吗?
- 后面在网上查了一下发现:linux下可执行文件不像windows那样要看后缀,而是看属性是否是可执行的
- 于是立马更该自己的sublime的c++编译配置,最种git提交成功忽略二进制
.out
文件
- 最终的gitignore如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # Cpp: *.exe
# VScode: build .vscode
# Python __pycache__ *.pyc
# 2019年9月22日22:01:00 发现网上找的上面的操作并没有成功,然后自己去网上探索,最后发现linux下的可执行文件不看后缀,而是看属性,所以自己刻意在编译中设置后缀,然后gitignore那个后缀就完美了
# linux cpp on what I set the sa of cpp *.out
|
送一份linux下Sublime的C++编译配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| { "shell_cmd": "g++ '${file}' -o '${file_path}/${file_base_name}.out'", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "variants": [ { "name": "Build & Run", "shell_cmd": "x-terminal-emulator -e bash -c \"g++ '${file}' -o '${file_path}/${file_base_name}.out' ; '${file_path}/${file_base_name}.out' ; read -p '\nPress ENTER or type command to continue...'\"" }, { "name": "Build Only", "shell_cmd": "g++ '${file}' -o '${file_path}/${file_base_name}.out'" }, { "name": "Run Only", "shell_cmd": "x-terminal-emulator -e bash -c \"'${file_path}/${file_base_name}.out' ; read -p '\nPress ENTER or type command to continue...'\"" } ] }
|