我开始研究一个新特性,在编码了一段时间后,我决定这个特性应该属于自己的分支。
如何将现有未提交的更改移动到新分支并重置当前分支?
我想重置当前分支,同时保留新功能的现有工作。
我开始研究一个新特性,在编码了一段时间后,我决定这个特性应该属于自己的分支。
如何将现有未提交的更改移动到新分支并重置当前分支?
我想重置当前分支,同时保留新功能的现有工作。
当前回答
或者:
将当前更改保存到临时存储:$git存储基于此存储创建新分支,然后切换到新分支:$git stash branch<new branch>stash@{0}
提示:使用tab键可以减少键入存储名称。
其他回答
提交更改的3个步骤
假设您在GitHub上创建了一个名为featurebranch的新分支。
提取
git pull --all Pull all remote branches
git branch -a List all branches now
检出并切换到要素分支目录。您可以简单地从上面的branch-a命令的输出中复制分支名称
git checkout-b功能分支
验证
接下来使用gitbranch命令查看当前分支。它将显示前面带有*的功能分支
git branch
承诺
git add . add all files
git commit -m "Rafactore code or use your message"
在源服务器上进行更新和推送更改
git pull origin feature-branch
git push origin feature-branch
您还可以创建bash别名来完成所有这些操作。
这将创建新命令。。。
gitco<branch>-检查指定的分支,并随身携带当前的更改gitconew<new branch name>-使用指定的名称(从master分支)创建一个新的分支,并将当前的更改记录在其中
以下是设置别名的步骤。。。
将以下内容添加到~/.bash_profile
gitco ()
{
git stash && git checkout $1 && git stash apply
}
gitconew ()
{
git stash && git checkout master && git checkout -b $1 && git stash apply
}
运行source~/.bash_profile以重新加载配置文件
现在您可以运行gitco和gitconew别名命令了。
以下是有关bash别名的更多信息->https://linuxize.com/post/how-to-create-bash-aliases/
这可能有助于所有使用GIT工具的人
命令
切换分支-它会将您的更改移动到新分支。然后您可以提交更改。
$ git checkout -b <new-branch>
乌龟GIT
右键单击存储库,然后使用TortoiseGit->切换/签出
源代码树
使用“签出”按钮切换分支。单击分支后,您将看到顶部的“结帐”按钮。来自当前分支的更改将自动应用。然后你就可以提交它们了。
更新2020/Git 2.23
Git 2.23添加了新的switch子命令,试图消除由于超负荷使用checkout(切换分支、恢复文件、分离HEAD等)而产生的一些混乱
从这个版本的Git开始,将checkout命令替换为:
git switch -c <new-branch>
行为相同且保持不变。
更新2020/Git 2.23之前
使用以下方法:
git checkout -b <new-branch>
这将使当前分支保持原样,创建并签出新分支并保留所有更改。然后,您可以在文件中暂存要提交的更改:
git add <files>
并向您的新分支机构承诺:
git commit -m "<Brief description of this commit>"
工作目录中的更改和索引中暂存的更改尚不属于任何分支。这将更改这些修改将结束的分支。
您不重置原始分支,它保持原样。<old branch>上的最后一次提交仍将保持不变。因此,您签出-b,然后提交。
常见的情况如下:我忘记为新功能创建新分支,而在旧功能分支中执行所有工作。我已将所有“旧”工作交给了主分支,我希望我的新分支从“主”分支中成长。我还没有对我的新工作作出任何承诺。分支结构如下:“master”->“Old_feature”
git stash
git checkout master
git checkout -b "New_branch"
git stash apply