2016-05-23 6 views
0

私はsvnで以前働いていたgitとちょっと混乱しています。Git rebasing branch

私はメインブランチから引っ張り、自分のフィーチャーブランチを作成し、それに取り組み、ローカルに変更をコミットし、リモートにプッシュしてから、ブランチにジェンキンスとすべてのテストを渡しました。

一方、メインブランチは動いているので、私は開発をチェックし、最新の変更を取り出して、最新の開発コピーに対してブランチをリベースしました。

これは私の単体テストと統合テストが最新のコードのコピーに対して実行されたものであり、最新のコピーのコピーではないことを意味します。

チャレンジを私のリモートブランチに再度プッシュして、最新の変更を加えてテストを再実行できると思ったが、gitステータスにコミットするものは何もなく、作業ディレクトリがクリーンである。

なぜ私の支店は、私がテストを再実行するためにプッシュしたい開発に変更があることを認識しないのですか?

+0

"私は今チャネッグをリモートブランチにプッシュして、最新の変更を加えてテストを再開できると思っていましたが、コミットするものは何もなく、作業ディレクトリがきれいであると言います。 " - これは疑わしいと思う。変更をプッシュするには 'git push'を使います。コミットするものがないというメッセージは 'git commit'から来ます。間違ったコマンドを使用したようです。 –

+0

さて、私はgit statusを実行して、変更が含まれているかどうかを確認しました。 – berimbolo

+0

ローカルブランチとローカルブランチの関係に関する情報を表示するには、 'git status'を押すリモートブランチを追跡するようブランチを設定する必要があります。リモートブランチこれを行う方法の1つは 'git push -u -f'を実行することです。これはあなたの変更をプッシュし、リモートトラッキングを設定します。 –

答えて

2

リベースは変更を完全に書き換え、以前のコミットを新しいものに置き換えます。したがって、コミットするために何か新しいことはありません(古いコミットが変更されたため)。しかし、それらを再度CIシステムにプッシュできるはずです。

git push --forceを強制的にプッシュする必要があることに注意してください。 CIを実行したいフィーチャブランチの外では実行しないでください。そうしないと、他のチームメンバーに問題が発生します。

+0

ブランチ上のgitステータスが、現在ブランチにある開発用に追加された変更を表示しないのはなぜですか? – berimbolo

+0

'git status'は最新のヘッドとステージング領域と作業ディレクトリの違いを表示しますが、実際には' svn status'とほぼ同じです。ブランチにすでにコミットしているものについての情報は表示されません。 –

+0

ありがとう、私は今私の唯一の質問は本当に私は私の枝のプッシュを行い、最新のコードに対してジェンキンスのテストを再実行する必要があると思いますか? – berimbolo

関連する問題