現在私たちはSVNから私の会社のGITに移行しています。1回のコミットでSVNとGITにコミットするには?
今後数ヶ月間、両方のリポジトリを同じにする必要があります。 私はSVNとGITのために私の仕事をコミットするコマンドまたは他の方法が必要です。
私はそんな方法ですか?
現在私たちはSVNから私の会社のGITに移行しています。1回のコミットでSVNとGITにコミットするには?
今後数ヶ月間、両方のリポジトリを同じにする必要があります。 私はSVNとGITのために私の仕事をコミットするコマンドまたは他の方法が必要です。
私はそんな方法ですか?
はい、そうです。 git svn
を使用する - gitとSVNの間で双方向の操作が可能です。
git commit
をgitにコミットし、git svn dcommitを使用してコミットをSVNにプッシュします。
dcommit
は、SVNにコミットを送信SVNのリビジョンを作成し、SVNとGitのを同期させるためにはgitにコミットをリベースので、あなたつもりプッシュは、いくつかのリモコンにローカルのgitリポジトリから最初の実行dcommit
を犯した場合。
他の誰かがSVNに新しいコミットを追加すると、git svn rebase
を使ってそれらをgitとrebaseにフェッチします。
この回答はOP質問に答えることさえしようとしません。彼は、GitとSVNを同時にコミットするための** one **コマンドを特に求めました。このリクエストはそれほど意味がありませんが、あなたの答えは、OPの後ではない通常のgit-svnワークフローを示しています。 ;-) – Vampire
実際にはこれはあまり意味がありません。リモートSVNリポジトリのローカルGitリポジトリにこのように無効にすることの多くの利点があるからです。しかし、本当にこれをやりたければ、あなたが望むことをする別名を作ってください。 E. git config alias.committoboth '!ctb() { git commit "[email protected]" && git svn dcommit; }; ctb'
し、git committoboth -m "my commit message"
のようなものを行うことができます。
代わりにhttps://subgit.com/をご覧になることもできます。より長い期間に複数のユーザーに対してGitとSVNをサポートする必要がある場合は、そのツールが指示するサーバー上で同期をとる方が良いかもしれません。
「1つのコミット」とはどういう意味ですか? svnのgitミラーを意味しますか? –
私は、2つ以上のコマンドを使用してそれを作ってはいけないことを意味しています。ちょうどsvnへのコミットごとに1つを使用します。 – roeygol