- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个教程中看到有人使用git push origin master
,但是远程分支名为o/master
。没有名为origin
的远程文件,只有o
。是他犯了一个错误,还是origin
有特殊含义?
This is the tutorial.(如果弹出窗口,请单击红色按钮)。键入级别,转到“远程”选项卡,然后在第二行上单击显示“推入参数”的第四个按钮。继续前进,直到获得第一个视觉演示。
最佳答案
这并不完全是所提问题的答案。如果我使用注释中的链接转到页面,并允许通过NoScript进行足够的操作来运行脚本等,那么它似乎是从一个中等复杂的git rebase
操作的演示开始的,我很快就迷失了方向。高级项目,而不是从头开始。但是,如果问题重新构成,我们将得到...
Remote 和“远程分支机构”
“远程”只是一个名称,例如origin
或upstream
或bob
,它作为“远程”部分进入.gitconfig
或.git/config
文件中:
[remote "bob"]
url = git://name.in.some.domain/path/to/bob.git
fetch = +refs/heads/*:refs/remotes/bob/*
url
行提供了
fetch
和
push
操作的URL。
fetch =
行也很重要。我们将立即恢复。
git clone
时,
clone
命令设置“远程”部分。尽管您可以使用
origin
或
-o
选择其他名称,但默认情况下使用的名称是
--origin
。
.git
目录中。分支和标签可能已经很熟悉了,“远程分支”似乎也很简单。但是这里有一两个转折点。
master
分支。 (您甚至可以拥有一个完全没有分支的存储库;
git clone
为此发出警告,但允许这样做。)
master
和
develop
。在任何情况下,git都会复制所有远程分支。但是,即使必须将它们存储在本地,它也不只是使它们成为普通的本地分支。它使它们成为“远程分支”。
-o
更改任何名称,因此您的克隆具有名为
origin
的远程。在这种情况下,
git clone
要做的是将“远程分支”命名为
origin/master
和
origin/develop
。
fetch =
行的所在。
fetch =
行的内容是“refspec”。 refspec倒数第二,只是一对用冒号分隔的ref名称,例如
master:master
或
develop:develop
。但是等等,首先,引用名称到底是什么?
master
或
origin/master
;但是每个都有几种形式。有一个“全名”形式,通常以
refs/
开头,还有一个“短”形式,例如
master
。简称
master
只是写全名
refs/heads/master
的一种便捷方法。全名不仅包含名称本身,还包含该名称的“ namespace ”,它实际上告诉您名称的种类。
refs/heads/
命名空间是您所有常规分支所在的位置。
refs/tags/
命名空间带有您的所有标签,并且
refs/remotes/
带有您的所有远程跟踪分支。
refs/heads/
中的引用名,而“远程”分支是refs/remotes/
中的引用名。 git在本地存储在您自己的存储库中的远程分支的目的是跟踪“分支在远程上的位置,这是我最后一次(git)有机会查看远程并看到它”。
fetch =
行包含一个refspec
ref:ref
-左侧的refname和右侧的refname。
fetch =
行使用了此功能,但添加了两个星号和一个加号:
+refs/heads/*:refs/remotes/origin/*
。
master
和
develop
。这些是本地分支,实际上是
refs/heads/master
和
refs/heads/develop
。星号会匹配所有内容,因此左侧
refs/heads/*
会匹配这两个分支。在右侧,星号表示“放入左侧匹配的所有内容”。
refs/heads/master
(左侧)并生成
refs/remotes/origin/master
(右侧)。它还匹配
refs/heads/develop
并生成
refs/remotes/origin/develop
。
git fetch
时,
git fetch
始终更新远程跟踪分支。这就保留了我们想要的属性:git连接到远程存储库,与该服务器上的gitty副本进行了交谈,并找出了所有分支的位置,因此现在应该更新我们的“远程分支”副本。
git clone
转到
git fetch
的?嗯,
clone
实际上只是第一次获取:它初始化存储库,添加其第一个“远程”,然后进行获取,所有这些都是一回事。因此,遵守与
git fetch
相同的规则。)
git status
可以打印类似
1 ahead, 3 behind
的内容。令人困惑的是,一些git文档喜欢说该本地分支“跟踪”了远程分支,而其他git文档则将“远程分支”称为“远程跟踪分支”,并指出该分支“跟踪”了远程分支。 (实际上,只要我们让本地git与远程服务器联系,它就会更新。)
master
或
develop
或两者上进行了一些提交。然后,您执行与远程服务器联系的操作,并且远程分支将得到更新。如果git要更改您自己的(本地)
master
和/或
develop
,这将丢失您已经完成的工作。因此,它仅更新远程跟踪分支。
[remote "bob"]
,然后是
fetch = +refs/heads/*:refs/remotes/bob/*
。但是
fetch =
行不必在refspec的右侧使用与远程相同的字符串。如果
fetch
行读取
+refs/heads/*:refs/remotes/robert/*
,那么我所有用于远程
bob
的远程分支都将命名为
robert/branch
。
origin
的
fetch =
行设置为包含
refs/remotes/o/*
。但是,让我们以其他方式结束这个更大的答案。]
git push
的这些参数是什么?
git push origin develop
或
git push origin master
。但是,如果检查
the git push
documentation,则会看到两个参数分别显示为“repository”和“refspec”。当
origin
是远程数据库的名称时,它是如何存储的;如果它没有冒号,因此没有左右两侧,那么
master
如何成为refspec?
git push
随时间而发展。某些古老版本的git中可能不允许使用远程存储库参数
origin
。相反,您必须编写实际的URL,该URL现在存储在 Remote 定义的
url =
行中。您今天仍然可以执行此操作,因此文档不能将该参数限制为仅一个“远程”名称。因此,在
git push origin
中,
origin
部分是远程服务器的名称,这是编写完整URL的一种简短方法。 (为此,您实际上可以在配置文件中列出一个单独的“pushurl”,以便将获取转到一个URL,将推送转到另一个URL。)
git push
会将其视为重复的引用名,中间加一个冒号。所以在这里,
master
只是
master:master
。 (由于各种原因,
git fetch
handles no-colon refspecs differently。)
git fetch
上的引用,这将引发另一个问题。
master:master
和
develop:develop
?
fetch
,我们更新了远程跟踪分支,
origin/master
(或者也许是
o/master
),等等。为什么不更新服务器上的“推送跟踪分支”?例如,我可以将工作推送到
refs/me/master
。
refs/for/...
的推送等)。但是git“开箱即用”不能做到。我们只是直接推送到 Remote 上的原始分支。
git push
的最后一个参数(
master
中的
git push origin master
)将我们的
master
直接推到其
master
。该推送必须是“快进”,否则将被“拒绝”(或者我们必须使用带
--force
的force标志,或者-您应该从
fetch
行识别出来-加号
git push origin +master:master
)。
<ref>
位于
<raw commit ID>
;如果是这样,请将其更改为
<new ID>
。”本质上,这是对引用名称的比较和交换:它启用了原本不可能的原子更新形式。但这是另一个话题,这个答案花了太长时间写。 :-)]
关于git - 为什么在起源不是远程名称的情况下使用 “git push origin master”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473657/
我的团队正在使用 gerrit 代码审查,本质上这意味着默认的推送行为会绕过标准工作流程,因此我们需要使用 git push origin HEAD:refs/for/feature 来正确推送我们的
我是 assembly 新手,我正在使用 MASM。我看到这些代码行,想知道这之间有什么区别 a) push myVar b) push [myVar] c) push OFFSET myVar 我怎
美好的一天! 将镜像推送到docker hub时遇到一些问题。我的第一个软件版本: vagrant@debian-8-docker:~$ docker version Client version:
我有三个 Controller 一二三 .首先是navigationController的rootViewController。 在 SecondViewController ,我有一个名为 的协议(
我在这个 Google 教程的帮助下实现了一个 Web Push API: https://developers.google.com/web/fundamentals/getting-started
我有两个模式: var optionsSchema = new Schema({ locationname: String, locationnumber : String
我是 git 的新手并对其进行了测试。我已经能够克隆 friend 存储库进行小的本地更改并提交。 我现在想测试将我的本地更改推送到远程存储库,但不幸的是当我尝试进行推送时 $ git push <
我们正在公司讨论 git rebase 之后该做什么。在rebase之后,您需要将更改推送到远程origin,但是当git不允许时我们应该怎么做呢?实际上,我们正在讨论当分支已经被推送时我们最常用的两
我正在使用具有嵌入式 github 支持的新 IDE。在命令行本地,我可以成功地使用 git push orgin master 并更新 github。但是我的 IDE 使用带有 -v 标志的命令,这
我仍在阅读有关 RoR 的一些指南,我被困在 Deploying The Demo App 上 我遵循了说明: With the completion of the Microposts resour
我正在尝试创建一个可以将我的 git 存储库镜像到另一个存储库的脚本。一切正常,但它一直在说 [remote rejected] refs/pull/xx/head -> refs/pull/xx/h
我想了解使用 Tortoise SVN 构建过程的一些过程。主要是 我想知道你是否插入: 主线中继 QA 后的一个分支将其抓取到本地的工作副本中并测试该分支,然后一些构建推送该分支 我遇到的问题是我在
在谈论将消息推送到移动应用程序以触发 WAP 内容的下载时,似乎都使用了 WAP 推送和 SMS 推送这两个术语。 这些术语是指相同的机制还是具有不同的含义? 最佳答案 SMS Push 是告诉终端发
我只是想知道是否有人使用这种技术: 由于推送通知仅随 OS 3.0 一起提供,因此我一直在考虑使用电子邮件推送(Exchange、mobile.me)作为解决方法: 您可以注册一个 URL,例如。 m
我正在 build WP website using DIVI theme .应该被插入 dataLayer 的标签被默认的“未设置”值卡在某个地方。 为了推送我使用脚本的值: functi
我最近删除了xcode 6 beta 3并安装了xcode 6 beta 6 当我在终端输入gitpush时,这发生了 xcrun:错误: Activity 的开发人员路径(“/Application
我即将实现ionic-native Push Notifications .这可以在浏览器中运行吗?还是我需要安装 iOS/Android 模拟器? 最佳答案 除非您使用 Phonegap 推送服务器
Safari 12.1 是否支持服务 worker PWA 推送通知?我试过这个 demo在 iOS 上,但它仍然不适合我。 有机会得到它们吗?谢谢。 最佳答案 目前没有关于此功能的通信...Appl
目前我有很多 chrome 浏览器的推送订阅都是这样的方法, swr.pushManager.subscribe({userVisibleOnly: true}) .then(function
我需要 4 个过渡效果,但我只知道 2 个过渡效果,还有 2 个我不知道。我知道的 2 个过渡动画是: 过渡时下推: 并向下推过渡: 但
我是一名优秀的程序员,十分优秀!