2

まず、サブディレクトリ内の別のリポジトリ ソースを 1 つの大きなプロジェクトに誤ってコピーしました。それ以来、元のレポとサブディレクトリは両方とも変更されました。これで git-subtree の知識が得られました。元のリポジトリからの変更を簡単に同期できるように、サブディレクトリを実際のサブツリーとして作成したいと考えています。

「git-subtree split」を試してから、元のリポジトリから最新のソースを取得しましたが、うまくいきました。ただし、履歴全体は必要ありませんが、「--squash」は「分割」では機能しませんでした。これが私のコマンドです

git subtree split -P xxx-dir --onto==1940032
git remote add xxx https://github.com....
git fetch xxx
git subtree pull -P xxx-dir xxx master
# the pull worked, but whole history of xxx was imported too. '--squash' didn't work for above 'pull'

git subtree merge -P xxx-dir xxx/master --squash
# Can't squash-merge: 'xxx-dir' was never added. 

スカッシュは、追加されたが分割されていないサブツリーに対してのみ機能するように見えました。

何か案が?ありがとう。

4

2 に答える 2

0

それにかんする:

git subtree pull -P xxx-dir xxx master
# the pull worked, but whole history of xxx was imported too. '--squash' didn't work for above 'pull'

--squash を使用していないようです。それとも、WITH --squash と書いたのではなく、もう一度コマンドを試したと言いたいのですか?git subtree pull --squash -P xxx-dir xxx master

...そして関連:

git subtree merge -P xxx-dir xxx/master --squash
# Can't squash-merge: 'xxx-dir' was never added.

これはどのブランチから実行しましたか? チェックアウトした同じブランチからの変更をそれ自体のサブフォルダーにマージしようとしているようです。コマンドが失敗したため、マージできません。スカッシュが問題だと言っているのではなく、たまたまスカッシュ スタイルのマージが失敗しているだけです。

于 2014-03-06T08:23:09.013 に答える