How to move the current working branch to master branch in git
我目前有一个项目,它包含更多分支。 硕士分支尚未合并很长时间。 所以我想切换到掌握最新代码。
您能给我一些必要的命令和步骤吗?
让我重新提出我的问题。
我在一个有不同分支机构的项目中工作。 最新的更改是在除master以外的其他分支中进行的。 现在我的要求是:有没有一种方法可以将当前的工作分支移至master而不将其与master合并,以避免冲突?
如果要在master中拥有与other_branch完全相同的文件状态并保存历史记录,请执行以下操作(并注意结尾处的句点):
1 2 | git checkout master git checkout other_branch . |
现在,您将在当前母版中拥有other_branch的完整副本(比
1 2 | git add --all git commit -m"* copy other_branch to master working tree" |
注意:other_branch的未跟踪(未索引)文件(目录)将保留,如果master不会跟踪它们。要删除那些未跟踪的文件(目录):
1 | git clean -fd |
请参阅如何从当前的Git工作树中删除本地(未跟踪)文件?更多细节。
您想将"开发"分支合并到master吗?
1 2 | git checkout master git merge develop |
还是要将主更改合并到开发分支中?
1 2 | git checkout develop git merge master |
首先,我将尝试将其合并到
1 | git reset --merge |
但是,如果只想使当前
1 2 | git checkout master git reset --hard other-branch |
但是,这通常是一个坏主意,因为:
如果我能正确理解英语,就不想将所做的更改重新合并到master中,而只是将master重置为指向当前已签出分支中的最新提交?为此,请使用:
1 | git branch -f master |
您需要将当前分支合并到master分支。我这样做的方式是:
1 2 3 4 5 6 7 | 1) git fetch origin # get all branches from server 2) git rebase master # update your local master to the origin master, in case master has changed upstream 3) git checkout <branch> # go to your branch 4) git rebase master # rebase your branch to master; applies your branch's changes ontop of the master, where it diverged 5) git checkout master # go back to master 6) git merge <branch> # merge your branch into master. since you rebased, this should be trivial 7) git push # push your master upstream |
如果要将文件从分支复制到master,请执行以下命令。
git checkout主
git checkout branch_from_which_you_have_to_copy_the_files_to_master。
(带期间)
git添加--all
git push -u原始主机
git commit -m"从分支复制到主"
如果要从
这仅需要从
当develop分支与master完全不同时,请参阅我对管理修补程序的回答。
但是,如果要将所有提交从
至少在IntelliJ中,您可以执行以下操作:
这会将master变成您当前的分支。主人的历史被保留。我确定有一个git命令行等效项。
如果要将工作分支合并到主分支中,还可以使用rebase,它稍微干净一些。
1 2 | git checkout master git rebase <working branch> |
也许不是很干净,但是对我有用
- git pull#获取所有更改
- 切换到my_branch
- 复制所有文件tmp dir
- 切换到主人
- 删除母版中的所有文件
- 从tmp目录复制文件
- 承诺