相关疑难解决方法(0)

为什么git默认执行快进合并?

来自mercurial,我使用分支来组织功能.当然,我也想在我的历史中看到这种工作流程.

我使用git开始了我的新项目并完成了我的第一个功能.合并该功能时,我意识到git使用快进,即如果可能,它会将我的更改直接应用到主分支并忘记我的分支.

因此,思考未来:我是唯一一个从事这个项目的人.如果我使用git的默认方法(快进合并),我的历史将导致一个巨大的主分支.没有人知道我为每个功能使用了一个单独的分支,因为最后我只有那个巨大的主分支.这看起来不专业吗?

通过这种推理,我不想要快进合并,也不知道为什么它是默认的.这有什么好处的?

git git-merge fast-forward git-branch

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

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

场景:我正在尝试在git下获取我的unix点文件.我必须在(至少)cygwin环境和一些标准的Linux发行版(ubuntu和opensuse)之间工作,并且我有特定于cygwin的文件/代码行.由于我不想检查无用的文件或者不得不处理我的dotfiles中的大量案例,我正在为我的每个环境创建分支.但是我做的大部分编辑对所有环境都是通用的,所以几乎每次我提交时我都需要将该更改传播到我的所有分支.

所以基本上我有几个几乎相同的分支,除了一些提交,并且我需要在所有分支中进行大多数提交.

问题:如果有的话,推荐的git工作流程是什么?或者,对于我的场景,是否有更好的设置(不使用多个分支?)?

[我尝试过采摘樱桃,但这涉及到相当多的工作,更不用说这里的所有重复提交以及保持我的分支同步的噩梦.]

git dotfiles

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

长期(远程)功能分支上的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 ×3

dotfiles ×1

fast-forward ×1

git-branch ×1

git-merge ×1

github ×1