我有一个父级目录:
Parent/
在里面有很多子git项目:
Parent/前端/react-01/.git
Parent/前段/react-02/.git
Parent/后端/django-01/.git
Parent/后端/java-01/.git
我把Parent放在GitHub上的,然后我clone到本地,比如我修改了Parent/前端/react-01
项目,可以只管理推送此项目吗?
git有个git submodule
和git subtree
功能,可以将多个子git
仓库通过一个父git
仓库整合起来,目录结构会变成(git submodule
为例)
Parent
.git/
.gitmodules
前端/
react-01/
.git/
react-02/
.git/
后端/
django-01/
.git/
java-01/
.git/
你可以分别只对一个仓库修改并提交,命令也没有变化,但是git submodule
相关的命令你们团队要学习,例如
git clone --recurse-submodules xxx
git submodule foreach 'git pull'
git submodule foreach 'git checkout branch'
某个子仓库react-02/
操作
cd react-02/;
# 修改文件
git add *.css
git commit -m 'xxx';
git push;
# 切换到abc分支
git checkout abc;
最后,还需要团队管理者管理.gitmodules
文件,里面记录了各个子模块的地址和分支信息等
没太理解你的问题,什么叫“只管理推送此项目”?
这么说吧,Parent/前端/react-01/
下发生的变更,只会被 Parent/前端/react-01/.git
追踪,而不会被 Parent/.git
追踪。推送也是推送到 Parent/前端/react-01/.git
所配置的远程源,推送不到 Parent/.git
的源上。
这种子目录下面还有 .git 的,叫 Git Submodule。git 也确实提供了相关命令,可以让你在父项目下直接操作子项目里的相关模块,但要注意这种操作仅仅是为了方便你、用不着 cd 到每个子项目底下再执行相关操作,并不意味着父项目会直接追踪这些变更。
https://git-scm.com/book/en/v2/Git-Tools-Submodules
https://git-scm.com/docs/git-submodule
不可以。子目录里的 git 会使它脱离上级目录的 git 管理。
看你的描述,也结合另外两位大佬回答,分析你给的目录结构,感觉你这既不属于submodules、也不属于subtree、更不属于menorepo,不然parent应该有自己的一份package.json的,所有你这所有的项目之间没有任何关系,不过你可以利用上述的三种方法改善自己的项目结构,这样就可以方便管理自己的项目了,当然每种方案都有优劣势,自己调查清楚后酌情采用。
Git目录 'Git目录'是为你的项目存储所有历史和元信息的目录 - 包括所有的对象(commits,trees,blobs,tags), 这些对象指向不同的分支. 每一个项目只能有一个'Git目录'(这和SVN,CVS的每个子目录中都有此类目录相反), 这个叫'.git'的目录在你项目的根目录下(这是默认设置,但并不是必须的). 如果你查看这个目录的内容, 你可以看所有的重要文件: $>tree
问题内容: 我正在为这样的linux / apache / php网络项目计划目录结构: 仅会暴露在apache中 在和目录将只在PHP路径。 为了使css和js文件在webroot目录中可见,我计划使用符号链接。 我尝试遵循以下原则: index.php是按组件和库进行布局的,而不是按文件类型进行布局的,而不是按“公共”或“非公共”布局的,这是一个例外,这是为了简化开发。 仅公开公共Web目录中
null 所以根据我的理解,我应该能够将现有的存储库拉到我的本地磁盘上,对文件进行更改,然后将更改推送到Git。有人能告诉我需要哪些命令来实现这一点吗?我们唯一的分支是:master,标记有“main”和“development”。这不是一个很大的项目,但是我们想要使用git进行版本控制。 谢谢你的提示。
问题内容: 我想使用两个Git存储库构建一个项目。其中一个包含源代码,而另一个包含构建和部署脚本。 我的问题是我需要一个用于构建和部署项目不同部分(大型项目,多个存储库,相同的构建和部署脚本)的存储库,但是Jenkins似乎无法处理此问题(或者我不知道)不知道/找不到方法)。 问题答案: 更新 现在不建议使用多个SCM插件,因此用户应该迁移到Pipeline插件。 旧答案 是的,詹金斯可以处理。只
问题内容: 我有一个Git存储库,其中包含一堆顶级Maven项目(每个项目都位于带有pom.xml的自己的子目录中)。这里的顶层意味着这些项目位于存储库根目录下的子目录中。所有这些项目应保留在相同的Git存储库中。 它们可以/应该由独立的詹金斯工作建立。因此,我们为projectA有一份工作,为projectB有一份工作。 以前使用Subversion,我能够为每个项目设置一个Jenkins作业,
我克隆了一些库到我的android的项目,一切正常,当我完成我的工作,我试图把它推到我的回购,但它给我的问题: 计数对象:1937,完成。增量压缩最多使用8个线程。压缩对象:100%(1839/1839),完成。写入对象:100%(1937/1937),27.24mib | 5.83mib/s,完成。总计1937(增量703),重复使用0(增量0)错误:RPC失败;结果=22,HTTP代码=413