如何从远程仓库中的 master 删除 GIT 分支并从另一个分支开始一个新分支?
How to delete GIT branch from master in remote repo and start a new branch from another branch?
我不小心从 origin 的 master 分支创建了一个新分支,并将我的更改提交到该分支。
我们将我创建的新分支命名为Accidental_Branch
。
但我应该从不同的分支创建新分支,比方说 Feature_Branch
。主分支不是最新的,我的团队将所有更改提交到我应该从中创建新分支的 Feature_Branch
。这就是我想要的。
删除我创建的分支,即Accidental_Branch
。我不想丢失我在本地所做的更改,因为我想用该更改创建一个新分支。
从 Feature_Branch
创建一个新分支。并提交更改。更改含义,我已提交的更改 Accidental_Branch
和我在本地未提交的更改。
请帮帮我。我是 GIT.
的新手
如果不想丢失未提交的数据,可以使用$ git stash
命令暂时但安全地保存数据。这会将数据存储在一个隐藏的地方。
之后,您可以在分支之间切换或使用 $ git checkout -b {new_branch_name}
创建新分支
现在,您将登陆新的分支机构。在该分支中,您可以获取使用$ git stash apply
命令之前隐藏的数据。
之后,您可以使用以下命令安全地删除之前创建的分支:
要删除本地分支,请使用以下命令:
$ git branch -d {branch_name}
您可以使用 -D 选项强制删除分支,如下所示:
$ git branch -D {branch_name}
您可以使用以下命令删除远程分支:
$ git push origin --delete {branch_name}
看看这是否是您要找的。但是您在问题中也说过您已经对分支机构进行了更改。如果您提交了更改,那么存储将不起作用。在这种情况下,请稍微澄清一下您的问题。如果你能在问题中说出分支名称就太好了。
要保存未提交的更改,您可以使用 git stash save "optional stash-message"
生成 stash(兑现所选文件)。
所以你可以缓存你的文件,这样你就不会丢失它们。 git stash
之后可以通过本地 git branch -d <branch_name>
删除意外生成的分支,远程删除 git push origin --delete <branch_name>
.
签出您将开始新分支的分支 (git checkout <branch_name>
) 并在那里创建您的 new 分支 git branch <branch_name>
并将其签出为上面解释然后应用你生成的存储 git stash apply stash@{0}
.
git stash
的工作原理在 website-blog 上有简单的解释。
编辑,为什么问题不够清楚:
如果您不小心分支中的更改已经推送到远程服务器,那么 git stash
不起作用。在这种情况下,您必须 revert 提交,其中包括您不想丢失的更改。 git revert
命令将创建具有 相反 效果的新更改,从而撤消指定的旧提交,因此更改再次可用且不会丢失。
在 git revert
之后,您在工作目录中有了更改的文件,您可以创建新分支。如果新分支从另一个分支开始,你必须再次 stash 未提交的文件,创建并签出新生成的分支并 apply the stash in this如上所述分支。
您可以将您创建的提交变基到您想要的位置。
根据有多少,手动创建一个新分支可能更容易,一次挑选一个,然后删除旧的。
我不小心从 origin 的 master 分支创建了一个新分支,并将我的更改提交到该分支。
我们将我创建的新分支命名为Accidental_Branch
。
但我应该从不同的分支创建新分支,比方说 Feature_Branch
。主分支不是最新的,我的团队将所有更改提交到我应该从中创建新分支的 Feature_Branch
。这就是我想要的。
删除我创建的分支,即
Accidental_Branch
。我不想丢失我在本地所做的更改,因为我想用该更改创建一个新分支。从
Feature_Branch
创建一个新分支。并提交更改。更改含义,我已提交的更改Accidental_Branch
和我在本地未提交的更改。
请帮帮我。我是 GIT.
的新手如果不想丢失未提交的数据,可以使用$ git stash
命令暂时但安全地保存数据。这会将数据存储在一个隐藏的地方。
之后,您可以在分支之间切换或使用 $ git checkout -b {new_branch_name}
现在,您将登陆新的分支机构。在该分支中,您可以获取使用$ git stash apply
命令之前隐藏的数据。
之后,您可以使用以下命令安全地删除之前创建的分支:
要删除本地分支,请使用以下命令:
$ git branch -d {branch_name}
您可以使用 -D 选项强制删除分支,如下所示:
$ git branch -D {branch_name}
您可以使用以下命令删除远程分支:
$ git push origin --delete {branch_name}
看看这是否是您要找的。但是您在问题中也说过您已经对分支机构进行了更改。如果您提交了更改,那么存储将不起作用。在这种情况下,请稍微澄清一下您的问题。如果你能在问题中说出分支名称就太好了。
要保存未提交的更改,您可以使用 git stash save "optional stash-message"
生成 stash(兑现所选文件)。
所以你可以缓存你的文件,这样你就不会丢失它们。 git stash
之后可以通过本地 git branch -d <branch_name>
删除意外生成的分支,远程删除 git push origin --delete <branch_name>
.
签出您将开始新分支的分支 (git checkout <branch_name>
) 并在那里创建您的 new 分支 git branch <branch_name>
并将其签出为上面解释然后应用你生成的存储 git stash apply stash@{0}
.
git stash
的工作原理在 website-blog 上有简单的解释。
编辑,为什么问题不够清楚:
如果您不小心分支中的更改已经推送到远程服务器,那么 git stash
不起作用。在这种情况下,您必须 revert 提交,其中包括您不想丢失的更改。 git revert
命令将创建具有 相反 效果的新更改,从而撤消指定的旧提交,因此更改再次可用且不会丢失。
在 git revert
之后,您在工作目录中有了更改的文件,您可以创建新分支。如果新分支从另一个分支开始,你必须再次 stash 未提交的文件,创建并签出新生成的分支并 apply the stash in this如上所述分支。
您可以将您创建的提交变基到您想要的位置。
根据有多少,手动创建一个新分支可能更容易,一次挑选一个,然后删除旧的。