問題タブ [git-submodules]
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.
git - gitでサブモジュールを使用するための正しいアプローチを見つけようとしています
サブモジュールを git で適切にセットアップしようとしていますが、正しく使用できるようにしたいと考えています。
というメインリポジトリがありますMyProject
。コードで生成されたすべてのデータ アクセスを含むData
. Data
のサブモジュールとしてセットアップしたいMyProject
。
Data
スキーマの変更または小さなバグ修正がない限り、変更されることはめったにありません。
MyProject
スキーマの変更が必要な新しい機能を追加するとします。MyProject
通常、 calledのブランチを作成NewFeature
し、master とマージする準備が整うまで、そこにすべての変更をチェックインします。また、変更がマージされる準備が整うまで、Data
スキーマの変更が分離されたままになるように、ブランチを作成したいと考えています。Master
これに適したワークフローは何ですか、または 1 つでもありますか?
ありがとう!
git - 追跡されていないコンテンツを追跡する方法は?
私の元の質問については、実線の下を参照してください。
ローカルディレクトリに追跡されていないフォルダがあります。実行するgit status
と、次のようになります。
入力してから再git add vendor/plugins/open_flash_chart_2
試行git status
すると、まだ追跡されていないと表示されます。どうしたの?
これが私の最近の30分の簡単な要約です:
Githubリポジトリが
vendor/plugins/open_flash_chart_2
プラグインを追跡していないことを発見しました。具体的には、コンテンツがなく、フォルダアイコンに緑色の矢印が表示されています。試してみました
/li>git submodule init
試してみました
/li>git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2
/li>git status
リポジトリ/ローカルディレクトリで名前が付けられたファイル
.gitmodules
を探しましたが、見つかりませんでした。
gitが適切に追跡を開始できるように、サブモジュールを機能させるにはどうすればよいですか?
git commit -a
これは無関係かもしれませんが(役立つ場合に備えて含めます)、通常ではなく入力するたびにgit commit -m "my comments"
エラーが発生します。
私はGithubの完全な初心者であり、ドキュメントを調べようとしているにもかかわらず、これらの特定の問題に少し困惑しています。ありがとうございました。
git - Gitサブモジュールとしての単一ファイル
Gitリポジトリ間で共有されるコードのベストプラクティスを確認しようとしています。
これまでのところ、私は明らかに、それらが-ほぼ-法案に適合しているように見えるサブモジュールに出くわしました。私のプロジェクトは、単純な構造のPHPMVCフレームワークです。
- /アプリ
- core.php
- /芯
app
アプリケーション固有のコントローラー、モデル、ビューなどを含むフォルダーはどこにありますがcore
、ログインコントローラーなどの一般的な用途のものが含まれています。core.php
ファイル自体は、すべてのリクエストのグローバルハンドラーです。
そのため、このMVCフレームワークのすべてのデプロイメント間で共有されるコードはとcore.php
ですcore
。
core
Gitサブモジュールに変換する方法はわかりますが、できませんcore.php
。
これも可能ですか?フォルダー全体をサブモジュールにできるようにcore.php
、フォルダー内にあるフレームワークを再構築する必要がありますか、それともより良い方法がありますか?core
git - サブモジュールではないパスの .gitmodule にサブモジュール マッピングが見つかりません
サブモジュールを持つプロジェクトがありますlib/three20
私の.gitmodule
ファイルは次のようになります。
過去にこれをエラーなしで複製しました (git submodule init
その後に a git submodule update
)。しばらくの間動作しています。
これを新しいマシンに複製しようとしましたが、次のエラーが発生していますgit submodule init
:
そのパスは、他のディレクトリからのプロジェクトを格納するために使用する Xcode の単なる空のフォルダーです。ファイルの一部では.gitmodules
ないため、このパスがどこから取得されているのかわかりません。
何か案は?
git - さかのぼって --recursive を git リポジトリに追加する
を使用している場合git clone
は--recursive
、すべての git サブモジュールも取得できます。
クローン作成時にこの魔法のフラグを追加するのを忘れた場合、起こりうることですが、どうすればサブモジュールを取得できますか?
さらに、将来のクローンのデフォルトとして再帰フラグを設定するにはどうすればよいですか?
perl - Perl モジュールをアンインストールするにはどうすればよいですか?
Linux マシンにいくつかの Perl モジュールをインストールしました。入力するperldoc perllocal
と、自分のマシンにインストールされている Perl モジュールのリストが表示されますが、これらの Perl モジュールは不要になったので、削除したいと思います。
Linux (debian 2.6.26) にインストールされているモジュールをアンインストールまたは削除する方法を知っている人はいますか?
git - Gitでサブモジュールを移動する
最初にサブモジュールを削除して再度追加せずに、スーパープロジェクト内でサブモジュールを移動する方法はありますか?
git - 作業ツリーをgitサブモジュールと共有する
Common
スタンドアロンで使用でき、プロジェクトP1
やで使用されるライブラリがあるとするとP2
、必要なツリーは次のようになります。
に変更を加えるときは、コミットする前にを使用し/Common
てテストできるようにしたいと思います。通常のコマンドセットでは、からコミットし、リモートにプッシュしてから、との両方からプルする必要があります。コミットが何かを壊した場合、悪い変更はすでに公開されているため、修正することはできません。または、リモートサーバーに触れずにプルできるようにすることもできます。しかし、これには矛盾の可能性がたくさんあり、壊れたコミットを削除してで修正できるようにするのは汚いです。P1
P2
git submodule
/Common
/P1/Common
/P2/Common
git remote add quicktest /Common
/P?/Common
/P?/Common
/Common
開発中は、作業ツリーをと/Common
で使用したいのですが、シンボリックリンクがディレクトリとは異なるものとして認識されるため、シンボリックリンクを作成できません。ディレクトリのハードリンクは、ほとんどのファイルシステムでは許可されていません。を使用してすべてのファイルをハードリンクできますP1
P2
/P1/Common
/Common
git submodule
これは、新しいファイルが追加されるまでは非常にうまく機能します。追加さ/Common
れた場合は、このプロセスを繰り返す必要があります。両方にエレガントな方法はありますか
git clone --recursive git://remote/P1.git
エンドユーザーのために働き続け、そして- との
/Common
作業の変化を簡単にテストできますか?P1
P2
git - Git: マージとサブモジュール
RepoX に BranchA と BranchB という 2 つのブランチがあるとします。RepoX には SubmoduleY というサブモジュールもあります。
BranchA にはリビジョン 'abc' に SubmoduleY があり、BranchB にはリビジョン 'def' に SubmoduleY があります。
BranchA を BranchB にマージしたいが、BranchB の SubmoduleY は元のリビジョンの 'def' を指しているままにしたいとします。これを行うにはいくつかの方法があります。
方法 1:
- BranchB をチェックアウトします。
- SubmoduleY をリビジョン 'abc' に移動して、実際のマージを簡単にします (現在、サブモジュール レベルでのマージは行いたくありません)。
- SubmoduleY の新しいリビジョンをコミットします (マージのためにフローティングにすることはできません)。
- BranchA を BranchB にマージします。競合を解決します。
- SubmoduleY をリビジョン 'def' に戻します。
- SubmoduleY の新しいリビジョンをコミットします。
- 変更をメイン リポジトリにプッシュします。
方法 2:
方法 1 と同じですが、ステップ 6 を実行する代わりに、リベースしてステップ 3 の余分なサブモジュール コミットを取り除きます。
どちらにも厄介な欠点があるようです。
方法 1 は、2 つの余分なコミットを履歴に入れます。
方法 2 では、サブモジュールのリビジョンに関係するすべての変更が忘れられます。これらのコミットは削除されるためです。したがって、その後のマージでは、いくつかの問題に再び対処する必要があります。
より良い方法はありますか?
git - ネストされたGitリポジトリを処理する方法
vimの設定をgitと共有したいと思います。しかし、いくつかのvimプラグインはgitリポジトリからインストールされます
このようなディレクトリ
リポジトリを最小にしたいので、gitにxxxx / .git yyyy / .gitを追加したくありません。追加しないと、クリーンフェッチにxxxx / .gitが含まれないため、xxxxとを更新できませんでした。 yyyy。
どうすればうまくできますか、ところで、1つのコマンドでconfig、xxxx、yyyyを更新できますか?