我的工作流程:
对于CODE REVIEW,我需要显示两个头之间的差异并压缩/组织我的提交(大约5次提交).这项任务的最佳GUI(跨平台?)是什么?
当我修复了之前提交的一些更改时,我总是连续两次运行rebase.是否可以一步完成此工作流程?假设我有4个新提交.
* (master) D
* C
* B
* A
* Base
Run Code Online (Sandbox Code Playgroud)
我在B中发现了一个错误,所以我创建了一个分支并修复它.
* (master) D
* C
| * (fix) Fix.
|/
* B
* A
* Base
Run Code Online (Sandbox Code Playgroud)
接下来我跑去git rebase --onto fix B D把C和D移到B.
* (master) D'
* C'
* (fix) Fix.
* B
* A
* Base
Run Code Online (Sandbox Code Playgroud)
最后,我跑去git rebase --i fix^^查看最后几次提交,然后将B和Fix压缩到一个提交中.
* (master) D'
* C'
* B'
* A
* Base
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来完成相同的工作流程?我想合并会更容易,但合并对我来说是因为我正在使用需要线性历史的git svn.
在我的笔记本电脑和工作以及家里的桌面上工作了几个星期与六个不同的分支和合并之后,我的历史变得有点复杂.例如,我只是进行了一次获取,然后将origin与origin/master合并.现在,当我做git show-branches时,输出如下所示:
! [login] Changed domain name. ! [master] Merge remote branch 'origin/master' ! [migrate-1.9] Migrating to 1.9.1 on Heroku ! [rebase-master] Merge remote branch 'origin/master' ---- - - [master] Merge remote branch 'origin/master' + + [master^2] A bit of re-arranging and cleanup. - - [master^2^] Merge branch 'rpx-login' + + [master^2^^2] Commented out some debug logging. + + [master^2^^2^] Monkey-patched Rack::Request#ip + + [master^2^^2~2] dump each request to log ....
我想用git rebase清理它.为此目的,我创建了一个新的分支,rebase-master,并在这个分支上尝试了git rebase <common-ancestor>.但是,我必须解决许多冲突,并且分支rebase-master上的最终结果不再匹配master上的相应版本,该版本已经过测试并且可以工作!
我以为我在某个地方看到了这个解决方案,但再也找不到了.有谁知道如何做到这一点?或者,当我开始删除已经合并的不需要的分支时,这些错综复杂的引用名称是否会消失?
我是这个项目的唯一开发者,所以没有其他人会受到影响.
你最喜欢的Git配置设置是什么让你在使用Git时轻松生活?
无论如何我都不是专家,所以我想确保以下流程是好的:
那里有什么错误吗?
然后,我应该如何处理本地计算机上的功能分支?或许将它们重新定位给我当地的大师?删除它们(是不是很糟糕?)?
如果他们不接受我的请求,我仍然希望将它们合并到我的本地主人.这会搞砸吗?
我试图弄清楚允许我提交基于特征的请求的流程,但是也可以在我的项目中使用我的更改而不管他们是否接受,并且在他们接受/拒绝它们之后直接使用我的本地副本.
很多阅读,但感谢您的帮助!
编辑:发现这个,相关文章后一天.不回答我的问题的复杂性,但仍然有用:http://codeigniter.com/news/contribution_guide#When:13:36:15Z
我是唯一一个使用git的人,其他人都在使用svn.我用'git svn'连接到团队svn,大多数情况下都可以.最近,我最初是在我自己的单独的git repo上开始了一个项目,现在我需要将其中的东西合并到svn中.但是,我仍然希望在发行版之间不断调整我自己的隐私实现.
那么,从我的私人仓库到svn-cloned仓库挑选一些提交的最直接的方法是什么?要求是保留完整的本地历史记录,并且每个选择只有一个svn提交.或者是否需要进行一些挤压?
作为实现这一目标的方法,有没有办法让私有仓库作为svn克隆仓库的另一个来源?
我想对我的fork进行一些私有的修改.我该怎么做呢?
有一个问题在这里关于推动单个提交,答案是挑选您希望从私人分支推,并把它们主枝上的提交.但是,我想要更多的东西,在推动时忽略某个提交.
使用git与多人合作时,情况会更好
正如我所看到的那样,在(1)的情况下,虽然每个主人都充当一个分支,但每个人都希望在彼此的工作之间融合一个主要是线性的流,而在(2)中,每个人都希望合并一个共同的主人.进入他们的分支,并在他们准备好时将更改从他们的分支推送到共同的主人.
具有使用git工作在中型到大型团队工作经验的人可以发表任何评论吗?哪种方法最适合您的团队?我想第三种选择是总是使用特征分支而不是人分支,尽管我认为这与(2)从这个问题的观点基本相同.
我想,在(1)和(2)中,一个人负责将变更拉到"官方"主人.如果超过一个人作为推动访问官方主人,这将如何延续?
我看过很多关于使用git commit --amend或重新设置壁球提交的博客文章.
我发现git重置到最后一个检查点比较容易一些(比如在我的所有'保存点'微观发现之前),然后使用交互式添加来挑选最佳提交顺序.
这有什么缺点吗?
我想知道b/c因为我读过的大多数博客都是为了这个目的而修改或改造的
git ×10
workflow ×3
merge ×2
branch ×1
cherry-pick ×1
fork ×1
git-commit ×1
git-rebase ×1
git-svn ×1
github ×1
rebase ×1
squash ×1