| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 对 Git 分支 master 和 origin/master 的一些认识 -> 正文阅读 |
|
[开发工具]对 Git 分支 master 和 origin/master 的一些认识 |
对 Git 分支 master 和 origin/master 的一些认识 一、从 git 取数据(git clone) 这 3 个步骤又涉及到两个 repository,一个是 remote repository,在远程服务器上,一个是 local repository,在自己工作区上。其中 1, 3 两个步骤涉及到 remote server/remote repository/remote branch,2 涉及到 local repository/local branch。git clone 会根据你指定的 remote server/repository/branch,拷贝一个副本到你本地,在 git push 之前,你对所有文件的改动都是在你自己本地的 local repository 来做的,你的改动 local branch 和 remote branch 是独立(并行)的。Gitk 显示的就是 local repository。 在 clone 完成之后,Git 会自动为你将此远程仓库命名为 origin(origin 只相当于一个别名,运行 git remote –v 或者查看 .git/config 可以看到 origin 的含义),并下载其中所有的数据,建立一个指向它的 master 分支的指针,我们用 (远程仓库名)/(分支名) 这样的形式表示远程分支,所以 origin/master 指向的是一个 remote branch(从那个 branch 我们 clone 数据到本地),但你无法在本地更改其数据。 同时,Git 会建立一个属于你自己的本地 master 分支,它指向的是你刚刚从 remote server 传到你本地的副本。随着你不断的改动文件,git add , git commit,master 的指向会自动移动,你也可以通过merge(fast forward)来移动 master 的指向。 查看所有分支:
查看远程分支:
可以发现,master 就是 local branch,origin/master 是 remote branch(master is a branch in the local repository. remotes/origin/master is a branch named master on the remote named origin)。 $ git diff origin/master master => show me the changes between the remote master branch and my master branch 需要注意的是,remotes/origin/master 和 origin/master 的指向是相同的,可以运行以下命令看效果: $ git diff origin/master remotes/origin/master $ git push origin master origin 指定了你要 push 到哪个 remote。 master 其实是一个“refspec”,正常的“refspec”的形式为“+:”,冒号前表示 local branch 的名字,冒号后表示 remote repository 下 branch 的名字。注意,如果你省略了,git就认为你想 push 到 remote repository 下和 local branch 相同名字的 branch。听起来有点拗口,再解释下,push 是怎么个 push 法,就是把本地 branch 指向的 commit push 到 remote repository 下的 branch,比如: $ git push origin master:master => 在 local repository 中找到名字为 master 的 branch,使用它去更新 remote repository 下名字为 master 的 branch,如果 remote repository 下不存在名字是 master 的 branch,那么新建一个。 $ git push origin master => 省略了,等价于“git push origin master:master”。 $ git push origin master:refs/for/mybranch => 在 local repository 中找到名字为 master 的 branch,用它去更新 remote repository 下面名字为 mybranch 的 branch。 $ git push origin HEAD:refs/for/mybranch => HEAD 指向当前工作的 branch,master 不一定指向当前工作的 branch,所以我觉得用 HEAD 还比 master 好些。 $ git push origin :mybranch => 在 origin repository 里面查找 mybranch,删除它。用一个空的去更新它,就相当于删除了。 原文地址:https://www.cnblogs.com/52php/p/6610925.html |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:15:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |