3

私たちのプロジェクトには、'develop' と 'featureBranch' という 2 つの git ブランチがあります。featureBranch が develop からフォークされて以来、develop は多くのコミットで更新されました。ここで、featureBranch を開発にマージしたいと考えています。バグをテストするために、featureBranch をリベースして開発から最新のコードを取り込み、バグがなくても問題ないと判断しました。今、私がやりたいと思っていることは、develop をチェックアウトし、featureBranch を develop にマージすることです。

現在、featureBranch はチェックアウトされています。

私が抱えている問題は、開発をチェックアウトしようとすると、featureBranch にコミットされていない変更が失われるというエラーが表示されることです。featureBranch をコミットしようとすると、何も変更されておらず、コミットするものが何もないというエラーが表示されます。featureBranch でハード リセットを試みましたが、状況が変わったり、緩和されたりすることはありませんでした。コメントを入れるなど、ファイルにダミーの変更を加えた場合でも、コミットは、コミットする変更がないことを通知します。

私は立ち往生しているようで、この混乱から抜け出す方法について完全に迷っています.

基本的に、featureBranch の現在の状態を開発ブランチの新しい状態にしたいと考えています。私は featureBranch の寿命を終わらせ、すべてを開発ブランチに戻したいと思っています。

注: 私は Eclipse 用の eGit プラグインを使用しており、git のすべてのニーズにこのツールを使用する方法を学びたいと考えています。

4

2 に答える 2

2

このような一貫性のない動作はバグを構成し、実際、あなたの説明に一致するものが最新のEGitリリースで修正されました。

于 2013-03-07T10:55:44.683 に答える
0

Gitは特定のワークフローを強制しませんが、最初のステップを正しく実行し、分岐戦略を理解しました。使用しているプラ​​グインの正確な操作についてはよくわかりませんが、gitコマンドは多かれ少なかれGUIボタンに直接マップされると思います。Windowsでコマンドラインインターフェイスを使用するには:ソースコードの場所でエクスプローラウィンドウを開き、コンテキストメニューから[ここでgitbashを開く]を選択します。

最初に機能ブランチを更新します(リベース)

git checkout featurebranch
git merge develop
git commit

これで、featurebranchには、ブランチ開発に加えられたすべての変更が含まれます。すべての健全性チェックとテストを実行してから、マージして開発します。

git stash    # Keep the uncommited changes in case you need them later.
git checkout develop
git merge featurebranch    #will be a fast forward merge as everything have been merged in the step above
git commit
  • チェックアウトで問題が発生した場合は、ワークスペースに追加されたファイルが、チェックアウトしているブランチにも存在する可能性があります。

  • Eclipseでegitを使用してコミットする場合は、最初に変更をステージングして「git prespecive」を開き、変更されたファイルをダブルクリックしてステージングされた変更に移動してコミットする必要があります。

于 2013-03-07T12:21:24.863 に答える