是否有一个Git命令(或一小段命令)可以安全可靠地执行以下操作?
目前我坚持:
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
Run Code Online (Sandbox Code Playgroud)
但它困扰我,因为我要求密码两次(由fetch和pull).通常我会对任何解决方案感到满意,只要密码只需要一次即可.
几个笔记:
为什么git命令要切换名为git checkout?的分支?
它真的有意义吗?
我会改名git switch.此外,git checkout还有其他含义:例如还原文件(如svn revert)
每次播放文件时,Git都会在您需要取消暂存文件时提供有用的说明:
(use "git reset HEAD <file>..." to unstage)
然而,Atlassian的优秀Git教程简单地说:
git reset <file>
这似乎更直截了当,为什么差异呢?
我有一个功能分支的巨石.而不是一个大规模的PR成为主人,我想把它分成3个小时.
理想情况下,我想将功能分支中的一些独立代码单独提取到PR中.此代码位于新目录中,尚未调用,因此它将是一个相对安全的PR.但是,我不想仅复制目录并创建单个提交和PR,而是希望保留新PR的更改的所有提交历史记录.
这可能使用Git吗?我已经研究了filter-branch,但似乎是将repo拆分为两个,而不是将更改的diff分成两个(如果这是有道理的).
假设我正在尝试签出一组特定的git文件,例如app/*^(.tmpl).html,
如何把这个正则表达式扔进去 git checkout branch -- (regex)
我曾使用命令 git checkout --$(git ls-files -m)撤消rm某些文件上的 git 。但是,我在未提交的情况下修改了其他一些文件,并且这些文件已恢复为之前的提交,丢失了未提交的更改。
有没有办法恢复这些更改?
我想不会使用 git,因为更改没有添加到 git 中。在 Mac 上,如果有帮助的话。
谢谢汤姆
我在玩git,在这里感到困惑。
该HEAD的develop分支是在
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 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仓库中工作时,我想在一个旧的提交( 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 checkout [commit-name]和 和有什么区别
git checkout [commit-name] .?
我看到第一个命令更改为分离的头状态,您可以从那里提交并继续创建一个新分支。
我对第二个命令的作用感到困惑。它保留在主服务器上,但将所有文件恢复到指定提交时的状态。为什么会这样呢?您可以用它做什么以及在什么情况下使用它?
我是git的新手,并试图围绕分支的工作方式.根据文档git checkout
更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.
所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?
git ×12
git-checkout ×6
deployment ×1
git-reset ×1
git-rm ×1
git-stage ×1
github ×1
regex ×1
unstage ×1