|
|
1
5246
现有分支机构
在执行此操作之前,您可以使用以下命令将未提交的编辑存储到存储库中
警告:
除非涉及其他情况,否则可以通过分支和回滚轻松完成。
但一定要确定有多少承诺要返回。或者,您可以代替
注:
你将
仅
从master分支“丢失”提交,但别担心,你会在newbranch中得到这些提交!在完成上述4步命令序列后,检查这一点的一个简单方法是查看
最后, you may need 强制将您的最新更改推送到主仓库:
警告:
对于Git 2.0及更高版本,如果你以后
|
|
|
2
893
对于那些想知道为什么它有效的人(就像我最初一样): 你想回到C,把D和E移动到新的分支。这是它最初的样子:
之后
之后
由于分支只是一个指针,
主人
新分行
,您只需创建一个指向上次提交的新指针。然后使用
|
|
|
3
374
一般来说。..git樱桃采摘 : 要实现OP的目标,需要两个步骤:
步骤1-注意你想在master上提交哪些内容
|
|
|
4
275
以前的大多数答案都是危险的错误!不要这样做:
当你下次跑步时
相反,请这样做:
警告:默认情况下,reflog是启用的,但如果您手动禁用了它(例如使用“裸”git存储库),则在运行后将无法恢复3次提交
另一种不依赖于reflog的方法是:
(如果你愿意,你可以写
技术说明
为什么会
假设你在origin/master包含提交M1、M2、M3时将其分支,然后自己进行了三次提交:
但随后有人通过强制推origin/master删除M2来重写历史:
使用您本地的reflog,
这种行为是有道理的,而且在重设基准时通常是正确的做法。
这是因为它们使reflog处于错误的状态。Git看到
但在这种特殊情况下,我们希望这3个提交被视为主题分支的一部分。为了实现这一点,我们需要在不包括3个提交的早期版本中分叉上游。这就是我建议的解决方案所做的,因此它们都使reflog处于正确的状态。
有关更多详细信息,请参阅
|
|
|
5
251
还有一种方法可以做到这一点,只使用2个命令。还可以保持当前工作树的完整性。
旧版本
-在我了解之前
能够
|
|
|
6
46
使用git stash的更简单的解决方案
什么时候用这个?
这是什么,按行号
您现在可以使用
这没什么用
目标
如果您将master的更改推到上游,则不要这样做 其他人可能已经做出了这些改变。如果你只是重写你的本地主数据,那么当它被推送到上游时不会有任何影响,但将重写的历史推送给合作者可能会引起麻烦。 |
|
|
7
28
最简单的方法:
1.
重命名
2.
创建
制造
注:
上游为
|
|
|
8
21
这不会在技术意义上“移动”它们,但具有相同的效果:
|
|
|
9
12
要在不重写历史的情况下做到这一点(即如果你已经推送了提交):
然后,这两个分支都可以不用用力推! |
|
|
10
2
刚刚出现这种情况:
我表演了:
我原本以为commit I会是HEAD,但commit L现在就是了。.. 为了确保在历史上找到正确的位置,更容易处理提交的哈希值
|
|
|
11
0
我该怎么办
这个?
有两个命令
给予
和 给予
|