問題タブ [git-add]
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.
terminal - 「バン」または「!」の意味は何ですか。git コマンドの前に?
この抜粋からわかるように、「!」があります。git コマンドの前。ポイントは何ですか?
- https://stackoverflow.com/a/8956546/1354543
エイリアスとコマンド自体が何をしているのかは理解していますが、「!」のポイントは理解していません。git コマンドの前。
git - インデックスに追加されたが、gitresetによって削除されたファイルを回復する
インデックスにいくつかのファイルを追加しましたが、誤って。で削除しましたgit reset --hard
。それらを回復するにはどうすればよいですか?何が起こったのか:
- を使用してすべてのファイルを追加しました
git add .
- それから私はコミットしました
- ステータスを確認したところ、追加からのコミットに含まれていないファイルがまだありましたが、これは奇妙でした
- 追跡されていないファイルを再度追加しましたが、今回は機能しました
- しかし、すべてを1つのコミットにまとめたかったので、コミットした内容をステージング解除する方法を調べました。
- 私が使用
git reset --hard HEAD^
しました—悪い考えです、明らかに、すべてのファイルが削除されました - だから
git reflog
私は中断したところを見つけていました - その後
git reflog ______
、最後のコミットに戻りました。 - その後
git reset HEAD
、コミットのステージングを解除していましたが(最初に実行する必要がありました)、コミット後に追加したファイル(上記を参照)はまだ残っていました。
これらのファイルを元に戻すにはどうすればよいですか?
git - git add*とgitadd。の違いは何ですか?
git動物にはこの一連のコマンドがありました:
(私が通常行う)git add *
と比較して何が同じですか?git add .
git - ステージングされた領域にファイルを追加すると、git はディレクトリ情報を保存しますか?
git add アクションに興味があるので、テストしてみます。
索引を作成する
いくつかの変更を行います
ファイルを取り戻す
私の疑問は次のとおりです。私がそうするとき'git add .'
、そこには1つのブロブしか作成されず、ディレクトリ「mydir」を記録するツリーは作成されません。では、どうすればgit checkout mydir/hello
ブロブを見つけることができますか?
git - git add --patchを使用するときに、次に一致するハンクを見つける
git add --patchの使用は、特にドキュメントを使用して、コミットする準備が整う前にロットを修正する必要がある場合など、ワークフローに非常に役立つことがあります。ふるいにかけるハンクが多数ある場合は、/を使用した検索機能が役立ちますが、毎回正規表現を再入力せずに、正規表現に一致する次のハンクを検索する方法は見つかりませんでした。それを行う方法はありますか?
git - -fでディレクトリを追加してもディレクトリ内の特定のファイルを無視する
ここでEli Barzilayが提案した方法で、ドットファイルをリポジトリに配置しました。
そこで、最終的に両方の長所を活かす解決策を見つけました。リポジトリをサブディレクトリに配置し、シンボリック リンクの代わりに、「core.worktree」をホーム ディレクトリにする構成オプションを追加します。ホーム ディレクトリにいるときは、git リポジトリにいるわけではなく (したがって、最初の問題はなくなりました)、2 番目のケースのように脆弱なシンボリック リンクを処理する必要はありません。バージョン管理したくないパスを除外するというちょっとした手間がかかりますが (たとえば、「.git/info/exclude」トリックの「*」)、これは新しいことではありません。
私の .git/info/exclude は次のようになります。
最初の行の*
はすべてのファイルを正常に無視するので、明示的にgit add -f
. ただし、これには、無視したいファイルがすり抜けてしまうという副作用があります。
を使用していても、特定のファイルを本当に無視するように git に指示する方法はありますadd -f
か?
git - 変更されていないファイルをコミットおよび/または追加する方法は?
変更したファイルが変更されたファイルとして表示されない場合があります。
そのファイルをまだコミットできますか?
変更されていないファイルとしてリストされているファイルを変更されたファイルに追加できますか? ありがとう!
更新: ファイルを追加しようとすると、端末に次のようなエラーが表示されます。
しかし、.gitignoreファイルを開くと:
および情報/除外
私のフォルダーパスとそのファイル名が.gitignoreに含まれておらず、ファイルを除外していると確信しています
git - 「git add -p」と「git checkout -p」のオプションを組み合わせたGITのコマンドはありますか?
ハンクを追加する、ハンクを破棄する、またはハンクをステージングしないままにするコマンドを1 つ発行したいと思います...
実際、私が知っているように、次のものしかありません:
git add -p
: ハンクをインタラクティブに追加します (またはステージングしないままにします)
git checkout -p
: ハンクをインタラクティブに破棄します (またはステージングしないままにします)
「git add -p」と「git checkout -p」のオプションを組み合わせたGITのコマンドはありますか?
ここで提供されるこの質問に対する答えは、まったく満足のいくものではありません:(
git - 初期化されていないローカルの空のリポジトリで「git add -A」を元に戻す方法 (ファイルをコンピューターに保持したまま)?
Git と Ruby on Rails の学習を始めたばかりで、Windows 7 マシンの cmd プロンプトから誤っgit add -A
てC:\Users\myusername
.
すべてのファイルが追加されましたが、Git でローカルに追跡されていません。明らかに、それらを削除したくありません。それらはすべて私のユーザー ファイルです。ただし、空のリポジトリであるため、追跡を解除して git をクリーンアップする方法が見つかりません。git status
およびgit log
応答は以下のとおりです。
git - git-scmブックとは異なり、Gitは以前にステージングされたファイルのステージングされていない変更をコミットします
本のセクション:
http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-the-Repository#Staging-Modified-Files
ファイルAを変更し、「git add A」を実行してから、ファイルAを再度変更し、このファイルに対して「git commit」を実行すると、以前にステージングされた変更のみがコミットされると言います。ステージングされていない変更をコミットするには-ファイルを再度追加してからコミットします。
ただし、いくつかのテストの結果、ファイルが最初にステージングされた後に行われた変更も含めて、gitはファイルAのすべての変更をコミットすることがわかりました。
誰かがこの問題に光を当てることができますか?ありがとう。
編集:私は-aオプションを使用していません「gitcommit A」にファイルを明示的に指定すると(-aオプションを使用していません)、ステージングされていない変更もコミットするようです。ファイル「gitcommit」なしでコミットすると、コミットメッセージを入力するように求められ、本で説明されているように動作します。