我有develop
& master
分支,develop
分支现在很乱,我想重置它并将其作为master
的副本。我不确定将master
合并到develop
是否会使它们都相同。在尝试合并后,我遇到了很多冲突,我使用了解决它们:
git checkout develop
git merge origin/master
//got many conflicts
git checkout . --theirs
这对于develop
分支来说是否足以与master
完全相同?
由于
答案 0 :(得分:37)
如果你想让develop
与master
相同,最简单的方法就是重新创建指针:
git branch -f develop master
或者,如果您已经签出develop
:
git reset --hard develop master
但请注意,这两个选项都会删除develop
中master
以外没有的任何历史记录。如果这不合适,您可以通过创建镜像master
最新状态的提交来保留它:
git checkout develop
git merge --no-commit master
git checkout --theirs master .
git commit
答案 1 :(得分:35)
如果你只想让它们成为同一件事
然后
//from Develop and assuming your master is up to date with origin/master
git reset --hard master
答案 2 :(得分:1)
git reset HEAD~
答案 3 :(得分:0)
我参加聚会有点晚了,但是,在将我的dev分支合并到master并推送到服务器之后,我执行以下操作:
git fetch
git checkout development
git merge origin/master
git push
dev分支是master分支之前的一个提交,其他开发人员不必担心开发分支中的所有提交都会被重置。
答案 4 :(得分:0)
如果所有其他方法都失败了,您可以删除当前分支并直接从 master
重新创建它。
git branch -D develop
git checkout master
git checkout -b develop
答案 5 :(得分:0)
例如使 staging
分支与 develop
相同,可以简单地重新创建指针:
首先通过运行以下命令确保您的本地开发分支与 origin/develop
保持同步:
git checkout develop && git pull origin develop
然后检查您的目标分支(在本例中为 staging
)
git checkout staging
最后但并非最不重要的是重置目标分支
git reset --hard develop
用蛮力推动更改(git会抱怨,因为本地指针有不同的地址)
git push -f
那就差不多了!