git上删除文件夹、分支切换
> 今天在遇到了一个问题,建了一个项目,但是有一些多余的文件,要删除 git 项目中多余的文件夹。
搜索并借鉴了地址
- 进入到本地项目文件夹,我是新建的,右键->Git Bash Here
# 将项目拉到本地
git clone git项目地址
- 查看文件夹
#但是有的文件夹不会显示,建议先在 git 项目中找到确切要删除的文件名
dir
- 删除指定文件夹
git rm -r --cached 需要删除的文件夹名称(如有多个以空格分开)
- 提交
git commit -m '描述(不能为空)'
- 推送
git push -u origin 你的分支名
- 在这些操作完之后你可能还需要切换到其他分支,但是直接切换会报一个 error: The following untracked working tree files would be overwritten by … 的错误。这时候确保前面操作和自己的修改已保存的情况下只能强制切换了,下面的语句的意思是:删除没有git add 的文件
git clean -d -fx
- 部分参数的含义:
-n :显示将要删除的文件和目录
-x :删除忽略文件已经对 git 来说不识别的文件
-d :删除未被添加到 git 路径的文件
-f :强制执行
到这里就完成了。
/分割线****************/
分享一个练习和学习 git 的地方:Learn Git Branching
下面是一些学习记录:
git使用记录:
下面的c几代表提交记录的哈希值
合并分支:
git rebase :取出一系列的提交记录,复制他们,然后在另外一个地方逐个放下去。可以创造更线性的提交记录
比如现在在分支 bugFix 上,我们要将这个分支的代码整合到 main 上,使用命令 git rebase main 就可以实现,这种并发开发很有效。
强制分支版本切换:
git branch -f mian c4 :将main从当前分支强制切换到 c4 分支版本
分支切换:
git checkout XXX
git checkout -b XXX :创建XXX分支并切换
分支后退:
git checkout HEAD~4:分支往回撤4个】
撤销变更:
git reset 和 git revert
git reset XXX:针对本地的代码撤回;git revert XXX:会创建一个新的提交记录,改变的是你上次的提交,并同步给远端。
将提交提到任意你想提的分支:
git cherry-pick XXX :如果你想将一些提交复制到当前位置(HEAD)下的话,Cherry-Pick是最直接的方式了
场景:如果你想将其他分支下的提交记录复制到main下,可以用 rebase,但是这里用这个:git cherry-pick c2 c4:前提是你已经切换到了要切换的分支,它会把提交记录c2 c4代码更新进来
git rebase -i HEAD~4:打开最近提交的 4 次记录并显示出来