13

ファイルに残念ながら長い行が含まれているプロジェクトがあり、それらを短縮することはできません。そのようなファイルでも使用できれば、ワークフローを大幅に合理化できgit checkout --patchます。巨大な行全体に変更があると、その行に変更済みのフラグが付けられるため、これは機能しません。

通常、このような変更は を使用して検査しgit diff --word-diffます。checkout --patch同様のフォーマットで機能する可能性はありますか? 私たちの問題を回避する他の手段はありますか?

4

1 に答える 1

4

いくつか試した後、この回答が機能し、チェックアウトに使用する方法がわかりました。ときどき出力される警告を抑えるためにいくつかの追加の変更を行い、引数の解析を修正してもう少し柔軟にする必要がありました。(これは元々、引数が git コアによって前処理される配管スクリプトであるため、元のバージョンでは必要ありません)。

リンクされた回答で説明されているように、このバージョンのファイル(便利なようにリンクを保存するための生ファイル)を使用して、のどこかにコピーできPATHます。chmod +x path/to/fileダウンロード後、必ず実行可能ビット ( ) も設定してください。

提案どおりにファイルに名前を付けたと仮定するとgit-add--interactive--words、次のコマンドを使用してそのエイリアスを定義できます。

git config --global alias.cop add--interactive--words --patch=checkout

これで、次のようなことができます:

git cop HEAD~5のインタラクティブなチェックアウトを行います。(現在のディレクトリ) 5 コミット前、または
git cop master -- docs/READMEブランチ マスターからドキュメント/README をインタラクティブにチェックアウトする

もちろん、エイリアスには任意の名前を付けることができます (ここでは、「c 'heck' o 'ut --' p 'atch に「cop」を選択しました)。

私はこの答えが本当に遅いことを知っているので、もうあなたには当てはまらないかもしれませんが、この質問は長い間未回答のリストにあったので、今日それを理解する必要がありまし-多分他の誰かを助けるでしょう;)

于 2013-02-03T17:06:18.267 に答える