git - 无法将本地文件添加、提交或推送到 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'。
没什么可提交的,工作树干净
以下是我的问题:
- 当我能够将 Jenkinsfile 添加到 master 分支时,为什么 git 不将它添加到 branchone?
- 有没有一种方法可以一次将 Jenkinsfile 推送到所有分支?
- 是否可以在 branchone 下创建子分支?像 bitbucket 控制台中的 branch1.1 和 branch1.2 等?如果从控制台不可能,是否可以通过其他方式?
解决方案
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 指针将保持在原始提交处。
希望这可以帮助。
推荐阅读
- android - 在某些条件不满足时从 onStartCommand 停止服务
- spring-mvc - WebApplicationContext 的 NoClassDefFoundError
- spring-boot - spring-data-redis,空列表属性值变为null
- reactjs - 从反应材料表中禁用/删除分页
- php - PHP strtotime 总是使用 31 天的月份
- javascript - 如何在网络聊天中添加聊天机器人 v4 头像图标?
- python-3.x - 当我尝试将地图值转换为列表以进行打印时,出现“列表”对象不可调用”错误
- vb.net - 需要四个复选框的代码,显示十种不同条件的味精
- python - 如何将具有相同列 ID 的 2 行 Python 数据框合并为一行?
- modbus - 如何为 pic 微控制器获取 modbus slave (RTU) 的源代码。请建议