我是电子产品设计师,我的项目包括各个部分,如:
我有一个主项目文件夹,以及单独子文件夹中的每个部分。
现在我正在使用GIT,我为项目的每个方面创建了一个新的仓库。为了我的缘故,我使用GitExtensions / SourceTree来避免键入GIT,并为我的更改历史记录提供可视GUI。 对于每个项目,我有2到7个不同的回购,用于与之相关的每个方面。它认为这不是要走的路,我想在一个“容器”中统一所有内容,同时为每个方面保留不同的历史。
Here建议使用单个回购,并将不同的部分保存在不同的文件夹中。但我认为这将成为一条历史路线。
Here建议为每个部分创建一个repo和孤立分支。但是每次我提交时,我都必须确定我是否在正确的分支上。 他还建议使用不同的repos并推送到同一个遥控器,但这需要为每个repo打开不同的GIT GUI实例。
我对GIT很新,所以我的结论可能不对。
我想为项目创建一个开放的GUI,所有具有“并行”历史的部分,如果我在HW上进行更改,当我进行提交时,它将在HW历史记录行中完成,或者如果我进行SW更改,则可以将其提交给SW历史记录行。所有这一切都没有检查分支的麻烦,或者有多个GUI实例。
这种可能吗?
谢谢!
PD:也许有更好的方法来组织项目。我也想听听其他解决方案。答案 0 :(得分:0)
只需将您的所有文件提交到单个仓库(全新的仓库或将所有文件添加到现有仓库中)。
您可以轻松查看单个子目录的历史记录:
git log THE_DIR
或者显示更改,而不仅仅是提交消息:
git log -p THE_DIR
答案 1 :(得分:0)
您可以使用孤立分支和子模块进行操作。这有点复杂,所以你可能想要真正检查你对每个部分有不同历史记录是否重要的假设。但是如果你想设置它,你可以这样做:
git init
git checkout --orphan master-a
# ... commands to set up the content for project part A in your working tree
git add .
git commit -m "init part A"
git checkout --orphan master-b
# ... commands to set up the content for project part B in your working tree
git add .
git commit -m "init part B"
git checkout --orphan master
rm -rf *
git submodule add -b master-a --name part-a -- ./ a-directory
git submodule add -b master-b --name part-b -- ./ b-directory
但是,我不能说任何给定的UI工具与子模块交互的无缝性。但这确实为每个部分提供了独立的历史记录,同时将所有内容存储在一个仓库中,但是默认分支构建了整个项目的工作树。