はい。これを行うには、少なくとも2つの主要な方法があります。まず、ステージング領域を使用する必要はありません。ステージング領域を好きなだけ多く設定することができます。GIT_INDEX_FILE=/path/to/private/index
を設定してください。第二に、自分でコミットを直接構築することができます。それは難しいことではありません。
Gitのリポジトリコアは、blob、tree、commitオブジェクトを扱います(ここではあまり関係がありません、注釈と注釈付きタグ)。オブジェクトをダンプするgitコマンドはgit cat-file -p
です。
ブロブはちょうどbag-o-bitsです。 git hash-object -w
filename
でリポジトリに1つを追加すると、そのファイル内のブロブの〜真の名前〜を印刷し、そのブロブをレポに追加します。ツリーはオブジェクトをファイルシステム名に結びつけます。 git mktree
でリポジトリに1を追加します。何を餌にするかを知るために、例えば木を印刷する。 git cat-file -p HEAD^{tree}
。 git commit-tree
でリポジトリにコミット追加、基本的に、あなたはいくつかの環境変数を設定し、git commit-tree -p
mom
-p
dad sometree
を言うと、標準入力にメッセージをコミットし、それを養います。
これは本当に必要なすべてです。さらに細かくスライスしてダイシングして木にしたい場合は、とwrite-tree
が非常に便利です。これがすべてあなたにとって魅力的であれば、git core tutorialは良い概観です。
'commit 'の後にコマンドラインでファイル名を指定することもできます。 – Richard
@Richardこれは、未追跡のファイルをコミットしません。エラーメッセージ 'gitと判明したファイルは一致しませんでした。 ' –