场景如下:在我的工作目录中,我有许多我编辑过的文件(我们称它们为A、B、C)。然后,我对这些文件运行了gitupdate-index--assume-unchanged。现在gitstatus返回空白。好。现在,如果我执行gitreset--hard,文件A、B和C的内容将恢复到我编辑它们之前的内容,并且“假设未更改”“他们。有没有办法阻止git实际恢复文件A、B和C,并简单地忽略它们?谢谢,肯 最佳答案 你可以这样做:gitupdate-index--skip-worktreeA 关于
一位好心的同事将更改推送到Master而不是创建分支。这意味着当我尝试提交时出现错误:Updateswererejectedbecausethetipofyourcurrentbranchisbehind我知道这应该通过发出pull请求来重新同步来解决,但我不想丢失我在本地所做的更改,我同样不想强制提交并清除所做的更改由其他人。允许我merge更改而不丢失任何更改的正确方法是什么? 最佳答案 如果您已经进行了一些提交,您可以执行以下操作gitpull--rebase这会将您所有的本地提交置于新pull的更改之上。对此要非常小心:这可
我正在使用Windows。暂存文件时出现此错误。更新Git索引失败。将自动开始重新扫描以重新同步git-gui。后面是已从LF转换为CRLF的文件列表在大量阅读跨平台使用Git的CRLF/LF问题后,我或多或少地了解发生了什么,并且我试图确定哪种autocrlf设置最适合我,但我不明白为什么Git说更新索引失败。我的理解是它已经转换了EOF,那么它有什么问题,为什么它告诉我更新索引失败了。我是否需要修复某些东西(除了选择适当的autocrlf设置之外)还是我可以继续然后我有两个选项“继续”和“解锁索引”,它们是什么意思,什么是最佳行动方案。 最佳答案
Master是在commit#10中。然而,我最终意识到我在测试过程中破坏了一些没有被测试发现的东西。我最终提交了#5,然后慢慢地重新做了每个提交的开发并不断调整它以确保它不会再次导致错误。现在我基本上回到了提交#10,但是有一些更改可以防止错误发生。我现在想使用我的更改创建提交#11。但是当我试图pushmaster时,我得到了fatal:Youarenotcurrentlyonabranch.Topushthehistoryleadingtothecurrent(detachedHEAD)statenow,usegitpushmasterHEAD:这是意料之中的。但我如何才能真正将
git-config的手册页列出了push.default的这些选项:nothing-donotpushanything.matching-pushallmatchingbranches.Allbrancheshavingthesamenameinbothendsareconsideredtobematching.Thisisthedefault.upstream-pushthecurrentbranchtoitsupstreambranch.tracking-deprecatedsynonymforupstream.current-pushthecurrentbranchtoabra
git1.7.12我想将给定目录下的所有文件标记为假设未更改。gitupdate-index--assume-unchangeddir/给出“忽略路径”。gitupdate-index--assume-unchangeddir/*很快就会失败,因为它会遇到未被跟踪的文件,因此它给出“致命:无法标记文件”和退出。尝试生成要标记的文件列表。cd进入所需的目录,然后运行gitls-files|tr'\n'''|gitupdate-index--assume-unchanged.这不会产生错误消息,但不会成功标记文件。命令的第一部分,gitls-files|tr'\n''',正确生成我要标
我已经看到许多关于此的其他线程,但它们没有帮助。我有一个非常简单的存储库——两个JavaScript文件。我在Macbook上有100+GB。当我尝试将文件移动到子目录并在本地暂存时,我得到的更改......fatal:Unabletowritenewindexfile无论我在终端中执行所有操作还是使用像SourceTree这样的GUI,都会发生这种情况。此外,其中一个文件被锁定,我无法删除工作目录,直到我注销并重新登录。为什么会这样?锁是否阻止了某些东西的登台?如果是这样,什么/如何解锁OSX上的问题文件?远程repo是谷歌代码,如果这有所作为,虽然我还没有推送到远程。一切都是本地的
从功能上讲,在去中心化的工作流程中,我看不出push.default配置设置的simple和current选项之间的区别.current会将当前分支推送到指定远程上的同名分支。simple将有效地为当前分支的跟踪和任何未跟踪的远程执行相同的操作(它在两种情况下强制执行相同的分支名称)。有人可以解释一下我所遗漏的去中心化工作流程两者之间的任何重要区别吗? 最佳答案 不同之处在于,使用simple时,如果当前分支没有跟踪远程上游分支(即使一个远程上存在同名分支):$gitcheckout-bfooSwitchedtoanewbranch
我遇到了与this上的OP相同的问题|帖子,但我不明白标记为正确的答案(我没有看到它解释了如何解决这个问题)我这样做并得到这个错误:$gitupdate-index--assume-unchangedweb.configfatal:Unabletomarkfileweb.config文件已添加到存储库它不在.git/info/exclude它不在.gitignore中(它是,但我把它拿出来,然后强制使用gitadd-fweb.config添加web.config,提交,和将这些更改推送到存储库)当我执行Gitls-files-o时,它不存在那么我能做些什么来修复呢?
所以我在存储库中做了一些工作,当我要提交时,我意识到我目前不在任何分支上。这种情况在使用子模块时经常发生,我能够解决它,但这个过程很乏味,我一直在想一定有更简单的方法来做到这一点。有没有一种简单的方法可以在保留更改的同时回到分支? 最佳答案 如果你还没有promise:gitstashgitcheckoutsome-branchgitstashpop如果您已经做出promise并且从那以后没有改变任何东西:gitlog--oneline-n1#thiswillgiveyoutheSHAgitcheckoutsome-branchgi