我正在使用Git来管理我的两台计算机和我的开发.我正在尝试将更改提交给GitHub,我收到错误.
无法推送一些参考
<repo>.为了防止您丢失历史记录,拒绝了非快进更新.在再次推送之前合并远程更改.
可能导致这种情况的原因是什么?
编辑:
拉回购物品会返回以下内容:
*分支主 - >主(非快进)已经是最新的
推送仍然给我上述错误.
所以,我们正在从 CVSNT 迁移到 Perforce 或 Git,我在过去几周一直在研究它们的功能,我很清楚 Perforce 实际上更相似,因为它是集中式的。
Git 看起来很快,但我们是一家所有开发人员都待在同一个房间的公司,即使有 100 多名开发人员,仍然所有计算机都连接到 CVSNT 服务器......
出于这个原因,我看不出如何让 Git 像 Perforce 那样工作。
对于离线,当一个人克隆一个 Git 存储库时,他将复制历史记录和该存储库的所有内容以使其离线工作,但是,以并发方式工作,例如您拥有本地文件的历史记录似乎很奇怪......
所以如果开发者 B 提交并推送到服务器,开发者 A 不会知道它,它不会在他的文件的历史记录中......除非他真的从服务器上拉,对吧?!(只要他们在同一个分支..)
但是,如果它以这种方式工作,那么我实际上将使用分布式 SCM 以集中方式工作......并且必须“猜测”何时推送到服务器......即使有一个命令来知道一个文件有一个新的修订版,不得不手动检查它是不好的..
有人可以更好地解释我实际上 Git 如何以并发方式工作,而不必知道另一个何时实际推送到服务器等......?
另一件事,我在 Git 上找不到任何不错的修订图,我在 Tortoise Git 中找到了,但它更像是分支图而不是修订图。
我被埋在一个混蛋中.
我是怎么到达那里的:
我不是一个git专家.如果我没有任何细节,请问我澄清一下.几天前我运行了以下命令将我的更改推送到远程分支.
% git checkout master
% git pull
% git checkout redactor_changes <-- this is the branch that I made my changes
% git commit -m "changes" # I added my changes previously
% git rebase master
% git push origin redactor_changes # pushed changes to remote branch
Run Code Online (Sandbox Code Playgroud)
并非每个人都具有将更改合并到主分支的写入权限.拥有远程回购的写入权限的人告诉我存在冲突并进行改变并再次提交.所以今天我按照确切的顺序运行了以下命令.
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git add oblog/static/css/styles-custom.css
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git add oblog/static/js/redactor.upload_image.js
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git add oblog/static/images/loading.gif
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ git commit -m "Throw a toast when user upload an non-image file with image extension"
vagrant@vagrant-ubuntu-trusty-64:~/oblog$ …Run Code Online (Sandbox Code Playgroud)