用当前的变化创buildGit分支
我开始在我的主分支上工作,认为我的任务很简单。 过了一段时间,我意识到这将需要更多的工作,我想在一个新的分支做所有这些工作。 我怎样才能创build一个新的分支,并与我一起进行所有这些变化,而不污染主人?
如果你还没有做任何提交,只有(1:分支)和(3:结账)就足够了。
或者,在一个命令: git checkout -b newBranch
正如在git reset
手册页中提到的那样:
$ git branch topic/wip # (1) $ git reset --hard HEAD~3 # (2) $ git checkout topic/wip # (3)
- 你已经做了一些提交,但是意识到在“
master
”分支还为时过早。 你想继续在主题分支中打磨它们,所以创build当前HEAD
“topic/wip
”分支。 - 倒回
master
分支摆脱这三个提交。 - 切换到“
topic/wip
”分支并继续工作。
注意:由于git reset --hard
命令的“破坏性”效果(它会重置索引和工作树,在<commit>
之后对工作树中跟踪文件的任何更改都会被丢弃),所以我宁愿随:
$ git reset --soft HEAD~3 # (2)
,以确保我没有丢失任何私人文件(没有添加到索引)。
--soft
选项不会触及索引文件,也不会触及工作树(但将所有模式重置为<commit>
,就像所有模式一样)。
就像在这个问题中所述: Git:在master上创build一个从未加标签/未授权更改的分支:隐藏是不必要的。
只要使用:
git checkout -b topic/newbranch
任何未落实的工作将被带到新的分支。
提交时您将收到以下消息
致命的:当前分支function/ NEWBRANCH没有上游分支。 要推送当前分支并将远程设置为上游,请使用
git push --set-upstream origin feature/feature/NEWBRANCH
只要按照build议远程创build分支:
git push --set-upstream origin feature/feature/NEWBRANCH
按着这些次序:
-
创build一个新的分支:
git branch newfeature
-
结帐新的分支:(这不会重置您的工作。)
git checkout newfeature
-
现在在这个新的分支上提交你的工作:
git commit -s
使用上述步骤将保持您的原始分支清洁,你不必做任何'混帐重置 – 硬'。
由于您尚未进行任何提交,因此可以将所有更改保存到存储中,创build并切换到新的分支,然后将这些更改弹回到工作树中:
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
要将新更改添加到新分支并推送到远程:
git branch branch/name git checkout branch/name git push origin branch/name
通常我忘了添加原始部分来推动和混淆为什么我没有看到新的分支/提交bitbucket