相关疑难解决方法(0)

如何git-pull除了一个文件夹

有没有办法git pull存储库中的所有文件夹,但有一个?我不想创建一个.gitignore文件,因为其他人可能想要这个文件夹 - 它现在对我来说太大了.

谢谢!

git

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

同步GIT和ClearCase

我目前正在研究ClearCase,现在正在迁移到GIT.但是我们需要这种迁移,所有工作都将在GIT中完成,数据将被同步支持ClearCase流.我们将在GIT和CC中使用相同的分支名称和流名称,因此编写脚本应该不是问题.这里的问题是,

有人可以建议哪个是同步CC和GIT的最佳模型

  1. 将CC中的所有Vobs作为GIT中的单个回购,并将CC中的主要流作为GIT中的各个分支. - 单GIT仓库(VOBS)和许多分支(CC流). - 由于VOB被保存为具有许多分支的单个仓库,因此占用的空间更少.

  2. 将重要的CC分支作为独立的GIT存储库,每个存储库具有所有CC VOB. - 许多CC分支的许多GIT仓库 - 这将占用大量空间,因为VOB将被复制.

您认为哪种方法是与ClearCase保持同步的最佳方式

git clearcase git-branch

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

最初只需要git子模块更新吗?

我得到了git子模块(一厢情愿的想法?),我想出更具体的问题,这是一个好兆头......

我试图找到超级项目引用的子模块的哪个版本,在.gitmodules和中.git/config,但是没有提到......
场景是我正在更改其根位置(从中导入它们)的子模块,然后将它们拉入"子模块化"的位置......
除了从超级项目中提交以将这些更改合并到超级项目仓库之外,我是否还需要git update注册新的拉入式子模块提交?

基本上问题是:

git submodule update只有当我第一次克隆超级项目时,或者每次拉动子模块(来自它自己的回购)后,我才需要" "吗?

谢谢

git-submodules

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

Git子模块替代?

我有一些工作树有一些依赖.AFAIK,git子模块将强制执行以下操作:

  • 使用它(主)在每个工作树的子目录中拥有每个工作树(slave)的副本
  • 主存储库复制来自从属的所有信息

我不介意回购更大,但拥有副本对我来说是非常不可接受的.它会迫使我重新组织所有项目,以便将副本链接起来.此外,编辑错误的文件很容易发生,从而导致混淆.

我有另一个想法:

  • 每个主服务器都存储其所有从服务器的列表.
  • 主人不需要其他信息.
  • 每次在master中提交时,都会创建slave中的" snapshot-commit ".
  • "snapshot-commit"是工作树当前状态的快照,它忽略了索引的当前状态(我在丢弃一些未经修改的更改之前已经使用了"snapshot-commits").
  • "snapshot-commits"收集在一个分支中,该分支的名称来自主人的名字.提交消息包含主提交的哈希.(恕我直言,这比成千上万的标签泛滥更好.)
  • 结帐工作照常,除非需要递归奴隶.

我能看到的唯一问题如下:

  • 从属设备中的提交将累积,即使主设备不再存在也不会被删除.
  • 主服务器中的提交不是自包含的,您可以删除主服务器中引用的提交.但我认为不可能偶然发生,所以我可以忍受它.
  • 我无法想象,其他git命令如何支持这一点.但同样,我可以忍受它.

我问是否有人已经实施了(或者这是一个坏主意).

git git-submodules

11
推荐指数
2
解决办法
6326
查看次数

重用git存储库的一部分

我有以下项目设置:

  • Solution A
    • Project 1 (轻量级组件)
    • Project 2(包含很多文件并依赖于Project 1)

Solution A是一个单一的git存储库.然后我创建了另一个解决方案,发现我可以重用甚至更新其功能Project 1.所以我的第二个解决方案可能看起来像这样:

  • Solution B
    • Project 1 (必须分享!)
    • Project 3(取决于Project 1).

现在我想Project 1成为一个共享组件.也就是说,每当我Project 1从任一解决方案(AB)更改源代码时,我都需要另一个相应的更新.

也许这有点像git子模块功能.但是,我能够使用它的唯一方法是将整体指定为子模块.由于体积庞大,这并不是我想要的理想选择.我只需要它的一小部分就是一个子模块.Solution ASolution BSolution A

我知道它可以在svn中完全按照我的描述工作:在svn:externals属性中指定外部存储库中的目录.

有什么提示吗?或许,我错过了什么?

git version-control git-submodules

10
推荐指数
1
解决办法
1261
查看次数

如何从Git中提取历史子集?

更新:我试图简化这里的真实示例以清楚地解释我的选项,但这并没有真正起作用.到目前为止,下面的链接示例过于笼统,甚至无法使用这个简单的示例.

我能够一直用SVN做这种事情并且非常熟练.现在我发现在Git中非常困难,并开始相信我的历史基本上太过密集,无法将它拉开.

真实世界的问题:我已经移动并重命名了十几个文件.他们的历史与数百个其他文件的历史混杂在一起,我想完全删除历史记录.

在SVN中,我可以使用dump/include-filter/exclude-filter/load序列来修剪存储库,很少我可能需要在加载之前在转储文件中手动重命名路径.

像这样的东西,我会做的:

SET Includes=trunk/src/Foo.aaa trunk/src/Foo.bbb trunk/src/Foo trunk/src/Bar
SET Excludes=trunk/src/Bar/Blah.aaa trunk/src/Foo/Blah.aaa

