Git 常用又常忘

6次阅读
没有评论

取消缓存

# 重置工作区和暂存区(会丢失所有未提交的修改)git reset --hard

# 或者如果你只想丢弃 stash 带来的修改,但保留其他修改:git checkout -- .   # 丢弃所有未暂存的修改
git reset .         # 取消所有暂存的修改

移除误上传文件

当你使用  git rm --cached  时,实际上是从 Git 的 暂存区(索引)中删除文件 / 文件夹 ,但 保留工作目录中的实际文件。这意味着这些文件将不再被版本控制,但会保留在你的本地文件系统中。

# 设置移除的缓存
git rm --cached docker-compose.yml
# .gitignore 添加移除的文件
docker-compose.yml

# 移除整个文件夹
git rm --cached -r node_modules/
# 移除 dist/ 和 build/ 目录
git rm --cached -r dist/ build/ logs/

# 移除所有 .tmp 文件
git rm --cached **/*.tmp
# 提交
git commit -m "chore: 停止跟踪 docker-compose.yml,将其移入 .gitignore"

文件未保存,但是提交了 commit,未 push

# 撤销最近一次的 commit,但保留修改
git reset --soft HEAD~1 保留修改(暂存区不可见)
git reset --mixed HEAD~1 保留修改(重放暂存区)# 或指定提交
git reset --soft <commit_hash>

# 撤销最近一次的 commit,且不保留修改  
# --hard 彻底删除 commit 和所有修改 无法恢复,慎用!git reset --hard HEAD~1

# 或指定提交
git reset --hard <commit_hash>
# 撤销最近 3 次 commit
git reset --hard HEAD~3

正文完
 0
评论(没有评论)
验证码