問題タブ [git-stage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 「git rebase」がステージと作業コピーに正反対の変更セットを残すのはなぜですか?
svn クライアントとして git-svn を使用しています。時々、次の問題に遭遇します。
ローカルの git ブランチでいくつかのコミット、空のステージ、クリーンな作業コピーから始めます。
Windows のコマンド ラインに「git svn rebase」と入力して、チームの変更を取得し、それらの後にコミットを配置して、線形の履歴を保持します (これは git-svn を使用するために必要です)。
すべてがうまくいき、チームのコンテンツが取得され、その後コミットがリベースされますが...
最終的に作業コピーが変更され、ステージでファイルが変更されます。作業コピーの変更は、ステージでの変更とは正反対です。
私は通常、ステージにあるすべてのものをステージング解除することでこれを回避します。これにより、作業コピーの変更が元に戻りますが、これは問題ありませんが、ここで何が起こっているのかを本当に理解したいと思います.
質問: それはバグですか、それとも git rebase で理解できないものですか?
注:後で「git svn fetch」と「git rebase」を使用しているときに問題が発生しました。
注: 私は大きな svn リポジトリ (10000 以上のファイル、150000 以上のリビジョン) を持つ Windows で git を使用しており、git-extensions も使用しています。編集:私はそれをリポジトリを探索してコミットするだけに使用します。Windowsコマンドラインから他のことをします。
編集:コメントの1つで要求されたように、問題を理解するのに役立つ2つのスクリーンショットを次に示します。1 つ目は作業コピーの内容で、2 つ目はステージの内容です。両方が正反対であることが簡単にわかります。
作業コピー:
ステージ (作業コピーの変更を元に戻す、非常に視覚的: 同じ画像、赤と緑が入れ替わる):
編集:非常に単純なケースで問題を再現しました:私のコミットは1つのファイルのみを変更し、「git svn rebase」中にフェッチされた新しいコミットはほとんどなく、変更されたファイルには影響しませんでした。「gitk --all」で確認しました。git-extensions や "git status" とまったく同じことを言っています。これが gitk の出力です。下から上に見ていきます。
- 最後の 3 行は、リベース時にフェッチされた 3 つのコミットです。それらのどれも私のファイルに触れません。
- 上から 3 行目は、リベース後の私のコミットを示しています。すべて問題ありません。追加すべきものを追加し、削除すべきものを削除します。
- 2 行目はインデックスの内容を示しています。コミットを元に戻す変更が含まれています。
- 最初の行は、作業コピーの内容を示しています。これには、私のコミットと同じ変更が含まれており、IE はインデックスの変更を元に戻します。
編集:.git
問題が発生した「git svn rebase」後の私のディレクトリの内容は次のとおりです。
編集:この問題を追跡することに興味がある場合は、git@vger.kernel.org メーリング リストに「[git-svn] [バグ レポート] git svn rebase 後にインデックスが奇妙な状態になる」という件名でバグを報告しました。
git - git diff中にファイル(または少なくともファイルのセクション)をステージングできますか?
git diff
ファイルをステージングする前に、すべてが正常であることを確認するためにを実行するのが好きです。差分を垂直方向にトラバースしている間、ステージングに「OK」である各ファイルのメンタルノートを作成します。特に長いdiffの場合、どれがOKかを追跡するのが難しいので、間隔を置いてdiffを終了し、できる限りステージングする傾向があります。これは少し面倒になります。
このワークフローを改善する方法はありますか?明らかに、そもそも差分を大きくするべきではありませんが、そのように機能しない場合があります(たとえば、多くのファイルで呼び出されるメソッドのメソッドシグネチャを変更するなど)。
たとえば、現在アクティブなgit diff
「セッション」の「トップ」から現在のdiffの現在のポイントまで、すべてをステージングすることは可能ですか?このようにして、diffを終了したり、思考の流れを失ったりすることなく、ステージングを続けることができました。
git - git ステージングされた変更を含むファイルを表示する方法
git diff --staged を使用すると、HEAD とステージングされた変更の間の変更を表示できます。
ステージングされた変更をコミットした場合、HEAD に存在するように完全なファイルを表示するにはどうすればよいですか? そこから特定の行のサブセットを表示するにはどうすればよいですか?
git - 「変更されていない」ファイルをステージに追加するGit
私が取り組んでいるプロジェクトでは、次のものを使用したいと思います。
いくつかのファイルをステージに追加します。問題は、これらのファイルが最後のコミットから変更されていないと Git が認識し、無視されることです。ただし、私は個人的にファイルを変更しましたが、Git はファイルを変更されていないと見なします。
その単一のファイルをリポジトリに「強制的に」追加するにはどうすればよいですか?
git - Smartgit/hg が変更されたファイルを一覧表示しない
私は SmartGit/Hg を使用しようとしています (Ubuntu Linux では、SourceTree が利用可能であることを望みます)。SmartGit のブランチを理解する前に、このハードルを乗り越えたいので、マスターにとどまるのは私だけです。
「メイン」ビューにあり、「ファイル」セクションを見ています。「変更されていないファイル」以外のすべての右上のボタンが選択されています。そして、変更したファイルが一覧に表示されません!
ただし、「変更されていないファイル」ボタンを選択すると、変更したファイルが表示され、選択できます。以下の「変更」セクションでは、「インデックス (ステージング状態)」と「HEAD (リポジトリ状態)」の間でファイルに変更があることがわかります。では、ファイルリストが変更されたことに気付かないのはなぜですか!!!
私を助けてください。適切なワークフローを実現するには、変更されたファイルのリストを表示して、ステージングするファイルを確認/選択してからコミットできるようにする必要があります。
設定を変更した可能性があり、どこにあるのかわかりません。このプログラムはまだ私にとって優れた GUI ではありません。1 つのプログラムのために Windows ラップトップを購入することを真剣に考えさせられます!
git - ギット。作業ディレクトリのステージングされた変更を元に戻し、ステージングされた領域はそのままにします
いくつかの変更をステージングしたとします。
ここで、変更 2 なしでプログラムをすばやくテストしたいと思います。これによりgit reset head -p; git stash
、変更 2 を完全に取り除くことができます。しかし、ステージングを解除したくありません。これは単なるテストです。後でコミットしたいと思っています。したがって、作業ディレクトリの変更 2 からの変更とは逆の変更を行いたいと思います。結果は次のようになります。
どうすればこれを達成できますか?
git - git の最後のコミットを元に戻す方法はありますが、変更をステージングされていないままにしますか?
私はコミットしましたが、今は私がすべて変更したものを見るのはちょっと難しいです. もちろん、git diff を実行することもできますが、IDE (PyCharm) が変更されたファイルを簡単に表示できるように、最後のコミットを元に戻し、すべての変更をそのまま維持したいと考えています。
最後のコミットを元に戻す (実際に削除する) 方法はありますが、変更をそのまま維持する方法はありますか? すべてのヒントは大歓迎です!
git - git 削除されたファイルを元に戻す
私はgitが初めてです。リモートからファイルをチェックアウトしています。git リポジトリからいくつかのファイルを削除する必要がありました。コマンドを実行する代わりに、git rm
unixrm -rf folder
コマンドを発行しました。削除コマンドを元に戻してからコマンドを実行する必要がありますgit rm
。最新のコードに戻すには?
注: ステージングされたファイルはまだコミットしていません。アウト アウトはgit status
、以下の形式で削除されたファイルのリストです。
git - Git:ステージングされた同じ行を「再ステージング」する方法は?
変更された行のいくつかを でステージングしましたgit add --patch
。
後でこれらの行を変更しました。
で再度選択せずに同じ行をステージングするにはどうすればよいgit add --patch
ですか?