提交后切换分支类型

时间:2016-12-08 03:35:19

标签: android git android-studio version-control

我有三个分支,main branchdevelopment branchnew_feature分支。

问题是我意外地在development branch上设置了我的第一次提交(初始提交)。

我的问题截图: enter image description here

我的分支机构的完整概述: enter image description here 问题:如何将其更改为main branch

4 个答案:

答案 0 :(得分:0)

您可以使用主分支merge开发分支,或使用主分支中的cherry-pick命令检索初始提交。

答案 1 :(得分:0)

git push -u origin development//(push it up to development)
git checkout main //checkout local main branch
git pull origin development //Pull latest from remote development branch into main
git add -A
git commit -m "get latest from development"
git push -u origin //push up to main

答案 2 :(得分:0)

您可以重命名开发分支。

$ git checkout development                 # checkout development
$ git checkout -b development-backup       # backup development branch
$ git branch -D master                     # delete your current local master 
$ git branch -m development master         # rename development -> master
$ git checkout master                      # checkout master
$ git push -f origin master                # force push, update remote master

答案 3 :(得分:0)

由于您尚未将远程分支(origin / development和origin / new_feature)合并到本地仓库中。所以有两种情况

不需要远程更改。请按照以下步骤操作:

  1. 创建一个新的“初始提交”。 MoreExecutors.directExecutor()git checkout master,然后是git checkout --orphan master1
  2. Rebase开发分支就可以了。 git commitgit checkout development(如果有冲突文件,您可以使用git rebase master1git add filename)。
  3. 删除master和new_feature分支。 git rebase --continuegit branch -D master
  4. 重命名分支。 git branch -D new_featuregit branch -m master1 mastergit checkout master
  5. 强制推送到远程。 git branch new_feature
  6. 需要远程更改。请按照以下步骤操作:

    1. 将远程更改合并到本地。 git push -f --allgit checkout developmentgit merge origin/developmentgit checkout new_feature
    2. 创建一个新的“初始提交”。 git merge origin/new_featuregit checkout master,然后是git checkout --orphan master1
    3. Rebase开发分支就可以了。 git commitgit checkout developmen
    4. Rebase new_feature分支就可以了。 git rebase master1git checkout new_feature
    5. 重命名主分支。 git rebase master1git branch -D master
    6. 强制推送到远程。 git branch -m master1 master