当前位置: 首页 > news >正文

git全局与单仓库的密码管理

概要

在使用git时,有默认的全局配置,每个仓库也有自己的配置,在使用时常常傻傻分不清楚,现在进行一个简单的整理记录。

一般情况下全局配置中的git账号和邮箱通常设置成自己的,其他仓库再根据项目需要进行单独配置,这样可以比较大程度的保证个人与工作能分的开。

有关全局配置和单独配置的的关系机制为:

  • 单仓库会继承全局配置中的所有配置项(可通过git命令、配置文件配置)
  • 单仓库可以覆盖全局配置中的单个配置项,在使用时优先使用仓库自己的配置项(可通过git命令、配置文件配置)
  • 有关密码的设定
    • git支持将密码进行持久化保存(指定时间、永久),保存在指定位置,加密或明文
    • 有些第三方软件,比如sourcetree则会将密码保存到自己指定的文件中

接下来演示一下,全局配置和单仓库的独有配置,以及如何灵活配置密码。

1 全局配置的查看、修改、删除

1.1 全局配置的查看

通过全局配置文件查看全局配置,在win下一般在C:\Users\你的用户名\.gitconfig文件中,而linux则一般在/etc/gitconfig

[user]name = xxxemail = xxx
[difftool "sourcetree"]cmd = '' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]cmd = "'' "trustExitCode = true

通过git命令查看全局配置

# git config --global --l
git config --global --listuser.name=xxx
user.email=xxx
difftool.sourcetree.cmd='' "$LOCAL" "$REMOTE"
mergetool.sourcetree.cmd=''
mergetool.sourcetree.trustexitcode=true

1.2 全局配置的修改

通过git命令进行修改

git config --global xxx.xxx xxx
git config --global xxx.xxx.xxx xxx
git config --global xxx.xxx.xxx.xxx xxx

在配置文件内显示为,可以发现是根据.进行分割,注意无法直接设置git config --global xxx xxx,必须要有层级才能设定:

[xxx]xxx = xxx
[xxx "xxx"]xxx = xxx
[xxx "xxx.xxx"]xxx = xxx

1.3 全局配置的删除

可以直接操作C:\Users\你的用户名\.gitconfig文件进行删除,也可以使用git命令进行删除:

git config --global --unset xxx.xxx.xxx.xxx xxx

2 单仓库配置的查看、修改、删除

单仓库的查看、修改、删除与全局的基本一致,只是配置文件位置不同、以及没有--global选项,单仓库的配置文件一般在在你的git仓库\.git\config文件中,这里就不一一演示单仓库配置的查看、修改、删除了,命令如下

# 查看
git config --list
# 修改
git config xxx.xxx xxx
# 删除
git config --unset xxx.xxx.xxx.xxx xxx

3 git凭证(也就是密码)存储模式

git是凭证通过credential.helper来配置密码存储的,有关credential.helper的配置大致有以下几项:cache模式store模式osxkeychain模式wincred模式manager模式

使用如下命令查看当前使用的是什么存储模式,也可以直接查看配置文件:

# 全局
git config --global credential.helper
# 单仓库
git config credential.helper

3.1 cache模式

cache模式:缓存模式,可以将密码缓存在内存中一段时间,默认15min,可以进行配置。

  • Linux:适用
  • windows:不适用,具体原因这里不展开讲解,网上说是因为git-credential-cache通过Unix套接字进行通信,所以不支持。

使用方式(也可以直接编辑配置文件,参考第一部分):

1.临时缓存(默认15分钟):

# 全局配置
git config --globale credential.helper cache
# 单仓库配置
git config credential.helper cache

2.自定义缓存时间(秒)

# 全局配置
git config --globale credential.helper 'cache --timeout=3600'
# 单仓库配置
git config credential.helper 'cache --timeout=3600'

3.2 store模式

  • store模式:永久存储。
    • Linux:则将密码以明文存放在~/.git-credentials文件中
    • windows:则将密码以明文存放在C:\Users\你的用户名\.git-credentials文件中

使用方式(也可以直接编辑配置文件,参考第一部分):

# 全局配置
git config --globale credential.helper store
# 单仓库配置
git config credential.helper store

执行git pull,然后输入正确的密码,打开C:\Users\你的用户名\.git-credentials文件查看:

