• Git--分布式版本控制工具


    Git简介

    Git: 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

    Git的功能特性:
    从一般开发者的角度来看,git有以下功能:
    1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
    2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
    3、在单机上自己创建的分支上提交代码。
    4、在单机上合并分支。
    5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
    6、生成补丁(patch),把补丁发送给主开发者。
    7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
    8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
    
    
    从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
    1、查看邮件或者通过其它方式查看一般开发者的提交状态。
    2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
    3、向公共服务器提交结果,然后通知所有开发人员。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    优点:
    适合分布式开发,强调个体。
    公共服务器压力和数据量都不会太大。
    速度快、灵活。
    任意两个开发者之间可以很容易的解决冲突。
    离线工作。
    缺点:
    资料少(起码中文资料很少)。
    学习周期相对而言比较长。
    不符合常规思维。
    代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
    (以上来自百度百科

    Git工作流程

    在这里插入图片描述

    常用命令

    git init:仓库初始化(创建文件夹,在此文件夹下打开gitbash)

    • git add 单个文件名:将工作区的文件添加到暂存区
      git add . 将所有的修改添加到暂存区

    git commit -m ‘注释内容’:将暂存区的内容提交到本地仓库的当前分支
    git status:查看暂存区和工作区的修改状态
    git log:查看提交日志

    • git log [option]
      options:
      –all 显示所有分支
      –pretty=oneline 将提交的信息显示为一行
      –abbrev-commit 令输出的commitid更加的简短
      –graph 以图的形式显示

    git reset --hard commitid(该id可以使用 git log查看)
    git relog:查看已经删除的提交记录

    分支

    git branch:查看本地分支
    git branch 分支名:创建本地分支
    git checkout 分支名:切换分支
    git checkout -b 分支名:创建并切换到该分支
    git merge 分支名:将该分支合并到现在所在的分支上
    git branch -d b1:删除b1分支
    git branch -D b1:强制删除b1分支
    (删除分支时,不能删除当前分支,可以删除其他分支)

    本地冲突的解决

    当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

    • 1 处理文件中冲突的地方
      2 将解决完冲突的文件加入暂存区(add)
      3.提交到仓库(commit)

    Git远程仓库

    1、在码云注册并登录账号,新建远程仓库,ssh地址即为远程仓库的地址。
    2、配置SSH公钥

    • 生成SSH公钥:ssh-keygen -t rsa
    • 不断回车,如果公钥已经存在,则自动覆盖(如果原来的公钥有用,再备份再执行该操作)。
    • Gitee设置账户公钥:
      获取公钥:cat ~/.ssh/id_rsa.pub
      将获取到的公钥粘贴到远程仓库
      在这里插入图片描述3、操作远程仓库
      3.1 添加远程仓库(先初始化本地仓库,与已创建的远程仓库对接)
    • 命令: git remote add <远端名称> <仓库路径>
      远端名称,默认是origin,取决于远端服务器设置
      仓库路径,从远端服务器获取此URL
      3.2 查看远程仓库:git remote
      3.3 推送到远程仓库
      命令:git push [-f] [–set-upstream] [远端名称 [本地分支名][:远端分支名] ]
      如果远程分支名和本地分支名称相同,则可以只写本地分支:git push origin master
      -f 表示强制覆盖
      –set-upstream 推送到远端的同时并且建立起和远端分支的关联关系:git push --set-upstream origin master(如果当前分支已经和远端分支关联,则可以省略分支名和远端名。)
      git push 将master分支推送到已关联的远端分支。
      3.4 从远程仓库克隆
      命令: git clone <仓库路径> [本地目录]
      本地目录可以省略,会自动生成一个目录
      3.5 从远程仓库中抓取和拉取
      远程分支同样可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。
      抓取 命令:git fetch [remote name] [branch name]
      抓取:将仓库里的更新都抓取到本地,不会进行合并。如果不指定远端名称和分支名,则抓取所有分支。
      拉取:git pull [remote name] [branch name]
      拉取:将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge。如果不指定远端名称和分支名,则抓取所有并更新当前分支。
      3.6 远程仓库的合并冲突的解决
      在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。

    Idea中使用Git

    安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口,找Version Control下的git选项:
    在这里插入图片描述1、创建远程仓库(同上码云中创建)
    2、本地仓库初始化
    在这里插入图片描述在这里插入图片描述
    3、设置远程仓库
    在这里插入图片描述在这里插入图片描述4、提交到本地仓库
    在这里插入图片描述在这里插入图片描述 5、推送到远程仓库
    在这里插入图片描述
    弹出的框直接点击push
    6、克隆远程仓库到本地
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    分支相关操作区:
    在这里插入图片描述
    解决冲突

    1. 执行merge或pull操作时,可能发生冲突
    2. 冲突解决后加入暂存区
    3. 提交到本地仓库
    4. 推送到远程仓库

    在这里插入图片描述
    在这里插入图片描述
    注意:
    切换分支前先提交本地的修改
    2. 代码及时提交,提交过了就不会丢
    3. 遇到任何问题都不要删除文件目录

  • 相关阅读:
    【斯坦福大学公开课CS224W——图机器学习】四、消息传递和节点分类
    【PB案例学习笔记】-01创建应用、窗口与控件
    ARM 汇编写启动代码之开 iCache
    机器学习笔记之高斯过程(一)——基本介绍
    关于Mac配置逆向工程
    android studio启动Task配置
    Element-ui 表格&表单
    个人博客系统
    C++学习笔记
    Maven 集成 Wagon
  • 原文地址:https://blog.csdn.net/Apikaqiu/article/details/126008392