5

假设我有两个现有文件夹,我想将它们置于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'

还是有“不同”的方式?

4

2 回答 2

1
  • 按照您描述的方式进行操作不会造成任何伤害。

  • 您可以将.git目录移动到要提交的树中,而不是将树移动到存储库。

  • 您可以使用--work-tree选项或GIT_WORK_TREE环境变量来表现得好像您这样做了:

    git add --work-tree=CurrentProduction -A; git commit ...
    

    请注意,没有必要为之后的命令指定它,add因为add将内容复制到索引中,commit使用索引,并且索引位于.git.

作为一个单独的问题,请注意您的过程将使develop初始提交成为初始提交的子级master。对于这种情况,这可能是正确的;我只是想确保您知道它不是对称的。

于 2011-12-03T18:31:39.017 回答
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"
于 2011-12-04T18:23:19.043 回答