IDEA中推送

本地仓库与远程仓库一致

创建本地仓库

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

依次打开:文件 | 设置 | 版本控制 | 目录映射;将当前项目路径映射为Git仓库
图片
英文版对应地址:
图片
图片

提交本地项目

将本地项目提交到本地仓库(git add–>git commit);
图片

关联远程仓库

点击Git–>管理远程
图片
英文版对应:
图片
添加远程仓库地址,亦可自定义别名
图片

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

Git–>拉取(pull)
图片
选择要拉取的的分支,如果没有出现,按照提示,多刷新几次
图片

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

Git–>推送(push)
图片

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

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

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

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

1
2
3
4
Git 拉取失败
From github.com:ooahz/XXXX

refusing to merge unrelated histories

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

出现仓库不一致提示,选择变基(Rebase)到远程
图片
根据提示,解决所有冲突
图片
图片

然后推送即可
图片

图片

使用Git推送

本地仓库与远程仓库一致

创建本地仓库

1
$ git init

提交本地项目

1
2
3
$ git add .

$ git commit -m "commit"

关联本地项目

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

将远程项目拉取到本地

1
$ git pull origin master

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

1
$ git push origin master

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

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

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

git pull报错:

1
fatal: refusing to merge unrelated histories

git push报错:

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

图片
或者:

1
2
3
4
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.

图片
这里有三个解决方案:

方法一

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

1
$ git pull --rebase origin master

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

图片说明:
图片

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

1
git rebase --continue

图片
然后正常提交

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

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

图片
同样也是在合并过程中需要手动合并冲突
合并冲突后输入命令,检查是否完成:

1
git rebase --continue
方法三
1
$ git push --force origin master 

force表示强制提交