更新时间:2023-05-06 GMT+08:00

创建提交

背景说明

在日常代码开发中,开发者更多的时候是将代码托管仓库克隆到本地,在本地进行代码开发,完成了阶段性开发任务后,再提交回代码托管仓库,本文将介绍使用Git客户端提交修改代码的方法。

操作步骤

一般情况下,开发者不会直接在master分支中进行开发,而是基于master或者dev分支创建一条feature分支,在feature中进行开发,然后将其推送到代码托管仓库,最后在代码托管仓库中将其合并到master或dev分支中,下面将模拟以上操作。

  1. 进入本地仓库目录,打开Git客户端,本案例以Git Bash为例,其它使用Git进行管理的工具的原理和命令使用基本是一致的。
  2. 基于master分支新建一条分支feature1001,并切换到其中,在master分支中执行以下命令。

    git checkout -b feature1001    #如下图①

    这个命令相当于先新建分支,然后直接切换到此分支。

    执行成功如下图中②所示,此时可用ls命令查看其中包含的文件(如下图中③),此时他与master分支中内容是一样的。

  3. 在feature分支中进行修改(代码开发)。

    Git支持Linux命令,本案例用touch命令新建一个newFeature1001.html文件,代表开发者已经在本地完成了新特性的开发,其对本地代码库的影响是新增了文件。

    touch newFeature1001.html

    创建后再次使用ls命令可以看到多出了这个文件。

  4. 使用add、commit命令依次将文件从工作区加入暂存区,再提交到本地版本库。(这是什么原理?

    期间可以穿插使用status命令,观察文件状态。

    1. 使用status命令看到,目前工作区有一个文件未纳入版本管理,如图中①。
    2. 使用add命令将文件加入暂存区,如图中②。
      git add .    #使用“.”代表所有文件,包括隐藏的,也可以直接指定某个文件
    3. 使用status命令看到,文件已经加入到暂存区,正在等待提交,如图中③。
    4. 使用commit命令将文件提交到本地版本库,如图中④。
      git commit -m “您的提交备注”
    5. 再次查看状态,没有可处置文件,说明提交成功了,如图中⑤。

  5. 将本地的分支推送到代码托管仓库。

    git push --set-upstream origin feature1001 

    本命令会在代码托管仓库新建一条与您本地feature1001一样的分支,并将其进行关联、同步。

    其中origin是您的代码托管仓库名称,一般直接可控的仓库默认别名为origin,您也可以直接用仓库地址代替。

    如果推送失败请检查连通性:

    • 确保您的网络可以访问代码托管服务。
      请在git客户端使用如下测试命令验证网络连通性。
      1
      ssh -vT git@********.com
      

      如果返回内容含有“connect to host ********.com port 22: Connection timed out”,则您的网络被限制,无法访问代码托管服务,请求助您本地所属网络管理员。

    • 请检查建立的SSH密钥配对关系,必要时重新生成密钥并到代码托管控制台进行配置,请参考SSH密钥或确认HTTPS密码正确配置。
    • 检查IP白名单。注意,在未配置白名单时,全部IP均会放行,如果配置了则只允许名单内的IP访问。

  6. 查看代码托管仓库分支。

    登录代码托管服务,进入您的仓库,在文件列中可以看到此时已经可以在代码托管仓库切换到您的分支。

    如果没有看到您刚推送上来的分支,很可能是您的origin绑定到了另外的仓库,请使用仓库地址再次推送。

  7. 此时您可以使用代码托管服务提供的合并请求管理功能,发起分支合并,并通知审核人进行评审,最终将新特性合入到master或dev分支中。