我目前其中一个项目包含更多分支机构.主分公司尚未合并很长时间.所以我想用最新的代码切换到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)
然而,这通常是一个坏主意,因为:
git branch old-master master.)master分支的历史,所以如果你曾与任何人分享这个分支,结果会让你们两个都感到困惑.git reset --hard 应始终谨慎使用,因为它会丢弃您拥有的所有未提交的更改.如果我正确理解您的英语,您不想将更改合并回 master,而只是将 master 重置为指向当前签出分支中的最新提交?为此,请使用:
git branch -f master
Run Code Online (Sandbox Code Playgroud)
您需要将当前分支合并到主分支中。我这样做的方式是:
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)