8

git を使用して、ローカル プロジェクトの一部として特定のフォルダーを保持できるようにしたい (ブランチなどで機能する) のに、このディレクトリをパブリック git サーバーにプッシュしたくありません。

問題のフォルダーには、プロジェクトが必要としない CLI Java の要素がいくつか含まれていますが、ライブになるブランチ作業と同期を取りたいと考えています。

これは可能ですか?

4

4 に答える 4

2

それらのファイルをまったく追跡する必要がない場合...

... gitにそれらを無視させることができます。

ローカルで追跡したい場合...

...しかし、リモートリポジトリにそれらを持っていないので、私が試したことのないヒント/アイデアを提供することしかできませんが、おそらく別のリポジトリを持つことになり、事態が少し厄介になる可能性があります.

私は(たぶん大丈夫からおそらくかなり面倒で悪い考えまで)見てみたいと思います:

  • ネストされたリポジトリ
  • プッシュ時に削除: (欠点: 履歴は一時リポジトリに対してのみ一致するため、おそらく適切に差分を取ることができないでしょう。もちろん、何らかの方法で差分をハックして、セットアップをさらに面倒にすることもできます。)
    • 手順:
      • プッシュする前に、リポジトリを一時フォルダーに複製します
      • 新しく作成されたクローン内の履歴全体からサブフォルダーを削除します (異なるコミット ハッシュを持つ別のリポジトリを取得します)。
      • 新しく作成したリポジトリをプッシュする
    • オプション: トリガー:
      • pre-push
      • 使用する代わりに手動で上記を実行しますgit push
    • オプション: 取り外し:

繰り返しますが、私はどちらも使用しておらず、それらの欠点や落とし穴なども知りませんが、サブツリー上記の中で断然最良の解決策であるように思えます。

残りのほとんどはにはかなり厄介に思えますが、結局のところ、重要なのはあなたにとって何がうまくいくかだけです.

お粗末なものを出荷しますが、出荷します。

...わさびで

于 2017-11-14T15:06:45.137 に答える
2

非常に短い答えはノーです。理由は次のとおりです。ローカルの git ブランチがサーバーにプッシュされると、例外なくそのままプッシュされます。コミットにはファイルが含まれているため、一部のファイルがプッシュされない場合、内部で git が台無しになります。この種の選択的な動作はサポートされておらず、サポートされることはないと思います。ほとんどの場合、そのようなものが必要なときに git を間違って使用しているからです。

ただし、多くの方法があります。

  1. 最初のものは、単純にレポに追加するだけです。あなたは明らかにそれを必要としており、バージョン管理したいので、私の観点からは、ファイルを git に追加するために必要なのはそれだけです。
  2. git-submodules を試すこともできますが、これによりリポジトリにファイルも追加されます。Java cli は別のリポジトリになり、元のリポジトリはバージョンを追跡します。
  3. そこに java-cli リポジトリを作成し、相互作用なしで 2 つだけを作成するよりも、サブフォルダーを無視するように git に指示できます。

プロジェクトに何かが必要な場合、それがJava cliであっても、リポジトリに属しているため、私は間違いなく1を使用します。

于 2012-06-15T21:32:00.280 に答える
0

パーティーに遅れましたが、質問はまだ良いです。必要なツールの半分だけを使用して展開の問題を解決しようとしています。目標を達成するには、展開チェーンで git と依存関係マネージャーの両方を使用する必要があります。

gitを使用すると、すべてのコードとCLI Javaのものをバージョン追跡できますが、DMを使用すると、CLI Javaのものは「dev」パッケージとしてマークされます。

本番環境にデプロイする場合は、すべての「dev」パッケージを除外する必要があります。

Java では適切なツールは Maven であるべきだと思います。PHP では Composer があり、Javascript で最も有名なのは NPM です。

私の2(遅い)セント

于 2021-05-26T07:16:54.513 に答える