git命令和遇到的问题

命令

0.一些git命令

(1)Git分支获取所有分支的创建者

git for-each-ref --format='%(committername) %09 %(refname)' refs/heads

这个命令会列出所有本地分支的创建者和分支名称。每行的格式为 <创建者姓名> <分支名称>。
如果你想要包括远程分支,可以使用以下命令:

git for-each-ref --format='%(committername) %09 %(refname)' refs/remotes

这些命令只会显示分支的创建者,而不是最后一次提交的作者。如果你想要显示最后一次提交的作者,可以将 committername 替换为 authorname。
(2)要删除本地和远程的分支,可以按照以下步骤进行操作:
删除本地分支:

使用以下命令查看本地分支列表:git branch
确定要删除的分支名称。
使用以下命令删除本地分支:git branch -d <branch_name>
删除远程分支:

使用以下命令查看远程分支列表:git branch -r
确定要删除的远程分支名称。
使用以下命令删除远程分支:git push origin --delete <branch_name>

(3)删除本地本次commit
如果想放弃本地的文件修改,可以使用git reset --hard FETCH_HEAD,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.

1.快速关联/修改Git远程仓库地址

(1)、删除本地仓库当前关联的无效远程地址,再为本地仓库添加新的远程仓库地址

git remote -v //查看git对应的远程仓库地址
git remote rm origin //删除关联对应的远程仓库地址
git remote -v //查看是否删除成功,如果没有任何返回结果,表示OK
git remote add origin https://github.com/***.git //重新关联git远程仓库地址

其实不仅仅上述这一种方式,还有如下方式:
(2)直接修改本地仓库所关联的远程仓库的地址

git remote  //查看远程仓库名称:origin 
git remote get-url origin //查看远程仓库地址
git remote set-url origin https://github.com/***.git  ( 如果未设置ssh-key,此处仓库地址为 http://... 开头)

(3)或者直接修改项目下的config文件地址
image

2.git修改用户名邮箱密码

(1)全局修改

git config --global --replace-all user.name "要修改的用户名"
git config --global --replace-all user.email"要修改的邮箱"
git config --global --replace-all user.password "要修改的密码"

(2)只修改当前项目

git config user.name "要修改的用户名"
#查看当前修改后的名字
git config user.name

git config user.email "email"  // 设置
git config user.email 


// 查看修改完后的密码:
git config user.password "password" // 设置
git config user.password

注意这个git用户名只是Git里展示的用户名修改之后就又显示修改后的用户名,并不是拉取代码的账号和密码

2.Git 凭据保存、如何修改

使用Git 向远程仓库(例如:GitHub,gitee)提交代码 ,需要输入账号和密码。可能会遇到这样的情况密码输错一次,想修改,但是不知道去哪里修改。一直报错fatal: Authentication failed for 又不弹出用户名和密码输入框
(1)git凭证管理的三种方式
Git的凭据存储有cache、store、manager三种方式
Git 中有三种级别system 、global 、local ,可以针对不同的级别设置不同的凭据存储方式
查看不同级别的凭据管理方式
查看不同级别的credential.helper

Jant@Jant MINGW64 ~/Desktop
$ git config --system credential.helper
manager

Jant@Jant MINGW64 ~/Desktop
$ git config --global credential.helper
cache

Jant@Jant MINGW64 ~/Desktop
$ git config --local credential.helper

修改指定级别的凭据管理方式

Jant@Jant MINGW64 ~/Desktop
$ git config --system credential.helper wincred

Jant@Jant MINGW64 ~/Desktop
$ git config --system credential.helper
wincred

image

git-credential-manager.exe 下面简称manager
git-credential-store.exe 下面简称stroe
git-credential-wincred.exe 下面简称wincred
相信你现在有几个疑问,我平时输入账号密码,用的是哪种?账号密码保存在哪里?如何进行修改?
(2)凭证管理方式
manager
若安装Git时安装了GitGUI,自动会在system级别中设置credential.helper为manager。

git-credential-manager.exe和 git-credential-wincred.exe 都是将凭据存储在系统的凭据管理器中,只不过前者是有图形界面,后者没有图形界面,需要在命令行中输入密码

使用场景
你的账号密码是在弹窗中输入的,例如下面的这样。使用的就是manager来进行凭据管理的
image
凭据保存的位置
在控制面板->用户账户->凭据管理器,可以看到对应的git账号凭据管理,可以修改或者删除。

删除后,再次pull或者push,会重新输入密码
image
store
如果你在输入账号密码的时候,关闭了manager 方式的输入框,就会要求你在命令行中输入账号,如下图

使用场景
账号输入:
image
密码输入:
image
存储密码
1、 设置global 的凭据管理方法为store ,命令如下:

git config --global credential.helper store

在C:/user/用户名 目录下的.gitconfig文件添加以下内容

[credential]
	helper = store

2、输入账号和密码,push或者pull后,此时查看C:/user/用户名 会自动生成.git-credentials 文件,里面明文保存了你的账号和密码。

注意:系统自动的.git-credentials文件和自己手动写入.git-credentials 文件,符号编码是不一样导致,所以自己手动生成该文件,可能是无法使用的

特别注意:如果使用store存储凭据,会在.git-credentials 文件和控制面板的凭据管理器中,两个地方同时生成凭据。所以如果要修改,最后两处一起删除
cache
将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且默认在15分钟后从内存中清除。

git config --global credential.helper cache

如果想自己设置时间,可以这样做:密码将在内存中保留1小时

git config credential.helper 'cache --timeout=3600'

问题

1.git账号密码修改

修改git的账号密码,你以为向上面介绍的关联的远程仓库的地址修改就ok了。但是当你设置之后,发现git pull,还是报错账号密码错误。
对于我们输入的用户名和邮箱账号,都存储在 .gitconfig 文件中,我们很简单的就能找到(C:\用户\username.gitconfig)。

  但对于密码就有点麻烦,其实找到系统的钥匙串凭证的地方就可以了。

  对于windows,其凭证在 “控制面板->凭证管理器->Windows凭证”下,找到相应的git配置就可以了。

  打开电脑的控制面板 — 用户账户 — 管理Windows凭据(也可以直接输入:控制面板\用户帐户\凭据管理器),win10可以直接查找。

image
找到普通凭据中自己的账号信息,找到你 pull 的 git 地址下的普通凭证,选择编辑,填入正确的用户名和密码,最后点击保存即可。

  也可以直接删掉即可。删掉之后你再重新 git pull 就会弹窗,你输入正确的账号密码就可以了

将本地项目推送到码云

(1)码云上创建仓库
(2)在本地电脑所在的代码的文件夹下进行初始化,输入命令

git init

(3)添加远程仓库

git remote add origin 仓库地址(http)

(4)提交到本地仓库

git add .

git commit -m“注释说明”

(5)将远程仓库内容拉到本地

git pull origin master
//到这一步会报错,Git拒绝合并无关的历史记录,输入命令
git pull origin master --allow-unrelated-histories

(6)将本地代码push到远程服务器托管网站

git push -u origin master
posted @ 2023-05-22 14:37  spiderMan1-1  阅读(137)  评论(0编辑  收藏  举报