EDIT:私はこの質問が以前に尋ねられたのを見る! git-svn: reset tracking for master適切な権限を持つ人がおそらくこれを複製として閉じることができます。Git-SVN mergeがトランクへの私のリンクを失った
私はgit-svnを使用しています。私は最近、SVNのブランチを追跡しているgitのブランチで作業を終えました。支店で働いているうちに、次の2つのコマンドを使用していました。
$ git svn rebase
$ big svn dcommit
すべてが順調でした。 gitの "master"はsvn/trunkを追跡していて、gitの "myBranch"はsvn/branches/myBranchを追跡していました。私はgitの
$ git checkout master
$ git merge myBranch
でローカルにすべてをマージした後、しかし、私は...押しに行って、そのマスターは、SVN /トランクにプッシュするだろうと想定しました。しかし、それはしませんでした。代わりに、 "マスター"は今svn/branches/myBranchにプッシュします。どういうわけか、 "myBranch"を "master"にマージすると、 "master"のトラッキングが変更されました。
私はおそらく、この間違ったをやっている - しかし、私は
$ git svn dcommit remotes/trunk master
...トランクに明示的に「プッシュ」しようとしたが、その構文が失敗し、今私はSVNで
$ Committing to http://<repo>/trunk ...
dcommitted on a detached HEAD because you gave a revision argument.
The rewritten commit is: b461234...
を持っていますトランクはまだ更新されません。
私はgitでマージして、それをSVNにプッシュしますか?私はガイドhereに従っていたので、通常のgit構文とマージできます。私がマージするブランチを追跡していない理由を説明しています。
私はコマンドラインと並行して使用するgit-towerも持っています。 "プッシュ"またはdcommitするためのドロップダウン内のすべてのリモートブランチを表示しますが、私はsvn/myBranchから選択を変更することはできません...おそらく私ができないことを示唆していますか? master
があなたのsvn
リモコンを追跡している場合
私が含まれているリンクによると、私は以下のことが誤解を招いていたと思う。限られているが、テキストがまだ機能することを暗示しているからだと思う....今、オペラブランチをトランクあなたのマスターブランチ)、通常のgitマージでそうすることができます。しかし、(-mを使って)説明的なコミットメッセージを提供する必要があります。そうしないと、マージで便利なものの代わりに "Merge branch opera"と表示されます。 –
git mergeを使ってこの操作を行っていても、MergeはSubversionよりもはるかに簡単です(Gitは自動的に適切なマージベースを検出するため)、これは通常のGitではありませんマージコミット。このデータを、複数の親を追跡するコミットを処理できないSubversionサーバにプッシュバックする必要があります。だから、あなたがそれを押し上げると、一回のコミットの下で別のブランチのすべての仕事を潰したような単一のコミットのように見えます。 –