【发布时间】:2017-01-06 23:22:00
【问题描述】:
当我想将更改推送到我的远程接受环境中时,我想让我的测试分支与 git 中的 master 相同,然后再从新的 dev 分支中合并文件。
让“测试”分支成为 master 的快照并合并来自新分支的更改的最简单方法是什么?
【问题讨论】:
标签: git merge git-branch git-merge git-reset
当我想将更改推送到我的远程接受环境中时,我想让我的测试分支与 git 中的 master 相同,然后再从新的 dev 分支中合并文件。
让“测试”分支成为 master 的快照并合并来自新分支的更改的最简单方法是什么?
【问题讨论】:
标签: git merge git-branch git-merge git-reset
如果您的更改在 test 中并且您想更新您的本地 master,只需签出 master,然后执行 git merge test。
【讨论】:
git fetch --allgit reset --hard origin/mastergit reset --soft origin/testgit addgit commit -m "blah"git push。对于合并更改的第二部分,我做了git checkout testgit merge newbranch,它说“已经是最新的”,但是如果我这样做git diff --name-status test..newbranch --,它会显示我想要合并的所有更改!跨度>
reset 部分解释了你所看到的(?)。
如果当前(或旧)提交 test 对您(或其他任何人)来说并不重要。
你可以这样做
$ git checkout test
$ git reset --hard master
$ # In case your local master is not up-to-date use origin/master
这会将test 的指针移动到master 指向的当前提交。
【讨论】:
git fetch --allgit reset --hard origin/mastergit reset --soft origin/testgit add@ 987654329@git push。对于合并更改的第二部分,我做了git checkout testgit merge newbranch,它说“已经是最新的”,但如果我这样做git diff --name-status test..newbranch --,它会显示我想要合并的所有更改!跨度>
git reset 是一个非常危险的命令,因为它确实会删除内容。在大多数情况下,我会尽量避免使用此命令:我仅在我确定要删除更改的文件基础上使用它。
test 中所做的更改。
reset 删除了工作,我认为这会导致您的结果。为什么你必须reset? (你的想法是什么?)
git merge newbranch时,它说“已经是最新的”,但是如果我执行差异@987654339 @它表明存在差异,但在执行git merge newbranch时不会识别它们