由于某种原因,我现在不能推动,而昨天却可以。也许我搞砸了配置或其他东西。
这是发生了什么:
当我使用git push origin master
我的工作目录和远程存储库如下所示:
由于某种原因,我现在不能推动,而昨天却可以。也许我搞砸了配置或其他东西。
这是发生了什么:
当我使用git push origin master
我的工作目录和远程存储库如下所示:
Answers:
如果您在本地工作时,GitHub存储库中看到有新提交提交,建议您使用:
git pull --rebase
git push
完整语法为:
git pull --rebase origin master
git push origin master
完成一次之后,使用Git 2.6+(2015年9月)
git config --global pull.rebase true
git config --global rebase.autoStash true
一个简单git pull
就足够了。
(注意:在Git 2.27 Q2 2020中,a merge.autostash
也可用于常规拉动,而无需重新设置基准)
这样的话,你会重播(的--rebase
一部分)的本地提交上的最近更新的顶部origin/master
(或origin/yourBranch
:git pull origin yourBranch
)。
请参阅《Git Pocket Book的第6章重装基础》中的更完整示例。
我建议:
# add and commit first
git push -u origin master
这将在本地主分支与其上游分支之间建立跟踪关系。
之后,可以使用以下简单的方法完成对该分支的将来任何推送:
git push
请参阅“ 为什么需要显式推送新分支? ”。
由于OP已经复位,重做其承诺之上origin/master
:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master
没有必要pull --rebase
。
注意:git reset --mixed origin/master
也可以编写git reset origin/master
,因为使用时该--mixed
选项是默认选项git reset
。
有没有人尝试过:
git push -f origin master
那应该解决问题。
编辑:根据下面的@Mehdi的评论,我需要澄清一下
—force pushing
。上面的git命令仅在第一次提交时安全地工作。如果已经存在提交,先前的拉取请求或分支,则将其全部重置并将其设置为零。如果是这样,请参考@VonC的详细答案以获得更好的解决方案。
-f
/ --force
总是更安全--force-with-lease
,那么如果下游更改会因推送而阻塞,它将被中止。 --force-with-lease
在许多日常调配情况下是必需的,但--force
几乎永远不需要。
如果您刚刚使用git init
过文件并添加git add .
了类似内容或添加了类似内容并添加了远程分支,则可能是您没有git commit -m 'commit message'
在本地提交()任何东西来推送到远程...我只是遇到了这个错误,那是我的问题。
我有同样的问题。我遇到了这个问题,因为我什至没有进行任何提交,甚至没有进行初始提交,但我仍在尝试推送。
一旦我做了git commit -m "your msg"
,然后一切正常。
我在github帮助中找到了解决此问题的方法。
您可以从以下内容中看到它:处理非快进错误
它说:
您可以通过以下方式解决此问题:将在远程分支上所做的更改与本地所做的更改合并:
$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work
或者,您可以简单地使用git pull一次执行两个命令:
$ git pull origin branch
# Grabs online updates and merges them with your local work
git init
git remote add origin https://gitlab.com/crew-chief-systems/bot
git remote -v
(用于检查当前存储库)
git add -A
(添加所有文件)
git commit -m 'Added my project'
git pull --rebase origin master
git push origin master
我遇到了同样的问题,并按照以下步骤进行了修复。
git init
git add .
git commit -m 'Add your commit message'
git remote add origin https://User_name@bitbucket.org/User_name/sample.git
(URL https://User_name@bitbucket.org/User_name/sample.git上面 是指您的位存储桶项目url)
git push -u origin master
暗示
使用以下命令检查您的git hub帐户是否链接到本地git:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
在推送之前,您必须添加并提交更改或执行 git push -f origin master
我按照以下步骤操作,对我有用。
rm -rf .git
git init
git add .
git commit -m"first message"
git remote add origin "LINK"
git push -u origin master
我在GitHub上创建了一个空仓库,并将代码保存在本地。按照以下顺序,我现在面临着同样的问题,
git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master
问题:我尝试在暂存文件之前提交。
因此,我们需要暂存文件然后提交。
这是正确的顺序。
git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master
由于我先执行了错误的顺序,所以我只执行以下命令
git add .
git commit -m 'Initial Commit'
git push -u origin master
如果您尝试使用现有的GitHub存储库初始化目录,则应确保提交更改。
尝试创建一个文件:
touch initial
git add initial
git commit -m "initial commit"
git push -u origin master
这将放置一个名为initial的文件,您以后可以删除它。
希望这个答案有帮助!祝好运!
就我而言,是我的husky
包裹不允许这样做。
> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://username@bitbucket.org/username/my-api.git'
要强行推动它,只需运行
git push origin master --no-verify
我跑去npm run prepush
调试错误,这是原因:
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run npm install to fix them.
npm ERR! Invalid: lock file's loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0
运行npm install
并提交,问题已解决。
做这些
git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master
编码愉快!
试试这个git命令,
git push origin master –f
git push origin master --force