如何将当前工作分支移动到git中的master分支

use*_*574 33 git

我目前其中一个项目包含更多分支机构.主分公司尚未合并很长时间.所以我想用最新的代码切换到master.

你能告诉我必要的命令和步骤吗?

让我重新构思我的问题.

我正在一个不同分支的项目中工作.最新的变化是在除了主人之外的一些分支.现在我的要求是:有没有办法将当前工作分支移动到master而不将其与master合并,以避免冲突?

rad*_*tao 50

如果你想在master拥有other_branch完全相同的文件状态并保存历史记录 - 请做下一步(比它更软reset):

git checkout master
git checkout other_branch .
Run Code Online (Sandbox Code Playgroud)

(与期间)

这将使other_branch完整拷贝到当前():然后进行常规提交.

git add --all
git commit -m "* copy other_branch to master working tree"
Run Code Online (Sandbox Code Playgroud)

注意,如果master没有跟踪other_branch中未跟踪(未编入索引)的文件(目录),则它们将保留.要删除那些未跟踪的文件(目录):

git clean -fd
Run Code Online (Sandbox Code Playgroud)

请参阅如何从当前Git工作树中删除本地(未跟踪)文件?更多细节


Gra*_*rck 16

你想把'develop'分支合并到master吗?

git checkout master
git merge develop
Run Code Online (Sandbox Code Playgroud)

或者您想将master中的更改合并到开发分支中?

git checkout develop
git merge master
Run Code Online (Sandbox Code Playgroud)


Mar*_*air 12

首先,我会尝试将其合并master并查看是否确实存在大量冲突 - git的合并仅仅是为了标记真正的冲突.如果你git status在开始之前确保自己是干净的,并且发现有太多的冲突需要处理,你可以回过头来:

git reset --merge
Run Code Online (Sandbox Code Playgroud)

但是,如果您只想让当前master与其他分支相同,则可以使用:

git checkout master
git reset --hard other-branch
Run Code Online (Sandbox Code Playgroud)

然而,这通常是一个坏主意,因为:

  1. 你丢弃了主分支上的所有工作.也许你以后可能会想要这段历史?(您可以随时"备份"您的主分支git branch old-master master.)
  2. 你正在重写master分支的历史,所以如果你曾与任何人分享这个分支,结果会让你们两个都感到困惑.
  3. git reset --hard 应始终谨慎使用,因为它会丢弃您拥有的所有未提交的更改.


Kar*_*ldt 7

如果我正确理解您的英语,您不想将更改合并回 master,而只是将 master 重置为指向当前签出分支中的最新提交?为此,请使用:

git branch -f master
Run Code Online (Sandbox Code Playgroud)


hvg*_*des 5

您需要将当前分支合并到主分支中。我这样做的方式是:

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
Run Code Online (Sandbox Code Playgroud)