NO.A.0003——Git下将java工程推送到远程仓库,实现代码交换

2021-03-14 10:31

阅读:690

标签:另一个   头像   掌握   tty   origin   gitignore   pca   ssh   其他   

一、将Java工程提交到本地仓库并推送到远程仓库:
1、拷贝Java项目文件夹到.git的工作目录下:
  • 在HelloProjet文件夹右键——>TortoiseGit——>添加——>确定(文件上会有一个+号出现)Java项目已添加到暂存区——>END

忽略部分不需要添加到本地版本库的文件:

  • 选中需要忽略的文件——>TortoiseGit——>删除并添加到忽略列表——>根据名称删除和忽略——>选择:递归忽略文件和目录:.gitgnore放在文件/文件夹所在的目录(图二)——>确定——>会产一个.gitignore(是忽略的文件名)文件——>END
    技术图片

                                            图一

    技术图片

                                           图二
  • gitignore也需要添加到本地版本库中:gitignore右键——>TortoiseGit——>添加——>确定——>END
  • 右键——>TortoiseGit(T)——>版本库浏览器——>可以查看到我们添加到本地版本库的HelloProjet项目文件
    技术图片

2、创建本地仓库,远程仓库,并把本地仓库源代码推送到远程仓库进行代码交换:
在本地版本库的工作目录下创建本地仓库:E:\GitHub Repository\Repository\repo1
在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:\Users\Administrator.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:\GitHub\Git\usr\bin\ssh.exe——>END

添加私钥:C:\Users\Administrator.ssh\id_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\repo1——>确定——>在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\repo2下修改hello.txt文件内容——>提交到本地仓库——>推送到GitHub远程仓库repo2——>文件推送不成功(图一)(因为不是在原文件上做的修改)——>拉取(把远端的修改拉取到本地)——>文件会产生冲突(图二)(因为在另一个仓库中修改文件,当前仓库也修改过文件;会产生冲突;——>打开!hello.txt文件(图三);删掉一些注释信息——>右键——>TortoiseGit :解决冲突(O)——>提交到本地仓库(提示合并信息)——>提交——>在GitHub远程仓库可以查看到我们解决冲突后合并的文件内容(图四)——>END
    技术图片

                                                     图一

    技术图片

                                                    图二

    技术图片

                                                    图三

    技术图片

                                                    图四

NO.A.0003——Git下将java工程推送到远程仓库,实现代码交换

标签:另一个   头像   掌握   tty   origin   gitignore   pca   ssh   其他   

原文地址:https://blog.51cto.com/15005403/2553659


评论


亲,登录后才可以留言!