我想在我的.gitconfig中包含一个包含github设置的文件 - 这可能吗?
我可以这样做:
[core]
include = /path/to/file
Run Code Online (Sandbox Code Playgroud) 我有两个或更多的项目(我们称之为ProjectFoo和ProjectBar),它们有一些我放在子模块中的公共代码.
我的理解是,如果我从ProjectFoo中提交子模块的更改,它将处于一个独立的头部,只有所有ProjectFoo克隆才能看到:
(master) $ cd ProjectFooBarCommoneSubmodule/
(master) $ git commit -am "Common code fix."
(56f21fb0...) $ git push
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
这可能是因为master分支没有改变.我可能会做类似的事情git checkout master && git merge Everything up-to-date但看起来很难看.可能git reset --hard master会做同样的事情,但似乎更加丑陋.
如何使用项目共享的公共代码,从使用它的那些项目中更新?换句话说,提交到该子模块应该更新使用同一子模块的所有各种存储库(存储库,而不仅仅是克隆).
----编辑----
可见我的签出存储库搞砸了并且坏了.它应该从一开始就像那样(在本例中的ProjectFoo上):
(master) $ cd ProjectFooBarCommoneSubmodule/
(master) $ git commit -am "Common code fix."
(master) $ git push
....
fbfdd71..0acce63 master -> master
(master) $ …Run Code Online (Sandbox Code Playgroud) 我们有项目(PHP应用程序),但每个客户端的安装程序各不相同,有时很少,有时甚至更多.不过,源代码的很大一部分很常见.我们将特定安装作为并行分支管理到主分支,我们需要将更改从主分支传输到其他分支.在Git中解决了相同的情况:如何维护(大部分)并行分支只有一些区别?投票最多的解决方案是以这种方式在分支之间转移变更:
git pull
git checkout local
git rebase master
Run Code Online (Sandbox Code Playgroud)
如解决方案中所提到的,它在变基后创建非快进推送,我发现非常令人不快的并发症.我的问题是 - 为什么不这样做:
git pull
git checkout local
git merge master
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个全新的,空的Rail 3.0.4项目推送到GitHub,但只是意识到cookie会话存储有一个密钥:
在 config/initializers/secret_token.rb
NewRuby192Rails304Proj::Application.config.secret_token = '22e8...'
Run Code Online (Sandbox Code Playgroud)
那么我们怎样才能避免它被推向GitHub呢?我们可以忽略这个文件(使用.gitignore),但没有这个文件,Rails应用程序根本不会运行(并且不是一个完整的Rails应用程序).或者通常,其他文件或框架也可能包含包含密钥的文件.在这种情况下,推送到GitHub时应该如何处理?
背景:我们在项目中使用github,并且在我自己的主存储库的fork上工作.我们使用rebase而不是merge来避免大型合并提交.
场景:我想要的工作方式是这样的:
问题:第4步是我遇到问题的地方.我几乎总是要处理非快速转发的提交并使用git push --force.
我看了看
并没有找到一种方法使我的工作流程工作.在git工作流上进行谷歌搜索主要返回的结果是假设你们都在本地分支上工作,而不是在github上保留远程副本(例如 http://nvie.com/posts/a-successful-git-branching-model /).
我对Git比较陌生,所以我想知道我是否遗漏了一些东西.我希望能够在没有--force的情况下完成第4步.另一个工作流仍然允许我使用rebase而不是merge并保留我的本地分支的远程副本也非常有用.
我有一个完善的软件工具包,但通常需要小的调整(主要是为了应对来自第三方产品的兼容性问题).我现在希望生成一个"新"版本(改进的API),它将基于原始版本 - 随着时间的推移,它将与现有分支不同,但是几年后,我将需要保持原来的"实时"需要兼容性的现有客户.当然,我还需要确保"调整"也适用于"新"版本,因为这些问题(在大多数情况下!)也适用于"新"版本.
所以 - 我的理想(简单)工作流程将是:
我意识到需要偶尔的人工干预,合并是相互矛盾的,但根据过去手动更改的经验,我希望这种情况很少见.
目前,我正在寻求放弃VSS(是的 - 继续嘲笑我保持这么长时间!),我希望Git会让这很容易,但到目前为止,似乎没有任何"简单" "解决方案,我看到的所有建议都是围绕"rebase"构建的,这对我来说似乎是"错误的",因为rebase似乎做了许多其他的事情,比如重写历史,当我需要的只是一个简单,真实的时候" "根据其他分支的变化"前进.
所有的想法非常感谢!
我确定我的Git repo的两个分支应该只在一个文件中有所不同.确保这一点的最简单方法是完成所有工作branch1,并branch2在我切换到它时将其合并(包装到shell脚本中,因此每个交换机只需要一个命令).但是,有没有办法以更少的工作来做到这一点?