相关疑难解决方法(0)

是否可以在.gitconfig中包含一个文件

我想在我的.gitconfig中包含一个包含github设置的文件 - 这可能吗?

我可以这样做:

[core]
    include = /path/to/file
Run Code Online (Sandbox Code Playgroud)

git github

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

105
推荐指数
6
解决办法
3万
查看次数

Git提交公共子模块(master branch)

我有两个或更多的项目(我们称之为ProjectFooProjectBar),它们有一些我放在子模块中的公共代码.

我的理解是,如果我从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)

git commit git-submodules

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

Git:如何维护永久并行分支

我们有项目(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)

git merge branch rebase

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

当你的项目中有密钥时,如何才能推送到GitHub?

我正在尝试将一个全新的,空的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时应该如何处理?

git github secret-key

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

长期(远程)功能分支上的git rebase

背景:我们在项目中使用github,并且在我自己的主存储库的fork上工作.我们使用rebase而不是merge来避免大型合并提交.

场景:我想要的工作方式是这样的:

  1. 在实现新功能时,创建fork的master的本地分支并在那里进行更改.我和组中的其他人做了很多小提交,因此几乎总会有多个提交影响分支上的同一个文件.
  2. 将本地分支推送到我的分支,因此我有一个我正在处理的远程副本(如果我的笔记本电脑死亡或丢失,我不想丢失所有更改.我尝试在每天结束时执行此操作).
  3. 如果完成该功能需要很长时间,我偶尔会对我的前任主人进行修改,以确保没有任何更改可能会破坏我的功能.这通常可行.
  4. 为了使分支的远程副本保持最新,我将本地分支推送到rebase之后.

问题:第4步是我遇到问题的地方.我几乎总是要处理非快速转发的提交并使用git push --force.

我看了看

Git:如何维护永久并行分支

如何维护(大多数)并行分支只有一些差异

并没有找到一种方法使我的工作流程工作.在git工作流上进行谷歌搜索主要返回的结果是假设你们都在本地分支上工作,而不是在github上保留远程副本(例如 http://nvie.com/posts/a-successful-git-branching-model /).

我对Git比较陌生,所以我想知道我是否遗漏了一些东西.我希望能够在没有--force的情况下完成第4步.另一个工作流仍然允许我使用rebase而不是merge并保留我的本地分支的远程副本也非常有用.

git github

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

在Git中管理并行版本的最佳方法是什么?

我有一个完善的软件工具包,但通常需要小的调整(主要是为了应对来自第三方产品的兼容性问题).我现在希望生成一个"新"版本(改进的API),它将基于原始版本 - 随着时间的推移,它将与现有分支不同,但是几年后,我将需要保持原来的"实时"需要兼容性的现有客户.当然,我需要确保"调整"也适用于"新"版本,因为这些问题(在大多数情况下!)也适用于"新"版本.

所以 - 我的理想(简单)工作流程将是:

  1. 处理"新"版本时 - 更改仅适用于该版本.
  2. 在处理"旧"版本时,一旦我对它们满意(当我提交,提交或其他任何内容)时,所有得到的更改将(尽可能自动!)应用于两个版本.

我意识到需要偶尔的人工干预,合并是相互矛盾的,但根据过去手动更改的经验,我希望这种情况很少见.

目前,我正在寻求放弃VSS(是的 - 继续嘲笑我保持这么长时间!),我希望Git会让这很容易,但到目前为止,似乎没有任何"简单" "解决方案,我看到的所有建议都是围绕"rebase"构建的,这对我来说似乎是"错误的",因为rebase似乎做了许多其他的事情,比如重写历史,当我需要的只是一个简单,真实的时候" "根据其他分支的变化"前进.

  • 我在这里错过了什么吗?
  • 有没有更简单,更正确的方法来做到这一点?
  • 使用不同的源代码控制系统而不是Git,我会更好吗?

所有的想法非常感谢!

git git-branch

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

保持两个Git分支不同的文件

我确定我的Git repo的两个分支应该只在一个文件中有所不同.确保这一点的最简单方法是完成所有工作branch1,并branch2在我切换到它时将其合并(包装到shell脚本中,因此每个交换机只需要一个命令).但是,有没有办法以更少的工作来做到这一点?

git

7
推荐指数
1
解决办法
1986
查看次数