所以这就是我想要实现的目标:
当我从 Github 克隆存储库并签出一些稳定分支,并在其中进行一些本地更改时,我不想创建本地功能分支,也不希望更改保留在我检查过的本地稳定分支中出去。
我只想进行更改并将其推送到远程存储库,以便在远程创建功能分支,并且我的本地稳定分支保持干净。
在不创建本地分支并且不将新的更改保留在本地的情况下,如何才能做到这一点?
答案1
检查远程稳定分支
git fetch <remote> <branch>
您的本地存储库现在将有一个只读远程跟踪分支的副本,现在签出只读跟踪分支
git checkout origin/<branch_name>
您的 VCS(无论您使用什么)将开始显示如下消息:
HEAD is in a detached state
Previous HEAD position was c293198
当前分支作为哈希片段,如a697b40
.
所有分离的 HEAD 意味着进行新的提交,然后离开它(通过检查其他内容)将使您无法引用该新提交。
从远程跟踪分支签出并创建新的“feature”分支
git checkout -b "feature_branch_intended_for_remote"
此时,任何提交都将添加到这个全新的分支中 - 其历史记录是原始稳定的。
这意味着,您获得了远程稳定的数据(您无法修改),并且您从未创建上游稳定的本地工作副本 - 您可能会意外地将其推回到上游。
所以现在你可以
- 将你的工作提交到这个新分支
- 将其作为一个全新的分支推回原点
git push [--set-upstream | --track | -u] <remote> <feature_branch_intended_for_remote>