gitlab 项目下存在多个工程文件夹,由于工程目录比较大
只需要检出Android相关的代码,而不检出嵌入式、web的代码。
操作步骤如下:
$ git clone -n https://yun.rangotec.com:8001/test/code_my.git # -n选项的意思是不要检出: -n --no-checkout -> don't create a checkout
$ cd code_my
$ git config core.sparsecheckout true # 配置稀疏检出
$ echo android_project >> .git/info/sparse-checkout # 配置仅检出 android_project 文件夹, 多层文件夹这样写: android_project/src
$ git checkout master # 检出
这样本地就只有android_project 这一个文件夹了。
如果要检出多个文件夹,以此类推:
echo web/code >> .git/info/sparse-checkout
echo web/img >> .git/info/sparse-checkout
然后执行检出命令,checkout 项目至本地。
本地创建仓库结构
git init 创建空白结构
git add ./* 添加
git commit -m "test co" 本地提交
添加远端信息
git remote add ttttt https://yun.rangotec.com:8001/aaa.git 添加远程, tttt通常起名为origin
git remote rm tttt 删除远程, 这里示例如何删除
git remote -v 查看
设置账号信息
git config --global user.name "lsw"
git config --global user.email "lsw@rangotec.com"
拉取代码
git pull ttttt master --allow-unrelated-histories # 允许不相干的代码,强行合并; 本地已有代码的情况下会出现。 通常做法是先从服务端拉取代码,然后再添加代码。
本地和服务端不相关, 但需要合并, 需要把服务端的拉下来; 如果服务端目录空,则此命令执行失败,找不到master, 这时候直接执行push即可。
//---------------- 本地合并代码(如有不同) ----------------------
.... 略 ...
推送本地代码到服务器
git push tttt master
这里没有用 -u 参数, 用了之后, 可以简写为 git push
通常可以通过配置autocrlf 和 saftcrlf 两个参数来解决;如下
1、autocrlf
// 提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
// 提交时转换为LF,检出时不转换
git config --global core.autocrlf input
// 提交检出均不转换
git config --global core.autocrlf false
2. safecrlf
// 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
// 允许提交包含混合换行符的文件
git config --global core.safecrlf false
// 提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
git config --global core.autocrlf false
git config --global core.safecrlf true