相关疑难解决方法(0)

如何在git子模块中"提交"更改?

在我天真的时候,我已经设置了一个git子模块并将其视为Subversion外部 - 即它现在充满了我刚才意识到的未经提交或推送到任何地方的变化.

是否有一些简单的方法将子模块更改提交/推送回上游存储库?Git推荐的技术是什么,以这种方式在单独的(但链接的)存储库上同时进行开发?

git git-submodules

237
推荐指数
4
解决办法
17万
查看次数

git子模块更新

我不清楚以下是什么意思(来自git submodule update docs):

...将使子模块HEAD分离,除非--rebase--merge指定...

怎么--rebase/ --merge改变事情?

我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).

  • 从这些子模块中,我可以创建分支/修改并使用推/拉,就像我在常规回购中一样,或者有什么需要谨慎的吗?
  • 我如何将子模块引用的提交从say(tagged)1.0提升到1.1(即使原始repo的头部已经是2.0),或者选择使用哪个分支的提交?

git git-submodules

233
推荐指数
4
解决办法
23万
查看次数

SVN:外部相当于Git?

我使用svn:externals从另一个SVN存储库中使用了两个SVN项目.

我怎样才能在Git中拥有相同的存储库布局结构?

svn git

167
推荐指数
3
解决办法
7万
查看次数

git子模块跟踪最新

我们正在将我们(巨大的)项目转移到git,我们正在考虑使用子模块.我们的计划是在超级项目中有三个不同的头:发布,稳定,最新.项目负责人将处理释放和稳定的分支机构.他们将根据需要移动子模块.

问题是"最新"头.我们希望超级项目"最新"头部跟踪所有子模块的主分支(自动).如果能够显示子模块的所有提交历史,那也很棒.

我看过gitslave,但它不是我们想要的.有什么建议?

git git-submodules git-track

130
推荐指数
1
解决办法
8万
查看次数

具有多个项目的服务器的GIT存储库布局

我喜欢Subversion设置的方式之一就是我可以拥有一个包含多个项目的主存储库.当我想在一个项目上工作时,我可以查看该项目.像这样

\main
    \ProductA
    \ProductB
    \Shared
Run Code Online (Sandbox Code Playgroud)

然后

svn checkout http://.../main/ProductA
Run Code Online (Sandbox Code Playgroud)

作为git的新用户,我想在提交特定工作流程之前探索该领域的一些最佳实践.从我到目前为止所读到的,git将所有内容存储在项目树根目录下的单个.git文件夹中.所以我可以做两件事之一.

  1. 为每个产品设置单独的项目.
  2. 设置单个大型项目并将产品存储在子文件夹中.

产品之间存在依赖关系,因此单个大型项目似乎是合适的.我们将使用一个服务器,所有开发人员都可以共享他们的代码.我已经通过SSH和HTTP工作了这部分我喜欢的部分.但是,SVN中的存储库已经有很多GB的大小,因此在每台机器上拖动整个存储库似乎是一个坏主意 - 特别是因为我们需要承担过多的网络带宽.

我想,Linux内核项目存储库同样大,所以必须有一个正确的方法来处理这个用Git,但我还没想到它.

是否有使用非常大的多项目存储库的指南或最佳实践?

git

95
推荐指数
1
解决办法
6万
查看次数

灵活与静态分支(Git vs Clearcase/Accurev)

我的问题是关于Git处理分支的方式:无论何时从提交分支,此分支都不会从父分支接收更改,除非您通过合并强制它.

但是在其他系统如Clearcase或Accurev中,您可以指定分支如何填充某种继承机制:我的意思是,使用Clearcase,使用config_spec,您可以说"获取在分支/ main/issue001上修改的所有文件"然后继续使用/ main或具有此特定基线的那些".

在Accurev中,您还有一个类似的机制,让流可以从上层分支(流如何调用它们)接收更改,而无需在分支上合并或创建新的提交.

