当我签出远程git标签时使用这样的命令:
git checkout -b local_branch_name origin/remote_tag_name
Run Code Online (Sandbox Code Playgroud)
我得到这样的错误:
error: pathspec `origin/remote_tag_name` did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)
当我使用git tag命令时,我可以找到remote_tag_name.
我的问题与切换分支时的致命Git错误有关.
我尝试使用该命令获取远程分支
git checkout -b local-name origin/remote-name
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
致命:git checkout:更新路径与切换分支不兼容.
您是否打算签出无法解析为提交的"origin/remote-name"?
如果我手动创建一个分支然后拉远程分支,它就可以工作,就像创建一个新的克隆并检查分支一样.
为什么它不适用于我使用的存储库?
在Git中获取最新标签的最简单方法是什么?
git tag a HEAD
git tag b HEAD^^
git tag c HEAD^
git tag
Run Code Online (Sandbox Code Playgroud)
输出:
a
b
c
Run Code Online (Sandbox Code Playgroud)
我应该编写一个脚本来获取每个标记的日期时间并进行比较吗?
如何从git repo中仅查看一个文件?
我一直在想,git reset并且git checkout同样地,在这个意义上,两者都将项目带回特定的提交.但是,我觉得它们不可能完全相同,因为这将是多余的.这两者之间的实际差异是什么?我有点困惑,因为svn只svn co需要恢复提交.
在下面的图解释了差别,尽管在一个或者可能过于简化的或不正确的方式进行.你怎么看?是错误还是过度简化?

VonC和Charles解释了两者之间的差异,git reset并且git checkout非常好.我目前的理解是git reset将所有更改还原为特定提交,而git checkout更多或更少的准备分支.我发现以下两个图对于理解这些图非常有用:

从http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html,checkout和reset可以模拟反叛.
git checkout bar
git reset --hard newbar
git branch -d newbar
Run Code Online (Sandbox Code Playgroud)
场景:
git add,git commit并且git push拜托,这对git来说有点可能吗?我无法找到任何有用的东西,也无法找到它.有了SVN我就做了svn up file,瞧.
我会很高兴得到任何帮助,谢谢!
我有以下工作树状态
$ git status foo/bar.txt
# On branch master
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# deleted by us: foo/bar.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
文件foo/bar.txt在那里,我想再次进入"未更改状态"(类似于'svn revert'):
$ git checkout HEAD foo/bar.txt
error: path 'foo/bar.txt' is unmerged
$ git reset HEAD foo/bar.txt
Unstaged changes after reset:
M foo/bar.txt
Run Code Online (Sandbox Code Playgroud)
现在它变得令人困惑:
$ git status foo/bar.txt
# …Run Code Online (Sandbox Code Playgroud) 我正在使用git分支并准备提交我的更改,因此我使用有用的提交消息进行了提交.然后我心不在焉地对不值得保留的代码做了一些小改动.我现在想改变分支,但是git给了我,
错误:您对"X"进行了本地更改; 不能切换分支.
我以为我可以在不提交的情况下改变分支.如果是这样,我该怎么设置呢?如果没有,我该如何摆脱这个问题?我想忽略这些微小的变化而不提交,只是改变分支.
我最近从SVN搬到了Git,对某些事情感到有些困惑.我需要通过调试器运行以前版本的脚本,所以我做了git checkout <previous version hash>并做了我需要做的事情.
现在我想回到最新版本,但我不知道它的哈希.当我输入时git log,我看不到它.
我怎样才能做到这一点?此外,是否有更简单的方法来更改版本,而不是键入哈希 - 类似"返回两个版本"或"按时间顺序排列最近"?
我正在处理源代码中的回归.我想告诉Git:"根据参数化日期/时间检查来源".这可能吗?
我也在目前的观点中进行了改变,我不想失去.理想情况下,我想在当前源和我之前根据之前的日期感兴趣的某些版本之间来回切换.