本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程

本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程

一.使用Git将本地项目托管到Github

1.首先你需要一个Github账号,所以还没有的话先去注册吧!https://github.com/
然后使用git需要先安装git工具,下载后直接傻瓜式安装即可:https://git-for-windows.github.io/
2.登录后,进入Github首页,点击New新建一个项目。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第1张图片
3.填写相应信息后点击create repository即可

Repository name: 仓库名称(输入英文名字)
Description(可选): 仓库描述介绍
Public, Private : 仓库权限(公开共享)
Add a README file: 添加一个README.md
Add .gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore
Choose a license: 证书类型,对应生成文件LICENSE
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第2张图片
4.创建成功后界面如下,Code 处有两种地址复制下备用。

HTTPS地址为:https://github.com/YIRUIJIE/test.git
SSH地址过程:[email protected]:YIRUIJIE/test.git

本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第3张图片
如果电脑首次获取SSH链接,则需要配置SSH keys以便于后期Android Studio管理安卓项目,使用https链接国内可能会抽风的无法pullpushSSH keys过程如下:

打开 Git Bash Here直接输入ssh-keygen -t rsa -C "你的邮箱"生成 SSH keys,我这里提示已经存在就不再搞了。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第4张图片
此时生成的文件存放在C:\Users\YRJ\.ssh\目录下,打开文件id_rsa.pub就是SSH keys
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第5张图片
然后直接到Github账号设置Account settings中的SSH and GPG keys添加即可!
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第6张图片
最后拉取代码用ssh的[email protected]:****/项目名.git 即可!
5.接下来就到本地操作了,使用Git Bash Here,进入如下界面,test即为我的项目名。
输入如下代码(关键步骤),把github仓库克隆到本地git clone [email protected]:YIRUIJIE/test.gitcd test进入到项目中,操作如下:
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第7张图片
6.将本地项目文件夹下的所有文件,复制到test里,如下:
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第8张图片
7.接下来是将本地文件提交到远程仓库

git add * (注:别忘记后面的*,此操作是把test文件夹里的文件都添加进来)
git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“test项目”)
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第9张图片
8.git push -u origin main (注:此操作目的是把本地仓库push到github上面。请不要使用:master ,当前使用的是main。成功之后Github上就能看到你的项目了)
此步骤若使用https链接,应该需要你输入帐号和密码,国内如果抽风的情况下,一直会提示失败,所以最好用SSH链接。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第10张图片
首次使用Git pull他人代码时可能会出现以下提示问题:

Commit failed - exit code 128 received, with output: '*** Please tell me who you are.
Run
  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <>) not allowed'

这是因为没有配置提交时的用户名和邮箱的原因,你可以直接执行:。

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

二.使用Git将本地项目托管到Gitee

1.首先先在本地桌面上创建一个文件夹名字最好为英文,然后鼠标右键使用git bash
2. 在git中使用 git init 命令 //初始化一个git 本地仓库此时会在本地创建一个 .git 的文件夹
3.到Gitee上新建仓库,写仓库名称 选择是否开源 勾选使用Readme文件初始化这个仓库
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第11张图片
4.使用git remote add origin https://gitee.com/你的码云用户名/XXXX //添加远程仓库。
例如:git remote add origin https://gitee.com/yiruijie/yirj.git
5.使用 git pull origin master 命令,将码云上的仓库pull到先前创建的文件夹中,期间需要输入gitee上面的账号和密码,输入完成密码之后点击 OK。
可能会出现以下提示问题:

Commit failed - exit code 128 received, with output: '*** Please tell me who you are.
Run
  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <>) not allowed'

这是因为没有配置提交时的用户名和邮箱的原因,你可以直接执行:

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

也可以到项目 .git\config文件最后加入

[user]
    name = name
    email = 你的邮箱@qq.com

6.完毕之后再把将要上传的文件,全部添加到之前在桌面创建的文件夹中并使用git add .(. 表示所有的)或者 git add 文件名 // 将文件保存到缓存区
7. 然后使用git commit -m '这里写新推送的文件描述' //添加文件描述
8.使用git push origin master ,将本地仓库推送到远程仓库,之后去刷新gitee就能看到推送上去的项目了。

三.将Github项目同步到gitee且同时关联两个Git远程项目

复制Github项目的https链接,直接到gitee创建项目从GitHub/GitLab导入仓库
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第12张图片
选择从URL导入 ,仓库名称 ,路径由链接自动生成最好不要改动,选择私有然后 导入即可!
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第13张图片
完成之后,项目名称旁会有刷新同步图标,克隆/下载处复制项目https链接做备用。

HTTPS地址为: https://gitee.com/yiruijie/test.git

本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第14张图片
接下来就是项目导入Android Studio,同时关联两个Git远程项目。

由于在国内开发环境的特殊愿意,github经常拉取很慢,有时我们直接就gitee复制github的项目来解决速度的问题,但是这和fork不一样,属于新建了一个分支。如果github的原项目更新,后续我们的库也要更新,如果使用gitee的刷新同步工具很容易把之前的更改强制覆盖掉。

打开Android Studio,从gitee拉取项目Get from Version Control... 填入链接直接克隆即可!
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第15张图片
点击Android studio顶部工具栏VSC->Git ->Remotes,我们可以看到只有一个gitee的远程项目,将我们的github项目的git链接添加进去,我们也可以通过命令git remote add github [email protected]:YIRUIJIE/test.git进行添加并命名为github
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第16张图片
点击Android Studio工具的Terminal使用git remote -v命令,查看是否添加成功。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第17张图片

Android Studio 是看不到.git目录的,所以进入项目文件,打开.git下面的config文件
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第18张图片

可以看到目前,remote信息是对的,但是branch并没有我们创建的github,关闭安卓项目重新打开,如果还是没有,可以手动添加如下信息到config里:

[branch "github"]
    remote = github
    merge = refs/heads/github

进入本地分支然后刷新,remote出现了github,则是成功了。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第19张图片
之后改动github上部分的代码,选择对应分支github查看更新。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第20张图片
可以看到github上新提交信息为1.改网址
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第21张图片
选择右下角的本地分支main 选择 github/main' 。如果要看变化了那些代码请 Compare with Current(与当前比较),点击1.改网址 点击改变的文件选择Compare with Local(与本地比较)即可!
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第22张图片
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第23张图片
选择右下角的本地分支main 选择 github/main' 如果直接合并你可以直接Merge into Current(合并到当前)
如果本地改动的代码较少且没有冲突直接Merge into Current(合并到当前)就会将github上最新的代码合并到本地仓库。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第24张图片
然后直接pushgitee上的远程仓库即可!
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第25张图片
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第26张图片
如果本地改动的代码较多也提交到了gitee远程仓库,使用Merge into Current(合并到当前)在有冲突的情况下会弹出冲突文件让你手动解决冲突。
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第27张图片
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第28张图片
本地项目托管到Github&Gitee且同时关联两个Git远程项目(实现拉/推/整合/代码解决冲突) 教程_第29张图片
解决冲突后将结果本地代码提交到gitee远程仓库即可!

小问题解决总结:
JetBrains系列软件内部解决版本控制对比引起的只在空格和空行上有所不同问题:
快递按两次Shift 后 搜索 line separators 调整为自己使用的类型即可!如下图:
类型图
参考文章:解决 contents have differences only in line separators

你可能感兴趣的:(奇技淫巧,git)