草庐IT

heading1

全部标签

git - 如何查找 git SHA 是否指向分支 HEAD?

为了避免在使用(python)脚本checkout某个gitSHA时不必要地分离HEAD,我想checkout一个分支,如果该SHA恰好是分支的当前HEAD。理想情况下,我想为git提供一个SHA,如果SHA在分支的当前提示上,它会返回一个分支名称,否则会出错。gitdescribe--all--exact-match几乎是我所需要的,只是它主要针对标签,所以如果一个分支和一个标签指向我的SHA(这经常发生在我们的发布分支中,例如),只给出了标签。这没有用,因为checkout标签会导致分离的HEAD(即使分支指向相同的SHA)。注意,我不想做gitbranch--contains-我

git blame on windows 报告 "fatal: no such path <path> in HEAD"

当我对文件夹中的文件运行gitblame时,例如:gitblameFoo/FileA.txt返回致命:HEAD中没有这样的路径“Foo/FileA.txt”我可以清楚的看到这个文件存在于文件系统中,同一个文件夹下的其他文件可以被成功追责——那么这是怎么回事呢?我发布了这个问题和答案,因为它让我今天困惑了一段时间,我找不到一个能满足所有解决方案的答案。 最佳答案 这是由于使用仅因大小写而异的新名称重命名了文件系统上的父文件夹-并且在文件夹重命名之前发生的提交中添加了一些文件。这是来自Powershell提示的重现:mkdirC:\Re

git blame on windows 报告 "fatal: no such path <path> in HEAD"

当我对文件夹中的文件运行gitblame时,例如:gitblameFoo/FileA.txt返回致命:HEAD中没有这样的路径“Foo/FileA.txt”我可以清楚的看到这个文件存在于文件系统中,同一个文件夹下的其他文件可以被成功追责——那么这是怎么回事呢?我发布了这个问题和答案,因为它让我今天困惑了一段时间,我找不到一个能满足所有解决方案的答案。 最佳答案 这是由于使用仅因大小写而异的新名称重命名了文件系统上的父文件夹-并且在文件夹重命名之前发生的提交中添加了一些文件。这是来自Powershell提示的重现:mkdirC:\Re

git - git reset 后无法推送 --soft HEAD^

刚才我提交并推送了一些东西(是的,我在推送时犯了错误),我决定我应该“恢复”或“撤消”。所以我被告知在我这边发出gitreset--softHEAD^,我认为这会以某种方式创建一个“还原”提交,一旦提交就会使它就像从未发生过更改一样。我不介意变化的历史是否存在,这正是我想象中会发生的事情。无论如何,完成后我再次提交,然后当我尝试推送时我得到了非快进错误。现在,我知道我在重置时搞砸了一些事情,我的树和原始树现在“不匹配”,但我想知道如何解决这个问题。现在我只想回到发出重置之前的时间,这样我就可以通过手动取出更改然后提交来手动恢复更​​改,除非其他人可以推荐恢复推送提交的正确方法,并且通过

git - git reset 后无法推送 --soft HEAD^

刚才我提交并推送了一些东西(是的,我在推送时犯了错误),我决定我应该“恢复”或“撤消”。所以我被告知在我这边发出gitreset--softHEAD^,我认为这会以某种方式创建一个“还原”提交,一旦提交就会使它就像从未发生过更改一样。我不介意变化的历史是否存在,这正是我想象中会发生的事情。无论如何,完成后我再次提交,然后当我尝试推送时我得到了非快进错误。现在,我知道我在重置时搞砸了一些事情,我的树和原始树现在“不匹配”,但我想知道如何解决这个问题。现在我只想回到发出重置之前的时间,这样我就可以通过手动取出更改然后提交来手动恢复更​​改,除非其他人可以推荐恢复推送提交的正确方法,并且通过

git - git rm cached 和 git reset HEAD 之间的区别

我对gitrm--cached感到困惑我猜。我有一个存储库和一个提交的文件。我修改文件并执行:gitaddmyfile该文件现已暂存。当我做gitstatus:#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)##modified:com/main/StringMain.java#现在文件是修改后的跟踪文件。所以我假设那是在集结区。所以看不懂推荐是什么意思(use"gitresetHEAD..."tounstage).所以我做了:gitrm--cached而不是后跟gitcommit.但这似乎将我的

git - git rm cached 和 git reset HEAD 之间的区别

我对gitrm--cached感到困惑我猜。我有一个存储库和一个提交的文件。我修改文件并执行:gitaddmyfile该文件现已暂存。当我做gitstatus:#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)##modified:com/main/StringMain.java#现在文件是修改后的跟踪文件。所以我假设那是在集结区。所以看不懂推荐是什么意思(use"gitresetHEAD..."tounstage).所以我做了:gitrm--cached而不是后跟gitcommit.但这似乎将我的

git - IntelliJ 错误 : branch 'origin/HEAD' does not point at a commit, 无法读取某些引用

据我所知,我的git本地存储库中的所有内容都很好。我可以提交、push、pull任何我喜欢的东西。但是,当我在IntelliJ日志中查看提交的详细信息时,Containedinbranches:Cannotloadbranchesduetoerror:error:branch'origin/HEAD'doesnotpointatacommiterror:somerefscouldnotbereaderror:branch'origin/HEAD'doesnotpointatacommiterror:somerefscouldnotberead这可能是什么原因造成的,我该如何解决?

git - IntelliJ 错误 : branch 'origin/HEAD' does not point at a commit, 无法读取某些引用

据我所知,我的git本地存储库中的所有内容都很好。我可以提交、push、pull任何我喜欢的东西。但是,当我在IntelliJ日志中查看提交的详细信息时,Containedinbranches:Cannotloadbranchesduetoerror:error:branch'origin/HEAD'doesnotpointatacommiterror:somerefscouldnotbereaderror:branch'origin/HEAD'doesnotpointatacommiterror:somerefscouldnotberead这可能是什么原因造成的,我该如何解决?

在 Bitbucket 上重写 Git 历史 [远程拒绝] HEAD -> 分支(预接收 Hook 被拒绝)

在Bitbucket上,使用Bitbucket网络界面,我将一个blessedrepo与我自己的私有(private)分支错误地同步了。我想在blessedrepo上重写历史以将其恢复到正确的提交。我克隆了包含我的错误提交并在本地运行的blessedrepogitreset--hardHEAD~1在历史被搞砸的分支上。这使克隆的存储库恢复到我搞砸之前的提交状态。然后我使用将我的repo推送回Bitbucketgitpush-forigindevelopment但出现如下错误remote:permissiondeniedtoforcepushbranchdevelopmentTogit@