[解決済み】gitで新しいファイルの一部だけをステージする方法は?
2022-04-02 01:19:51
質問
I 愛 git add --interactive . 今では、私の毎日のワークフローの一部になっています。
問題は、追跡されていないファイルでは動作しないようです。私がやりたいのは、新しいファイルを追跡し、その一部だけを追加することです。つまり、この新しいファイルの一部はまだステージングする準備ができていません。
例えば、git add -i では、patch オプションを選択し、さらに個々の hunk を編集して、新しいコードの一部をステージングし、デバッグコードのコメントをステージングしないままにすることができます。この方法で作業すると、現在作業中のメガパッチのどの部分にまだ作業が必要なのかが一目瞭然になるので、とても気に入っています。
残念ながら、追跡されていないファイルでは、同じことができないようです。ファイル全体をステージにするか、何もステージにしないかのどちらかです。私が使ってきた回避策は、新しいファイルが空のときにステージング、あるいはコミットし、それから通常の方法で個々の変更をステージングすることです。しかし、この解決策は汚いハックのように感じられ、私が忘れたり、気が変わったりすると、必要以上に多くの問題を引き起こします。
そこで質問ですが、新しいファイルの一部だけをステージングして、この新しいファイルが追跡されるようにしつつ、そのコンテンツの全体または一部をステージングしないようにするにはどうしたらよいでしょうか?
解決方法は?
あれ、これって
update-index
と
hash-object
ビジネスが複雑になりすぎているような気がします。 代わりにこんなのはどうでしょう。
git add -N new_file
git add -i # or 'git add -p' if you prefer
から
git help add
:
-N, --intent-to-add
Record only the fact that the path will be added later. An entry
for the path is placed in the index with no content. This is useful
for, among other things, showing the unstaged content of such files
with git diff and committing them with git commit -a.
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] git rebase fatal: 必要なリビジョンは1つです。
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
gitコミット発生 ! [リモート拒否] master -> master (pre-receive hook declined) 解決策
-
[解決済み] git: fatal: リモートリポジトリから読み取れませんでした。
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] "would clobber existing tag "を取り除くには?
-
[解決済み] GitHubです。パーミッションが拒否されました (公開鍵)。
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] Gitのエラー「object file ... is empty」はどうすれば直せますか?
-
[解決済み] Gitのプッシュエラーです。Unable to unlink old (Permission denied)です。