- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是使用Git的新手,我从GitHub克隆了一个分支,并在键入git branch
时显示了所有分支。完成工作后,我将其成功推送到新分支。之后,我将该文件夹复制到另一个目录(因为我想进行备份以避免冲突),输入该文件,然后键入git branch
。仅显示3个分支,知道我在Github上有4个分支。
我试图通过将分支克隆到新文件夹(类型为git clone -b <branch-name> <repo-link-https>
)中来解决此问题,现在仅出现我克隆的分支。
有什么建议吗?
最佳答案
克隆现有存储库时,您的Git会创建一个新的不同的存储库,并将所有提交(而不是原始存储库的任何分支)复制到此新存储库中。 git clone
的最后一步是创建一个分支。此分支名称是您的,而不是他们的;它的拼写与他们的名字之一相同。
当您使用克隆(一个不同的存储库)时,可以向它添加越来越多的分支。如果将原始存储库中所有相同的分支添加到其中,那么您现在将拥有其所有提交和所有分支名称(请注意,作为您自己的分支)。但是直到那时,您才可以拥有他们的所有提交。很好,因为Git与分支无关。 Git是关于提交的。
1确切的描述要比这复杂得多,但是将其视为“复制他们的所有提交而没有他们的分支”将使您入门。
I tried to solve the issue by cloning the branch inside a new folder (typed
git clone -b
) and now only the branch that I cloned is appearing..
git clone
命令的最后一步是运行一个
git checkout
或
git switch
command2分支。
-b
标志存在,因此您可以在最后一步中告诉Git复制哪个分支名称。如果您省略
-b
标志,则您的Git会询问他们的Git存储库(您正在克隆的一个),并建议他们选择哪个分支。但是,无论哪种方式,您只会获得一个分支。
git clone
过程结束时使用一个名字的原因。您输入的每个名称都会给您带来更多好处。
git switch
命令首先在Git版本2.23中添加,以将过于复杂的
git checkout
命令拆分为两个单独的命令
git switch
和
git restore
。现有的
git checkout
保留;您可以使用它代替两个新的,更简单的命令。不过,新的简化命令在某种意义上更安全:
git switch
命令尝试非常安全,它复制的一半
git checkout
也是如此。但是,
git restore
命令是故意不安全的,因为它将不可避免地破坏工作。它复制了
git checkout
的另一半。因此,如果您使用
git checkout
,当您认为自己正在调用“安全地做事”的一半时,可能会意外地调用“破坏我的工作”的一半。
e31aba42fb12bdeb0f850829e008e1e3f43af500
(这是Git本身在Git存储库中的实际提交)。
git show e31aba42fb12bdeb0f850829e008e1e3f43af500
将显示它。通常,您可以将数字缩写,如果没有歧义的话,可以缩写为最小的前四个字符,因此,如果您具有用于Git的Git存储库的克隆,
git show e31aba42fb12bdeb0f850829e008
几乎可以保证正常工作。但是
git show e31a
并非如此,因为例如对于此提交或对于
e31a17f741...
来说,它可能很短。尽管
e31ab
今天可以工作,但是随着更多提交的添加,它可能会停止工作。
A
,下一个将是
B
,第三个提交是commit
C
:
A <-B <-C
由于commit
C
是最后一个,因此它在元数据中具有更早的commit
B
的哈希ID。我们说
C
指向
B
。同样,将
B
指向
A
。由于
A
是有史以来的第一个提交,因此它缺少此向后箭头:它没有指向任何地方。 Git将此称为根提交。这是我们停止向后工作的地方。
C
与快照
B
进行比较,因为commit
C
拥有commit
B
的哈希ID。因此,Git可以提取两个提交。此外,由于Git可以对文件进行重复数据删除,因此Git可以立即知道(甚至不费解费)重复的文件。 Git只需要提取和比较不同的文件。 Git将做到这一点,并将构建一组更改,将旧文件转换为新文件。这就是Git向您显示的内容:这套说明。
main
,它标识最后一次提交:
A--B--C <-- main
在这里,我们只是想知道
C
这个名字为我们所做的,而不是想记住
main
的哈希ID。因此,不管它具有什么哈希ID,
git checkout main
(2.23之前的Git版本)或
git switch main
(2.23和更高版本)都会为我们提供最新的提交(当前为
C
)。
C
:
A--B--C <-- main, dev
现在我们还需要做一件事:我们使用以下哪个名称?现在,这无关紧要,因为两个名称都选择commit
C
。但是,让我们将特殊名称
HEAD
附加到两个分支名称之一中,如下所示:
A--B--C <-- main (HEAD), dev
如果我们使用
git switch dev
,则将特殊名称
HEAD
重新附加到名称
dev
,如下所示:
A--B--C <-- main, dev (HEAD)
现在让我们进行一次新的提交。不用担心我们如何进行新的提交,我们只需假设已完成所有操作即可。这个新的提交
D
必然会指向现有的提交
C
,因为我们是从
D
生成
C
的。所以看起来像这样:
A--B--C
\
D
但是
D
现在是最新的提交,因此Git必须更新名称。应该更新哪个名字?答案很明确:应该更新
HEAD
所附加的内容:
A--B--C <-- main
\
D <-- dev (HEAD)
现在,我们有两个分支名称,这两个名称指定了两个不同的“最新”提交。关于
main
的最新提交是
C
,关于
dev
的最新提交是
D
。提交
D
指向提交
C
,指向
B
,指向
A
;因此,所有四个提交都在
dev
分支上,而其中三个提交在
main
上。
main
并在那里进行新的提交,则会得到:
E <-- main (HEAD)
/
A--B--C
\
D <-- dev
这意味着我们现在在两个分支上共享三个提交,一个提交仅在
main
上,一个提交仅在
dev
上。现在我们需要
和这两个名称才能找到所有五个提交。一个名称将找到一个提交,该名称将找到三个共享的提交,但是我们需要另一个名称来找到最后剩余的提交。
HEAD
的任何分支名称都会自动移动以包含新的提交。所有其他分支名称都保留在该位置,但是由于它们是我们的分支名称,因此我们处于控制之中。我们可以随时让Git移动这些名称。唯一的限制是我们必须提交将名称移至的提交。
main
和
dev
分别提交了
E
和
D
。现在,我们创建一个新的存储库,在其中复制所有五个提交,从而为我们提供:
E
/
A--B--C
\
D
实际上,我们确实需要两个名称来查找所有提交。但是我们不需要
分支名称。另一个与其他存储库一起使用的Git具有分支名称,因为这些是他的分支,在进行新的提交时,他将四处移动。因此,我们的Git要做的是复制它们的名称,但更改它们。我们让Git取其分支名称,并通过在名称中添加一些内容(通常是
origin/
)来创建我们的远程跟踪名称。5因此,我们得到:
E <-- origin/main
/
A--B--C
\
D <-- origin/dev
Git将拒绝将特殊名称
HEAD
附加到这些远程跟踪名称之一中。
HEAD
仅允许附加到分支名称。因此,我们的
git clone
的最后一步是使用
-b
选项或他们的建议来选择这两个名称之一,并从中创建一个分支名称,如下所示:
E <-- main (HEAD), origin/main
/
A--B--C
\
D <-- origin/dev
请注意,我们的分支名称选择的提交与
git clone
从其分支名称进行的远程跟踪名称相同。但是我们现在只有一个分支名称,而没有两个。如果我们运行:
git switch dev
这使用了Git提供的特殊功能,该功能可以找到其
origin/dev
并创建我们自己的新名称
dev
:
E <-- main, origin/main
/
A--B--C
\
D <-- dev (HEAD), origin/dev
现在我们有两个分支名称。但是我们最初不是。请注意,我们现在还 checkout 了
D
提交,而不是
E
,因为
git switch
(或
git checkout
,如果使用的话)不仅会切换分支,还会选择分支名称标识的提交作为要提交的提交。已 checkout ,因此可供我们使用。
origin/
,还用
refs/heads/
替换了
refs/remotes/origin/
。名称
origin
实际上是一个远程对象,我们在Git存储库中可以有任意多个远程对象。但这是另一个问题的话题。
关于git - Git分支未显示所有分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64838274/
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!