标签:txt git push 出现 提交 分支 一个 mit ons 需要
远程分支是指向远程仓库分支的指针,这些指针存在于本地且无法移动。当你与服务器进行任何网络通信时,他们会自动更新。远程分支有点像书签,指示这上一次链接服务器时远程仓库中每个分支的位置。
远程分支的表示形式是(remote)/(branch).。例如,如果你要查看上次与服务器通信时远程origin
仓库中master
分支的内容,就需要查看origin/master分支。
举例,我的github上有一个仓库gitstudy。仅有一个master分支,和两次提交
我们将这个仓库克隆到本地
$ git clone https://github.com/velscode/gitstudy
我们查看一下现在的分支情况
D:\git\gitstudy (master -> origin)
$ git log --oneline --decorate --graph --all
* df6797b (HEAD -> master, origin/master, origin/HEAD) 远程提交2
* bc91f76 远程提交1
这里,有两个master
,一个是远程服务器上的origin/master
一个是自己本地的master
我们改动文件并进行一次commit
$ git commit -a -m "本地提交1"
[master d437fa1] 本地提交1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 c.txt
查看分支
$ git log --oneline --decorate --graph --all
* d437fa1 (HEAD -> master) 本地提交1
* df6797b (origin/master, origin/HEAD) 远程提交2
* bc91f76 远程提交1
可以看到,只有本地的master指针移动了,而由于没有push
,所以服务器端的master指针仍然保持在原位置
接下来考虑这样一种情况,如果Tom
和你同时克隆了这个仓库,并且改动文件,又在你之前提交且push
到了服务器
$ git commit -a -m "Tom的提交"
[master 19afb7c] Tom的提交
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 d.txt
$ git push
这时,服务器的分支变成了
$ git log --oneline --decorate --graph --all
* 19afb7c (HEAD -> master, origin/master, origin/HEAD) Tom的提交
* df6797b 远程提交2
* bc91f76 远程提交1
你与服务器出现了偏差,你可以使用git fetch origin
命令,查询origin
对应的服务器得知,并从服务器取得所有本地尚未包含的数据,然后更新本地数据库,最后将origin/master
指针移动到最新的位置上去
$ git fetch origin
$ git log --oneline --decorate --graph --all
* 19afb7c (origin/master, origin/HEAD) Tom的提交
| * d437fa1 (HEAD -> master) 本地提交1
|/
* df6797b 远程提交2
* bc91f76 远程提交1
标签:txt git push 出现 提交 分支 一个 mit ons 需要
原文地址:https://www.cnblogs.com/velscode/p/10598562.html