更新时间:2024-11-28 GMT+08:00
分享

在Git Bash创建分支并开发代码

  1. 进入本地仓库目录,打开Git Bash。执行如下命令,基于master分支新建一条分支feature1,并切换到feature1分支。

    git checkout -b feature1

  2. 以下步骤模拟将字符串“hello CR”写入到名为hello_cr.txt的文件中。

    echo 'hello CR' > hello_cr.txt

  3. 将当前目录下所有修改过的文件添加到Git的暂存区中,准备提交到版本库。

    git add .

  4. 将当前修改的代码提交到本地代码仓库中,并添加一条提交信息。

    git commit -m 'hello cr'

  5. 查看最近一次提交的详细信息。

    git log -1

  6. 执行如下命令,将本地分支feature1推送到您远程仓库的origin分支,并将本地分支与远程分支建立追踪关系。

    git push --set-upstream origin feature1 
    • 执行步骤6时,如果提示“connect to host ********.com port 22: Connection timed out”,表示您的网络被限制,无法访问代码托管服务,请求助您本地所属网络管理员。
    • 如果您在创建commit后,把本地路径带到CodeArts Repo的代码仓库里,您不能更改提交代码的路径,只能本地删除该文件或者回退commit强制提交,然后重新提交。
    • 检查IP白名单。注意,在未配置白名单时,全部IP均会放行,如果配置了则只允许名单内的IP访问。

  7. 进入要新建合并请求的代码仓库首页,选择“合并请求” > “新建”,选择要发起合并请求的源分支和目标分支。您可勾选“是否使用临时分支”,如果勾选,那您将使用新生成的临时分支提交合并请求。在“新建合并请求”页面的下方可以看到两条分支的文件差异对比详情、要合并分支的提交记录信息。
  • 提交本地代码到CodeArts Repo,需要使用git push命令,git commit只是将本地仓库中的修改保存到本地仓库中,每次commit都会生成一个新的commit记录,记录了修改的内容、作者、时间等信息。commit操作只会将代码更改保存到本地仓库中,并不会将修改同步到远程仓库。
  • 向CodeArts Repo推送代码时,提示“You are not allowed to push code to protected branches on this project”。原因是该分支为受保护分支,您没有权限推送代码到这个分支。解决方案:仓库所有者或者项目管理员进入代码仓库详情页,选择“设置 > 策略设置 > 保护分支”,单击,解除对该分支的保护。
  • 向CodeArts Repo推送代码时,提示“src refspec master does not match any”。原因是您没有使用git add、git commit命令依次将文件从工作区加入暂存区。解决方案:在执行git push命令之前,请先使用git add、git commit将修改后的文件提交至暂存区中,再使用push命令推送至云端代码仓库中。
  • 向CodeArts Repo推送代码时,提示“error: failed to push some refs to 'https://codehub”。原因是CodeArts Repo的该仓库与本地仓库代码不一致,所以从本地提交代码的操作被拒绝。解决方案:先使用git pull命令拉取CodeArts Repo远端仓的代码,与本地代码仓库合并,再使用git push命令推送代码到CodeArts Repo。
  • 使用git pull命令拉取代码失败,提示“Merge branch "master’ of https://codehub/testMaven Please enter a commit message to explain why this merge is necessary”。原因是CodeArts Repo的代码仓库与您本地仓库内容不一致,拉取代码时会跟本地代码进行合并(merge),弹框是提示是否确认本次merge操作,并提交备注信息。解决方案请参考使用git pull拉取代码失败,报错"Merge branch 'master' of https://xx.com Please Enter a commit"
  • 执行步骤4时,如果报错“unable to auto-detect email address”,原因是未设置用户名、邮箱。您可以执行如下命令配置您的个人信息。
    git config --global user.name {您的名字}
    git config --global user.email {您的邮箱}
  • 执行步骤6时,如果报错“'origion' does not appear to be a git repository...”,原因是远程不存在origion这个仓库名称,具体解决方案请参考.执行git push 命令时,报错'origion' does not appear to be a git repository...
  • 执行步骤3时,如果报错“Not a git respository”,原因是您不在当前代码仓目录下,需要使用cd命令进入代码仓库目录下。
  • 提交合并请求时,如果报错"failed to push some refs to '....git'",请参考解决合并请求冲突
  • 执行步骤6时,提示“Connection reset by test port 22 fatal: Could not read from remote repository.”,原因是网络不稳定,该请求被重置,如果该问题是偶现,可能为网络原因。

相关文档