我如何将 master 回滚到之前的提交,进行更改,然后重新应用回滚的所有内容?
How do I roll back master to a prior commit, make a change, and then reapply everything that was rolled back?
我有一个 master 分支和一个 development 分支目前都在同步。
我需要将我的主分支回滚到之前的提交(至少 30 次提交),这样我才能进行更改并提交。然后我想重新应用所有内容并将其恢复到与开发同步的当前日期。
我可以通过将 master 恢复到之前的提交来做到这一点吗?进行更改,提交,然后将 development 合并到 master 中。那行得通吗?有没有更简单或更合适的方法来做到这一点?
在此先感谢您的帮助!
可以使用git reset --hard master@{1.days.ago}
您还可以指定时间,例如 1.hours.ago、5.days.ago 等
之后您可以申请 git 提交。
有几种不同的方法可以做到这一点:rebase
/cherry-pick
/reset
+merge
。它看起来像这样:
Before:
* C4 <- [master] [development]
* C3
* C2
* C1
reset master to C1, then commit Alteration A1:
* A1 <- [master]
| * C4 <- [development]
| * C3
| * C2
|/
* C1
Option 1: Bring up to date /w development (via merge):
* C5 <- [master]
|\
| * C4 <- [development]
| * C3
| * C2
* | A1
|/
* C1
Option 2: Bring up to date /w development (via rebase or cherry-pick):
* C4' <- [master] [development2]
* C3'
* C2'
* A1
| * C4 <- [development]
| * C3
| * C2
|/
* C1
但是您应该有充分的理由回滚 master
并更改历史记录——最好只是在顶部添加更多更改。
也许您可以提供更多详细信息,以便给出 better/specific 推荐?
我有一个 master 分支和一个 development 分支目前都在同步。
我需要将我的主分支回滚到之前的提交(至少 30 次提交),这样我才能进行更改并提交。然后我想重新应用所有内容并将其恢复到与开发同步的当前日期。
我可以通过将 master 恢复到之前的提交来做到这一点吗?进行更改,提交,然后将 development 合并到 master 中。那行得通吗?有没有更简单或更合适的方法来做到这一点?
在此先感谢您的帮助!
可以使用git reset --hard master@{1.days.ago}
您还可以指定时间,例如 1.hours.ago、5.days.ago 等
之后您可以申请 git 提交。
有几种不同的方法可以做到这一点:rebase
/cherry-pick
/reset
+merge
。它看起来像这样:
Before:
* C4 <- [master] [development]
* C3
* C2
* C1
reset master to C1, then commit Alteration A1:
* A1 <- [master]
| * C4 <- [development]
| * C3
| * C2
|/
* C1
Option 1: Bring up to date /w development (via merge):
* C5 <- [master]
|\
| * C4 <- [development]
| * C3
| * C2
* | A1
|/
* C1
Option 2: Bring up to date /w development (via rebase or cherry-pick):
* C4' <- [master] [development2]
* C3'
* C2'
* A1
| * C4 <- [development]
| * C3
| * C2
|/
* C1
但是您应该有充分的理由回滚 master
并更改历史记录——最好只是在顶部添加更多更改。
也许您可以提供更多详细信息,以便给出 better/specific 推荐?