使用Git时不要错过这个吗?你能枚举这种继承是必须的场景吗?

谢谢

更新请阅读下面的VonC答案,以实际关注我的问题.一旦我们同意"线性存储"和基于DAG的SCM具有不同的功能,我的问题是:哪些是真实生活场景(特别是对于OSS以外的公司),线性可以做DAG无法做到的事情?他们值得吗?

git version-control accurev clearcase

31
推荐指数
1
解决办法
1万
查看次数

Git中的最大文件大小和最大存储库大小?

我希望将Git作为我雇主(250人)公司的主要来源控制.在继续讨论之前,我想回答以下问题.

  1. Git是否有任何特定的最大文件大小限制可以处理?如果是这样,它是什么?

  2. Git推荐的最大存储库大小是多少?这有助于我确定我应该在存储库中设置的内务处理.

git

28
推荐指数
2
解决办法
5万
查看次数

如何将带有分离HEAD的子模块附加到实际的HEAD?

当我将Git子模块添加到这样的Git存储库时,

git submodule add ssh://server/proj1/ proj1
git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)

添加的子模块将处于分离的HEAD模式.我不知道那是什么,但我知道子模块将链接到目标存储库的特定修订版.

我不知道它是如何工作的,无论如何它看起来像是一个代理分支.我通过切换到master分支解决了这个问题.

cd proj1
git checkout master
Run Code Online (Sandbox Code Playgroud)

这将切换当前分支实际主HEAD,但这不会更新链接.因此,如果再次克隆整个存储库,它仍将链接到旧版本.

如果我想让它始终与最新版本(HEAD)相关联,我该怎么办?

git git-submodules

25
推荐指数
1
解决办法
2万
查看次数

如何让`git clone --recursive`重新创建子模块的遥控器和分支?

我有一个带有一些子模块的项目.其中许多是从GitHub fork中克隆到的,我为自定义mod添加了一个分支.典型的设置如下:

在本地文件夹中:MyProject1/Frameworks/SomeAmazingRepo /

$ git branch -vva
*my-fork                       123456 [my-fork/my-fork] Latest commit msg from fork
master                         abcdef [origin/master] Latest commit msg from original repo
remotes/my-fork/my-fork        123456 [my-fork/my-fork] Latest commit msg from fork
remotes/my-fork/master         abcdef [origin/master] Latest commit msg from original repo
remotes/origin/HEAD            -> origin/master
remotes/origin/master          abcdef [origin/master] Latest commit msg from original repo

$ git remote -v
my-fork                        git@github.com:MyUser/SomeAmazingRepo.git (fetch)
my-fork                        git@github.com:MyUser/SomeAmazingRepo.git (push)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (fetch)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (push)
Run Code Online (Sandbox Code Playgroud)

git clone --recursive我的项目开始一个新的分拆计划,当它开始递归,它吐出了一个错误,声称它找不到这些回购存储的提交.检查后,似乎没有添加遥控器,并且分支机构在主机中留下(空)...

在本地文件夹中:MyProject2/Frameworks/SomeAmazingRepo /

$ git branch …
Run Code Online (Sandbox Code Playgroud)

git cloning git-clone git-remote git-submodules

16
推荐指数
1
解决办法
2万
查看次数

git上的每个目录权限

我们正在考虑将我们的VCS转换为git或subversion.我更喜欢切换到git,但是subversion有一个很好的功能,我没有在git中看到:每个目录访问控制.

我们目前在cvs中有project1,project2存储库,具有不同的权限.我们想拥有一个单独的存储库,其中两个目录project1和project2具有不同的权限.是否可以使用git,因为它与svn一样?

我知道子模块,它可能实现这一点,但我们的目标是能够通过project1和project2中的更改进行一次提交.

我们主要有IP问题,并希望确保有些人无法读取(而不仅仅是推送)某些目录.那么,是应对挑战还是我必须使用git-svn?

谢谢

svn git git-svn

15
推荐指数
1
解决办法
8309
查看次数