1. 问题引出
小弟在工作和学习过程中经常使用git来管理项目代码,使用git就会经常编写.gitignore文件,复制来复制去,有点慢,这次小弟应用shell命令,来快速生成各类项目的.gitignore文件。
2. 准备工作
2.1 下载gitignore文件库
已经有大神总结了所有项目类型的gitignore文件,这里是【传送门】
https://github.com/github/gitignore
clone 下来,我的路径是 /Users/ruglcc/gitignore
git clone https://github.com/github/gitignore.git
这里感谢大神,总结的是真全,我选了几个我常用的放在新建的core文件夹下
2.2 编写命令
我们打开用户根目录下的.bash_profle
[11:16:44] ruglcc:~ $ cd ~
[11:16:48] ruglcc:~ $ open .bash_profile
以编写ios项目的.gitignore文件为例,我们可以用到以下文件的内容
- Objective-C.gitignore
- macOS.gitignore
- Swift.gitignore
- JetBrains.gitignore 可能使用到appcode
在.bash_profile 添加如下一行,(注意,要改成你自己的路径)
alias igios='cat /Users/ruglcc/gitignore/core/JetBrains.gitignore > .gitignore;cat /Users/ruglcc/gitignore/core/macOS.gitignore >> .gitignore;cat /Users/ruglcc/gitignore/core/Objective-C.gitignore >> .gitignore;cat /Users/ruglcc/gitignore/core/Swift.gitignore >> .gitignore;echo -e "\033[0;32m========================================\n ios项目gitignore文件写入成功!\n========================================\033[0m"'
同理java项目的也添加一行 ,(注意,要改成你自己的路径)
alias igjava='cat /Users/ruglcc/gitignore/core/JetBrains.gitignore > .gitignore;cat /Users/ruglcc/gitignore/core/macOS.gitignore >> .gitignore;cat /Users/ruglcc/gitignore/core/Java.gitignore >> .gitignore;echo -e "\033[0;32m ^_^! java项目gitignore文件写入成功!^_^\033[0m"'
source .bash_profile
如果没有报错,那么igjava,igios两条命令定义就成功了。
3.实践应用
1. 新建一个测试项目 pro1,初始化git以后,我们应用igios 命令,快速生成ios项目的.gitignore文件
[11:30:52] ruglcc:~ $ cd ~
[11:30:55] ruglcc:~ $ source .bash_profile
[11:31:05] ruglcc:~ $ mkdir pro1
[11:31:46] ruglcc:~ $ cd pro1
[11:31:50] ruglcc:pro1 $ git init
Initialized empty Git repository in /Users/ruglcc/pro1/.git/
[11:31:54] ruglcc:pro1 git:(master) $ ls -al
total 0
drwxr-xr-x 3 ruglcc staff 102 7 6 11:31 .
drwxr-xr-x+ 80 ruglcc staff 2720 7 6 11:31 ..
drwxr-xr-x 9 ruglcc staff 306 7 6 11:31 .git
[11:31:55] ruglcc:pro1 git:(master) $ igios
========================================
ios.gitignore 写入成功!
========================================
[11:32:00] ruglcc:pro1 git:(master*) $ ls -al
total 16
drwxr-xr-x 4 ruglcc staff 136 7 6 11:32 .
drwxr-xr-x+ 80 ruglcc staff 2720 7 6 11:32 ..
drwxr-xr-x 9 ruglcc staff 306 7 6 11:32 .git
-rw-r--r-- 1 ruglcc staff 4236 7 6 11:32 .gitignore
[11:32:13] ruglcc:pro1 git:(master*) $ cat .gitignore
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml ..
2. 同理 测试igjava 命令生成java项目的.gitignore,一条命令,瞬间搞定~~