没有推送的 Git merge 不会出现在远程存储库中

标签 git merge repository

这是一个新手 Git 问题,但我还没有在 Stack Overflow 上找到可以让我清楚的答案。

基本上,我在计算机上的一个分支上工作:

$ git checkout -b my_branch

然后,我对文件进行了一些更改。之后,在 my_branch 中,我添加、提交并推送了我编辑的文件。

但后来,我决定将这些更改(my_branch 上的更改)放在 master 上。问题来了。 我做了:

$ git checkout master
$ git merge my_branch

在我的本地存储库中一切正常。但是当我访问可以看到我的远程存储库的网站时,我的 merge 不在那里。 所以,我决定做一个简单的

$ git push

没有对我的文件进行任何更改。

成功了。那么,执行“空”推送是在远程存储库上查看我的本地 merge 的唯一方法吗?

最佳答案

您的 Git 存储库是本地的。远程存储库只是它的另一个副本。当您添加提交时,无论是通过更改某些内容并运行 git commit,还是通过使用 git merge merge 某些内容,都会在本地发生。没有通过网络发送任何内容。

唯一一次通过网络发送数据是在您显式运行诸如 git pushgit fetchgit pull 之类的命令时。

merge 提交类似于任何其他提交。它只是将一条历史线的状态与另一条历史线的状态结合起来的结果。因此,即使您没有编辑任何文件, merge 提交通常也会导致文件发生更改。

如果有提交,则可以推送或获取。提交的类型无关紧要。

关于没有推送的 Git merge 不会出现在远程存储库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49417290/

相关文章:

bash - Git checkout 失败,返回 "Illegal byte sequence"

PhP:合并具有匹配键的数组并删除/删除额外的不匹配值

svn - SVN 如何存储提交时间?

docker - 恢复预配置的Docker镜像的方法

git - 使用 --depth 1 克隆后使用 git pull 更新

Git rebase 过程被分离的头卡住了

git merge 不创建 merge 提交,没有 MERGE_HEAD

git - 在将功能分支 merge 到主干之前对其进行修复的最佳方法是什么?

perl - 哈希合并/连接

apache - SVN 重定向周期