Git pull或push会导致致命错误,但它是有效的分支



这是我的结构

本地分支机构:

master
devel 
feature 
remote branches
master
devel
feature

我在我的本地分支feature,我想推送到本地devel

我运行了git push devel,但它抛出了一个致命错误。不是git存储库

但是我运行了git checkout devel,它切换到了devel分支。

将本地分支feature推送到另一个本地分支devel是没有意义的。如果您打算将本地feature推送到远程devel,那么您应该使用:

git push origin feature:devel

更典型的情况是,您将把feature推送到它的远程对应feature,在这种情况下,您将使用:

git push origin feature

至于你的错误,当你运行时

git push devel

看起来Git将devel解释为远程的名称,而不是远程分支的名称。一般语法为:

git push <remote-name> <remote branch name>

虽然可以通过git push . feature:devel将本地分支推送到另一个本地分支,但这不是预期的操作。您可以使用git merge来操作本地分支。

git checkout devel
git merge feature

我认为git push origin HEAD:devel正是您所需要的,其中"origin"应该替换为您在git remote -v中看到的远程名称。

git push origin branch1:branch2

也许你可以使用PULL

git checkout devel

然后

git pull feature

最新更新