我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD?
我不能为我的生活找到任何体面的解释,"[文件]:需要更新"的消息,git有时会不时吐出来.甚至官方的git FAQ也解释了这个标记为TODO.如果有人能解释A)意味着什么; 和B)如何解决它,我将非常感激.
以下是我的回购的状态.
[~/rails_apps/jekyll_apps/nepalonrails (design)?] ? gst
# On branch design
# Changed but not updated:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: _layouts/default.html
# deleted: _site/blog/2010/04/07/welcome-to-niraj-blog/index.html
# deleted: _site/blog/2010/04/08/the-code-syntax-highlight/index.html
# deleted: _site/blog/2010/05/01/showing-demo-to-kalyan/index.html
# deleted: _site/config.ru
# deleted: _site/index.html
# deleted: _site/static/css/style.css
# deleted: _site/static/css/syntax.css
# modified: static/css/style.css
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
我突然做了git …
Git 2.23 引入了一个新命令git switch-阅读文档后,似乎几乎git checkout <branchname>可以与某人解释差异或用例一样?
引入了两个新命令“ git switch”和“ git restore”,以拆分“检出分支以改进其历史记录”和“检出索引之外的路径和/或树状结构以推进当前的操作” “ git checkout”命令中删除“历史记录”。
我在玩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 checkout
更新工作树中的文件以匹配索引或指定树中的版本.如果>没有给出路径,git checkout也会更新HEAD以将指定的分支设置为>当前分支.
所以据我所知,我工作的目录中的文件(我执行git init的文件)应该根据我所在的分支进行更改.我很困惑,因为当我在分支之间切换时不会发生这种情况.在切换分支之前我正在编辑的编辑存在于我切换到的分支中.我做错了什么或git checkout不能这样工作,我只是误解了文档?
有没有一种方法可以重置工作目录中的所有文件,而不能重置暂存区中的所有文件?
我知道使用以下命令可以重置任何单个文件:
git checkout thefiletoreset.txt
另外,通过使用以下命令,可以将整个存储库重置为最后的提交状态:
git reset --hard
但是,是否有任何命令可以重置整个工作目录,而使暂存区域保持不变?