Tys*_*son 13 javascript git git-submodules
我有一个Ruby on Rails项目(使用git版本化),其中包含许多公共GitHub存储库中存在的外部JavaScript依赖项.将这些依赖项包含在我的存储库中的最佳方法是什么(当然,除了手动复制它们之外),这种方式允许我控制它们何时更新?
git子模块看起来是完美的方式,但是当在几个分支之间切换时会导致问题,其中许多分支不包含相同的子模块.
如果git子模块是最好的方法,我想我真正的问题是:我如何在许多分支中使用子模块而不是一直遇到这个问题:
my_project[feature/new_feature?]$ git submodule update
Cloning into public/javascripts/vendor/rad_dependency...
remote: Counting objects: 34, done.
remote: Compressing objects: 100% (29/29), done.
remote: Total 34 (delta 9), reused 0 (delta 0)
Receiving objects: 100% (34/34), 12.21 KiB, done.
Resolving deltas: 100% (9/9), done.
Submodule path 'public/javascripts/vendor/rad_dependency': checked out '563b51c385297c40ff01fd2f095efb14dbe736e0'
my_project[feature/new_feature?]$ git checkout develop
warning: unable to rmdir public/javascripts/milkshake/lib/cf-exception-notifier-js: Directory not empty
Switched to branch 'develop'
my_project[develop?]$ git status
# On branch develop
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# public/javascripts/milkshake/lib/cf-exception-notifier-js/
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)
子模块的替代方法是子树合并策略。从该页面复制(它有更多信息,仅供参考):
\n\n\n\n\n在此示例中,假设\xe2\x80\x99s 表示您的存储库位于 /path/to/B(但如果需要,它\n 也可以是 URL)。\n 您想要合并主库该存储库的分支到当前分支中的 dir-B\n 子目录。
\n\n这是您需要的命令序列:
\n\nRun Code Online (Sandbox Code Playgroud)\n$ git remote add -f Bproject /path/to/B \n$ git merge -s ours --no-commit Bproject/master <2> \n$ git read-tree --prefix=dir-B/ -u Bproject/master\n$ git commit -m "Merge B project as our subdirectory"\n$ git pull -s subtree Bproject master\n
我个人觉得这很繁琐(我更喜欢子模块,即使有你提到的问题),尽管很多人都非常相信它。
\n 归档时间: |
|
查看次数: |
1044 次 |
最近记录: |