• Git—代码管理、提交及冲突解决流程的思考


    1 代码管理

      Git不多说,大家都知道这是一个分布式版本控制系统,对开发者而言,可以敏捷高效的进行代码管理及开发,也非常适合多人协作。话不多说,下面就来点干货。

    1.1 创建新仓库

      我们在工作区(就是自己的电脑里)创建一个新的文件夹,这个文件夹用来存放远端同步过来的代码库。进入到这个新建的文件夹,执行创建新的仓库的命令:
    $ git init

    补充:
      差点忘记介绍一下git维护的“树”(3棵):

    1. 工作区: 也就是我们的电脑里的实际文件所在位置,即为工作目录;
    2. 暂存区:Index,暂存的意思就是临时保存我们的改动,类似于缓存;
    3. 版本库:HEAD,这是git的版本库,指向我们最后一次提交的结果。

    1.2 克隆仓库(拷贝项目)

    $ git clone <repository_address>

    举例:gerrit仓库:
    git clone "ssh://usera@gerrit.cmss.com:123456xx/Project1/Project1.1"

    我们也可以使用git clone <repository_address> <local_dir>命令将仓库拷贝到指定的local_dir目录中。

    2 代码提交流程

    2.1 远程拉取最新仓库内容

    $ git pull

    2.2 查看分支

    查看本地分支
    $ git branch
    查看远端分支
    $ git branch -a

    2.3 切换分支

    $ git checkout -b local_branch_name origin/remote_branch_name
    其中local_branch_name是本地分支的取名;remote_branch_name是远端分支的名称;

    2.4 开发代码

    在这个分支上进行代码的开发或者修改;

    2.5 代码新增

    逐个添加
    $ git add file_name
    其中file_name为需要提交的代码路径名;

    一次性添加
    我们也可以一次性全部提交
    $ git add -A

    2.6 代码提交

    基于模板提交
    $ git commit
    会跳转到之前编辑好的git提交模板,进行模板信息编写并保存;

    基于命令行的提交信息
    $ git commit -m "code infomation"
    其中"code infomation替换为本次提交代码的信息;

    2.7 代码拉取合并

    一般在代码推送前,我们最好进行一次拉取操作
    $ git pull --rebase

    这个操作主要是避免,在我们修改代码的同时,其他开发者也在修改代码并提交合并到了同一个分支,此时远端仓库和本地工作目录的基线不一致。如果有冲突,我们就手动去解决这些冲突。

    2.8 代码推送

    $ git push origin HEAD:refs/for/remote_branch_name" 其中,remote_branch_name`是远端分支的名称;

    3 其他常用命令

    在使用git时,我们也会使用一些辅助性的命令进行检查或者进行代码管理。

    3.1 查看状态

    $ git status

    3.2 查看日志

    $ git log
    或者
    $ git reflog

    4 代码冲突

      一般都是在提交代码前没有进行git pull拉取最新代码引起的,当然,当自己的代码开发完毕后,再次拉取最新代码也有可能和本地代码也冲突。这个时候需要我们去解决这些冲突。
    方案一:我们可以通过上述的git pull --rebase去解决冲突,然后重新git addgit commit,最后git push

    方案二:我们可以通过git log查看commit-id,找到最近一次提交,然后在通过git reset --soft commit-id跳转到倒数第二次提交的位置,进行代码更改。

  • 相关阅读:
    20200318
    20200317
    Thinkphp 操作多个数据库
    base格式图片转文件存储
    Thinkphp POST 和 GET 传值
    Thinkphp调用微信扫一扫实例,学会再也不怕客户在微信提的奇葩要求了
    centos 安装ngnix mysql php
    PHP 区分微信、支付宝、QQ扫码
    PHP秒数计算时分秒
    Thinkphp 获取访问者的ip
  • 原文地址:https://www.cnblogs.com/Andya/p/12470430.html
Copyright © 2020-2023  润新知