git merge squash—当我只需要从我挤压的分支中进行更改时,就可以解决冲突

git merge squash—当我只需要从我挤压的分支中进行更改时,就可以解决冲突,git,git-merge,merge-conflict-resolution,squash,Git,Git Merge,Merge Conflict Resolution,Squash,我有一个github分支,当主分支达到某种可接受的状态时,我会将它推送到github(我曾经这样做过一次)。为此,我做了: MrD@MRSD /c/Dropbox/eclipse_workspaces/android/AndroidMonitoring (master) $ git checkout github Switched to branch 'github' MrD@MRSD /c/Dropbox/eclipse_workspaces/android/AndroidMonitoring

我有一个github分支,当主分支达到某种可接受的状态时,我会将它推送到github(我曾经这样做过一次)。为此,我做了:

MrD@MRSD /c/Dropbox/eclipse_workspaces/android/AndroidMonitoring (master)
$ git checkout github
Switched to branch 'github'
MrD@MRSD /c/Dropbox/eclipse_workspaces/android/AndroidMonitoring (github)
$ git merge --squash master
Auto-merging src/gr/uoa/di/monitoring/android/services/Monitor.java
CONFLICT (add/add): Merge conflict in src/gr/uoa/di/monitoring/android/services/
Monitor.java
//...
Automatic merge failed; fix conflicts and then commit the result.
我想要的是使工作目录与主目录处于完全相同的状态

  • 是我做这件事的错误方式(反复合并--挤压到github分支中)

  • 有没有一种简单的、防白痴的方法来实现这一点(无需经历每次冲突)

  • 作为奖励,我想知道在这个pic中使用本地版本和使用远程版本意味着什么-msysgit:


您必须使用
git提交来跟进
git合并--squash
,因此您的工作流中可能存在错误


您可以使用
git merge-s thethers
指定您始终希望另一个主分支(在本例中为主分支)赢得所有合并冲突。(尽管我很惊讶,如果您没有在github分支上单独工作,您会遇到合并冲突)

您必须使用
git commit
执行
git合并--squash
,因此您的工作流中可能存在错误


您可以使用
git merge-s thethers
指定您始终希望另一个主分支(在本例中为主分支)赢得所有合并冲突。(尽管我很惊讶,如果你没有在github分支上单独工作,你会遇到合并冲突)

经过大量的谷歌搜索,结果证明我的策略是错误的
git merge--squash
不做我想做的事-即将我的主分支镜像到我的github分支,而不在master中保留提交的历史记录(普通合并可以,但我不想在github中有任何主分支的历史记录)。
例如,它不会删除已删除的文件-有关详细说明,请参见
可能还有其他陷阱——包括永久性的冲突解决

不管怎样,我想我找到了正确的方法——详细的方法


我试过了,它确实按照我的要求工作了。在谷歌搜索了很多次之后,我发现我的策略是错误的
git merge--squash
不做我想做的事-即将我的主分支镜像到我的github分支,而不在master中保留提交的历史记录(普通合并可以,但我不想在github中有任何主分支的历史记录)。
例如,它不会删除已删除的文件-有关详细说明,请参见
可能还有其他陷阱——包括永久性的冲突解决

不管怎样,我想我找到了正确的方法——详细的方法


尝试了它,它确实按照我想要的方式工作了

要提交,我必须首先解决冲突-但这些合并冲突正是我所追求的(也是徘徊的目标)。如果您只将合并提交到github分支,我将重置当前合并并重新开始
git reset--merge
工作得很好。我没有造成任何影响-仍然会出现冲突如果您确定希望从master获得所有更改,那么
git merge-s他们的
应该可以解决所有冲突。你试过了吗?“如果你没有在github分支上做单独的工作,我很惊讶你会遇到合并冲突”-我也是-检查我回答中的链接要提交我必须首先解决冲突-但是如果你除了合并之外没有提交任何东西到github分支,那么这些合并冲突就是我要解决的(也是徘徊的),我会重置当前合并并重新开始
git reset--merge
工作得很好。我没有造成任何影响-仍然会出现冲突如果您确定希望从master获得所有更改,那么
git merge-s他们的
应该可以解决所有冲突。你试过了吗?“如果你没有在github分支上做单独的工作,我很惊讶你会遇到合并冲突”-我也是-查看我回答中的链接我想知道这张图片中使用本地版本和使用远程版本的含义-msysgit:这仍然是一个谜我想知道这张图片中使用本地版本和使用远程版本的含义-msysgit:这仍然是一个谜
$ git checkout master@{0}
$ git reset --soft github
$ git commit
$ git branch temp
$ git checkout temp
$ git branch -M github
$ git push -u -v  origin github:master