相关疑难解决方法(0)

使用git组织大量个人脚本的好方法是什么?

我有很多我的个人脚本,我想开始使用Git进行版本控制.我以前组织的代码如下:

~/code/python/projects/ (for large stuff, each project contained in an individual folder)
~/code/python/scripts/ (single file scripts all contained in this directory)
~/code/python/sandbox/ (my testing area)
~/code/python/docs/ (downloaded documentation)

~/code/java/... (as above)
Run Code Online (Sandbox Code Playgroud)

现在我将开始使用git对我的代码进行版本控制,这样我就可以拥有历史记录并将所有代码备份到远程服务器.

我知道如果我使用SVN,我会将整个" ~/code/"目录保存在一个大型存储库中,但我知道这不是用Git做事的好方法.
我在网上看到的大多数信息建议将我的所有项目文件夹保存在一个地方(例如,没有python或java的单独目录),每个项目都包含它自己的git存储库,只需要一个包含所有单个的"snippets"目录 - 文件脚本/实验,可以在以后转换为项目.

但我不确定我将所有代码目录整合到一个区域的感觉.是否有一种很好的方法可以保持我的单独代码目录不变,还是不值得努力?也许我只是附加到单独的代码目录,因为我从来不知道其他任何东西......

另外(作为附注),我希望能够快速查看所有项目和脚本的时间顺序历史记录.所以我可以看到我最近创建的项目.我以前通过在所有项目的开头保留一个数字来做到这一点002project,003project.
是否有自动或简单的方法在git中执行此操作而无需在所有项目名称中添加数字?

我愿意接受任何实用或哲学的代码组织你的建议.谢谢!!!

git organization

5
推荐指数
1
解决办法
4044
查看次数

将 git repo 转换为子模块

所以我对整个git主题相当陌生。但我想做的是dotfiles在多台机器上同步。我知道那里有很多教程,并且我了解了基本概念。但我的问题更加具体。

首先,我正在使用 Windows(目前)和Vim. 最重要的是,我用它vundle来管理我的插件。现在插件就是git-repos它们本身了。该目录~/.vim(这是我想要同步的主存储库)包含它们。

所以我的问题是,如何初始化submodule现有存储库?

我现在得到的是一堆绿色文件夹,~/.vim/bundle/...它们代表其他存储库。该git status命令将它们报告为未跟踪的内容(不,这不是我.gitignore在做一些时髦的事情)。

如果您不熟悉绿色文件夹“现象” ,您可能想看看我的存储库。

PS 其中一个子文件夹显示“修改的内容”而不是“未跟踪的内容”,即使我没有碰它。我不知道为什么。

git git-submodules

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

Git子模块新版本更新

我已经分叉了MapBox-ios-sdk并对其进行了一些更改.更新版的sdk就在这里,我将更改合并到了fork中.MapBox-ios-sdk还包含SMCalloutView,它是MapBox-ios-sdk中的子模块.然而,官方sdk的版本使用了更新的,更新的SMCalloutView,它不在我的分支中.

我如何让它更新

我用这里的说明更新了我的sdk .但是,这不会更新SMCalloutView.我也尝试过git submodule update --recursiveMapBox-ios-sdk的级别,没有任何反应.事实证明,这是因为SMCallOutView处于"无分支"状态.为什么它在"没有分支"?如何将所有子模块置于"无分支"状态之外?如果它处于"无分支",那么我永远不会知道需要更新的子模块(或甚至更多嵌套)的子模块或子模块.

git git-submodules

5
推荐指数
1
解决办法
5343
查看次数

基于签到点构建触发器到teamcity中的GIT仓库中的特定文件夹

我有一个GIT仓库,我的项目有2个文件夹 - 客户端和服务器,每个文件夹中都包含相应的代码.我想有两个teamcity构建过程,每个过程用于客户端和服务器代码更改.在当前设置中,整个GIT仓库被清除并构建.我想将客户端构建仅限于客户端代码更改,服务器构建仅限于服务器更改.

一种选择是将它们拆分为2个不同的存储库,但这对开发人员来说是不方便的.

有没有办法配置teamcity只监听特定文件夹上的更改?

git teamcity build teamcity-7.1

5
推荐指数
1
解决办法
1019
查看次数

如何设置我的git存储库以便轻松地在Visual Studio中重用项目

我的问题最好用一个例子来描述.

