git单独针对一个仓库实现子目录提交修改
admin
2023-03-17 21:41:17
0

项目组有个需求:目前我们线上代码都是git 仓库托管的,开发和前端都需要对仓库中的js目录中的文件进行修改,为了避免冲突,想到了把仓库中的子目录分离开来,让前端工程师可以提交到git 仓库。以前是通过ftp进行更新,会有很多问题。更改了这种方式会提高工作效率

git和svn对比:

svn是基于文件方式的集中存储,Git却是基于元数据方式散布式存储文件信息的,它会在每次Clone的时候将所有信息都取回到本地,即相当于在你的机器上生成1个克隆版的版本库,既然本地有了完全的版本库,肯定就有所有权限了,所以也就没办法针对子目录的进行权限控制了。

实现:

git从1.7.0开始支持sparse clone,sparse clone也只是1个变通的方法:先拿到全部repository的object等元数据信息,然后在本地加1个叫.git/info/sparse-checkout的文件(即黑名单、白名单,支持正则,参见下文具体操作命令)来控制pull那些目录和文件(类似.gitignore文件,都是本地的概念),变通的实现git只clone仓库中指定子目录和文件

步骤:

1.在本地创建一个目录,用于提交代码

mkdir test


2.初始化仓库

git init


3.拉取远程仓库的objects信息

git remote add -f origin git@code.aliyun.com:test/test.git

4.开启sparse clone

git config core.sparsecheckout tr

ue

5.设置需要pull的目录 *表示所有

echo "develop"  >>.git/info/sparse-checkout
echo "web/assets/*"  >>.git/info/sparse-checkout

6.拉取远程仓库

git pull origin master

7.查看

ll assets/
total 4
drwxr-xr-x 1 Administrator 197121 0 七月 10 10:51 css/
drwxr-xr-x 1 Administrator 197121 0 七月 10 10:51 img/
drwxr-xr-x 1 Administrator 197121 0 七月 10 10:51 js/
drwxr-xr-x 1 Administrator 197121 0 七月 10 10:51 lib/

8.本地测试提交

touch test.txt
echo "this is a test"
git add .
git commit -m "test"
git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 331 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To code.aliyun.com:test8/test.git
037b8ec..317b2a2  master -> master

参考文档:http://www.wfuyu.com/technology/25144.html


相关内容

热门资讯

ICC逮捕令致内塔尼亚胡出行受... 【环球网报道】据以色列《新消息报》网站26日报道,由于国际刑事法院(ICC)2024年就以色列在巴勒...
“罗永浩怒斥电视机厂商”戳中了... 7月25日晚,罗永浩发文怒斥当下电视机的产品设计。据都市快报报道,罗永浩表示,他为家中老人换了两次电...
各地各部门坚持人民至上筑牢防汛... 新华社北京7月25日电 题:风雨同舟映初心——各地各部门坚持人民至上筑牢防汛抗洪坚实堤坝新华社记者当...
法院回应LV起诉地产开发商 7月26日,厦门市湖里区人民法院发布情况通报,网传案情“路易威登公司起诉地产开发商,因楼盘外立面四叶...
携程的问题不仅在于垄断,更在于... 国内平台科技企业一般都是通过向B端收费、抽佣获利,尽量给消费者创造一个比较清爽的使用环境。携程算是最...
海信电视用遥控器关闭后打不开 原因可能是遥控器的电池没有装好或者是没电了,需要重新安装一下电池或者更换新的电池试一试;原因可能是电...
电视机突然没电源打不开了 有可能是电视开关的电源线断了;可能是电视在使用时短路;可能是电源插头插座松动;可能是电视内部零件接触...
电热水器下面那个小龙头漏水是怎... 电热水器下面那个小龙头漏水是怎么回事?1、因为安全阀发生了故障或者是已经被损坏了,就会有漏水的现象;...
回答下电脑桌面一片空白怎么恢复 电脑桌面上如果是一片空白,那说明您的电脑图标被隐藏了,想要恢复就要按照如下的三个步骤去操作才行。 第...
澳总理要找特朗普“理论”关税:... 当地时间7月26日,澳大利亚总理阿尔巴尼斯表示,他将直接向美国总统特朗普提出抗议,反对美国新近宣布的...