我是生物信息学的新手,目前正在注册数据科学在线课程,并要求将以下任务作为评估。我在MacOSX Mavericks上运行git。
1.创建一个名为HelloWorld.md的文本文件
2.在文档
中添加“##这是一个降价文件”行3.将文档推送到您在Github上创建的datasciencecoursera repo
4.在Github仓库上提交指向HelloWorld.md文件的链接。
到目前为止,我设法设置了远程仓库,并使用文本编辑器创建了helloworld.md,并将文件复制到datasciencecoursera中。但是当我尝试将该文件夹上的所有内容都推送到远程仓库时,会显示以下错误。
Harindras-MacBook-Pro:datasciencecoursera Harindra$ git push
To https://github.com/HarindraDS/datasciencecoursera.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/HarindraDS/datasciencecoursera.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
有人可以建议我如何解决这个错误。请注意我无论如何都不是程序员,因此我们非常感谢您提供的任何帮助。
答案 0 :(得分:2)
您唯一的问题是,自上次更新项目以来,有人修改了它。
例如,假设当您克隆远程项目时,它的版本ID为1,因此您的本地副本版本ID也为1;从那时起,有人推动了一些变化,因此当前的远程项目版本ID已经增加,现在是2。
当您尝试推送更改时,git检测到您的版本ID与远程版本不同(因此您的项目未更新)并拒绝推送;要解决它,您必须获取最新的更改并将它们拉入您的本地存储库(所谓的合并)
合并后,您的本地存储库将升级到与远程相同的版本(这意味着您的存储库使用远程内容进行更新),git将允许您推送更改
答案 1 :(得分:2)
git pull --rebase
git push origin master
git pull --rebase将在已经对该分支进行的更改之后应用您的更改。 这个视频完全解决了你的确切问题,并使用git pull --rebase解决了这个问题 https://sg.godaddy.com/help/build-a-lemp-stack-linux-nginx-mysql-php-centos-7-17349
答案 2 :(得分:0)
是的,您需要更新回购中已有的内容。然后它应该工作。见下文。
~/datasciencecoursera (master)
$ git pull https://github.com/scarebaer/datasciencecoursera.git
From https://github.com/scarebaer/datasciencecoursera
* branch HEAD -> FETCH_HEAD
Already up-to-date.
~/datasciencecoursera (master)
$ ls
HelloWorld.md README.md
~/datasciencecoursera (master)
$ git push origin master