假设我有一个项目"A".

我还有一个项目"B",它取决于"A".

另一个项目"C"也取决于"A".

我的"主要"项目取决于"B"和"C".它也可能直接取决于"A".

当"主要"=="D"时,看起来有点像"可怕的继承钻石 "

可怕的继承钻石

这些是我的要求:

  • 我希望能够在"main"的解决方案中编辑项目"A","B"和"C"的内容并提交更改(即我不想只包含DLL而是代码).但由于"B"和"C"都依赖于"A",因此应该强制它们引用相同的提交.

  • 项目"A","B"和"C"很可能也会被其他项目引用,因此我不能假设项目"main"的工作目录的所有权.

  • 此外,应该可以将每个项目的存储库与外部存储库同步.

  • 项目"A","B","C"和"主要"应该是

我如何设置我的存储库来完成此任务?

git visual-studio-2010 visual-studio

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

如何打开git auto-fetch?

我有几个我想每天获取的git项目(例如早上)和结账到最后一次提交(如果当然没有本地更改)到分支"origin/dev"(例如它可能不是主人)科).那么如何为目录中的所有项目执行此操作?

git tortoisegit

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

多个Gitlab项目可以使用同一个Git存储库吗?

我一直在研究从 SVN 迁移到 Git,以便我们可以使用 Gitlab。但有一件事我不确定;我们可以将 Gitlab 中的多个项目指向一个存储库吗?

\n

文档说:

\n
\n

项目

\n

一个 GitLab 项目大致对应于一个 git 存储库。每个项目都属于一个命名空间,可以是用户或组。如果项目属于用户,则项目所有者可以直接控制谁有权访问该项目;如果项目属于某个组,则组\xe2\x80\x99s用户级权限也会生效。

\n
\n

...但是“大致”是什么意思?

\n

svn migration git gitlab

5
推荐指数
1
解决办法
4164
查看次数

Git子库

我是一个小型固件团队的成员,我们使用私有Git服务器进行版本控制.我们的代码库通常具有用于平台特定代码的文件夹,由多个平台使用的公共代码以及由我们开发的微处理器的制造商提供的SDK.

目前我们的存储库以公共代码为中心; 每个平台在存储库中都有一个文件夹.这至少有两个严重的后果;

  1. 当我们推动一个平台的更改时,对于共享相同公共代码的所有其他平台,它是可见的.这会使提交历史记录与多个平台的发布混乱,并且在过去导致混淆我们正在审查哪个平台的更改.

  2. 在提交之前,需要对存储库中的所有平台验证对公共代码的更改,从而导致不必要的痛苦.(有人昨天没有这样做,并做了一些更改,导致我们的几个旧平台无法构建.这个特殊的存储库有5个平台)

我正在努力为每个平台建立一个存储库,以便我们可以定期更改公共代码并升级SDK,而不必强制更新和验证我们支持的所有平台.由于我们是一个五人团队,这些问题通常会在关键时刻发布,因此可以为我们节省大量不必要的脑损伤和时间.当然,困难的部分在于实施.

现在我想象的是一个系统,每个平台都有自己的存储库,每个公共代码库都有自己的存储库,我们使用的每个SDK都有自己的存储库.平台存储库将链接或以其他方式引用它们用作"子存储库"的公共代码和SDK.

我已经阅读过有关子模块的信息,但我认为它们会导致更多问题而不是修复; 最近我们不得不调试三年前的固件,这需要将我们的本地代码库重置为问题版本以进行静态分析.据我所知,子模块的本地版本与其所在的存储库分离,这意味着将存储库重置为旧提交将使子模块相对于存储库的其余部分处于"未来"状态.在调试旧代码的上下文中,此行为是100%不可接受的.