svnadmin dump FooSrc > Full.dump 2> Dump.log
svndumpfilter include %Includes% --skip-missing-merge-sources --renumber-revs --drop-empty-revs < Full.dump > Filter_1.dump 2> Filter_1.log
svndumpfilter exclude %Excludes% --skip-missing-merge-sources --renumber-revs --drop-empty-revs < Filter_1.dump > Filter_2.dump 2> Filter_2.log
svnadmin create FooDest
svnadmin load FooDest --ignore-uuid < Filter_2.dump > Load.log 2> Load_Errors.log
Run Code Online (Sandbox Code Playgroud)

有没有人有一个很好的例子,这不仅仅是一个简单的删除单个文件或导出单个子目录?

我可以定义文件集的最简单方法是使用7个目录路径的列表.这些目录中的所有内容都需要保存,外部的所有内容都需要从历史记录中删除.


简化问题:

我有一个Git存储库,它有一些我想要提取到自己的存储库中的文件.问题是这些文件是在原始存储库的整个历史记录中创建和修改的,因此我无法弄清楚如何干净地提取它们.

以下是我的历史记录的要点(只有更多的提交和更多要忽略).正如你所看到的,我显然不打算稍后将这些文件从历史中挑选出来:

commit 4a09d3f977a8595d9e3f61766a5fd743e4265a56

M    src/Foo/Bar/FileToExtract2.foo
A    src/Foo/Bar/FileToExtract3.bar
D    src/Foo/AnotherFileToIgnore.txt

commit 05d26f23518083270cc45bf037ced29bec45e064

M    src/Foo/Blah/IgnoreThisOneToo.foo
M    src/Foo/AnotherFileToIgnore.txt

commit 343187228f4bd8e4427395453034c34ebd9a95f3 …
Run Code Online (Sandbox Code Playgroud)

git version-control history

10
推荐指数
1
解决办法
2727
查看次数

你能直接用Git子模块开发吗?

我有两个项目(A和B).他们都使用项目Common.我希望通过子模块将Common包含在A和B中,因为那时我可以直接将A&B中的每个提交绑定到Common中依赖的提交.

在过去,我试图让我的团队使用这样的子模块,但我们无法让它顺利运行.我们正在从子模块本身开发公共代码并从子模块提交但是我们遇到了很多问题,我们恢复了将所有项目都放在同一目录下(C:\ dev\A,C:\ dev\Common).

我很确定我们不知道子模块应该如何使用,但是如果你不能直接在子模块中开发Common代码,那么这会不会让它更难开发?有人可以解释一下子模块的正确用法吗?

git git-submodules

10
推荐指数
2
解决办法
1534
查看次数

将现有的Git存储库推送到Github只会发送大约一半的提交?

我有一个本地Git存储库,我已经开发了几天:到目前为止它有18个提交.今晚,我创建了一个私有的Github存储库,我希望将其推送到; 然而,当我这样做时,它最终只将18个提交中的8个提交给Github.我删除了Github repo并重试,结果相同.

有关为什么会发生这种情况的任何想法?我之前没有成功完成这个程序,所以我有点难过.

更新:此回购中只有,而且一直只有主分支.只是为了解决一些已发布的答案......

git version-control github

9
推荐指数
2
解决办法
5428
查看次数

如何制作顶级git来跟踪另一个子目录git下的所有文件

命令序列

mkdir topdir
mkdir another-git-directory
touch fileC
touch fileD
git add.
git commit -m"sub-dir init"
cd ..
touch fileA
touch fileB
git add.
git commit -m"top-dir init"
git ls-files
//现在我们可以看到fileC和fileD没有被顶级git跟踪//
git ls-files -o
//这不会向我们展示fileC和fileD as untracked files //

我的问题是:如何让"git ls-files -o"显示子目录中未跟踪的文件?为什么git表现得如此,因为我希望git ls-files显示所有未跟踪的文件(即使它在另一个sub-dir git中)?

我知道我可以使用"git add*/."来制作顶级git来跟踪sub-dir文件......但我很想知道上面这个问题的原因.谢谢!

目录结构

 topdir +  
        +-- .git  
        +-- fileA  
        +-- fileB  
        + another-git-directory +-- .git  
                                +-- fileC  
                                +-- fileD  
Run Code Online (Sandbox Code Playgroud)

更新(6月26日)

我发现这个线程无法跟踪Git子模块中的文件和这个url(cn)http://blog.ossxp.com/2010/01/425/,它解释了如何解决问题.

解决方案:

git rm --cached another-git-directory #no trailing slash
git add another-git-directory /. …

git git-submodules

9
推荐指数
1
解决办法
1857
查看次数

Git子模块工作流程建议

所以我几天前开始使用Git.(派对很晚 - 不要责骂:)).真正开始熟悉基本命令,想法和工作流程.然而,子模块真的让我的大脑有所作为.我正在尝试为FuelPHPGitHub贡献代码,我可以使用一些指导和提示.

我在终端中运行以下命令:

//1: clone the repository from Fuel's github.
git clone git://github.com/fuel/fuel.git

//2: move into the main fuel directory
cd fuel

//3: initilize the submodules (populate .git/config with submodule data)
git submodule init

//4: download the submodules...
git submodule update

//5: move into the core directory (which is a submodule).
cd fuel/core

//6: change branch from (*no branch) to 1.1/develop
git checkout 1.1/develop

//7: open random file in text editor + make …
Run Code Online (Sandbox Code Playgroud)

php git github fuelphp

9
推荐指数
1
解决办法
4832
查看次数