如何在Github为不同目录创建独立分支并仅推送对应文件修改
问题根因
你的操作顺序存在错误,Git的特性是未提交的工作区/暂存区修改会跟随分支切换操作移动,同时你先在master分支提交代码再切新分支的操作,也会导致master分支被塞入不属于它的提交记录,最终出现多目录修改混进同一个分支的问题。
第一步:清理当前错误状态
先修正已经出错的分支和master分支记录:
- 切回master分支,回退错误提交,将所有修改放回工作区
git checkout master # 回退最近1次提交,若不确定提交版本,可先执行git log --oneline查看对应commit hash后替换HEAD~1 git reset HEAD~1 # 清空暂存区,确保所有修改回到未暂存状态 git reset HEAD .
- 删除本地和远端的错误branch01分支
# 删除本地错误分支 git branch -D branch01 # 删除远端错误分支 git push origin --delete branch01
第二步:正确的多目录分分支提交流程
后续要为不同目录单独创建分支提交,严格按以下顺序操作:
- 每次创建新分支前,先确认处于master分支,所有修改都为未暂存、未提交状态,可执行
git status确认 - 先创建并切换到对应目录的目标新分支,不要先提交再切分支
git checkout -b branch01
- 仅暂存需要提交到当前分支的目录/文件,不要使用
git add .这类全量暂存命令
git add Files_for_branch01/
- 提交当前分支的改动,此时其他目录的修改仍会保留在工作区,不会被提交
git commit -m "files 01"
- 推送当前分支到远端
git push -u origin branch01
- 切回master分支,未提交的其他目录修改会自动带回master工作区,即可按相同逻辑创建其他目录的对应分支
git checkout master
注意事项
- 每次切换分支前,确保当前分支的修改已经全部提交完成,避免不同分支的修改混杂
- 若切换分支时提示存在未提交修改无法切换,要么先完成当前分支的提交,要么执行
git stash临时存储改动后再切换
内容的提问来源于stack exchange,提问作者C-Bk
相关产品推荐
相关产品推荐

