我是Git的新手,所以随意像对待新手一样对待我.
我们的工作流程如此.我们有一个分支dev,我可以到达origin/dev.当我们进行更改时,我们会在dev中创建一个分支:
git checkout -b FixForBug origin/dev
现在我有一个叫做FixForBug跟踪的分支(我认为这是正确的词)origin/dev.因此,如果我这样做,git pull它将带来新的变化,origin/dev这是伟大的.现在,当我完成修复后,我将推送到一个名为同一个东西的远程分支.
首先,我从中origin/dev删除任何更改并执行rebase:
git pull --rebase
然后我将更改推送到同名的远程分支:
git push origin FixForBug
现在,远程服务器上有一个分支,我可以创建一个拉取请求,以便批准该变更并将其合并回dev分支.我永远不会对origin/dev自己施加任何东西.我猜这是非常常见的工作流程.
我第一次做git push,它工作正常,并创建远程分支.但是,如果我再次推送(假设在代码审查期间有人指出问题),我会收到以下错误:
错误:未能将某些引用推送到" https://github.limeade.info/Limeade/product.git "提示:更新被拒绝,因为当前分支的提示落后于提示:它的远程对应物.在再次推送之前集成远程更改(例如提示:'git pull ...').提示:有关详细信息,请参阅'git push --help'中的'关于快进的说明'.
但是,如果我这样做,git status它说我提前origin/dev1次提交(这是有意义的),如果我按照提示运行git pull,它说一切都是最新的.我想这是因为我正在推动一个与上游分支不同的分支.我可以通过运行来解决此问题:
git push -f origin FixForBug
在这种情况下,它会将更改推送到远程分支,说(强制更新),并且远程分支上的一切似乎都很好.
我的问题:
为什么-f在这种情况下需要?通常当你强迫某事时,这是因为你做错了事,或者至少违背了标准做法.我可以这样做,还是会弄乱远程分支中的某些东西,或者为最终将我的东西合并到dev中的人造成麻烦?
我正在从事一个名为“ wonaco ”的项目。在此文件夹中,我从本地拉取了 master 分支并创建了一个新的 dev 分支并签出到该 dev 分支。
现在,我运行这个命令:
git add .
git commit -m "First Commit"
git push origin dev
Run Code Online (Sandbox Code Playgroud)
但我收到通知:
致命:“origin”似乎不是 git 存储库 致命:无法从远程存储库读取。
请确保您拥有正确的访问权限并且存储库存在。
我需要将我的代码推送到开发分支。
git ×2