https://你的用户名:你的密码@gitee.com

因为是明文存储,所以这种方式不是很建议。

3.3 osxkeychain模式

  • osxkeychain模式:永久存储,仅针对于Mac,位置是系统用户的钥匙串中,但是会加密。

没接触过mac,不展开讲解

3.4 wincred模式

  • wincred模式:永久存储。
    • Linux:不适用
    • windows:与store模式类似,将用户信息存储到Windows凭据中,不在存储在C:\Users\你的用户名\.git-credentials文件中,这样你就看不到明文密码了,懒人推荐。

使用方式(也可以直接编辑配置文件,参考第一部分):

# 全局配置
git config --globale credential.helper wincred
# 单仓库配置
git config credential.helper wincred

执行git pull,然后输入正确的密码,打开Windows凭据文件查看:

internet地址或网络地址:git:https://你的用户名@gitee.com
用户名:你的用户名
密码:⚪⚪⚪⚪⚪⚪

3.5 manager模式

  • manager模式:永久存储,将密码以加密形式存放在Windows凭据管理器中,并且永不过期,需要安装一个Git Credential Manager的辅助工具,windows中,推荐使用该模式。

首先安装Git Credential Manager的辅助工具,然后修改配置:

# 全局配置
git config --globale credential.helper manager
# 单仓库配置
git config credential.helper manager

执行git pull,然后输入正确的密码,打开Windows凭据文件查看:

Internet 地址或网络地址:git:https://gitee.com 
用户名:PersonalAccessToken

4 第三方软件(sourcetree)密码的存储

用过sourcetree的人都知道它有多好用,尽管我们不经常切换账号和修改密码,但是初始化仓库后输错密码或用户名(并非提交用户名,而是git的登陆账号)时想要修改还是很不方便的,那么该如何修改用户名和密码呢?

4.1 sourcetree修改登录的账号

sourcetree将用户名保存在了哪里呢?

答案是:C:\Users\你的用户\AppData\Local\Atlassian\SourceTree 目录下的userhosts文件,当你想删除或更新某个用户名时,来这里进行操作即可。

4.2 sourcetree修改登录的密码

那么sourcetree将密码保存到了哪里呢?

答案是:C:\Users\你的用户\AppData\Local\Atlassian\SourceTree\passwd,当你想删除或更新某个密码时,来这里进行操作即可。

http://www.lryc.cn/news/185456.html

相关文章:

  • IDEA的使用(一) (IntelliJ IDEA 2022.1.3版本)
  • javaee SpringMVC文件上传 项目结构
  • JavaScript DOM 函数大全详解(使用最新的 JS 语法)
  • Stm32_标准库_8_ADC_光敏传感器_测量具体光照强度
  • 基于SSM的固定资产管理系统的设计与实现
  • Leetcode---364场周赛
  • 使用 Powershell 检索不理解的命令
  • 基于 FPGA 的机器博弈五子棋游戏
  • uCOSIII实时操作系统 三 移植
  • 机器学习之SGD, Batch, and Mini Batch的简单介绍
  • Windows电脑上的多开器与分布式存储系统的关系
  • 积分球可以用于什么光谱光学检测
  • 【力扣面试题】URL化
  • 计算机网络基础(二):物理层、数据链路层及网络层
  • 小白自学—网络安全(黑客技术)笔记
  • 2.2.3 vim操作合集
  • 解决 Jenkins 性能缓慢的问题~转
  • Matrix卡顿优化之IdleHandlerLagTracer源码分析
  • (ubuntu)Docker 安装linux 详情过程
  • ArcMap:第二届全国大学生GIS技能大赛(广西师范学院)详解-上午题
  • Blender 导出 fbx 到虚幻引擎中丢失材质!!!(使用Blender导出内嵌材质的fbx即可解决)
  • C++交换a和b的方法
  • 3D孪生场景搭建:模拟仿真
  • 美国各流域边界下载,并利用arcgis提取与处理
  • A Survey and Framework of Cooperative Perception 论文阅读
  • 【SkyWalking】SkyWalking是如何实现跨进程传播链路数据?
  • px4仿真实现无人机自主飞行
  • 详解Linux的系统调用fork()函数
  • 构建捡垃圾机器人的 ROS 2 项目
  • Spring常用注解(2)