NO.A.0003——Git下将java工程推送到远程仓库,实现代码交换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NO.A.0003——Git下将java工程推送到远程仓库,实现代码交换相关的知识,希望对你有一定的参考价值。
一、将Java工程提交到本地仓库并推送到远程仓库:
1、拷贝Java项目文件夹到.git的工作目录下:
- 在HelloProjet文件夹右键——>TortoiseGit——>添加——>确定(文件上会有一个+号出现)Java项目已添加到暂存区——>END
忽略部分不需要添加到本地版本库的文件:
-
选中需要忽略的文件——>TortoiseGit——>删除并添加到忽略列表——>根据名称删除和忽略——>选择:递归忽略文件和目录:.gitgnore放在文件/文件夹所在的目录(图二)——>确定——>会产一个.gitignore(是忽略的文件名)文件——>END
图一
图二
- gitignore也需要添加到本地版本库中:gitignore右键——>TortoiseGit——>添加——>确定——>END
- 右键——>TortoiseGit(T)——>版本库浏览器——>可以查看到我们添加到本地版本库的HelloProjet项目文件
2、创建本地仓库,远程仓库,并把本地仓库源代码推送到远程仓库进行代码交换:
在本地版本库的工作目录下创建本地仓库:E:GitHub RepositoryRepository
epo1
在github上面创建仓库:repo1
3、Github支持https和ssh传输方式:
Github支持两种同步方式“https”和“ssh”。如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。如果使用ssh方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到githib的服务器上。这两种方式在实际开发中都用应用,所以我们都需要掌握。接下来我们先看ssh方式。
ssh协议:
- 什么是ssh:SSH 为 Secure Shell(安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Group)所制定。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
基于秘钥的安全验证:
- 使用ssh协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
3.1、SSH秘钥生成:
在windows下我们可以使用 Git Bash.exe来生成密钥,可以通过开始菜单或者右键菜单打开Git Bash
-
在本地版本库工作目录下:右键——>Git Bash Here——>$ ssh-keygen -t rsa(图一)——>在C:UsersAdministrator.ssh目录下生成私钥、公钥文件(id_rsa(不可泄露)、id_rsa.pub(告知GitHub服务器))(图二)——>END
图一
图二
3.2、ssh秘钥配置:
-
复制id_rsa.pub里面的内容——>GitHub上点击头像——>settings——>SSH and GPG keys——>SSH keys——>New SSH key——>将拷贝的秘钥添加到GitHub上(图二)——>END
id_rsa.pub公钥文件内容
图二
4、将本地版本库中的源代码推送到远程仓库:
4.1、使用ssh的方法推送
方法一:在GitHub上创建远程你仓库repo1
-
在git的工作目录下——右键——Git Bash Here——>推送项目源码到GitHub远程仓库(图一)——>查看GitHub远程仓库文件推送是否成功——>END
图一
方法二:在GitHub上创建仓库repo2:
- 在git工作目录下——>右键:Git同步——>远端URL:管理(图一)
- 网络——>确认网络是否是ssh——>浏览:Git安装目录——>D:GitHubGitusrinssh.exe——>END
添加私钥:C:UsersAdministrator.sshid_rsa.pub
-
添加远端(与远程仓库建立关联关系)——>远端:origin——>URL:GitHub远程仓库地址(ssh)——>Putty秘钥(确认网络是否为ssh.exe)选择我们私钥的地址——>添加——确定——>推送(图一)——>在GitHub上查看源码推送是否成功(图二)——>END
图一
图二
4.2、https的方式推送:
在GitHub上创建远程仓库repo3:
-
在git工作目录下:右键:Git同步——>远端URL:管理——>添加远端(与远程仓库建立关联关系)——>远端:origin1——>URL:GitHub远程仓库地址(https)putty秘钥不需要,我们需要用户名和密码——>添加——确定——>推送:GitHub用户名和密码(图一)——>在GitHub上查看源码推送是否成功——>END
图一
5、克隆远程仓库到本地:两种方式:ssh、https
在git的工作目录下创建目录:clone-repos
方式一:ssh的方式克隆
- 在clone-repos目录下——>右键——>Git Bash Here:git clone 远程仓库地址(图一)——>在clone-repos目录下查看repo1文件是否clone成功——>END
方式二:https的方式:
-
在clone-repos目录下——>右键——>Git克隆——>URL:GitHub仓库地址——>目录:clone-repos epo1——>确定——>在clone-repos下可以查看到repo1源码(图一)——END
图一
6、冲突解决:推送代码时冲突解决,推送、拉取同步:
- 推送:在git工作目录repo1下新建hello3.txt文件并推送到本地仓库中:(把本地仓库的变化推送到远程仓库)
在git工作目录repo1下——>右键:Git同步——>选择远端URL:origin(repo1)——推送——>在GitHub:repo1下查看文件——>END
拉取:GitHub远程仓库repo1下文件发生变化,开发人员向同步数据至自己本地仓库:(把远程仓库的变化拉取到本地仓库)
- 在git的工作目录repo1下——>右键:Git同步——>远端URL:选择仓库地址——>拉取——>在repo1下就可以查看到更改后的文件——>END
6.1、拉取不同步:
在repo1中修改hello.txt文件内容——>提交到本地仓库——>推送到GitHub远程仓库repo2
-
在clone-repos epo2下修改hello.txt文件内容——>提交到本地仓库——>推送到GitHub远程仓库repo2——>文件推送不成功(图一)(因为不是在原文件上做的修改)——>拉取(把远端的修改拉取到本地)——>文件会产生冲突(图二)(因为在另一个仓库中修改文件,当前仓库也修改过文件;会产生冲突;——>打开!hello.txt文件(图三);删掉一些注释信息——>右键——>TortoiseGit :解决冲突(O)——>提交到本地仓库(提示合并信息)——>提交——>在GitHub远程仓库可以查看到我们解决冲突后合并的文件内容(图四)——>END
图一
图二
图三
图四
以上是关于NO.A.0003——Git下将java工程推送到远程仓库,实现代码交换的主要内容,如果未能解决你的问题,请参考以下文章
将文件推送到 Github/Gitlab 而不将其添加到 .git?
在自己的服务器上搭建git仓库服务器(本地推送到远程仓库远程仓库推送到本地)