【Git】分支切换时内容未提交

本文通过实例探讨了在Git中,未提交的修改在分支切换时如何处理。如果在分支上修改的内容未提交,切换分支时这些修改会带到新的分支。使用`git stash`可以临时隐藏修改,避免内容随分支切换。在需要时,通过`git stash apply`可以恢复隐藏的修改。

按照对git分支的理解,但我在分支1修改内容,然后切换到分支2,分支1上修改的内容,分支2中应该是看不见的。但实践表明,只有当分支1修改的内容已提交,该结论才会成立,对于在分支上未提交的内容,切换分支时,会被带到新的分支

这里做个小示例验证:

在这里插入图片描述

先初始化仓库,同时提交一个初始文件,文件内容:[0] start

在这里插入图片描述

直接创建新的分支branch-1,并切到新的分支,编辑文件,新增:[1] update in branch-1的内容。

此时切换回master分支,发现,我们在branch-1分支上修改的内容,并带到了master分支。

在这里插入图片描述

同时我们需要注意,如果此时我们在master分支,将修改的内容进行提交,再切换到branch-1分支上,会发现之前修改的内容没有存在于branch-1分支上。

小结:即我们在分支上修改的内容,如果没有提交的话,在切换分支时,是会被带新的分支,只有在当前分支进行提交后,才会将内容合并到当前分支,不会随着分支切换而被带走。

那如果我们在当前分支的修改还没达到提交的时候,但是又需要切换分支时该如何操作呢?

这里可以使用 git stash 来实现这个需求。

同样做个小示例:

在这里插入图片描述

在现在的master分支上, 拉取一个新的分支branch-2,在branch-2分支上编辑文件,新增:[2] update in branch-2,此时我们需要切回master分支,但是不希望这个修改被带到master分支,则我们使用 git stash 将在branch-2分支上修改的内容隐藏起来。再切回到master分支,发现刚才的修改没有被带过来。

在这里插入图片描述

当我们在master分支上处理完原有的任务后,我们就可以重新切到branch-2分支,此时,我们修改的内容还被隐藏着,可以通过 git stash pop,将隐藏的内容进行弹出。

在这里插入图片描述

同时注意,如果我们在本地的修改,与要切换的新分支冲突的话,git也会提示我们要先提交内容,或者隐藏修改的内容,不然无法切换到新的分支。

结论:对于未提交的内容,切换分支时,会被带到新的分支。可以通过 git stash 将修改内容隐藏,来避免该情况的出现。

若要进行 Git 切换分支提交的操作,可按以下步骤进行: 1. **设置用户信息**:设置用户名和邮箱,命令如下: ```bash git config --global user.name "your_username" git config --global user.email "your_email@example.com" ``` 2. **初始化本地仓库**:若还初始化本地仓库,使用以下命令进行初始化: ```bash git init ``` 3. **链接远程仓库至本地仓库**:将本地仓库与远程仓库进行链接,示例命令如下: ```bash git remote add origin https://gitee.com/xxxx.git ``` 4. **拉取远程仓库代码**:从远程仓库拉取所需分支的代码,可使用以下任一命令: ```bash git pull --rebase origin master git pull origin master git pull origin master --allow-unrelated-histories ``` 5. **查看分支**:查看当所有分支,命令如下: ```bash git branch ``` 6. **创建并切换分支**: - 若使用的是 Git 2.23 及以上版本,可使用以下命令创建新分支并立即切换到该分支: ```bash git checkout -b new-branch ``` - 同样在 Git 2.23 及以上版本,也可以使用以下命令: ```bash git switch -c new-branch ``` - 若使用上述特定版本命令,也可分步操作,先创建分支,再切换分支: ```bash git branch new-branch git checkout new-branch ``` 7. **将文件添加至缓存区**:将修改的文件添加到暂存区,若要添加所有文件,可使用以下命令: ```bash git add . ``` 8. **提交缓存区文件至本地仓库**:将暂存区的文件提交到本地仓库,并添加提交信息,命令如下: ```bash git commit -m "your_commit_message" ``` 9. **提交代码至远程仓库**:将本地仓库的代码通过当分支提交到远程仓库,命令如下: ```bash git push -u origin new-branch ``` 此外,还有几个与查看状态相关的命令: ```bash git status # 查看文件在工作区、暂存区、本地仓库之间的变化 git diff # 查看工作区与暂存区的差异 git diff --cached # 查看暂存区与本地仓库的区别 git diff HEAD # 查看工作区与本地仓库之间的差异 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值