最近,如果我这样做:
1.git push origin master(在我的笔记本电脑上)
2.git pull origin master(在我的Mac上)
3.git status(在我的Mac上)
我看到'你的分支超过'origin/master'由6个提交'.由于我没有在Mac上做过任何提交,这似乎是一个错误; 或者我不太了解的东西.
如果我那么:
4.git push origin master(在我的Mac上)
原点/主消息的前面消失了.
请注意,在上述步骤中,我在步骤1和2之间没有在Mac上进行提交/修改.
这一直在发生 - 我应该担心,还是有合理的解释?
停止输入git pull origin master.这指示git将原始repo上的master分支的内容拉入本地分支,完全绕过远程跟踪分支.相反,你应该输入git pull.这将从branch.master.merge远程仓库拉出分支集(假设"master"已签出)并使用它来更新远程跟踪分支,然后它将该远程跟踪分支合并到您的本地分支.
为了阐明它是如何工作的,git pull <args>运行git fetch <args>然后使用git-merge将获取的分支合并到当前分支中.如果你指定git fetch,git将获取默认的远程并更新远程跟踪分支,此时git-pull将合并到正确的分支中.但是如果你指定git fetch origin master,git将获取原始repo的主分支并将其存储在FETCH_HEAD中而不更新远程跟踪分支.您可以通过键入来自行验证git fetch origin master(假设您没有远程提交).获取的最终结果应该是一行
* branch master -> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
这告诉您已获取远程分支"master"并将其存储在FETCH_HEAD中.另一方面,如果您只是键入,git fetch origin您应该看到更像的东西
* branch master -> origin/master
Run Code Online (Sandbox Code Playgroud)
这告诉您已获取远程分支"master"并将其存储在本地远程跟踪分支"origin/master"中.
| 归档时间: |
|
| 查看次数: |
818 次 |
| 最近记录: |