本章介绍使用TortoiseGit客户端的把Git本机版本库管理的工程项目推送Github远程版本库上。
本章用到Git Bash命令行操作Github,因此需要提前配置Git本机客户端与Github服务器的SSH,使得密钥对匹配,使用Git Bash生成ssh-rsa及Github服务器中配置ssh key的教程,传送门链接:
(Git/Github笔记)Git Bash生成ssh-rsa
CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119433916
另外推荐:GUI工具 TortoiseGit 2.12.0 安装和配置+OpenSSH配置Github,传送门链接:
(Git/Github笔记)GUI工具 TortoiseGit 2.12.0 安装和配置+OpenSSH配置Github
CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119363867
这里我使用AndroidStudio创建项目实践Git使用,用其它IDE工具创建项目是可以的,例如:IDEA、Pycharm、Eclipse等开发工具,创建工程项目都能作为准备上传到Github的工程项目。
说明:在电脑桌面“Dekstop”创建一个名称为“GitNavigation” 的工程项目。
现在,项目已经准备就绪,怎么上传到Github呢?需要注意的是,此时的“GitNavigation” 工程项目,仅为一个不是使用Git版本库管理,普通的AndroidStudio工程项目,也就不具备上传到Github的资格或功能。那么,就要使得“GitNavigation” 工程项目,转换成Git版本库管理的项目,就具备了Git版本控制系统的功能特性。
(1)在找到GitNavigation工程项目——选择点击Git Create respository here...
(2)工程目录自动生成的“.git”目录
当前项目具备使用Git功能特性,但此时管理项目的“.git”目录,没有检测到工程项目的资源信息,【通俗理解:你(工程项目)又不是我(Git本机版本库)女朋友,去酒吧蹦迪我(Git本机版本库)凭啥要管你(工程项目)】,因此两者要建立联系(发生关系)才有资格管!需要先把“GitNavigation” 工程项目全部资源文件添加至Git本机版本库中,然后进行commit提交,如下:
提交工程项目到Git本机版本库工程项目分为两个步骤:
步骤一:把需要添加的文件进行:Add添加至Git本机版本库(git add 文件名)
步骤二:commit提交处理Add添加的文件至Git本机版本库(git commit - m "备注提交信息")
(1)右击GitNavigation工程项目:TortoiseGit——+ Add...
(2)打勾Select/deselect all——OK——Success (453 ms @ 2021/8/6 21:32:54)
(3)目录变化处于待commit提交状态:红色感叹号!不是最新版本Git本机版本库——蓝色加号+ 已添加且处于待commit提交状态
(4)commit提交至Git本机版本库:右击GitNavigation工程项目——Git commit -> "master"...(mastet是Git本机版本库默认的master主分支,也可以自定义创建分支以及重命名分支的名称)
(5)核查提交清单——Commit——Success (375 ms @ 2021/8/6 21:56:28)——close
(6)commit提交后工程项目和文件图标变为打勾绿色图标——即Git本机版本库最新版本
到这里,学会Git本机版本库的基本使用流程了,可是在本机电脑管理工程项目远远不满足开发需求,因此需要Git版本库上传到Github,这样一来,任何电脑连接互联网,直接从Github远程仓库中下载工程项目到当前电脑使用,进行项目开发。
在这之前,必须注册属于自己的Github账户,Github官方地址:https://github.com/
(1)创建一个Github远程版本库,命名为:“GitNavigation”——默认主分支:master
(2)获取“GitNavigation”远程仓库的URL地址,作用于Git本机版本库与Github远程仓库建立连接,获取方式如下:
获取URL:code——SSH——点击图标复制——出现copied
(3)使用TortoiseGit客户端上传Git本机版本库的“GitNavigation”工程项目到Github,如下:
右击工程项目:Git sync...(同步Git和Github版本库)
(4) push上传之前,使用pull获取Github远程版本库信息以及分支的合并(本机master和远程master),并且两者建立连接。
很遗憾,Pull获取发生错误:
错误分析:
原因一:创建Git远程版本库时,勾选添加了一个工程项目说明文件README.md在master主分支;Git本机版本库管理的工程项目目录中并没有Github远程版本库中的说明文件README.md。
原因二:两个master分支是两个不同的版本,具有不同的提交历史。一个有说明文件README.md,一个没有说明文件README.md,因此使用pull建立关系进行master合并分支时,就会发生如下错误:
fatal: refusing to merge unrelated histories
致命的:拒绝合并不相关的历史
(5)解决方案:强制允许不相关历史分支合并,项目工程右击空白处——Git Bash here,使用命令——git pull origin master --allow-unrelated-histories,如下:
步骤一:使用命令——git remote -v(查看远程仓库URL地址详细信息,可以看到仓库名称)
步骤二:设置Github远程版本库URL地址——Manage
步骤三:再次使用命令——git remote -v(查看远程仓库URL地址详细信息,可以看到仓库名称)
步骤四:现在有pull和push的URL地址,进行强制允许不相关历史master分支合并,使用命令——git pull origin master --allow-unrelated-histories
Merge branch 'master' of github.com:xxxxxx/GitNavigation
翻译:允许强制合并分支 'master' 到 Github远程版本库GitNavigation中
# Please enter a commit message to explain why this merge is necessary
翻译:请输入提交消息来解释为什么需要合并
# especially if it merges an updated upstream into a topic branch.
翻译:特别是如果它合并了一个更新的上游到一个主题分支
# Lines starting with '#' will be ignored, and an empty message aborts
翻译:以'#'开头的行将被忽略,空消息将终止提交
(6)TortoiseGit中再次使用pull拉取master分支合并的信息并建立本机版本库连接远程版本库——success
(7)Git本机版本库push上传/推送至Github远程版本库
合并成功:Success (4281 ms @ 2021/8/7 1:23:01)
***使用TortoiseGit客户端把Git本机版本库上传至Github远程版本库,整个实现流程就介绍完了***
仅自己学习记录,如有错误,敬请谅解~,谢谢~~~