こんにちは。 開発の平形です。 初投稿になります。 Gitでcloneした後に、何かが足りなくてうまく動かない事がよくあります。 そして気づくのです。 あ、submoduleをクローンしてねーじゃん! ※submoduleについてはこちらの記事が参考になります。 このパターン何回目だよ! と自分が嫌になってしまいます。 そしていつも、
git の submodule、便利ですが安定してない(変更の多い)リポジトリに使うと 地獄です。 Submodule Hellです。 やばいです。 開発で変更が入りまくるリポジトリをうっかりsubmoduleにしちゃった! かなり開発して入り組んできたけどどうしよう…。 なぜsubmoduleが地獄になるのか? 更新が多いリポジトリはコミットが2箇所になって地獄 しかも変更がsha-1形式でしか分からなくて地獄 submoduleのクラス名・メソッド名等をリネームすると、親側もリネームが必要になって無駄に2回のコミットをしなくちゃいけなくて地獄。 さらに、親のコミットはコードの修正&submoduleの変更の取り込みも必要 submoduleの参照先同士が衝突した時、何が悪いのか探すのが大変すぎて地獄 いともたやすくsubmodule側が detached HEAD になって自分のコミッ
TLDR; git clone --recurse-submodules --shallow-submodules (But see caveat with Ciro Santilli answer) Or: record that a submodule should be shallow cloned: git config -f .gitmodules submodule.<name>.shallow true Which means the next git clone --recurse-submodules will shallow clone the submodule '<name>' (depth 1), even without the --shallow-submodules. What follows is the evolution of git submodul
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? SourceTreeというガッツリしたGUIクライアントができてから、「Gitはコマンド打つべし」という感じでもなくなりつつあるかなと感じている(現に、TortoiseSVNを使っているときにSVNのコマンドを意識したことはなかった)。 そんなわけで、ここではGitの詳しい説明は一切はしょりSourceTreeの操作にのみ焦点を当てて解説を行う。ただ、コマンドにも興味あるという方に備え、コマンドも併記しておく。 インストール こちらにアクセスしてインストール。 https://www.atlassian.com/ja/software/
gitで外部リポジトリを取り込んで利用するには、submodule(サブモジュール) とsubtree merging(サブツリーマージ)の2手法があります。 私の観測範囲内では、サブモジュールはよく利用されていますが、サブツリーマージは目にしません。 そこで、サブツリーマージを試してみての使い分けや思ったことをつらつらと。 大雑把な要点を最初に書いておく 外部リポジトリを外のものとして取り込むならサブモジュール 外部リポジトリを取り込みつつ、中のものとして手を加えていくならサブツリーマージ git初心者にはサブモジュール(異論ありそう) サブツリーマージ使ってみた github.com/marutanm/dotfiles 中身としては、よくある環境設定ファイル一覧です。 前提として、 tmux.conf(gistにおいていた) vim設定(githubにおいていた) zsh設定(gith
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く