zoukankan      html  css  js  c++  java
  • git

      git是一个用于帮助用户实现版本控制的软件

      下载安装:https://git-scm.com/downloads,下载后点点点

    第一阶段 管起你的项目

      开始管理你的项目

      进入到你要管理的项目程序目录下,右键选择Git Bash Here命令行

    • git init 让git帮你管起当前目录

      执行后,它帮你创建了一个.git文件,默认是隐藏的,需要查看要到文件夹选项下勾选显示隐藏文件

    • git status  查看当前目录下所有目录文件的状态

      显示红色的,说明git还没对此目录文件管理到,需要命令操作

    • git add xx.py 管起某个文件

      再次status查看时,xx.py是绿的,代表管到了

    • git add . 管起当前目录下所有目录文件
    • git commit -m ‘创建第一个版本’  进行创建版本  -m为描述信息

      不过执行命令的时候,报错了,主要你没告诉你是谁,所以你还要这么做

    • git config --global user.email "xxx@qq.com"  设置邮箱
    • git config --global user.name “laoliu”  设置名字

      再次进行commit时,就没报错了,并有create字眼,就说明提交成功

      这个时候查看status,显示信息不再有目录文件了,但是本地这些文件都是有的,说明提交后,本地文件相对git是透明的

      如果我对某个文件进行修改,查看status,修改文件变红了,说git检测到文件的变化

      然后你再进行git add .    git commit -m ‘增加xx功能’,目录文件又透明了

    • git log 查看提交记录

      从查看的内容,可以看到有两次提交记录,表示提交了两个版本

      如果我想回退到上个版本,怎么做了?

    • git reset --hard 版本号(log里commit后面跟的那串随机字符)   回退到指定版本

      回退后查看log,发现刚才回退的版本记录不存在了,如果想看之前回退版本号,就要用下面命令了

    • git reflog  查看提交和回退版本记录

      如果我又想回到刚才那个回退版本,怎么做了?

      使用git reset --hard 版本号(而此时的版本号是reflog下提交版本时的版本号,不是回退时的版本号,它要比回退时的版本长度更短)

    第二阶段 开发到一半,线上与bug

      比如有这么一个场景,就是你接到一个新增功能的任务,开发到一半,线上的突然有问题了,你需要修复这个问题,提交代码时,你需要做到只提交修复bug的代码,新开发一半的代码不能提交

      方式一

    • git stash  把带红的(修改的)临时存在某个地方

      你修改完bug提交后,你要继续开发新任务另一半,可以用下面的命令,并且恢复回来的 会保留你刚才修复好bug的内容

    • git stash pop 把之前存的再拿回来
    • git stash list  可以查看你存在某地方的记录

      当除了上述这方法解决上述过程中代码的冲突,还可以用分支的方式来解决,分支你就理解有两套代码,一套用于你修复线上问题,一套则是用新开发任务,现在目前只有一套,你需要先创建一套

      方式二

    • git branch dev  创建一个分支
    • git branch 查看所有分支

      假如dev,这套代码用于新功能开发的,当前分支默认master,怎么切换到dev分支呢?

    • git checkout dev  切换到指定分支

      在dev你功能开发到一半,你需要修改线上的一个bug,你可以dev分支先提交你开发一半的代码,然后切换到master分支里去修复bug

      当然在实际开发,一般是不让你修改master分支代码(主要是让master里的代码和线上的时时刻刻保持一致),所以修复bug,你再创建一个分支,在这个分支里,你尽情的改

      那问题来,现在有三套代码,每套代码都不一样,那合并代码时应该怎么合并呢?合并前你需要先切换到master

    • git merge bug分支   把修复完bug的分支合并到当前分支master下

      合并后你不需要再提交了,因为在bug分支里,你已经提交过,当然合并后,之前bug分支就没有存在的必要了,就要进行删除了

    • git branch -d bug分支  删除bug分支

      这个时候,你再次切换dev里继续开发你自己的新增功能,开发完后,你需要再次合并了,切回到master里,执行git merge dev,因为修复bug的功能master里有,而dev里没有,新开发功能在mester里没有,它跳出让输入记录操作的信息,你输入完后,:wq保存一下就可以了

      如果合并过程中,代码冲突,你慢慢找,手动修改一下

    第三阶段 两地开发代码管理

      如果你要跨设备开发,每次复制到u盘或者通过百度云上传下载都还是比较麻烦的,而GitHub则可以完美支持这个方面,它的功能主要就是提供一个代码托管的地方

      开始你的托管前,你必须要到GitHub上进行注册,登录后,你需要先在GitHub上先创建接收你项目的目录,点击New repository

      填好项目名和描述,点击创建就可以了,看到下面这几条命令

    • git remote add origin https://github.com/caijingkuangmo/chou-ti.git   对你的提交网址进行重命名
    • git push -u origin master 把master里的代码提交到origin网址里

      执行完后,刷新提交网址,就能看到我们提交的代码了

      好,那我们现在换台设备开发了,怎么操作了

    • git clone https://github.com/caijingkuangmo/chou-ti.git  把指定url里代码全部下载下来

      此时你处在跟目录外,所以你需要cd到根目录下,再执行相应的命令,默认是只是把master分支的下载下来了,如果你想把dev分支的代码下载下来,你还需要这么做

      创建分支dev,切换到dev分支,然后执行git pull origin dev   把dev分支代码拉下来(clone下载的代码是保存了之前对提交url命名的)

      pull拉代码的动作本质上是分两步:

    • git fetch origin dev   先把dev代码拉下来放在版本库里
    • git merge origin/dev  把版本库里的代码合并到本地dev

      当然上述过程,提交记录可能会出现分叉的情况,如果想保持记录的整洁,可以把第二条命令换成下面这条命令

    • git rebase origin/dev

     

    第四阶段 多人协同开发

      创建完项目后,别人如果想开发,你必须给他这个项目的管理(读写)权限吧?那怎么邀请别人加入项目呢?

      有两种方式,一种是合作者模式

      另外一种方式就是创建组织,组织内的成员共同管理项目

      创建后,你在首页就能看到你创建的组织

      创建完后,你就要邀请成员了

      做好邀请成员工作后,你需要思考协同开发,需要创建几个分支呢?

      master分支 保持和线上一致

      dev分支  新功能开发完成合并分支

      review分支  用于开发完后合并代码,待检视代码,检视通过后,合并到dev分支,检视工作一般组长或带你的人来

      每个人个人分支   保证代码开发到一半提交,不至于影响其他人,等功能开发完成,合并到review分支

     

      另外需要注意的是:提交代码前,为保证最新代码,先拉一下

      为了防止合并产生冲突,都争先第一个提交代码就跑,必须确立一个原则,就是 合并代码时,尽量参与开发的人都在场,并且最好维持1-2天就合并一次

    第五阶段 阅读优秀项目代码,并尝试修复bug成为贡献者

      fork项目代码到自己仓库里,修改bug

      pull request发送修改bug信息给项目组织者,一旦得到组织者确认,开源项目就会合并你的代码,这样你就成为了这个开源项目贡献者

    其他

      不用反复输入用户名密码登录

      https --> git remote add origin https://用户名:密码@github.com/caijingkuangmo/chou-ti.git  这种方式不安全

      ssh-->   git@github.com/caijingkuangmo/chou-ti.git

          ssh-keygen.exe 生成公钥和私钥,会提示本地生成地址 

          cat 获取公钥内容,复制到

       本地ssh -T git@github.com验证是否成功

      git config设置用户名和邮箱

      git remote add origin git@github.com/caijingkuangmo/chou-ti.git(git remote--查看, git remote remove 名字--删除)

      git clone git@github.com/caijingkuangmo/chou-ti.git

      不用管理的文件

      比如:sql文件和.idea文件

      vim .gitignore

      加入内容 *.sql *.pyc

      把gitignore文件提交 push

    更多匹配规则

      以斜杠“/”开头表示目录;
    
      以星号“*”通配多个字符;
    
      以问号“?”通配单个字符
    
      以方括号“[]”包含单个字符的匹配列表;
    
      以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
    

       当然排除这些文件,你永远想不全的,GitHub已经帮我们做了这么一件,就是在创建仓库时,有这么一个选项,搜索点选就可以了

     

      版本管理

      你看人家的项目,在releases下,都有版本

        git tag -a v1.0 -m '版本介绍'        本地创建Tag
        git show v1.0                       查看
        git tags -n                         查看本地Tag
        git tag -l 'v1.4.2.*'               查看本地Tag,模糊匹配
        git tag -d v1.0                     删除Tag
        git push origin :refs/tags/v0.2     更新远程tag
        git checkout v.10                   切换tag
        git fetch origin tag V1.2
    
        git push origin  --tags
        git pull origin  --tags
        
        git clone -b v0.1 gitbub地址
    

      骚师博客

  • 相关阅读:
    【公告】阿里云出现问题:镜像创建的服务器无法启动团队
    上周热点回顾(4.8-4.14)团队
    上周热点回顾(4.1-4.7)团队
    【故障公告】阿里云抢占式实例服务器被自动释放引发的故障团队
    上周热点回顾(3.25-3.31)团队
    上周热点回顾(3.18-3.24)团队
    上周热点回顾(3.11-3.17)团队
    博客园 .NET Core 线下技术交流会 -- 上海站团队
    分区助手是什么?(博主推荐)(图文详解)
    IDEA里点击Build,再Build Artifacts没反应,灰色的?解决办法(图文详解)
  • 原文地址:https://www.cnblogs.com/xinsiwei18/p/9665480.html
Copyright © 2011-2022 走看看