私のシナリオがありGitHubリポジトリと同等です。他のユーザーは排他的にSVNを使用していますが、私は唯一のgit + SVNユーザーです(これは単純化しています)。私はpullの前にgit svn dcommitを作ったのですが、どうすれば私のレポを修正できますか?</p> <ul> <li>私のローカルマシンのgitレポ</li> <li></li> <li>アンSVNサーバLAN</li> </ul> <p>SVNサーバ上のGitHub上のリモートはまだ正規のですが、保たれている:
私はgitを使用して、GitHubリポジトリを使用して自分のコミットをプッシュ/プルして、他のコンピュータ(例:ラップトップ、自宅、海外)で作業しています。私がオフィスに入るまで私のコミットはSVNに入れられません。新しくSVN-注釈を付けてバックのGitHubにgit push -f
続い
私はオフィスにいるとき、私は持っ-にするためにGitHubのからの新しいコミットその後、git svn dcommit
を行うgit pull
をやるには、GitHubのマッチにキヤノンになるコミット完全にSVN。
しかし、今日私のオフィスコンピュータにはコミット中のコミットがいくつかありましたが、非コミットコミットもありましたが、修正方法はわかりません。 anyhere任意のコマンドを実行する前に、私のレポはこのように見えた午前9時
今朝、:
o = Normal Git commit, lacking SVN annotation
* = SVN-annotated Git commit
GitHub
*---*---*---*---o---o---o---o---o
A B C D E F G H I
Local computer git repo
*---*---*---*---o---o
A B C D E F
SVN
*---*---*---*
A B C D
説明:私は、以前から引き出された私のローカルコンピュータのレポにあった2つのコミット、E
とF
を持っていましたGitHub、これらのコミットはまだdcommit
'd to SVNではありませんでした。
今朝私はローカルコンピュータ上ですぐにgit svn dcommit
を実行したので、最初にgit pull
を実行せずにミスを犯しました。 git svn dcommit
を実行すると、レポはこの状態に入る原因:彼らはコミットSVN-注釈付きであることをgit svn
によって変更されている(それは別のコミットハッシュを持っているので、E
とF
は今E'
とF'
であることを
GitHub
*---*---*---*---o---o---o---o---o
A B C D E F G H I
Local computer git repo
*---*---*---*---*---*
A B C D E' F'
SVN
*---*---*---*---*---*
A B C D E' F'
注意、同じコードベース状態を表すにもかかわらず)。私の元のE
とF
は、GitHubでは変更されません。
I
を通じて
E
をコミットし、GitKraken私は今
D
をコミットした後に発散サイド・バイ・サイド枝を持っているかを私に示していて
マイコンピュータはとにかくバックグラウンドでgit fetch
を行います
Local computer git repo:
*---*---*---*---*---* (master)
A B C D E' F'
\
\-o---o---o---o---o (remote-master)
E F G H I
どうすればこの問題を解決できますか? (Git-SVNの注釈付きコミットは事実上不変です)。
私はgit svn dcommit
を実行し、バックのGitHubにgit push -f
を行い、その後、私がやりたいことはF'
後の親の変更G
あるのでE
とF
を無視すると思います。
...問題は、私は復讐する方法を知らないG
- 私はcherrypick
のようなコマンドを見ているが、それは私が後になっているようには見えないし、GitKrakenは私をさせませんrebase
(それはメニューではありませんブランチremote-master
内のものはオプション)。