問題タブ [git-index]

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.

0 投票する
2 に答える
1056 参照

git - Git stash は追加された変更を削除します

開発中、私は定期的にファイルの作業バージョンを git リポジトリに追加します (コミットはしません)。それらのファイルをコミットできる段階に到達するまで、これらのファイルの作業を続けます。したがって、レポは次のようになります

を実行してgit stashから を実行するとgit stash pop

質問

  1. 以前のように git stash しないのはなぜですか?
  2. スタッシュ ポップを実行すると、新しい状態ではなく古い状態が取得されるように、変更を一度にスタッシュするにはどうすればよいですか?

現在、私は手動で行っています

これに関する問題は

  1. 隠してポップするには5つのステップが必要で、私は2を探しています
  2. 2 つの背中合わせの隠し場所があったことを覚えていないことがあり、これが作業を少し複雑にしています。

編集-テストサーバーで同様の方法で作業しているため、コマンドラインソリューションを好みます。

0 投票する
1 に答える
823 参照

git - マージ中に git index の内容はどのように変化しますか (また、マージが失敗した後のインデックスの内容はどうなりますか?)

s やs と同じように、インデックスに何がgit含まれているかについてはあいまいな考えがありますが、. 私は特に、マージが失敗した場合 (たとえば、何らかの競合が原因で) にインデックスが保持するものを知りたいと思っています。git-addgit-commitgit-merge

0 投票する
0 に答える
101 参照

git - ディレクトリで「git update-index --assume-unchanged」を元に戻す方法。「--no-assume-unchanged」が機能しない

利用した

そしてそれを期待した

そのコマンドを取り消します。しかし、「パス [ディレクトリ名] を無視します」と表示され、直接は引き続き無視されます。

私も試してみました

しかし、それもうまくいきませんでした。

私はやってみました

ディレクトリ内の各ファイルに対して、しかしディレクトリはまだ無視されています。

私はgitバージョン1.8.4.mysysgit.0を使用しています

ディレクトリを無視するのをやめさせる別の方法はありますか?

0 投票する
1 に答える
244 参照

git - ファイルの「git add」を不可能にすることなく、追跡されたファイルへの変更を無視する

プリアンブルをスキップしたい場合があります。


次の構造の npm パッケージがあります。

ソース ファイルは CoffeeScript ファイルです。ソース ファイルから JavaScript ファイルをビルドするための make ターゲットがあります。最近まで、各コミットに JavaScript ファイルへの変更を含めていましたが、現在は公開前スクリプトでxyzを使用しています。

公開前のスクリプトは簡単です。

これは、新しいリリースを公開するたびに (make release-patchたとえば を実行して)、lib/index.jsが再構築され、リリース コミットに追加されることを意味します。この時点まではすべて正常に動作します。


リリース スクリプトはコンパイル済みファイルを自動的に更新するため、コミットするたびに手動で更新する必要はなくなりました。問題は、 を実行した後make testlib/index.jsが変更された追跡ファイルとしてgit statusリストされることです。このファイルを誤ってコミットするのを避けたいので、.git status

最初に試したのは.gitignore/lib/への追加です。ただし、lib/index.jsは既に追跡されているため、これは機能しません。

それから私は発見しgit update-index --assume-unchangedました。このコマンドをlib/index.js引数として実行したところ、ファイルはgit status. ここまでは順調ですね。ただし、現在はgit add lib/index.js機能しなくなったため、prepublish スクリプトは機能しません。

prepublish スクリプトは の前に実行git update-index --no-assume-unchanged lib/index.jsできgit add、その後 でビットを元に戻すことができると思いますgit update-index --assume-unchanged lib/index.js。これは本当に最善のアプローチですか?

要約すると、ファイルに対する機能を保持しながら、追跡されたファイルへの変更を無視するにはどうすればよいgit addでしょうか?

0 投票する
1 に答える
133 参照

git - Git:削除されたファイルをインデックスからリセットする

  1. one.txtと の2 つのファイルを作成しますtwo.txt
  2. 両方のファイルをコミットします:git add -Agit commit -m "message"
  3. 編集one.txtしてインデックスに追加します。git add one.txt
  4. 削除two.txtしてインデックスに追加します。git rm two.txt

のみをコミットしたいので、インデックス one.txtからリセットする必要があります。どうやってするの?two.txt

git commit one.txt動作しますが、代わりに100ファイルになる可能性があるため、適用できませんone.txt

0 投票する
1 に答える
188 参照

git - git difftool によって生成される「lindex」、「rindex」、「wtindex」ファイルとは何ですか?

私が実行すると:

差分に表示されるファイルを含む一時ディレクトリを作成します。構造は次のようになります。

「左」と「右」のディレクトリは明確です。しかし、「lindex」および「rindex」ファイルとは何ですか? それらには何が含まれていますか?どうすれば表示できますか? 「rindex」ではなく「wtindex」ファイルが存在する場合があります。

0 投票する
2 に答える
4189 参照

egit - GIT ステージングとは何ですか? Add To Index と Add To GIT Index の違いは何ですか?

GibHub プライベート リポジトリを使用しています。私はそれについて十分な知識を持っていません。
Git ステージングとは Git Staging の目的は何ですか?
Git ステージングを使用する場合
Git Staging にファイルを追加するための 2 つの異なるオプションを見つけました。

  1. プロジェクト エクスプローラー --> チーム --> インデックスに追加
  2. チーム同期 --> Git インデックスに追加

どちらもファイルを Git Staging に送信します。次に、これら2つの違いは何ですか? ユーザーにとってどちらが良いですか?どちらもファイルを Git Staging に送信します。

ありがとう。

0 投票する
2 に答える
1584 参照

git - git index ファイルがバイナリなのはなぜですか?

私の Git ディレクトリ内のファイルのほとんどはプレーン テキスト ファイルです (圧縮されたルース オブジェクトとパックファイルを除く)。そのため、リポジトリが破損した場合は、ファイルを cat して編集し.git/HEADたり、リポジトリを検査したりできます。.git/refs/heads/master

しかし、これ.git/indexはバイナリ ファイルです。手で簡単に変更できるので、プレーンテキストファイルの方が便利ではないでしょうか?

Scott Chacon は、彼のプレゼンテーションで次の画像を示しています (スライド 278)。 スコット・チャコンによる索引

私の意見では、これはプレーンテキストファイルに簡単に入れることができます。

では、なぜプレーン テキスト ファイルではなくバイナリ ファイルなのでしょうか。

0 投票する
2 に答える
7037 参照

git - チェックアウトが時々ファイルをステージングするのはなぜですか?

checkout初めて Git を使い始めたとき、コマンドが非常にわかりにくいと感じました。しかし、Git のバージョン管理モデルに適応するにつれて、それが理にかなっているようになりました。今、同僚に Git を教えなければならないので、簡単に説明しようとしてcheckoutいます。簡単な説明があると思いました(ドキュメントから):

作業ツリーへのブランチまたはパスをチェックアウトします

これは、Git を初めて使用する人にとってはさまざまな一連の操作のように見える、チェックアウトで実行できるいくつかのことを統合しているようです。

...最後のものを除いて、それは作業ディレクトリを更新するだけでなく、ファイルをステージングするためです。

チェックアウトすると、作業ディレクトリにコピーされるだけでなく、何かがステージングされる理由または時期をどのように理解できますか?