問題タブ [git-patch]

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 投票する
1 に答える
26 参照

git - ハンク編集モードを使用した名前変更された属性のステージング

「git add -p」を使用して、コードの一部のみをコミットしようとしています。以下の diff では、「モデル」の名前を「sharedData」に変更します (したがって、モデル行を削除して、sharedData 行を追加します)。

複数の設定でコンテキストに不要な行を追加 (スペースを追加) しようとしましたが、「編集されたハンクは適用されません。」 が表示されます。

コンテキスト行の削除も機能しませんでした:

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

git - 履歴が変更されたリポジトリに git パッチを適用する方法は?

最近、私は SVN から git に移行しましたが、私のチームはすでに新しい git リポジトリで作業を開始しています。

後で、変換に関するいくつかの問題を発見し、いくつかの修正と履歴の書き換えを行って SVN から 2 つ目の git リポジトリを作成しました。

今、私はSVNリポジトリの2番目のgitコピーを持っています(私は満足しています)。最初のgitリポジトリで私のチームですでに行われた変更でパッチを適用したいと思います。

そのような目的のために、私はgitパッチを使用しようとしています:

  • git-format-patch --zero-commit --stdout > master.patchmaster最初の git リポジトリ に既に加えられた変更の単一ファイルを作成する
  • 2番目のリポジトリのファイルからコミットをgit-am適用する*.patchmaster

を指定--zero-commitします。パッチ ファイルのハッシュが間違っているためです。実際には 2 つの異なるリポジトリがあります。

問題は、パッチを適用しようとすると、次のようにgit am master.patchなることです。

適用中: %commit_name% エラー: パッチが失敗しました: readme.md:5 エラー: readme.md: パッチは適用されません パッチは 0001 %commit_name% で失敗しました 失敗したパッチのコピーは次の場所にあります: .git/rebase-apply/ patch この問題を解決したら、"git am --continue" を実行します。このパッチをスキップしたい場合は、代わりに「git am --skip」を実行してください。元のブランチを復元してパッチ適用を停止するには、「git am --abort」を実行します。

このパッチにコミットが 1 つしかなく、同じリポジトリに適用して同じコミットを取得したい場合でも、別のブランチに適用します。

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

git - Git 自動パッチ サブモジュール

サブモジュールを含む C++ プロジェクトがあります (読み取り権限しかありません)。初期は、サブモジュールではなく単なるコードのコピーでした。そして作業中に、このコピーは少し変更されました。では、各サブモジュールの更新後にこれらの変更を自動適用するにはどうすればよいですか?

それは本当に小さな変更ですが、それらを削除すると、コードを大幅に編集する必要があります。

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

xcode - libgit2: ハンクで特定の行をステージングする方法

特定のテキストを部分文字列として含む行のみをステージングできるようにする Mac アプリケーションを作成しています。基本的に、ソースツリーがユーザーに提供する機能を構築しようとしています。選択した行をハンクにステージングします。私の選択ロジックは、特定のテキストを部分文字列として含む行を選択することです。しかし、libgit2 でこれを実現する方法がわかりませんでした。

このようにレポを初期化しました

次に、以下のような作業ディレクトリへの差分インデックスを作成しています。

その後、以下のようなコールバック関数を使用して、ハンクと各ハンクの行を反復処理できます。

ハンクの各行に対してコールバックが呼び出されます。

今、どうにかしてパッチを作成し、差分に必要な行だけをパッチに追加する必要があることに気付きました。

誰でも正しい方向に導くことができますか? libgit2がまだこれを許可していない場合、これを許可できる他のライブラリはありますか? また、アトラシアンのソース ツリーは内部で libgit2 を使用しているようです。彼らはどのようにこれを実装できたでしょうか?

ところで、git CLI では、この回答に示されているように、パッチを適用してそれを行うことができます。 https://stackoverflow.com/a/32311872/569497