zoukankan      html  css  js  c++  java
  • git+可视化工具+github/码云

     git

     (实际上 git命令 和 TortoiseGIT 是一回事,只是TortoiseGIT把git命令 功能做了一个可视化处理,所以下面 git命令 和 TortoiseGIT实现功能是一样的)

    1、如何使用Git上传项目代码到github : 参考 :https://blog.csdn.net/llf369477769/article/details/51917557

       git官网下载太慢甚至下载不了的解决方法。在淘宝的镜像网站上下载 : https://npm.taobao.org/mirrors/git-for-windows/

    2、Git常用操作   https://blog.csdn.net/w372426096/article/details/81625446     

    3、git概念和原理   :   https://blog.csdn.net/zguoshuaiiii/article/details/78375997  或 https://www.jianshu.com/p/a31471933fd3git 有4个空间

      关键概念:工作区(里面的文件也叫 工作副本)、暂存区(也叫 缓冲区)、本地仓库、远程仓库     https://blog.csdn.net/zssureqh/article/details/52564305

    4、仓库 / 缓冲区 / 工作副本  :https://blog.csdn.net/zssureqh/article/details/52564305

      工作副本是相对于版本仓库而言的,其实就是你本地的工作目录

    5、Git图谱:https://www.jianshu.com/p/d3d575799ff3

    6、git 分支管理: https://www.cnblogs.com/spec-dog/p/11043371.html

      常设分支:

        a、master【必要】:生产环境的稳定分支,生产环境基于该分支构建。仅用来发布新版本,除了从pre-release或生产环境Bug修复分支进行merge,不接受任何其它修改。

           说明:master 分支 一般都有权限保护的,开发者不可以直接推送到远程仓库。开发者提交合并请求,管理员在远程仓库上进行合并

        b、pre-release【必要】:预发布版本,测试环境的稳定分支。【有时master分支修复后的bug,不急着上线就要先合并到这个分支。等其他的功能开发完,一起带到master分支上去】

           说明:如果bug修复分支直接合并到 pre-release分支 上,而pre-release没有合并bug修复分支的代码。并不会影响pre-release分支合并到master分支上;当然 pre-release 分支要看到 修复分支的 代码,肯定要合并过来的。

        c、develop【看测试环境,要部署的功能】:开发环境的分支,不一定稳定。【多人 同时 开发一个项目,才 可能 会用到】【个人觉得,这是为 测试环境部署准备的分支】

           说明:1、测试环境部署的代码,如果需要 同时 看 几个人提交的代码。那必须把几个人开发的代码合并到develop分支上,再部署该分支;如果只是看个人开发的代码只要部署他开发的那个feature分支就可以了。

              2、如果每次feature分支开发完,就合并到develop分支,那develop分支就是稳定的分支;

              如果 feature 分支开发完,直接合并到pre-release分支了,而没有合并到develop分支。那develop分支就不稳定了,部署develop分支 需要重新合并下。

      临时分支:

        a、feature:为了开发某个特定功能,从develop分支上面分出来的。开发完成后,要merge到develop分支。功能分支的命名,可以采用feature-*的形式命名(*为任务单号)。

               如果develop分支上,其它人开发的功能不上生产,而当前开发的feature分支需要上生产。这时,测试环境直接部署这个feature分支。测试通过 可以直接合并到pre-release分支,可以不用合并到develop分支。

        b、fixbug:为了修复某个bug,从常设分支上面分出来的。修复完成后,再merge到对应的分支。Bug修复分支的命名,可以采用fixbug-*的形式命名(*为bug单号)

       总结:develop、feature、fixbug 测试通过,根据需要 都可以合并到 pre-release分支上;临时分支 之间不需要合并,他们是相互独立的。

    7、git pull 和 git fetch:  (git fetch 会把远程的代码拉倒 本地远程分支上 如,origin/master 这个是 本地的远程分支)。本地的远程分支 都是匿名的,有一个hash值指示的。

      默认的   git pull = git fetch + git merge。  这里 git merge 是 将本地对应的远程分支的代码合并到本地的分支。如下图(来自 https://www.jianshu.com/p/a31471933fd3

      

    8、代码推送后,远端仓库的分支节点,和本地对应分支节点是一样的(本地提交,没有推送的节点,在下一个推送的操作之后,远端仓库的节点就会同步)。即推送的作用是使  远端仓库的提交节点  和 本地一样

      推送没有影响代码,所以不产生提交节点,默认合并过程中会执行一个提交命令,所以会加一个节点。

    9、合并分支 删除不了master分支的文件的。例如:master分支有a文件,div分支没有a文件,div分支合并到master分支,master分支的a文件仍然存在。

      即,分支合并,只会增加文件,或修改相同文件的代码,不会删除文件。如果想删除某个分支的某个文件,只能在当前分支删除后再推送

    10、远程仓库的回滚(回滚分 几种 情况的):      https://blog.csdn.net/qq_36898043/article/details/81461019

      第一种情况: 只是在本地commit,还没有push到远程分支。

        a、这种情况,使用  reset  或  revert 都可以实现。(推荐使用reset

      第二种情况:代码已经push到远程仓库,可通过以下命令实现

        a、这种情况,使用 reset ,本地代码可以回滚。但是本地回滚的代码无法推送上去,因为远程仓库的版本更新。

        b、可以使用 revert 进行回滚,但是revert进行回滚不彻底。中间提交了好多次,使用 revert 回滚,只是对指定版本所做的修改进行反向操作,中间的提交还是保留的。(所以 不推荐 revert 进行回滚

      注意:a、远程版本更新,本地代码是推送不上去的。通过reset 回退的仓库,当前的版本可能比远程的版本低,是推送不上去的。

         b、git reset  和  git revert 的区别:https://blog.csdn.net/yxlshk/article/details/79944535   或   https://my.oschina.net/u/3412738/blog/1800219(底部内容)

            git reset 是删除 指定版本后面所有的提交,而 git revert 是新增一个和指定版本反向操作的代码提交。

         c、本人进行回滚操作的方式:使用 reset 获得 回滚需要的代码,删除当前的 .git 目录;在其它目录下重新拉取远程代码,把新的  .git目录,复制到之前回滚代码的目录下。(第一种情况,直接 reset 后就可以推送)

    11、git config配置:https://www.cnblogs.com/fireporsche/p/9359130.html

      在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:   

        1、仓库级别 local 【优先级最高】

        2、用户级别 global【优先级次之】

        3、系统级别 system【优先级最低】

                    -----------------------------------------------------------------------------------------------------------------------------------------------------

      git扩展知识:

      1、执行git push出现"Everything up-to-date" 【git错误提示】:    https://www.cnblogs.com/kevingrace/p/6259905.html

      2、git 与 svn 对比   :   https://www.cnblogs.com/wangpenghui522/p/5556813.html

      3、Git 个人学习笔记及心得      参考链接

      4、git提交时如何忽略一些文件  :  https://www.jianshu.com/p/ade52455c3a4

      5、Git关于pull,commit,push的总结  : https://www.cnblogs.com/wnbahmbb/p/6568179.html

      6、.gitkeep 文件的作用 :https://www.cnblogs.com/xingzc/p/7896869.html

          git是不允许提交一个空的目录到版本库上的,可以在空的文件夹里面建立一个.gitkeep文件,然后就可以提交上去了。(其实只要里面有文件就可以提交上去了)

      7、Git 以分支的方式同时管理多个项目:https://blog.csdn.net/putao2062/article/details/80516001   或   https://www.cnblogs.com/huangtailang/p/4748075.html

        git checkout --orphan 分支名        # 创建无根分支,该分支没有父分支

      8、git 指定 分支,克隆代码: https://blog.csdn.net/Connie1451/article/details/84992915 

        git clone -b 分支名 仓库地址

      9、git 命令可以写成 批处理,这样就不用记git命令,也不容易出错。  https://blog.csdn.net/weixin_42381351/article/details/87369661

         .bat 的批处理无法在 git Bash 命令框上运行,所以 使用  .sh 后缀名的批处理文件。

          git Bash 命令框 上运行 .sh 批处理文件。   https://www.jb51.net/article/170880.htm

        sh .	est.sh

      10、操作中遇到到问题:

          a、git删除了本地文件 , 并且提交了,但是没push,然后从远端拉代码 , 怎么没有把这个文件拉下来呢?  https://segmentfault.com/q/1010000016759971

          b、

      11、git reflog:https://www.cnblogs.com/chaiyu2002/p/9551621.html

         说明:git reflog 是比 git log 更强大的日志。但是一般 用来查看  某个分支是基于哪个分支创建的

      12、Git 骚操作:参考链接

          a、Git stash:【使用场景:代码写到一半需要修改一个 bug,但是这个时候也不想提交未写完的代码。就可以使用 stash 功能处理】

          • git stash save messge 命令:   将本分支的修改暂存起来。【工作区的修改暂存起来后,工作区的代码恢复到上次提交的代码。即工作区代码恢复到本地仓库的代码,刚才修改的部分暂存到 暂存区了
          • git stash pop 命令:            直接将最近一次 stash 的代码 pop 出来。这时暂存区的代码就会恢复到 工作区。
          • 找回清除的 stash 数据:不小心把 stash 中暂存区的数据删除了,也是可以找回来的。这里就不说了。

          b、Cherry-pick:(功能非常实用

            使用场景:1、我们拉取新的分支进行 bug 的修复,那么同样的 bug 在当前分支肯定也是存在的,按照常理来说我们也需要在当前分支进行同样的代码修改,不然后续提交过后,bug 会依然存在。

                    那么问题来了,同样的代码不想写两遍怎么办?这个时候就可以使用 git 的 cherry-pick 命令,将之前在其他分支的修改重放到当前分支。

                 2、在某个分支上修改好了代码,突然发现这个分支已经很久不用了。如果把这个分支合并到其它分支肯定是有问题的。可以通过 Cherry-pick 把这次修改的代码,单独摘取出来  放到其它的分支上。 

          • git cherry-pick <commitHash> 命令:  cherry-pick 是从某个 commit(提交) 上摘取 数据。【所以 小乌龟git 上,要在 提交列表 上有这个选项】

          c、

          


     TortoiseGIT(git小乌龟)

    1、TortoiseGit安装与使用  :  TortoiseGit的使用是基于git(软件)的基础上的。

        参考:  https://www.cnblogs.com/wupenglei-5/p/8744801.html

     TortoiseGit 下载  :   https://tortoisegit.org/download/

    2、通过TortoiseGIT把本地项目上传到GitHub      :   链接地址

      注意:puttyken获取鼠标行为来生成密钥。鼠标移动速度越快,密钥生成就越快。(鼠标不动的话是非常慢的) 参考:  https://jingyan.baidu.com/article/6c67b1d69134a92787bb1ee3.html

    3、github使用ssh密钥的好处与原因 : https://blog.csdn.net/love_fdu_llp/article/details/38752365

    4、windows下使用TortoiseGit代替Git命令行操作 : https://www.cnblogs.com/candle806/p/4071656.html   

    5、GitHub恢复本地被删除的文件   :   https://blog.csdn.net/yh_zeng2/article/details/74858283

      亲测,本地删除了文件,想要重远端恢复,需要通过checkout(检出)代码。使用pull没有用。

    6、github   checkoutpull的区别  :  https://blog.csdn.net/q5512049/article/details/53509723

      如果本地有文件(不包括.git文件夹内),则普通 checkout ,不会恢复文件。需要强制  checkout (覆盖工作树)

    7、TortoiseGit同时推送两个远端仓库代码 :https://blog.csdn.net/xinxinsky/article/details/80034530

      注:通过克隆的仓库,本地和远端仓库已经建立了联系,所以不需要额外去配置了。

    8、解决 两个 根本不相干的 git 库(本地库 和 远端库建立连接):链接地址1 (推荐这个) 或   https://blog.csdn.net/m0_37402140/article/details/72801372

    9、git中,一个项目就是一个仓库。所以 git小乌龟 中每个项目中进行设置是有差别的,比如  远端的地址。不同项目是不一样的。

       通过 克隆 下来的仓库, 远端设置中会自带克隆下来的地址的,所以不用配置。如果需要添加一个远端地址,就需要在这里在配置一个。

    10、小乌龟git 版本分支图 分析:(以下都是自己的理解)

            1、下图 显示的都是分支 (包括远端分支和本地分支)       2、三种颜色 分别对应:远端分支(黄色)、本地分支(绿色)、当前分支(红色) 3、箭头表明 分支是从哪里分出来的。 4、每一块上下排序是按照字母排序的,没有意义的。

     

    11、小乌龟git  删除本地分支,远程分支:https://www.jianshu.com/p/e0da2720372a

    12、小乌龟git 合并代码:https://blog.csdn.net/li522021642/article/details/80691321

      当前 分支是属于被 合并的代码。

    13、小乌龟git 中 版本树,如果是全部分支,所有分支的节点都会显示; 如果是某个分支的话,只显示于这个分支有影响的节点。如,未合并的分支节点不显示,合并的分支,影响当前分支代码的节点,就会显示。

      这个 主要在这个分支显示上,右键就可以选择显示的节点是全部还是某个分支了。

      注意:小乌龟git默认的排序不是以时间来排序的,需要自己设置成git默认的时间排序。版本树中的颜色和信息中对应分支的颜色是不一致的,每一行只有一个节点,显示的分支标签对应在哪个哪个分支上,该分支就是对应的分支。

                                                                           

    14、回滚代码 (reset):https://blog.csdn.net/qq_39291929/article/details/100669716


    Source Tree

    1、sourcetree和Git的使用教程 :https://www.cnblogs.com/fps2tao/p/7825742.html

    2、


     github / 码云

    1、推送代码到码云上的话使用 TortoiseGit 的话,和GitHub一样需要创建 SSH秘钥的(TortoiseGit 软件内置了 puttyken 软件的)。

      注意:puttyken获取鼠标行为来生成密钥。鼠标移动速度越快,密钥生成就越快。(鼠标不动的话是非常慢的) 参考:  https://jingyan.baidu.com/article/6c67b1d69134a92787bb1ee3.html

    2、使用TortoiseGit+码云 管理项目代码    : https://blog.csdn.net/yl2isoft/article/details/53493194

    3、git本地项目代码上传至码云远程仓库  : https://blog.csdn.net/fox9916/article/details/78253714?locationNum=5&fps=1   或   https://blog.csdn.net/ts_zxc/article/details/40795225

    4、码云上的公钥只能一个有效,github应该也是一样。

    5、github如何用浏览器直接打开项目里的html页面  :   https://www.cnblogs.com/futai/p/6733358.html

    6、github 上 存放软件(使用 release 功能):https://blog.csdn.net/zhangxichao100/article/details/73521765

    本地git服务器   GitLab

    1、安装及使用  :  https://www.cnblogs.com/wintersun/p/3930900.html

  • 相关阅读:
    小胖IT大讲堂之二 Hook实战(一) 魔兽改键工具
    介绍介绍草泥马
    ASP.NET服务端操作ActiveX报错灾难性故障的问题和解决办法
    ASP.NET网络映射驱动器无权限访问的解决方案
    Visual Studio快捷键
    4.2.8 Dating with girls(2)
    4.3.2 Prime Ring Problem
    4.2.3 Knight Moves
    4.2.1 Rescue
    4.2.7 Waiting ten thousand years for Love
  • 原文地址:https://www.cnblogs.com/wfblog/p/9129020.html
Copyright © 2011-2022 走看看