这是一个新手 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 push
、git fetch
、git pull
之类的命令时。
merge 提交类似于任何其他提交。它只是将一条历史线的状态与另一条历史线的状态结合起来的结果。因此,即使您没有编辑任何文件, merge 提交通常也会导致文件发生更改。
如果有提交,则可以推送或获取。提交的类型无关紧要。
关于没有推送的 Git merge 不会出现在远程存储库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49417290/