63

GIT でバージョン管理された PHP フレームワークがあり、そのコアにいくつかの (抜本的な) 変更を計画しています。

私がやりたいことは、新しいブランチで新しいコアの作業を開始することですが、この変更にはファイルシステムの再構築も必要になる可能性があるため、この新しいブランチをできるだけきれいに開始したいと考えています。

クリーン ブランチにコア ファイルのみを含めたい。変更を終えているので、残りのモジュールをフレームワークから作業ディレクトリに 1 つずつ追加したいのですが、マスターで変更を行った場合はマージする機能を保持したいと考えています。

どうやってやるの?

4

3 に答える 3

129

祖先のない枝

--orphanフラグが必要です。例えば:

git checkout master
git checkout --orphan foo

# Unstage all the files in your working tree.
git rm --cached $(git ls-files)

祖先のないfooという名前の新しいブランチを作成しますが、コマンドを呼び出したときにいたブランチ (この場合はmasterブランチ) からの現在の作業ツリーを保持します。次に、作業ツリーを適切に変更し、コミットしてそのブランチの履歴を新たに開始できます。

ファイルの増分ステージング

履歴への増分追加を実行するにgit addは、コミットごとに必要なファイルのみをステージングするために使用します。git-add(1) マニュアルページには、ファイルを選択的に追加することについて次のように書かれています。

ファイルグロブ (例: *.c) を指定して、一致するすべてのファイルを追加できます。また、先頭のディレクトリ名 (例: dir/file1 と dir/file2 を追加する dir) を指定して、ディレクトリ内のすべてのファイルを再帰的に追加することもできます。

于 2012-07-14T22:52:22.920 に答える
-4

古いバージョンの git を使用する必要がある場合:

 mkdir some_dir
 cd some_dir
 git init
 echo a>some_file; git add some_file; git commit -m 'initial commit'
 cd ..
 git fetch ./some_dir/ master:new_independent_branch
 rm -rf some_dir
于 2014-09-02T06:18:42.297 に答える
-5

できることは、単に新しいブランチに移動し、git co -b my_new_branchコードをクリーンアップして必要なものを保持し、最後にコミットすることです。最初のコミットはmy_new_branchクリーンなものになります。

于 2012-07-14T22:44:50.523 に答える