![]() |
1
5246
移动到新分支
警告:
此方法有效,因为您正在使用第一个命令创建新分支:
除非涉及到其他情况,否则很容易通过分支和回滚来完成。
但一定要确保返回多少提交。或者,您可以代替
* 1你将 只有 别担心,你会在新农场得到那些承诺的!
警告:
如果您以后使用Git 2.0及更高版本
移动到现有分支如果你想把你的承诺转移到 现有分支 ,如下所示:
|
![]() |
2
893
对于那些想知道为什么它会起作用的人(就像我起初那样): 你想回到C,把D和E移到新的分支。首先是这样的:
后
后
因为分支只是一个指针,
主人
指向上一次提交。当你做的时候
纽科
您只需创建一个指向上一次提交的新指针。然后使用
|
![]() |
3
374
一般来说。。。在这种情况下,Sykora公开的方法是最好的选择。但有时不是最简单的方法,也不是一般的方法。一般方法使用 樱桃樱桃 以下内容: 要实现OP想要的,它需要两个步骤:
第1步-注意您要从主服务器提交的
|
![]() |
4
275
另一种方法是,只使用两个命令。同时保持当前工作树的完整性。
旧版本
-在我知道之前
能够
|
![]() |
5
251
以前的大多数答案都是危险的错误!不要这样做:
当你下次跑步时
而是这样做:
警告:reflog在默认情况下是启用的,但是如果您手动禁用了它(例如,通过使用“裸”g it存储库),您将无法在运行后获得3次提交
另一种不依赖于反射的方法是:
(如果你愿意,你可以写
技术说明
为什么会
假设您在包含提交m1、m2、m3时将origin/master分支,然后自己进行三次提交:
但随后有人强迫原点/主数据删除m2来重写历史:
利用你的本地反应,
这种行为是有意义的,而且通常在重新平衡时是正确的。 所以以下命令失败的原因是:
是因为他们让反射处于错误的状态。吉特见
但在这个特定的案例中,我们希望这3个承诺被视为主题分支的一部分。为了实现这一点,我们需要在早期的版本(不包括3个提交)中划分上游。这就是我建议的解决方案所做的,因此它们都将reflog保持在正确的状态。
有关详细信息,请参见
|
![]() |
6
46
使用git stash的更简单的解决方案如果:
那么下面的步骤就简单多了(从分支开始
这是做什么的,按行号
您现在可以使用
这不能做什么
目标OP表示,目标是“在提交之前将master恢复到原来的状态”,而不会丢失更改,而这个解决方案会做到这一点。
当我不小心做出新的承诺时,我每周至少要这样做一次
如果你把大师的改变推到上游,不要这样做。 其他人可能已经改变了。如果你只是在重写你的本地大师,那么当它被推到上游时没有任何影响,但是将一个重写的历史推给合作者会导致头痛。 |
![]() |
7
28
从技术角度来说,这不会“移动”它们,但它具有相同的效果:
|
![]() |
8
21
要在不重写历史记录的情况下执行此操作(例如,如果您已经推送了提交):
然后可以不用力地推两个分支! |
![]() |
9
12
就在这种情况下:
我表演:
我原以为我会是负责人,但现在我是… 为了确保降落在历史上的正确位置,更容易处理提交的混乱问题。
|
![]() |
10
2
1)创建一个新分支,将所有更改移动到新分支。
2)然后回到旧的分支。
3)做吉特钢筋
4)然后打开的编辑器包含最后3个提交信息。
5)变化
6)现在从当前分支中删除最后3个提交(
|
![]() |
11
0
你可以这样做,这只是我使用的3个简单步骤。 1)创建新的分支,在其中提交最近的更新。
2)查找新分支上提交的最近提交ID。
3)复制该提交ID注意,最新的提交列表在顶部。所以你可以找到你的承诺。你也可以通过信息找到这个。
您还可以提供一些范围的提交ID。
现在你的工作完成了。如果您选择了正确的ID和正确的分支,那么您将成功。所以在这样做之前要小心。否则会出现另一个问题。 现在你可以推你的代码了
|
![]() |
Jim · 从另一个分支获取文件的内容,而无需将其签出 7 年前 |
![]() |
kagarlickij · 生成定义的VSTS生成编号 7 年前 |
![]() |
staad · 多个孤立分支或独立存储库-git 7 年前 |
![]() |
BoffinBrain · 如何删减回购历史的特定部分以消除膨胀 7 年前 |
![]() |
herve-guerin · 如何读取git分支的当前上游 7 年前 |
![]() |
Bludzee · 为什么Git毫无怨言地签出这个被删除的分支? 7 年前 |
![]() |
vaheeds · Git从现有远程分支添加工作树 7 年前 |