使用已提交但未推送的更改创建一个新分支

问题描述

我有一个包含 main 分支的 git 存储库。

不幸的是,我在那里创建了很多新功能并提交了更改,但我还没有推送它们。

现在我想在另一台计算机上工作,所以我的想法是从 main 上已提交但未推送的更改创建一个新分支。

所以我的问题是:

如何创建一个名为 version3 的新分支,其中包含来自 main 的所有未推送的更改,并在此之后从 main删除这些提交以获得一个 main-branch在合并之前不包含新功能

解决方法

您可以执行以下操作:

# Create a new branch `version3` based on `main` and check it out
git checkout -b version3 main

# Push `version3` (-u to make the local branch track the remote branch)
git push -u

# Go on `main` and remove the commits you do not want
git checkout main
git reset --hard origin/main

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...