IDEA中推送

本地仓库与远程仓库一致

创建本地仓库

如果未设置此步的话,IDEA将会在顶部菜单显示VCS,而不会显示Git功能

依次打开:文件 | 设置 | 版本控制 | 目录映射;将当前项目路径映射为Git仓库
Snipaste_2022-03-24_16-23-24.png
英文版对应地址:
Snipaste_2022-03-21_11-09-02.png
Snipaste_2022-03-24_16-24-39.png

提交本地项目

将本地项目提交到本地仓库(git add—>git commit);
Snipaste_2022-03-24_15-26-21.png

关联远程仓库

点击Git—>管理远程
Snipaste_2022-03-24_15-08-39.png
英文版对应:
Snipaste_2022-03-21_11-09-48.png
添加远程仓库地址,亦可自定义别名
Snipaste_2022-03-24_15-21-57.png

将远程仓库项目拉取到本地

Git—>拉取(pull)
image.png
选择要拉取的的分支,如果没有出现,按照提示,多刷新几次
Snipaste_2022-03-24_15-30-36.png

将本地仓库项目推送到远程仓库

Git—>推送(push)
Snipaste_2022-03-24_15-26-47.png

本地仓库与远程仓库不一致

如果本地仓库与远程仓库不一致,那么所有本地操作都是和之前一致的。唯一不同的就是最后拉取和推送的时候会因为本地仓库与远程仓库不一致造成各种报错。

以防万一,在进行操作前可以新建一个临时分支,给本地分支做个备份

首先是Git拉取失败,报错:

  1. Git 拉取失败
  2. From github.com:ooahz/XXXX
  3. refusing to merge unrelated histories

原因自然是因为本地库与远程库不一致导致的。
解决方法:
点击:Git—>更新项目
image.png
选择合并当前分支
Snipaste_2022-03-24_15-32-13.png
提示无法更新,根据提示选择上游分支,
Snipaste_2022-03-24_15-32-39.png
同样选择分支后,选择合并
Snipaste_2022-03-24_15-32-43.png
然后就可以看到远程仓库成功下载到本地,但是并没有和本地项目相互关联,所以我们需要对项目进行合并
Snipaste_2022-03-24_15-35-25.png
点击远程仓库分支,然后选择一个能将远程分支合并到本地项目分支的任一选项(我这里选择的是合并并拉入)
Snipaste_2022-03-24_15-39-57.png

出现仓库不一致提示,选择变基(Rebase)到远程
Snipaste_2022-03-24_15-43-37.png
根据提示,解决所有冲突
image.png
Snipaste_2022-03-24_15-47-03.png

然后推送即可
image.png

image.png

使用Git推送

本地仓库与远程仓库一致

创建本地仓库

  1. $ git init

提交本地项目

  1. $ git add .
  2. $ git commit -m "commit"

关联本地项目

  1. $ git remote add origin "远程仓库地址"

将远程项目拉取到本地

  1. $ git pull origin master

将本地项目提交到远程仓库

  1. $ git push origin master

本地仓库与远程仓库不一致

如果本地仓库与远程仓库不一致,那么所有本地操作都是和之前一致的。唯一不同的就是最后拉取和推送的时候会因为本地仓库与远程仓库不一致造成各种报错。解决方法自然是将本地库和远程库同步为一致即可。
图文说明:
将本地项目推送到远程仓库 - 图23

以防万一,在进行操作前可以新建一个临时分支,给本地分支做个备份

git pull报错:

  1. fatal: refusing to merge unrelated histories

git push报错:

  1. ![rejected]
  2. master -> master (non-fast -forward)
  3. error: failed to push some refs to g1 thub. com: ooahz/webspider.git

Snipaste_2022-03-23_17-45-26.png
或者:

  1. hint: Updates were rejected because the tip of your current branch is behind
  2. hint: its remote counterpart. Integrate the remote changes (e.g.
  3. hint: 'git pull ...') before pushing again.
  4. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

image.png
这里有三个解决方案:

方法一

和上面的的IDEA的解决方法一样,使用rebae。

  1. $ git pull --rebase origin master

将远程仓库更新合并到(pull=fetch+merge)本地库中,rebase表示本地库的上一次commit移接到pull后的本地库中

图片说明:
将本地项目推送到远程仓库 - 图26

使用该命令后,如有冲突,会提示合并冲突,手动合并冲突后即可正常进行后续的push操作。
合并冲突后输入命令,检查是否完成:

  1. git rebase --continue

image.png
然后正常提交

方法二
  1. $ git pull origin master --allow-unrelated-histories

allow-unrelated-histories表示允许不相关历史提交,强制合并

Snipaste_2022-03-23_17-45-59.png
同样也是在合并过程中需要手动合并冲突
合并冲突后输入命令,检查是否完成:

  1. git rebase --continue

方法三
  1. $ git push --force origin master

force表示强制提交