将现有源代码文件夹添加到Local Git Repository中

时间:2011-12-03 18:06:26

标签: git git-add

假设我想在Git源代码控制下放置两个现有文件夹。一个称为CurrentProduction,另一个称为CurrentDevelopment。以下步骤是否正确?

  1. 创建一个名为MyProject的新文件夹
  2. git init
  3. CurrentProduction内容移至MyProject
  4. git add .
  5. git commit -m 'initial master commit'
  6. git checkout -b develop
  7. 删除MyProject中的所有文件(当然.git文件夹除外)
  8. CurrentDevelopment内容移至MyProject
  9. git add -A
  10. git commit -m 'initial develop commit'

或者是否存在“不同”的方式?

2 个答案:

答案 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"