目录
一、准备
WebStorm
gitee
二、上传代码到Gitee
三、过程中遇到的问题
报错:You may want to first integrate the remote changes (e.g., 'git pull ...') before pushing again.
报错:fatal: Exiting because of unfinished merge.
一、准备
WebStorm
打开WebStorm,点击"更多符号"选择设置,在插件商店中搜索,并且安装插件Gitee(码云),安装完后点“Apply”,再重新打开Version Control就有了。
然后进入“version control”,找到Gitee,登录到Gitee系统登录自己的gitee账号,如下图所示
接下来在弹出的 Gitee 登录界面输入账号信息登录到系统,登录成功后,授权给 WebStorm 软件。
在设置中确定 Gitee账户信息,
gitee
(1)需要创建一个仓库。(此处我创建的仓库名字是“oj-frontend”)
创建仓库比较简单,下面两张图就是整个过程,这里不在赘述。
二、上传代码到Gitee
(1)首先添加项目到本地仓库,这步操作对应“git add”命令,
(2)提交项目目录,这步操作对应“git commit”命令,
若是初次使用,则需要在WebStorm配置连接到的Gitee上的哪个仓库。
进入后,可以看到新增加的项目,这个时候还没有仓库URL,点击 Define remote,将创建的Gitee仓库所提供的 HTTPS地址复制粘贴到这里。
打开webstrom左下角的“git”,可以看到相应的信息,右边就是我们将要提交到仓库中的文件信息
(3)推送项目到Gitee,推送你的项目的更改到Gitee上的远程仓库“oj-frontend”,
(4)进入我们Gitee中的仓库,可以看到我们上传上去的项目代码,
三、过程中遇到的问题
报错:You may want to first integrate the remote changes (e.g., 'git pull ...') before pushing again.
error: failed to push some refs to 'https://gitee.com/xxx/oj-frontend.git'
To https://gitee.com/xxx/oj-frontend.git
! refs/heads/master:refs/heads/master [rejected] (fetch first)
hint: Updates were rejected because the remote contains work that you do
Done
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.提示:更新被拒绝,因为远程包含您所做的工作
提示:不要在本地使用。这通常是由另一个存储库推送引起的
提示:对于相同的ref。您可能需要首先集成远程更改
提示:(例如,“git pull…”)然后再次按下。
提示:有关详细信息,请参阅“git push --help”中的“关于快进的说明”
原因:这个错误是在尝试推送到 Git 存储库时发生的。错误消息表明,远程存储库包含你本地没有的提交,因此推送被拒绝了。
解决方法:解决这个问题的方法是:
-
运行
git pull
命令,将远程存储库中的更改拉取到本地。 -
处理任何冲突(如果有的话)。如果远程存储库和本地存储库之间存在冲突,Git 会提示你解决这些冲突。你需要解决这些冲突,然后继续推送。
-
一旦你将远程存储库中的更改拉取到本地并解决了可能存在的冲突,再次运行
git push
将你的更改推送到远程存储库。
git pull oj-frontend master
报错:fatal: refusing to merge unrelated histories
场景:运行 上文提到的git pull
命令之后,
git pull oj-frontend master
之后报错,
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 1.07 KiB | 45.00 KiB/s, done.
From https://gitee.com/xxx/oj-frontend* branch HEAD -> FETCH_HEAD
fatal: refusing to merge unrelated histories
原因:当你看到这个错误 fatal: refusing to merge unrelated histories
时,意味着你正在尝试将两个没有共同历史的分支进行合并。这通常发生在你的本地仓库和远程仓库最初是独立创建的,没有共享任何提交记录。
为了解决这个问题,你可以使用 --allow-unrelated-histories
选项来强制 git pull
或 git merge
命令合并两个没有关联历史的分支。这样做将合并两个分支的历史,可能需要手动解决合并冲突。
解决方法:
git pull oj-frontend master --allow-unrelated-histories
报错:fatal: Exiting because of unfinished merge.
场景:运行上文提到的命令,
git pull oj-frontend master --allow-unrelated-histories
之后报错,
解决方法:为了解决这个问题,你需要先完成或取消当前的合并操作,然后再执行 git pull
命令。你可以按照以下步骤进行操作:
(1)首先,取消当前的合并操作。你可以使用以下命令:
git merge --abort
(2)确认取消合并后,你可以提交当前的更改或者将其暂存起来。你可以使用以下命令提交更改,
git commit -m "Your commit message"
或者,如果你想保留更改但暂时不想提交,你可以使用以下命令将更改暂存起来:
git stash
(3)当你确认当前没有未完成的合并或者未提交的更改后,再次执行 git pull
命令:
git pull origin master --allow-unrelated-histories
注意:命令里的orgin,在我本地指的是“oj-frontend”。
执行结果如下:
OK,成功了。