git - 基于服务器创建一个新的 GIT 分支,无需本地更改

标签 git git-branch

我想我缺少一些关于 GIT 分支的基本概念。

假设我已经在我的机器上克隆了一个存储库,并开始工作(在本地“master”上)。

现在有人告诉我生产中的一个错误。

我想停止我正在做的一切(修改后的提交和未推送的提交),创建一个基于服务器的功能分支,没有我在本地所做的更改,修复错误,提交并推送,然后返回到 master, rebase 并继续工作。

我认为以下方法可行:

$ git clone <some repo>
$ vim text.txt
$ git checkout -b bugFix

问题是分支“bugFix”包括我在 master 中所做的状态更改。

如何创建干净的分支?

最佳答案

最简洁的方法是将您当前的工作提交到本地功能分支(保持 master 处于可发布状态),然后切换到 master 并在那里(或基于 master 的分支)修复错误。

git checkout -b my-feature
git commit -m "add my feature"
git checkout master
git pull --rebase
git checkout -b bugFix
... do some work ...
git checkout my-feature

如果您还没有准备好(在本地)提交您的工作,您可以使用 stash 来存储您的更改:

git stash
git fetch
git checkout origin/master
git checkout -b bugFix
... do some work ...
git checkout master
git stash pop

关于git - 基于服务器创建一个新的 GIT 分支,无需本地更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15343515/

相关文章:

python - 与 python 2.7/flask/mongoDB/git 的持续集成

git - 如何快进分支而不切换到它们?

git - 什么时候删除 Git 中的分支?

git - 如何将旧分支转换为 GitHub 上的标签

git - 如何从 github 上的 Git 分支中删除不需要的文件(如元数据)

GitHub:什么是 "wip"分支?

git - merge Git 存储库的前两个提交?

linux - 更改 git 在 linux 上的安装位置

Github:权限被拒绝(公钥)但我得到 "You' 已成功通过身份验证”消息

git - 如何在 git 中显示标签的完整历史记录?