假设我想在Git
源代码控制下放置两个现有文件夹。一个称为CurrentProduction
,另一个称为CurrentDevelopment
。以下步骤是否正确?
MyProject
的新文件夹
git init
CurrentProduction
内容移至MyProject
git add .
git commit -m 'initial master commit'
git checkout -b develop
MyProject
中的所有文件(当然.git文件夹除外)
CurrentDevelopment
内容移至MyProject
git add -A
git commit -m 'initial develop commit'
或者是否存在“不同”的方式?
答案 0 :(得分:0)
按照您描述的方式进行操作不会造成任何伤害。
您可以将.git
目录移动到要提交的树中,而不是将树移动到存储库。
您可以使用--work-tree
选项或GIT_WORK_TREE
环境变量,就像您这样做:
git add --work-tree=CurrentProduction -A; git commit ...
请注意,没有必要在add
之后为命令指定它,因为add
将内容复制到索引中,commit
使用索引,索引位于{{1} }。
作为一个单独的问题,请注意您的过程将使.git
初始提交成为develop
初始提交的子项。对于这个案子来说,这可能是正确的;我只是想确保你知道它不对称。
答案 1 :(得分:0)
这是一个好方法。
如果您使用git log
查看开发分支的历史记录,唯一可能的问题是您将当前生产项目状态作为最后一次提交(具有“初始主提交”的那个)。在语义上不完全正确。
如果烦恼,你可以首先做一个初步的空提交,哪个服务器作为两个分支的共同基础:
git init .
git commit --allow-empty -m "initial commit"
# add CurrentProduction content
git add .
git commit -m "initial master commit"
# checkout at the empty commit
git checkout -b develop HEAD^
# no need to delete any files!
# working tree is empty
# add CurrentDevelopment content
git add .
git commit -m "initial develop commit"