git指令

本文介绍了如何在Git中添加和删除远程分支,处理未push的本地提交,以及如何移除包含敏感数据的提交历史。还提供了移除敏感文件的filter-branch技巧,并强调了防范敏感文件再次提交的方法和提交策略。
摘要由CSDN通过智能技术生成

git 指令

关于远程分支的添加和删除

新建并推送

# 新建
git checkout -b <分支名>

# 推送
git push <仓库名> <本地分支名>:<远程分支名>

例如:

$ git checkout -b dbg_lichen_star

$ git branch
* dbg_lichen_star
  master
  release

$ git push origin dbg_lichen_star:dbg_lichen_star

删除

git push <仓库名> :<远程分支名>

# or

git push <仓库名> --delete <远程分支名>

例如:

$ git push origin :dbg_lichen_star

# or

$ git push origin --delete dbg_lichen_star

参考链接

丢弃本地 commit 过还没 push 的提交

#本地所有修改的。没有的提交的,都返回到原来的状态
git checkout . 

#把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git stash 

#返回到某个节点,不保留修改,已有的改动会丢失。
git reset --hard HASH 

 #返回到某个节点, 保留修改,已有的改动会保留,在未提交中,git status或git diff可看。
git reset --soft HASH

#返回到某个节点,(未跟踪文件的删除)
git clean -df 

# git clean 参数
#     -n 不实际删除,只是进行演练,展示将要进行的操作,有哪些文件将要被删除。(可先使用该命令参数,然后再决定是否执行)
#     -f 删除文件
#     -i 显示将要删除的文件
#     -d 递归删除目录及文件(未跟踪的)
#     -q 仅显示错误,成功删除的文件不显示


# 注:
# git reset 删除的是已跟踪的文件,将已commit的回退。
# git clean 删除的是未跟踪的文件

原文链接

移除 Git 中的(包括 Commit 历史)中的敏感文件

速速移除

# filter-branch 是 git 自带的命令:

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all

# 请将上面命令中的 PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA 替换为你要删除的文件名路径(相对路径、绝对路径均可)。

# 如果你想删除文件夹的话,只需要添加一个 -r 参数即可,形如:

git filter-branch --force --index-filter \
'git rm -r --cached --ignore-unmatch PATH-TO-YOUR-DIR-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all

避免再犯

为了防止敏感文件再次被提交,可以将其加入到 .gitignore 文件中。

速速提交


# 执行以下命令将其强制推送到仓库中:

git push origin --force

链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值