• 【Git&GitHub 本地库和远程库交互 02】


    一、Git本地库和GitHub远程库进行交互(团队内部合作)

    按照下图的思路进行交互

     1、项目经理创建一个本地库(huashan)

    -->初始化本地库

    -->新建一个文件

    -->提交此文件到暂存区,在提交到本地库

     2、项目经理在创建一个远程库 (登录https://github.com/ 后然后创建)

    -- > 创建远程库:New repository

     -->  复制远程库的地址  ( https://github.com/cswufq2021ybu/huashan.git)

     3、项目经理创建远程库地址别名  (远程库的地址太长,为了方便我们需要在本地库起一个别名,已方便后面的克隆,推送等操作)

    -->   git  remote -v 查看当前库所有远程地址别名

    -->   git remote add [别名] [远程名]

     4、推送(本地库文件推动到远程库) : git push [别名] [分支名]

     

    5、项目组成员A克隆远程库的master分支的代码,想进行编程

    1)创建一个本地仓库

    2)克隆远程库的仓库  (命令:git clone [远程地址])

    克隆的效果:

    --> 完整的把远程库下载到本地

    --> 创建origin远程库别名

    --> 初始化本地库(即:创建了.git文件夹)

     

     6、项目经理邀请此团队成员A加入团队,才能进行推送编程的文件,然后A成员推送编程文件

    1)项目经理登录github -->进入仓库点击settings  --> 点击Manage access  -->点击invite a collaborator --> 输入被邀请人A的GitHub的用户名

     2)复制邀请的链接发送给A -->A登录自己的github地址,接受邀请(这时候A会受到邮件,也可以通过邮件查看邀请登录github)

     3)A推送自己编写的文件到远程库

     7、A推送自己的代码成功以后,项目经理需要pull(拉取)

    1)git客户端进入到项目经理自己的本地库文件目录

    备注:pull分两步:抓取(fetch)+合并(merge) (即: pull =fetch+merge)

    2)抓取 fetch  (抓取远程库master文件,这时候并没有改变本地库文件的内容)  -->git fetch [远程库地址别名] [远程分支名]

    3)合并merge  (把远程库master文件合并到本地库文件,这时候改变了本地库文件的内容) --> git merge [远程库地址别名/远程分支名]

    4)git pull [远程库地址别名] [远程分支名]   -->不太会冲突的时候直接使用full就可以了,如果有冲突的时候最好还是先fetch然后在merge

    注意:这里面有一个坑,执行完git fetch origin master命令以后并且切换到origin/master分支以后,需要切换回master后,

    才能git merge origin/master。如果不切换的话是没有从远程库拉回到本地的

     8、协同开发是冲突的解决

    产生冲突的原因:两个人修改同一个文件,A先修改了然后推送到远程库,B不知晓A已经修改了,

    仍然在上一版本的基础上进行的修改,B修改后推送远程库,这时候就会冲突

    如何解决

    1)B拉取远程库的代码 --> git pull origin master

    2) B和A协商修改冲突的文件

    3)B推送文件到远程库 --> git push origin master

     

     要点:如果不是基于github远程库最新版本做的修改,不能推送,必须先进行拉取

    拉取下来如果进入冲突,则按照冲突解决办法进行解决

    二、跨团队合作

     

     1、先复制项目经理的仓库地址

     2、跨团队成员C登录GitHub-->然后在浏览器的地址栏粘贴上一步复制的地址-->点击Fork

     3、成员C本地新建一仓库-->克隆远程库-->修改文件-->提交本地库-->push到远程库

    注意:C用户push时会报“remote rejected(没有权限)”的错误,原因在于:git第一次push时电脑都会记住github的密码,所以切换账号以后需要在电脑删除GitHub的密码

    以Mac本为例:打开Finder ----> 应用程序 ---->实用工具 ---->钥匙串访问-->找到github.com-->右键删除

     4、成员C在GitHub内点击Pull request -->点击new pull request -->点击Create pull request -->输入title和文本,点击 Create pull request

    5、项目经理登录GitHub点击Pull request-->点击C创建的pull request -->这时候可以和C进行对话

     6、项目经理代码审查

    7、项目经理合并代码,点击Conversation --> merge pull request-->填写本次操作日志 -->点击Confirm merge-->当合并操作完成之后,先前绿色的Open标识,变为紫色的Merged标识。

     查看合并的操作记录

     

     8、将远程库修改拉取到本地  -->git pull origin master

    三、SSH登录

    1、进入到ssh目录,查看是否存在 id_rsa和 id_rsa.pub这两个文件

    $ cd ~/.ssh
    $ ls -l

    2、如果存在,就删掉

    rm -rf id_rsa id_rsa.pub

    3、运行命令生成.ssh密钥目录

    ssh-keygen -t rsa -C cswufq2021ybu@sohu.com
    
    cswufq2021ybu@sohu.com指Git注册的邮箱地址

    4、进入到ssh目录,查看id_rsa.pub文件,并复制里面的内容

    5、登录GitHub,选择进入创建的项目,选择右边的settings选项

    6、选择Deploy keys,点击add deploy key 添加key

    7、title随便写,用来标识key的来源,然后把刚才复制的id_rsa.pub内容直接粘贴到key里面,不要敲任何其他的按钮,点选Allow write access。
    然后点击add key。创建完成SSH的Key了

     8、添加账户的SSH Keys  -->页面右上角头像点击 Settings,进入账户设置中心

    -->选择左侧的SSH and GPG keys,点击New SSH key 添加key,同样输入key的名称和复制的id_rsa.pub内容。

     9、检测是否配置成功,在终端输入ssh -T git@github.com,如果出现下面这句话,就说明配置成功了。

     10、回到终端,创建远程地址别名

    git remote add origin_ssh git@github.com:cswufq2021ybu/huashan.git

    11、修改文件,然后推送文件

    vi huashanjianfa.txt 
    git add huashanjianfa.txt 
    git commit -m "ssh-test" huashanjianfa.txt 
    git push origin_ssh master

    12、登录GitHub验证是否推送成功

  • 相关阅读:
    C#:类的学习
    SilverLight xaml页面跳转方法
    C#对象生命周期(转载)
    jquery常用的方法
    关于Java日期简单应用
    Compilingphpwithcrypt()
    SSI使用详解
    实例解析:从IIS的ASP迁移到APACHE的PHP
    三步搞定phpwind的静态化部署
    Informix Dynamic Server 中的分布式事务
  • 原文地址:https://www.cnblogs.com/frankruby/p/14242540.html
Copyright © 2020-2023  润新知