标签: git-checkout

如何在git存储库中获取旧版本文件的副本?

我有一个.tex来自许多提交前的文件版本,我想获得一份副本.我有提交的sha1哈希值,它具有我想要的那个文件的版本.我不想替换当前版本的文件.相反,我想获得一个单独的副本,反映它在旧版本中的状态.

许多类似的问题建议使用git checkout <sha1> -- file.tex,但这只是一直给出"错误:pathspec'file.tex'与git已知的任何文件都不匹配."

我感兴趣的文件最初存在于存储库的顶级目录中.我目前在存储库的子目录中尝试运行此命令,以便在子目录中获取旧版本的file.tex.

这可能吗?我怎样才能做到这一点?

git git-checkout

40
推荐指数
3
解决办法
2万
查看次数

git checkout master错误:checkout会覆盖以下未跟踪的工作树文件

我有一个git存储库.它有ABCDE ...提交.现在我想结帐D作为名为Dbranch的新分支.所以我执行:git checkout D -b Dbranch.现在我想删除这个分支.首先,我需要切换到master分支,然后使用git branch -d Dbranch它来删除它.但是当我执行时git checkout master,它会给我错误.

error: The following untracked working tree files would be overwritten by checkout:
    source/a/foo.c
        ...... (too many lines)
Please move or remove them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)

如何删除Dbranch?

git git-checkout

40
推荐指数
3
解决办法
7万
查看次数

错误:pathspec'test-branch'与git已知的任何文件都不匹配

我是Git的新用户.我已经分叉了一个名为Spoon-Knife的存储库(可以用Git练习分叉).然后,我通过运行在本地克隆它

git clone https://github.com/rohinichoudhary/Spoon-Knife.git
Run Code Online (Sandbox Code Playgroud)

该存储库包含三个分支,即

  • master,
  • test-branch,
  • change-the-title.

当我跑git branch,它只显示*master,而不是剩下的两个分支.当我跑

git checkout test-branch
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:pathspec'test-branch'与git已知的任何文件都不匹配.

为什么会这样?我怎么解决这个问题?

git github git-checkout git-fork

40
推荐指数
5
解决办法
12万
查看次数

我如何故意将HEAD分离为git?

如果我这样做git checkout HEAD^,我得到这个:

$ git checkout HEAD^
Note: checking out 'HEAD^'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b …
Run Code Online (Sandbox Code Playgroud)

git git-checkout

39
推荐指数
2
解决办法
2万
查看次数

如何进入非当前分支?

说我现在的分支是myfeature.我想让大师了解最新动态.git merge git pull据我所知,两者总是合并到当前分支.

有没有办法将更改从远程分支(例如,origin/master)合并到我当前不在的分支(master)?我可以想到一个方法:

git stash
git checkout master
git pull origin/master
git checkout myfeature
git stash apply
Run Code Online (Sandbox Code Playgroud)

还有更好的吗?

(这可能是我的整个问题是错误的:git fetch如果启用了远程跟踪,会自动更新master以匹配origin/master吗?)

回答

总结下面的答案,它基本上"只是git merge直接使用,你可能不需要实际做这个合并".

git git-stash git-pull git-checkout

37
推荐指数
2
解决办法
6918
查看次数

转换SVN结帐以使用git(git-svn)

我使用svn中保存的软件进行版本控制.我想使用git(git-svn),但软件需要大量的设置和配置才能使用.有一些工具可以处理所有设置,包括通过svn检出所有代码.

git-svn的所有文档(我已经能够找到)需要使用git-svn进行新的检查.

有没有办法转换现有的svn结账,以便它可以使用git-svn?

svn git git-svn git-checkout svn-checkout

31
推荐指数
2
解决办法
9298
查看次数

git checkout而不覆盖数据

你怎么能git-checkout不覆盖数据?

我跑

 git checkout master
Run Code Online (Sandbox Code Playgroud)

我明白了

error: Entry 'forms/answer.php' would be overwritten by merge. Cannot merge.
Run Code Online (Sandbox Code Playgroud)

这是令人惊讶的,因为我不知道Git合并时我git-checkout.我总是分别在命令之后运行git merge new-feature.如果Git在结账时合并,这似乎显然是不必要的.

git git-merge git-checkout

31
推荐指数
2
解决办法
4万
查看次数

外面的git checkout分支

问题:我需要以某种方式签出已经在我的文件系统上本地克隆的项目的现有分支,而不是在该项目的特定文件夹中.

解决方案:我正在尝试执行以下操作:

  1. git clone'github-project-url''file-system-folder'
  2. git checkout'indern-branch''file-system-folder'

我确实意识到第二步不是很正确,但我也试图避免使用"cd'file-system-folder'".

git branch clone git-checkout

31
推荐指数
2
解决办法
2万
查看次数

git"revert"当前目录

在svn中,可以执行svn revert ./*当前目录和仅当前目录的还原.

相当于svn revert只有当前目录被还原的git是什么?

我知道有git reset --hard,但它会恢复所有内容,而不仅仅是当前目录.

我如何只恢复git中的当前目录?

git version-control revert reset git-checkout

31
推荐指数
3
解决办法
3万
查看次数

单个命令中的git clone和checkout

以下是我用于签出特定提交的命令.

git clone git://repo.git/repo123
git checkout <commitID>
Run Code Online (Sandbox Code Playgroud)

我想一步完成上述操作 - 仅使用git clone命令.

我想这样做的原因是,repo123非常庞大.检查我想要的提交将节省我很多时间.

我知道--depth选项.但在这种情况下,它是没有用的.谁能告诉我怎么做?

git clone commit git-checkout

28
推荐指数
3
解决办法
2万
查看次数