问题标签 [git-rebase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 如何在 git rebase 期间通过哈希识别冲突提交?
当我使用 遇到合并冲突时git rebase
,如何根据提交来识别冲突的来源,而不仅仅是文件差异?
我已经知道如何(基本)使用git mergetool
or git add
before git rebase --continue
,但有时文件之间的差异还不够:我想查看提交日志和刚刚未能应用于工作树的提交的差异。
我读过其他问题,git log --merge
如果我使用git merge
. 当我遇到冲突并被告知时,我还是尝试了它fatal: --merge without MERGE_HEAD?
。
如何识别有问题的提交?
git - 在 Git 中编辑根提交?
有一些方法可以从以后的提交中更改消息:
如何更改第一个提交(没有父级)的提交消息?
git - 撤消 git pull --rebase
嘿,我是 git 新手,我需要撤消拉动,有人可以帮忙吗?!?所以我所做的是...
- git 提交
- 混帐藏匿
- git pull --rebase
- git stash 弹出
这造成了一堆冲突并且出了点问题。现在做 'git stash list' 表明我的藏匿处仍然存在。是否可以在执行 git commit 之后将我的 repo 恢复到原点。如此有效地,我的回购只包含我所做的更改,而服务器没有任何新内容?
git - 如何推/拉 Git rebase
我想使用git rebase
以便干净地合并主分支中的功能(在较少的提交中或至少在更改日志的顶部)。请注意,我是唯一一个在存储库上工作的人。
在阅读了 Git 工作流和变基与合并问题之后,我发现git rebase
这会非常好,就像 Micah 一样,我想重新git push
基基更改只是因为我正在从不同的地方处理它们(例如:我的笔记本、我的家、某处的另一台 PC。 ..)
所以这里有两个解决方案(双向丑陋合并):
- 在其他机器上使用
git push -f
推送,然后拉取,但是如何在其他机器上干净地获取最新版本? - 使用合并将主更改合并到功能分支,git push/pull,一旦成熟,做一个单一的变基(在一个或多个提交中干净地)
(2) 如下所示:
您认为哪种解决方案可行?到目前为止,我还没有尝试过其中任何一个(主要是因为害怕让我的日志更加混乱)。
git - 奇怪的 git 合并问题
这是 gitk 目前在我们的一个项目中的样子:
https://dl.dropbox.com/u/2582508/gitk.png
显然,据我们所知,这发生在使用远程分支完成单个“git merge”之后 - 我们不确定为什么或发生了什么。知道这里发生了什么吗?
更重要的是,修复它的最佳方法是什么?这些合并提交是空的,但是在执行“git rebase -i”时,合并提交通常似乎不会出现。
最重要的是,我不想让历史与其他克隆不兼容,即他们应该仍然能够拉/推/合并它。这甚至可能吗?
git - 如何将提交从主干移动到 Git 中的分支?
我向 master 提交了一堆代码,然后意识到它们应该在一个分支中。
我看过关于变基、合并和重置主人的各种事情。但是,任何操纵尝试都没有产生像我正在尝试做的那样的历史。
我的尝试使我相信它需要某种组合rebase --onto
并将reset --hard
主人及时移回。但是我对 Git 分支的理解还有一些不足之处。这样做的一部分是学习如何使用它。
应该注意的是,我试图移动的所有更改都没有被推出。
当前的
期望的结果
git - 合并 --squash 和 rebase 有什么区别?
我是 git 新手,我试图了解 squash 和 rebase 之间的区别。据我了解,您在进行变基时会执行壁球。
git - git:如何在通过文件删除重新提交提交时不删除文件
我有一个分支,我想将其重新定位到我的主人的最新提交。问题是 master 上的一个干预提交是删除并忽略一组特定的文件(请参阅此问题)。
如果我只是做一个直接的变基,这些文件将再次被删除。无论如何,在git内部这样做,而不是手动复制所有文件,然后再将它们复制回来?
或者我应该做一些事情,比如在 master 上创建一个新分支,然后只合并来自旧分支的提交?
尝试ascii艺术:
(在做艺术时,我意识到我可以从 A 重新设置分支,然后在完成后合并,但我仍然想知道是否有办法“正确”地做到这一点)
更新警告任何尝试此操作的人。此处提出的解决方案很好,但是当您再次签出 master 时,将重新应用 B 提交,并且您会再次丢失所有文件:(
svn - 如何将 git 与 svn 树重新同步?
背景
我正在向使用 subversion 的项目添加一些功能 - 我正在使用 git-svn 将其克隆到我的本地存储库, git-svn rebase 以保持官方主干中的最新更改并保持历史线性。
最近我忘记了自己,做了一些合并,这弄乱了我的变基——长话短说,我需要花一些时间来挑选樱桃,让历史再次线性化。在那之后 1 次 rebase 就好了,但现在试图让 git-svn rebase 显示从 2008 年开始的颠覆提交之间的冲突(大约 700 次提交),即使历史似乎是线性的。
问题
- 有没有办法用 svn trunk 重建/重新同步我的 git 存储库?
- 如果我在另一台计算机上克隆我的 git 存储库(没有 .git/svn 文件夹) - 是否可以使用 svn 对其进行 rebase,知道 repo url 和最后一个 rebase 修订版?
git - 从多个 git rebase 中恢复“旧提交”
我知道这个问题,但不确定如何将其映射到我目前的情况。(变基是可怕的,撤消变基是双重可怕的!)
我从我的主人的几个不同的功能分支开始:
我想将它们合并在一起,并在合并回到 master 顶部之前检查它们是否有效,所以我做了:
然后
这让我有了
然后我更正了一些没有正确编译的位,并将整个功能设置为可接受的状态:
我的问题是我的同事告诉我,我们还没有为 FeatureA 做好准备。
有什么方法可以让我保留我所有的工作,但也可以恢复到我可以将 FeatureC 重新定位到 Feature B 的情况?