Git学习笔记(2) - IDEA将Git本地仓库Push至远程仓库
Git学习笔记(2) - IDEA将Git本地仓库Push至远程仓库
1.将本地仓库Push到远程仓库需要先创建远程仓库,我用在GitHub上已经建好的
hello-world
远程仓库来演示。然后使用Git Remote Add添加远程仓库,将本地仓库与远程仓库相互关联,操作如下:
2.进入如下界面,点击"+"号添加远程仓库,填写远程仓库URL,点击OK;
3.此时会需要验证远程仓库账号和密码,我的GitHub上的账号之前已经在IDEA上生成凭证,所以会直接添加成功。这里我以在码云上的Git仓库做示例:
4.验证成功即关联了远程仓库,下面将本地仓库的提交Push到远程仓库。如下进行操作,打开Push Commit窗口。
5.如图所示,进行Push提交即可提交到远程仓库了。
如果远程仓库里已存在之前版本提交的文件而我们的本地仓库中却不存在,会出现如下问题:
error: failed to push some refs to 'https://....../HelloWorld'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
因为我的远程仓库中已经存在一些提交记录了,而本地却是新建的仓库,所以出现了这种问题。
我们要先将远程的文件拉过来,Pull到本地仓库,与本地仓库合并,IDEA官方的文档是这样解释Pull changes的:
Pullingchanges from a remote repository is a convenient shortcut forfetchingand subsequentlymergingchanges. When youpull, you not only download new data, but also integrate it into your local working copy of the project.点击打开链接
也就是说Pull操作不仅仅下载远程的新的数据,同时也将数据合并到本地仓库中,Pull操作如下所示:
Git->Repository->Pull打开Pull Changes页面:
如果Branches to merge栏没有项目,点击Remote栏最后刷新按钮进行刷新,
勾选远程仓库中的主分支master,Pull即变成了可用状态,点击进行Pull即可。
不幸的是,这次还是出现了不能合并不相关的记录的问题:
Couldn't merge origin/master: refusing to merge unrelated histories
因为远程和本地的项目原本是两个不相同的项目,解决办法是:
方法1:使用git命令的--allow-unrelated-histories选项。
git pull origin master --allow-unrelated-histories
方法2:在IDEA右下角选择远程主分支master->Rebase onto,将远程提交的内容和历史记录添加到本地提交的内容和历史记录的前面,如下图所示:
这样操作之后,将把远程仓库的历史提交置于本地仓库的提交之前,这样就保证了本地历史和远程历史的一致性。
当然咯,本地的项目和远程的项目之前没有人任何的关联,现在要将两者合并在一起进行管理,这一般是不太可取的,我这里只是想举个例子。一般的还是创建一个新的远程仓库在将其与本地仓库关联,或者从远程仓库直接clone出本地仓库,当然自然也是相互关联的。
这是官方文档关于Rebase的介绍:
Rebase: select this option to perform rebase during the update. This is equivalent to running git fetch and then git rebase, or git pull --rebase (all local commits will be put on top of the updated upstream head).点击打开链接更多关于
rebase的资料可以查阅:http://gitbook.liuhui998.com/4_2.html
Git学习笔记(2) - IDEA将Git本地仓库Push至远程仓库相关教程