今天我正在浏览一个项目的日志,并意识到我不久前发了一个标签名称.有没有办法重命名标签?谷歌没有发现任何有用的东西.
我意识到我可以查看标记版本并制作新标签,我甚至尝试过.但这似乎创建了一个不太正确的标签对象.一个,
git tag -l
Run Code Online (Sandbox Code Playgroud)
相对于所有其他标签,它不按顺序列出.我不知道这是否重要,但它让我相信新标签对象不是我想要的.我可以忍受,因为我真的只关心标签名称与文档匹配,但我宁愿"正确",假设有正确的方法来做到这一点.
我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD?
我看到有几个人在这里问同样的问题,但似乎他们的建议都不适用于我.我收到了标题中的警告,但我没有任何名为"master"的标签.这是以下结果git branch -a:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
知道这里可能出现什么问题吗?我现在只使用git几个月了,所以它主要让我担心这种模糊性可能会在未来混乱.
我希望将一个"复制"的远程分支"复制"到特定的本地分支.
比如说,例如,团队成员创建了一个实验性功能,他已经检查experiment了远程存储库中调用的分支.我希望能够在我的本地存储库中签出一个新分支,然后将experiment分支" 原样"复制到我新签出的分支.
我不想将它与我的代码合并 - 我想完全覆盖我的代码,以便我可以清楚地看看他在"实验"分支上做了什么.
如何将"其他人"提交到远程存储库的远程分支"获取"(获取/拉/任何...),以不会尝试在您自己的本地代码上执行合并的方式?
昨天,我从一个分支创建了一个分支,将其推送到原点,然后将其合并回 master。你可以在这里看到:
$ history |less
8358 git co master
8359 commit # shortcut that adds all and commits
8360 push # shortcut that `git push`'s
8361 git lg # shortcut that logs my output
8362 git co 1600
8363 git co -b 1601
8364 npm run test
8365 npm run test
8366 npm run test
8367 npm run test
8368 npm run test
8369 npm run test
8370 npm run test
8371 npm run test
8372 npm run test
8373 …Run Code Online (Sandbox Code Playgroud) 虽然像"git log"这样的命令会很乐意接受同一参考的不同表达式,例如
refs/heads/master
heads/master
master
Run Code Online (Sandbox Code Playgroud)
对于"git update-ref",情况并非如此.例如
git update-ref master HEAD^
Run Code Online (Sandbox Code Playgroud)
是不一样的
git update-ref refs/heads/master HEAD^
Run Code Online (Sandbox Code Playgroud)
第一个命令创建一个新的ref .git/master(反过来引入了关于refs/heads/master的歧义).只有第二个命令真正更新了主人的脑袋.(git的/参/头/主)
为什么git update-ref接受没有"refs /"前缀的引用?是否应该至少有警告或命令行选项来强制创建此类引用?
我花了很长时间才弄明白为什么
git update-ref master HEAD^
Run Code Online (Sandbox Code Playgroud)
没有按预期工作.
我已经在Git存储库中管理了简单的项目.到目前为止,我没有故意创建任何分支,但是当我今天尝试使用时创建我的第一个分支
$ git branch mybranch
Run Code Online (Sandbox Code Playgroud)
我看到这个错误:
warning: refname 'master' is ambiguous.
fatal: Ambiguous object name: 'master'.
Run Code Online (Sandbox Code Playgroud)
深层发掘:
$ git branch -a
* master
remotes/master/HEAD -> master/master
remotes/master/master
Run Code Online (Sandbox Code Playgroud)
在Git看到这是正常的吗?我是否错误地克隆了我的存储库?解决此问题的最佳方法是什么?
我有一个本地分支“master”跟踪远程分支“origin/master”。
当我像这样结账时:
git checkout refs/heads/master
Run Code Online (Sandbox Code Playgroud)
我最终得到了一个独立的头:
注意:查看“refs/heads/master”。
您处于“分离 HEAD”状态。您可以环顾四周,进行实验性更改并提交它们,并且可以通过执行另一次签出来放弃在此状态下所做的任何提交,而不会影响任何分支。
显然我可以直接查看“master”,但这恰好是一个不明确的参考。我只想知道在不分离 HEAD 的情况下消除分支名称歧义的“git 方式”是什么。
只是一个免责声明:在使用git几个月后,我仍然不知道我在使用它时正在做什么.事情的唯一时间是我完全按照我在网页上的各种页面上找到的说明.
我正在尝试做的是更新我的存储库,它是从另一个项目派生的.我发现这些说明有效,每次我想更新时都会关注它们
但是,这次我尝试合并时得到这个:
warning: refname 'upstream/master' is ambiguous.
Already up-to-date
Run Code Online (Sandbox Code Playgroud)
并没有任何反应,即使我分叉的项目最近提交了.我真的不知道出了什么问题,我真的很沮丧.对不起,如果这个问题是令人难以置信的noobish和/或愚蠢.
编辑1:此外,我搜索了许多解决方案但没有成功.
编辑2: git branch -a的输出
* master
upstream/master
remotes/origin/HEAD -> origin/master
remotes/origin/log-upgrade
remotes/origin/master
remotes/origin/past-gens
remotes/origin/prototype-party
remotes/upstream/log-upgrade
remotes/upstream/master
remotes/upstream/past-gens
remotes/upstream/prototype-party
Run Code Online (Sandbox Code Playgroud)
编辑3:类似的问题
git refname'origin/master'是不明确的
Git:refname'master'是不明确的
警告:refname'HEAD'是不明确的
Git警告:refname'xxx'含糊不清