这是我要实现的项目的项目符号列表; (按重要性排序)

  1. 打破特定代码远离公共代码,因此对公共代码和/或SDK的更改不会对其他平台产生无法预料的后果.

  2. 为每个平台,每个公共代码库和每个SDK创建新的存储库.

  3. 将远程存储库克隆到本地计算机应该是一个步骤; 在构建平台之前,不应强迫新用户拉出每个子存储库.

    • 此外; 恢复旧代码,包括通用代码,以及用于构建任何特定平台的版本XXX,YYY SDK,必须是可能的.

    • 编辑:我最后一次"恢复"代码我使用硬重置到我正在调试的构建和软重置到比我知道的年龄大一年的构建很好,但只有我的语法中的Git插件荧光笔会显示已知好和已知坏之间的变化.

      顺便提一下,这个特殊的平台是单片的,这个问题不适用于它,但为了论证,我们会说它确实适用.

  4. 修改公共代码不应影响平台,直到平台的维护者引入新的公共代码.(我相信通过添加一个公共代码的标记提交而不是公共代码的主人,可以使用子树)

  5. 只读子存储库是可接受的限制.(即,无法在平台的存储库中修改子存储库,或者无法从平台的存储库中推送对子存储库的更改)

  6. SmartGit/HG支持是可取的,因为除了我们的一个成员之外的所有成员都使用它.

  7. 编写一次性任务脚本是可以接受的,但我不想污染具有Git工作脚本的平台.

我也读过关于子树的内容,但此刻我不确定他们是否会直觉地允许我想要的行为.我的主要问题是:Git是否支持这种功能?如果是,该功能是通过子树还是其他方法实现的,我还不知道?

git dependencies repository

5
推荐指数
1
解决办法
973
查看次数

将一个 git 存储库的问题链接到另一个存储库的提交

我有两个项目“项目-A”和“项目-B”。这些问题在“项目-A”中报告,但实际开发在“项目-B”中进行。

在每个提交评论中引用“project-A”是具有挑战性的。我正在探索一个更好的选择来将“项目-A”的问题链接到“项目-B”代码提交。一个简单的问题是,如果开发人员在“project-B”中提交评论“#23 fixed”,它应该在“project-A”的相关问题评论历史中可见。

git github repository

5
推荐指数
1
解决办法
3220
查看次数

如何在我的git项目中包含外部svn存储库?

我正在使用git作为项目的修订控制软件.我的项目需要使用第三方代码库,它使用SVN作为其修订控制软件.(在这种情况下,第三方代码是一个名为Yii的PHP框架,而不是它与问题非常相关).

有没有办法在git中设置外部依赖,可以帮助从外部SVN存储库中提取代码并使其保持最新?

如果我的项目使用的是SVN,那么设置起来会很简单,因为我会这样做:

> svn propset svn:externals yii-1.1.6 https://yii.googlecode.com/svn/tags/1.1.6/framework
Run Code Online (Sandbox Code Playgroud)

...然后,每当我做一个svn checkout(或svn update)时,我会将yii代码库吸收到一个名为" yii-1.1.6" 的本地文件夹中.我可以在git中做类似的事情吗?有没有人在我可以复制的公共github仓库中有一个例子?我敢肯定它一定是常见的需求吗?

svn git svn-externals

3
推荐指数
1
解决办法
3877
查看次数

git子模块中的Checkout分支

如何在子模块中更改分支?当我git branch从子模块中运行时,我看到以下输出:

> git branch
  * (HEAD detached from 229a7b2)
  master
Run Code Online (Sandbox Code Playgroud)

我将如何进入新的分支?喜欢development吗?

git

3
推荐指数
1
解决办法
5505
查看次数

如何强制git始终使用master分支?

我有一些Xcode项目我试图使用git从GitHub克隆,它也有外部子模块.每当我尝试克隆时,它会继续将这些外部子模块以及项目中的每个文件夹放在"(无分支)"而不是主文件上.这就是我在终端做的事情:

git clone git@github.com:******.git
cd ******
git submodule update --init
cd External/******
git submodule update --init
cd External/******
git submodule update --init
Run Code Online (Sandbox Code Playgroud)

如果我进入任何文件夹并执行git分支,我得到这个:

git branch
* (no branch)
master
Run Code Online (Sandbox Code Playgroud)

有没有办法可以强制git clone在任何地方使用master分支?

git branch clone master

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

GIT:仅将远程存储库中的一些文件添加为子模块

我需要向我的项目添加一些 JS 库,并且我还希望能够从它的 repo 更新该库(这就是我将它添加为子模块的原因)。但是我只需要将该存储库中的 1 个文件放置在我的 JS 目录中,而库存储库包含测试、coffeescript 源等,我的存储库中不需要这些文件。所以问题是 - 如何不将整个 repo 添加为子模块,而是从中添加单个文件/目录?

我想这在Git Sparse checkouts 的帮助下是可能的,但不确定我是否在正确的方式上......

git

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