Fal*_*rri 25 git version-control github
所以我有一个从 github 上的上游源克隆的 git 存储库。我对其进行了一些更改(在 master 分支中未提交)。我想要做的是将我的更改作为一个新分支推送到我的 github 页面上,并且让 github 仍然将其视为一个分支。
那可能吗?我对 git 和 github 相当陌生。我的问题甚至有意义吗?
我能想到的最简单的方法(我确定这是最绕的方法)是在 github 上分叉 repo。在本地将其克隆到不同的目录。添加上游源代码库。在那个新的分叉仓库中创建一个分支。将我的代码更改手动复制到新的本地存储库中。然后把它推回我的github。
这是一个常见的用例,有一种更简单的方法可以在不复制目录的情况下做到这一点吗?
我想我是在这里问而不是 SO 因为我在 linux 上使用命令行 git 并且这里的人给出了更好的答案 imo =]
Chr*_*sen 28
您可以从现有存储库中完成所有操作(无需将 fork 克隆到新的(本地)存储库、创建分支、复制提交/更改等)。
准备好您的提交以供发布。
优化任何现有的本地提交(例如使用git commit --amend和/或git rebase --interactive)。
提交您想要发布的任何未提交的更改(我不确定您的意思是否暗示您在本地master上有一些提交和一些未提交的更改,或者只是一些未提交的更改;顺便说一句,未提交的更改不是“在分支”,它们严格位于您的工作树中)。
重命名您的主分支,为它提供您想要的“新分支”名称。这不是绝对必要的(您可以从任何分支推送到任何其他分支),但如果您的本地分支和 GitHub 分支中的分支具有相同的名称,从长远来看它可能会减少混淆。
git branch -m master my-feature
Run Code Online (Sandbox Code Playgroud)将上游 GitHub 存储库
(eg)分叉github.com:UpstreamOwner/repostory_name.git为
(eg) github.com:YourUser/repository_name.git。
这是在 GitHub 网站(或使用 GitHub API 的“客户端”)上完成的,不涉及本地 Git 命令。
在您的本地存储库(最初从上游 GitHub 存储库克隆并在其master 中进行更改的存储库)中,将您的 fork 存储库添加为远程存储库:
git remote add -f github github.com:YourUser/repository_name.git
Run Code Online (Sandbox Code Playgroud)将您的分支推送到您在 GitHub 上的 fork 存储库。
git push github my-feature
Run Code Online (Sandbox Code Playgroud)或者,重命名遥控器,以便您的叉子称为“原点”,上游称为“上游”。
git remote rename origin upstream
git remote rename github origin
Run Code Online (Sandbox Code Playgroud)
重命名遥控器的一个原因是因为您希望能够在git push不指定存储库的情况下使用(默认为“origin”)。
| 归档时间: |
|
| 查看次数: |
17087 次 |
| 最近记录: |