问题标签 [git-checkout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
197 浏览

git - GIT:签出替代分支时,我想清除忽略的文件

假设我在master中有一个结构。

文件 xyz 不应该被跟踪,所以我添加到 .gitignore target/* 并提交结构

  • git commit -m '初始结构'

我创建了 2 个分支

  • git 分支 t1
  • git 分支 t2

并切换到 t1

  • git结帐t1

我开始做一些工作,编译东西,这样目标就被填充了。我将更改提交给 t1。

  • git commit -a 't1 特定更改'

然后我切换到 t2

  • git结帐t2

当我查看目标时,它仍然填充有分支 t1 处于活动状态时创建的文件,而我希望将这些“清除”

我发现了一个类似的讨论,指出 git 的行为应该与我看到的不同。当我切换分支时,Git 正在删除一个被忽略的文件

我错过了什么?

弗朗西斯

0 投票
3 回答
4029 浏览

git - Git:使用还原或签出撤消推送的更改?

Git 是一个了不起的工具,但我还没有想到最好的方法来撤消推送的更改。这是情况。

我在一个分支上,并且已经将几个提交推送到 GitHub。从那以后,我决定我在兔子洞里走得太远了,我们需要废弃我已经完成的几个提交,然后重新开始。本质上,我需要将所有推送的提交反转回前一个。这是我认为合适的两个命令

那么,我说的对吗?我需要对要返回的特定提交进行 git checkout 吗?还是在这个复杂的过程中有我不理解的东西?

谢谢。

0 投票
2 回答
995 浏览

git - 删除或撤消对远程 Git 存储库的推送

我创建了一个远程 git 存储库并继续从错误的本地存储库向它推送代码。
本地仓库很好,我只想删除我推送到远程的内容并重新开始。

我已经尝试过git push origin :master,但出现错误:

有没有简单的方法来检查它?“签入”或“签入”(以及其他变体)不会产生相关结果。

0 投票
3 回答
1373 浏览

git - git fetch 的奇怪行为

我在使用 GIT fetch 时遇到了一个大问题……看这个

还有一个git fetch

还有一个...

还有一个git fetch

我的refs/remotes/origin/HEAD并且refs/remotes/origin/master总是强制更新到422b4cb...

发生了什么?422b4cb...是一个旧的承诺。

0 投票
3 回答
4073 浏览

git - Git推送和弹出?即,结帐最后一个状态

我正在编写一个 Bash 脚本,我想签出一个标签,然后签出回到我开始的地方。

我试过git co HEAD@{1}了,但是当从 master 开始时,这让我回到了 master 的提交 SHA,但头却是分离的。

Git有类似pushd&的东西吗?popd

0 投票
1 回答
110 浏览

git - 如何在以下情况下获得更改?

我试图了解git是如何工作的。所以我初始化了一个空的 repo 并向其中添加了一个文件,如下所示。

现在我使用以下命令序列将它克隆到这个 repo

之后,我对 README 文件进行了更改,提交并使用以下命令将它们推送到第一个 repo

现在在两个存储库中运行git log显示相同的内容,即

提交 cdf192f7e26e734c7a56cc830ade2e2d13c6fb0d 作者:Adnan Waheed 日期:
2011 年 3 月 1 日星期二 14:05:12 +0500

提交 f8b75838e728e46cae949f66ff86d29c0864d976 作者:Adnan Waheed 日期:
2011 年 3 月 1 日星期二 14:03:23 +0500

但我不知道如何在原始仓库中获取更改,即/home/adnan/workspace/git-test。如果我尝试执行git checkout,我会收到以下消息:

如何获取我在克隆仓库中所做的更改并推送?

0 投票
5 回答
20917 浏览

git - 为什么切换分支的git命令叫“git checkout”?

为什么切换分支的 git 命令命名为git checkout?
这真的有意义吗?

我会命名它git switch。此外,git checkout还有其他含义:例如还原文件(如svn revert

0 投票
1 回答
52 浏览

git - 结帐后获取提交的更改

有什么方法可以获取我在结帐新分支时留下的未提交更改(愚蠢,我知道!!)

我切换回我所在的分支,但我仍然收到以下消息,让我相信他们可能是我可以到达的地方!

0 投票
2 回答
396 浏览

git - git checkout 较新的分支

我切换到较旧的提交:git checkout $HASH以查找我在较旧版本的目录中所做的事情。现在我想回到最新的提交,但我再也找不到那个哈希了?当我这样做时,git log它只会显示我当前所在的提交中较旧的提交。我怎样才能再次切换到最新的提交?

0 投票
2 回答
252 浏览

git - 上一个版本的签出目录中的子目录不会在 Git 中消失?

我正在尝试git checkout <hash> <directory>在我的存储库中签出目录的先前版本。这可以将目录中的文件恢复到以前的状态,唯一的问题是自检出修订后添加的子目录不会消失。

例如,如果我的目录结构如下:

如果我这样做git checkout <hash>了,那么我会进入分离的 HEAD 模式,一切都匹配得很好。相反,如果我这样做git checkout <hash> thing/,内容thing/dir1/将恢复,但thing/dir2/会保持不变。

运行git status显示来自 的文件修改thing/dir1/,但未提及thing/dir2/. 这很奇怪,因为在 HEAD^ 的上下文中,thing/dir2/不应该存在,因此应该消失。 git clean没有帮助,因为它甚至没有显示为未跟踪。

有没有办法签出完美匹配的目录的先前版本,而无需签出整个工作树?

更新:

看起来这会起作用:

这使我的工作树和索引处于奇怪的状态,但具有预期的效果。