标签: rebase

在重新定位时Gemfile.lock中的冲突

在Git中重新定位时,人们有什么策略来解决Gemfile.lock冲突?

我不得不在最近的一个项目中做很多事情,而且不仅乏味,而且并不总是清楚如何进行合并.

git conflict rebase bundler ruby-on-rails-3

29
推荐指数
1
解决办法
5599
查看次数

git rebase:复制而不是移动

我的分支是:

o---o  support.2013.16
     \
      o---o---o---o---o  master
                       \
                        o---o---o  hotfix/A
Run Code Online (Sandbox Code Playgroud)

我需要复制hotfix/A来支持.2013.16.我知道采摘樱桃,但有可能做类似的事情

git rebase --onto support.2013.16 master hotfix/A
Run Code Online (Sandbox Code Playgroud)

但是没有移动分支而是复制它?

git rebase

28
推荐指数
2
解决办法
4307
查看次数

Git rebase失败了

我试图改变一位同事的工作.

首先,我得到了大量的冲突,其中<<<<<头部接缝包含新代码.

然后过了一会儿我得到以下错误:

fatal: update_ref failed for ref 'refs/heads/dev_504': 
cannot lock ref     'refs/heads/dev_504': ref refs/heads/dev_504 is at
 XXXXXXX 
 but expected     XXXXXXXX
Could not move back to refs/heads/dev_504
Run Code Online (Sandbox Code Playgroud)

然后,如果我尝试继续,我得到以下错误:

fatal: cannot resume: .git/rebase-apply/final-commit does not exist.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题,以便rebase不会出错?

git version-control github rebase git-rebase

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

如何解决git-svn索引不匹配问题?

当我做了一个git svn rebase时,它停止了一点说:

Index mismatch: SHA key of a tree != SHA key of another tree. (我知道这些SHA键对应一棵树而不是上面两个sha键的git show提交.)

re-reading <sha index of a commit in svn/trunk>
... list of files ...
fatal: bad object <SHA1 index of the bad object>
rev-list -1 <SHA1 index of the bad object> --not <SHA1 index of the revision it was trying to re-read>: command returned error: 128
Run Code Online (Sandbox Code Playgroud)

我对git的内部工作方式不是很有经验,所以是否需要按照一系列步骤来剖析像这样的问题并可能解决它们?

svn git indexing git-svn rebase

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

在rebase -i期间重写提交消息时如何制作git show diff?

我总是用git commit --verbose.是否有一个等效的选项/设置,当我在重写提交消息期间,git会让我看到差异git rebase --interactive

git rebase

27
推荐指数
2
解决办法
1979
查看次数

Git压缩所有提交在分支中没有冲突

对我们来说,一个常见的开发工作流程是checkout分支b,向它提交一堆,然后将所有这些提交压缩成一个(仍在b).

但是,在rebase -i压缩所有提交的过程中,经常会出现多个步骤的冲突.

我本质上希望将分支更改为一个提交,该提交表示最终提交时存储库的状态 b

我做了一些搜索,但我还没找到我正在寻找的东西.我不想,merge --squash因为我们想在合并之前测试压扁的功能分支.

git rebase squash

27
推荐指数
2
解决办法
9948
查看次数

从历史中完全删除(旧)git提交

我正在使用git开始一个项目,我将提交非常大的文件,但每周只有几次.我已经尝试使用git as-is,它似乎将整个文件存储在每次更改的提交中.这不适用于此项目,存储库将失去控制.所以,我想减少存储库的大小.

我的第一个想法是"简单地"删除所有比两周更早的提交,或者只保留例如历史上的五次提交(这可能更好:) :)我用谷歌搜索并阅读了很多来自The Git社区书籍我猜我会需要使用的git-rebasegit-filter-branch.事情是我似乎无法让它工作.

只是为了说明; 我有一个只有一个分支的历史H(主分支)

A - > B - > C - > D - > E.

我想删除一些以前的提交,使我的历史看起来像

C - > D - > E.

提交A和B应该完全清除.我已经尝试了git-rebase但它似乎将提交合并在一起而不是实际删除旧的,也许我不完全理解rebase是如何工作的.另一个想法是从.git/objects中删除所有内容然后使用以下内容构建新提交git-hash-object -w,git-mktree而且git-commit-tree,我还没有设法将这个"人造"树推送到服务器.

我不会与任何分支机构合作,因此不需要考虑这些因素.

我想知道的是,是否有人可以给我具体的用法,git-rebase如果这是我应该使用的?或者其他一些提示,我可以做的例子.

干杯!


编辑:

大文件不会始终是相同的大文件,有些文件将被新文件替换.我希望这些被替换的文件完全从历史中清除.

git size history rebase

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

git:重写历史记录:重新排序和合并提交

现在的情况:

origin/mybranch --- A1 --- B1 --- A2 --- B2 --- A3 --- B3   mybranch
Run Code Online (Sandbox Code Playgroud)

我想清理那段历史(A1到B3),尤其是 因为我还没有把它推到任何地方,因为我想准备一个只有那些B*的补丁.

我想要的是:

origin/mybranch --- A1+A2+A3 --- B1+B2+B3   mybranch
Run Code Online (Sandbox Code Playgroud)

我可能根本不会推动这个(或者如果我愿意的话,只有总和的B*,我必须删除A*提交)并且当我在这方面进一步工作时,我可能会得到额外的这样的提交,即像这样:

origin/mybranch --- A1+A2+A3 --- B1+B2+B3 --- A4 --- B4   mybranch
Run Code Online (Sandbox Code Playgroud)

我想再次像上面那样改写它.

我不只是想知道任何方法来做到这一点(因为我能够以某种有点hacky的方式得到某种方式),我,尤其是.在这里要求正确/最好/最干净/最简单的方法来做到这一点.


我在做什么esp.是:我正在处理官方的xorg-xserver-1.7分支,并希望准备一个补丁(B*).因为我希望能够用系统替换我的自编译的xserver以进行简单的测试,所以我已经应用了一堆Debian/Ubuntu补丁(A*).但是,当我要在某处发布该补丁时,我想排除这些.

git rebase

25
推荐指数
1
解决办法
5084
查看次数

用git合并多个分支

我有2个本地分支叫做"开发"和"主人"; 他们是相似的.在我公司的服务器上有一个"主要"仓库(生产)和几个由其他开发商制造的分支机构:

$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/some-test
  remotes/origin/feature1
  remotes/origin/feature2
  remotes/origin/master

我怎么能合并remotes/origin/feature1,并remotes/origin/feature2进入我的地方"master"分支,复制所有到"发展",并开始在我的"开发"分支与实际代码的工作?

git merge rebase

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

如何为一系列提交git rebase -i?

我可以使用不包含最新提交的rebase来压缩本地功能/主题分支的一系列提交吗?这是我想在合并并推送到公共回购之前准备的提交.

我正在快速地工作并用糟糕的标题和描述进行了一些小的改动,我想要将两个或三个单独的逻辑提交压缩成一个很好的评论.我可以选择329aed9和af39283之间的一系列提交,这些提交可能在此功能分支的短历史中的任何一点吗?

git rebase -i RANGE_START_COMMIT_ID RANGE_LAST_COMMIT_ID
Run Code Online (Sandbox Code Playgroud)

谢谢!

git commit rebase git-rebase git-branch

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