我有一个系统的5个分支 - 让我们称他们为主人,伦敦,伯明翰,曼彻斯特和演示.它们仅在配置文件中有所不同,每个都有自己的一组图形文件.
当我进行一些开发时,我从master创建一个临时分支,在该功能之后调用,并对其进行处理.当准备合并我checkout master和git merge功能带来我的工作.这似乎工作得很好.
现在我需要将其更改到其他分支中,而不会丢失它们之间的差异.我怎样才能做到这一点?伯明翰获得伦敦的图形以及配置文件中存在冲突,我一直没有遇到任何问题.
当分支最终正确时,我将其推送到一个软件仓库,并将每个分支拉到一个Linux盒子进行最终测试,从那里发布到生产中使用rsync(设置为忽略.git存储库本身).这个阶段也可以正常工作.
我是目前唯一的开发人员,但我需要在邀请帮助之前让流程稳固:)
现在是这样的场景:我正在开发自己的框架和客户的网站.这是结构:
.
..
_application
_framework
_public
Run Code Online (Sandbox Code Playgroud)
我想在github上使用_framework/*_public/index.php和_controllers _models和_views的结构_application(空文件夹)进行回购.另外,我想在当地有一个包含所有这些的回购.
我理解使用git-modules我可以做到这一点,但在查找了一些教程后,我仍然不明白这样做的方法.
有人可以向我解释一下吗?非常感谢!
我工作的公司中的一个团队存在以下问题.他们开发了一个应用程序,它将具有不同的构建(例如,取决于客户的不同设计).所以他们有一些代码在构建之间共享,一些特定于构建.例如,第一次构建有(例子对于文件没有意义,只是为了理解问题;我不确切地知道哪些代码不同)
/src/class1.java
/src/class2.java
/res/image1.png
/res/image2.png
Run Code Online (Sandbox Code Playgroud)
第二个项目包含
/src/class1.java
/src/class3.java
/res/image1.png
/res/image3.png
Run Code Online (Sandbox Code Playgroud)
如你所见,两者都有class1.java和image1.png.别的东西是不同的.当然,项目要复杂得多,所以在一个项目中包含所有东西都不舒服......而且要制作不同的分支并将相同的代码提交给所有这些代码并不舒服......
可能我选择了错误的方向思考这个问题,但我只是看看git(我们使用svn),它允许分离的存储库.问题是:是否有可能在git中创建不同的分支,但告诉它"这些文件应该在它们之间共享",其他文件应该只在那些分支中.然后,当开发人员提交class1.java时,git会在所有分支/ repositorias等中同步它.也许有另一个解决方案可以轻松采取?
我有很多我的个人脚本,我想开始使用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工作流程.简而言之:每个人都在他/她自己的分支内部发展,在合并回主人之前,你再次将你的分支变为掌握以获得干净的历史.
这有效.
现在我们有一个子模块,因为这是一个内部插件(Rails),我们需要经常更改它.所以大多数时候我在一般分支和子模块分支都有变化.
如上所述,在工作流中使用子模块的最佳方法是什么.
我首先尝试将我的更改推送到子模块(git checkout master,git pull,git checkout branch,git rebase master,git checkout master,git merge branch).
然后,当我尝试为我的root做同样的事情时,我总是在我的插件(子模块)上出错.在做之前我必须解决错误git rebase --continue.因此,如果git mergetool我尝试将我的文件夹转换为文件.
在rebase结束后,我只是恢复<folder_name>.orig以覆盖文件<folder_name>,一切都很好.
但不知何故,它觉得应该有更好的方法.
简而言之:当通过checkout-b/rebase/merge - 工作流工作时,如何同时处理更改的子模块?
我在git的源代码管理下有一个Web应用程序.我为不同的客户提供了不同的css文件以及图像和其他主题特定的东西.还有自定义报告......除了主题外,应用程序的每个其他方面都保持不变.什么是一个建议的方法来保持应用程序以及git中源代码控制下的主题信息.我是否应该为主题和报告或子模块使用分支...在开发期间,我希望将我的客户主题添加到我的开发分支,并对我的客户特定主题进行更改...
有可能与GIT一样吗?
我对Git很新:我来自SVN,在那里我发现了非常强大的外部功能.在Git中我找不到类似的东西:
所以场景是这样的:我有一个项目,我想在其中包含一些库.我希望有可能改变所有这些库并将它们推送到自己的库中.此外,这些库中的一些是较大项目的子目录(例如,如果项目还包括演示或自述文件,我将不会在我的项目中包含这些目录).
我怎样才能做到这一点?
我试过了:
好吧,如果你已达到这一点,感谢你的耐心,现在我想要别的东西尝试,因为现在我的结论是:"Git中不允许子树推送"ç_ç
我们有一个大型 C++ 存储库,大小为 80 GB,包含近 200,000 个文件,包含多个组件。
库(档案)对于更多数量的紧密耦合的组件来说是常见的。
这样,所有 git 操作以及编译/构建特定组件都会花费太长时间。
请建议我如何将这个单个存储库划分为多个存储库。
好像我有一个丢失的树错误。公平地讲,我完全只是在git上弄乱了我的本地文件,并且受够了,在回购协议上做了完整的硬盘删除,并从远程主服务器重新克隆了。现在,我收到以下错误。我要做的第一件事就是为我的工作创建一个本地分支。
如果我不删除所有内容,而是通过时态,我很有可能恢复很多工作,对吗?(这可能也显示了我现在在git和项目中的状态……)
如果有什么不同,我在做一个android项目。
我正在阅读 这篇文章,它似乎很有帮助,但是我不知道如何找到我的“ a30df1173f14dea24df661f1eef749fed2f4e1ed” sha1哈希。
在做
git ls-tree a30df1173f14dea24df661f1eef749fed2f4e1ed
给我以下
100755 blob 2851ba4fdf2a134f8fc97fd60b3045b73cd6039b .DS_Store
100755 blob 3f9691c5dda29b09cb96060fd6ec7017f6c671d2 .classpath
100755 blob c50d3b4fe2f6221db617840561dc94d7690bb883 .gitignore
100755 blob 6b58f1723a252cfd314d108fadac4b71a4209c1c .project
100755 blob 39f00018845d776de324707090d26c5153720e22 AndroidManifest.xml
100755 blob 94a9ed024d3859793618152ea559a168bbcbb5e2 COPYING
100755 blob c1853e4c312a938d5890f5f4e0844782429ba11e default.properties
040000 tree 423accda532f8788f916b26b863ddf32e2896aa6 docs
160000 commit 0000000000000000000000000000000000000000 eagle vision
100755 blob 424f2604203eabd2310165b143b430326aa87ee7 ic_launcher-web.png
040000 tree 2b83cd828cd11a11e84a2d8f646dfa40de109827 libs
100644 blob 8a7b1fac8f8c12e925e56776f225730c4712f92a lint.xml
040000 tree c0182f719fccf5fc8b0d7658c3d15fe4deac0d9e plugins
100755 blob f2fe1559a217865a5454add526dcc446f892385b proguard-project.txt
100755 blob 9ae01de96458dbded45d2a442c09c0f4d33e473a project.properties
040000 tree 3c9446b3bb23eebe80942992ee03e01a7390ba80 res
040000 tree …Run Code Online (Sandbox Code Playgroud) 我的问题最好用一个例子来描述.
假设我有一个项目"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 ×10
branch ×1
eclipse ×1
frameworks ×1
git-subtree ×1
module ×1
organization ×1
split ×1
workflow ×1