git 常用的一些命令

发表于:2023-08-04 09:13:19·阅读:77

永久记住密码 (全局)

Git使用https方式进行连接时,默认每次推送时都要输入用户名和密码。

可以使用命令

git config credential.helper store

为当前仓库设置记住密码,设置后,只要在推送一次,以后就不需要用户名和密码了。

只要运行后,下次push/pull的时候再输入一次密码,git就会记住啦!再次push/pull的时候就不用输用户名和密码了。

修改用户名和邮箱的方法

全局修改

git config --global user.name "王老五"
git config --global user.email "abc@qq.com"

局部修改

git config user.name "王老五"
git config user.email "abc@qq.com"

删除本地已不存在于远程的分支

步骤 1:清理远程分支的本地引用

首先更新本地仓库的远程分支信息,并删除那些远程已不存在的分支的本地跟踪引用:

git fetch --prune
# 或
git remote prune origin

步骤 2:删除本地对应的分支

通过以下命令筛选出远程已删除的本地分支,并批量删除:

git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -d

命令解释

  • git branch -vv
    列出所有本地分支的详细信息,包括跟踪的远程分支状态。如果远程分支已被删除,状态会显示 [gone]

  • grep ': gone]'
    筛选出所有标记为 gone 的分支(即远程分支已删除)。

  • awk '{print $1}'
    提取分支名称(假设分支名不含空格)。

  • xargs git branch -d
    将筛选出的分支名传递给 git branch -d 进行安全删除(仅删除已合并的分支)。若需强制删除未合并的分支,改用 -D

注意事项

  1. 确认分支列表
    执行前建议先单独运行 git branch -vv | grep ': gone]' 确认待删除的分支,避免误操作。

  2. 分支名称含空格
    若分支名包含空格,需调整 awk 或改用 cut 命令提取名称(例如 awk -F' +' '{print $1}')。

  3. 未跟踪远程分支的本地分支
    此方法仅处理已设置上游(跟踪)远程分支的本地分支,未关联远程的分支需手动管理。

简化脚本(可选)

将命令保存为别名以便复用:

git config --global alias.prune-local '!git fetch -p && git branch -vv | grep '"'"': gone]'"'"' | awk '"'"'{print $1}'"'"' | xargs git branch -d'

之后可通过 git prune-local 一键清理。

执行上述步骤后,本地的冗余分支将被安全清理,保持与远程仓库的同步。

评论
文明评论,理性发言
⌘ + Enter
全部评论
暂无评论数据