5

Gitソース管理下に置きたい 2 つの既存のフォルダーがあるとします。1 つが呼び出されCurrentProduction、もう1 つが呼び出され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ため、コマンドに指定する必要がないことに注意してください。addcommit.git

develop別の問題として、プロシージャによって初期コミットが初期コミットの子になることに注意してくださいmaster。この場合、それはおそらく正しいことです。私はあなたがそれが対称的ではないことを知っていることを確認したいだけです。

于 2011-12-03T18:31:39.017 に答える
0

それは良い方法です。

開発ブランチの履歴を見るとgit log、現在の本番プロジェクトの状態が最後のコミット (「初期マスター コミット」のあるもの) になるという唯一の問題があります。これは意味的に完全に正しくありません。

それが気になる場合は、2 つのブランチの共通ベースとしてサーバーを提供する最初の空のコミットを最初に行うことができます。

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 に答える