首页 > 解决方案 > 无法将本地文件添加、提交或推送到 bitbucket 存储库

问题描述

除了我的 bitbucket 存储库中名为“test”的主分支外,我还有 3 个分支(branchone、branchtwo 和 branchthree)。

我在本地 Windows 上克隆了 repo 并获得了 README.md 文件。

然后我创建了 Jenkinsfile 并添加、提交和推送。我可以在 bitbucket master 分支上看到 Jenkins 文件。

然后我使用“git checkout branchone”切换到 branchone,并使用 git branch 命令进行了验证

F:\Jenkins\MultiBranch\test>git branch
* branchone
  master
  branchtwo
  branchthree

我确认我有 Jenkinsfile,然后是“git add”。或“git add Jenkinsfile”,但 git status 显示没有上演

F:\Jenkins\MultiBranch\test>git status

在分支 branchone 你的分支是最新的'origin/branchone'。

没什么可提交的,工作树干净

以下是我的问题:

  1. 当我能够将 Jenkinsfile 添加到 master 分支时,为什么 git 不将它添加到 branchone?
  2. 有没有一种方法可以一次将 Jenkinsfile 推送到所有分支?
  3. 是否可以在 branchone 下创建子分支?像 bitbucket 控制台中的 branch1.1 和 branch1.2 等?如果从控制台不可能,是否可以通过其他方式?

标签: gitbitbucket

解决方案


1.当您将 jenkins 文件添加到 master、提交并签出 branchone 时,jenkins 文件将不存在,因为您已经将其提交给 master。因此,即使您这样做git add .,也不会在 branchone 中添加任何内容。如果您在分支一中再次专门创建 jenkins 文件,那么您将能够将其添加到 branchone 并提交。

2.我不确定您如何一次将更改同时应用到多个分支。但是,您可以通过以下方式为每个分支单独执行此操作:

  • 手动将其添加到每个分支并提交
  • Cherry pick master 的提交,包括 jenkins 文件,并将其分别应用于所有分支
  • 与 master 单独合并/重新设置所有分支

3.git中没有子分支的概念。你只有一个分支。分支只是指向提交的指针。当你说你有 branchone 时,branchone 是用#abc123 提交的指针。此提交之前可能有自己的提交树。

当你删除一个分支时,指向提交的指针被删除,而不是提交本身。现在,回到您的问题,您可以从一个分支开始创建任意数量的分支。你可以使用命令git checkout -b newBranchName

如果您从 branchone 创建一个新分支,则 branchone 和 newbranch 都将指向先前由 branchone 指向的同一个提交。如果您在新分支中添加另一个提交,则只有 newbranch 指针会向上移动以指向最新提交,而 branchone 指针将保持在原始提交处。

希望这可以帮助。


推荐阅读