相关疑难解决方法(0)

Git命令检出任何分支并覆盖本地更改

是否有一个Git命令(或一小段命令)可以安全可靠地执行以下操作?

  • 摆脱任何局部变化.
  • 如有必要,从原点获取给定分支
  • 检查给定的分支?

目前我坚持:

git fetch -p
git stash
git stash drop
git checkout $branch
git pull
Run Code Online (Sandbox Code Playgroud)

但它困扰我,因为我要求密码两次(由fetchpull).通常我会对任何解决方案感到满意,只要密码只需要一次即可.

几个笔记:

  • 它是应用程序的自制部署脚本的一部分(代码托管在GitHub上).
  • 如果分支已经从原点获取,则应该没有区别(即,新分支的第一次部署理想情况下不需要任何额外的步骤).
  • 该脚本位于可供多人访问的远程计算机上,因此不会存储凭据并且必须输入用户/密码(如果可能,只能输入一次).
  • 我不关心任何地方的变化; 我总是想要一个给定分支的原始副本(部署脚本的另一部分产生本地更改).
  • 我不能每次都克隆或导出一个新的存储库; 这需要太多时间.

git deployment git-checkout

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

为什么git命令切换名为"git checkout"的分支?

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

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

git git-checkout

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

git reset vs git reset HEAD

每次播放文件时,Git都会在您需要取消暂存文件时提供有用的说明:

(use "git reset HEAD <file>..." to unstage)

然而,Atlassian的优秀Git教程简单地说:

git reset <file>

这似乎更直截了当,为什么差异呢?

git git-reset unstage

18
推荐指数
1
解决办法
1万
查看次数

Git:根据pull请求中的新目录将pull pull请求拆分为较小的PR

我有一个功能分支的巨石.而不是一个大规模的PR成为主人,我想把它分成3个小时.

理想情况下,我想将功能分支中的一些独立代码单独提取到PR中.此代码位于新目录中,尚未调用,因此它将是一个相对安全的PR.但是,我不想仅复制目录并创建单个提交和PR,而是希望保留新PR的更改的所有提交历史记录.

这可能使用Git吗?我已经研究了filter-branch,但似乎是将repo拆分为两个,而不是将更改的diff分成两个(如果这是有道理的).

git github git-filter-branch

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

如何在git checkout命令中使用regex来指定文件子集

假设我正在尝试签出一组特定的git文件,例如app/*^(.tmpl).html,

如何把这个正则表达式扔进去 git checkout branch -- (regex)

regex git

13
推荐指数
2
解决办法
7406
查看次数

撤消 git checkout 覆盖未提交的文件

我曾使用命令 git checkout --$(git ls-files -m)撤消rm某些文件上的 git 。但是,我在未提交的情况下修改了其他一些文件,并且这些文件已恢复为之前的提交,丢失了未提交的更改。

有没有办法恢复这些更改?
我想不会使用 git,因为更改没有添加到 git 中。在 Mac 上,如果有帮助的话。

谢谢汤姆

git git-checkout

9
推荐指数
1
解决办法
2301
查看次数

如何从索引中恢复文件

我不小心擦除了文件.幸运的是,我已将这些添加到索引中.请告诉我如何将这些文件恢复到工作树,而无需提交.

git

8
推荐指数
1
解决办法
4929
查看次数

git checkout &lt;commit-hash&gt;与git checkout分支

我在玩git,在这里感到困惑。

HEADdevelop分支是在
235a6d8

当我做:

git checkout 235a6d8
Run Code Online (Sandbox Code Playgroud)

从任何其他分支机构develop分支机构,这使我陷入了孤立的头脑。
我不确定在签出该分支的最新提交时为什么会发生这种情况。

当我做:

git checkout develop
Run Code Online (Sandbox Code Playgroud)

我可以正确切换到开发分支。

git checkout <commit-has>和之间没有区别git checkout branchname
它们有何不同?

git git-checkout

8
推荐指数
1
解决办法
668
查看次数

git undo删除文件

我是git的新手.我有来自远程的结帐文件.我不得不从git repo中删除一些文件.git rm我发出了unix rm -rf folder命令,而不是执行命令.我需要还原delete命令然后执行git rm命令.如何恢复到最新的代码?

注意:我还没有提交暂存文件.出来的git status是以下格式删除的文件列表:

#   deleted:    i18n/angular-locale_sl.js
#   deleted:    i18n/angular-locale_in.js 
Run Code Online (Sandbox Code Playgroud)

git git-stage git-rm

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

为什么在检查最近的提交后我有一个分离的 HEAD?

最近在一个git仓库中工作时,我想在一个旧的提交( 68cce45)处查看代码,所以我做了

git checkout 68cce45
Run Code Online (Sandbox Code Playgroud)

查看更改后,我想返回到存储库的当前版本并继续工作。由于2bcfd11是最近的提交,我做了

git checkout 2bcfd11
Run Code Online (Sandbox Code Playgroud)

然后我做了一些改变并做了

git add *
Run Code Online (Sandbox Code Playgroud)

进而

git status
Run Code Online (Sandbox Code Playgroud)

这给了我警告:HEAD detached at 2bcfd11

我糊涂了。如果我检出的最后一次提交是在几个版本之前,我可以理解为什么我会处于“分离的 HEAD 状态”。但是由于我检出的最后一次提交是存储库的最新版本,那么为什么我会处于分离的 HEAD 状态?HEAD 现在不是指向存储库的“顶部”吗?

git git-checkout git-detached-head

5
推荐指数
1
解决办法
2232
查看次数

git checkout [commit-name] 与带点的比较

git checkout [commit-name]和 和有什么区别
git checkout [commit-name] .

我看到第一个命令更改为分离的头状态,您可以从那里提交并继续创建一个新分支。

我对第二个命令的作用感到困惑。它保留在主服务器上,但将所有文件恢复到指定提交时的状态。为什么会这样呢?您可以用它做什么以及在什么情况下使用它?

git git-checkout

5
推荐指数
1
解决办法
385
查看次数

git checkout感到困惑

我是git的新手,并试图围绕分支的工作方式.根据文档git checkout

更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.

所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?

git

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