使用当前更改创建Git分支

我开始在我的分支上工作,认为我的任务很简单。 过了一会儿,我意识到这将需要更多的工作,我想在一个新的分支中完成所有这些工作。

如何创建一个新分支并随身携带所有这些更改而不会弄脏主人


#1楼

如果你还没有做出任何提交,只有(1:branch)和(3:checkout)就足够了。
或者,在一个命令中: git checkout -b newBranch

正如git reset手册页中所述

$ git branch topic/wip     # (1)
$ git reset --hard HEAD~3  # (2)  NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip   # (3)
  1. 你做了一些提交,但意识到他们还不成熟,不能进入“ master ”分支。 您想在主题分支中继续抛光它们,因此从当前HEAD创建“ topic/wip ”分支。
  2. 倒回master分支以摆脱这三个提交。
  3. 切换到“ topic/wip ”分支并继续工作。

注意:由于git reset --hard命令的“破坏性”效果(它确实会重置索引和工作树。由于<commit>被丢弃而对工作树中跟踪文件的任何更改),我宁愿选择:

$ git reset --soft HEAD~3  # (2)

这将确保我没有丢失任何私有文件(未添加到索引)。
--soft选项根本不会触及索引文件或工作树(但是将头重置为<commit> ,就像所有模式一样)。


#2楼

由于您尚未进行任何提交,因此可以将所有更改保存到存储,创建并切换到新分支,然后将这些更改弹回到工作树中:

git stash  # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop  # apply stash and remove it from the stash list

#3楼

要向新分支添加新更改并推送到远程:

git branch branch/name
git checkout branch/name
git push origin branch/name

通常我会忘记添加原始部分来推送并弄清楚为什么我没有在bitbucket中看到新的分支/提交


#4楼

就像这个问题中所述: Git:从master上的无标记/未更改的更改创建一个分支 :stash不是必需的。

只需使用:

git checkout -b topic/newbranch

任何未提交的工作都将被带到新分支。

如果您尝试推送,您将收到以下消息

致命:当前分支功能/ NEWBRANCH没有上游分支。 要推送当前分支并将远程设置为上游,请使用

 git push --set-upstream origin feature/feature/NEWBRANCH 

只需按照建议远程创建分支:

git push --set-upstream origin feature/feature/NEWBRANCH


#5楼

跟着这些步骤:

  1. 创建一个新分支:

     git branch newfeature 
  2. 结帐新分行:(这不会重置您的工作。)

     git checkout newfeature 
  3. 现在在这个新分支上提交你的工作:

     git commit -s 

使用上述步骤将保持原始分支清洁,您不必执行任何'git reset --hard'。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值