我曾被要求使用 Github 存储库,而我做过的唯一与 Git 相关的程序是克隆现有存储库。我使用过很多 SVN,但对于 Git 分支和工作树,我还是有点菜鸟。文档有点抽象,并没有真正概述有关创建新分支和提交更改的最佳实践。
我想将现有的仓库克隆到一个新分支,该分支可供所有有权访问主分支 (SSH) 的人使用,然后在新创建的分支上本地工作并仅向该分支提交更改。从在线文档和指南来看,普遍的共识似乎是:
- 克隆 repo,创建一个名为 origin 的远程仓库
- 从 master 创建新的本地分支
- 提交修改至本地分支
我的问题是,本地分支如何才能在 Github 上供有权访问存储库的其他人使用?克隆存储库并创建远程可用的新分支的一般过程是什么?如有任何建议,我们将不胜感激。
答案1
除非您使用“git push”将您的分支推送回主分支并提交回主分支,否则有权访问 github repo 的其他人将无法使用本地分支。
举个例子,假设我想使用 ssh 访问下载“some-site”上现有的“my-project”存储库,其中唯一现有的分支是 master 分支。然后我将添加一个“new-feature”分支并将更改推送回原始存储库,我将执行以下操作:
- git clone ssh://some-site/my-project.git
- git 分支新功能
- git checkout 新功能
- < 进行一些更改、添加文件、删除文件等 >
- git 提交
- git push origin 新功能:新功能
每个命令的作用是:
- 将远程存储库克隆到你的机器
- 在本地存储库中创建一个新功能分支
- 将工作分支更改为新功能
- 不言自明
- 将步骤 4 中所做的更改提交到本地存储库(远程存储库上没有任何变化)
- 将本地新功能分支推送到原始仓库的新功能分支
此时,任何有权访问原始存储库的人都可以访问新功能分支。当其他人克隆存储库或将其本地存储库与此源同步时,新功能将在他们运行“git branch”命令时出现。
答案2
你应该读一下Git Pro 书籍,你的问题的答案就在前几章里。
除非您推送,否则您的任何提交都不会对其他人可用。当您想要发布该分支的当前状态时,您可以这样做git push origin <branchname>
。