2025-05-09 16:52:57 +08:00

219 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Git
date: 2023-10-23 10:30:31
author: 文永达
top_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/67239FBB-E15D-4F4F-8EE8-0F1C9F3C4E7C.jpeg
---
# Git
## Git 全局设置:
```shell
git config --global user.name "username"
git config --global user.email "email"
```
## 拉取项目
```shell
git clone <url>
```
## 创建 git 仓库:
```shell
mkdir aaa
cd aaa
git init
touch README.md
git add README.md
# 添加当前目录下全部文件
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/wenyongda/aaa.git
git push -u origin master
```
## 已有仓库
```shell
cd existing_git_repo
git remote add origin https://gitee.com/wenyongda/aaa.git
git push -u origin master
```
## 查看作者名称、作者邮箱
```shell
git config user.name
git config user.email
git config --list
```
## 解决Git提交失败提示用户密码错误
remote: [session-8b4b799a] wenyongda: Incorrect username or password (access token)
首先查看C盘下gitconfig配置文件配置
```properties
[core]
autocrlf = true
[user]
name = 文永达
email = bmdzh11713@163.com
[difftool "sourcetree"]
cmd = 'C:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = 'C:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe' -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
trustExitCode = true
[credential "https://gitee.com"]
provider = generic
```
查看user下的password正不正确如果没有设置转到控制面板
Windows下 `Win + R`运行输入`control`
用户账户 -> 凭据管理器 -> 管理 Windows 凭据 -> 普通凭据
编辑 git:https://gitee.com下的用户名和密码
如果没有手动添加并在Git Bash中执行
```shell
git config --global credential.helper wincred
```
## 储藏 (Stash)
```shell
git stash
git stash list
```
## SSH提交
1. SSH 秘钥默认储存在账户的主目录下的 ~/.ssh 目录
如:`C:\Users\用户\.ssh\`
查看是否包含id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之类成对的文件),有`.pub 后缀的文件`就是**公钥**,另一个文件则是密钥。
如果有这两个文件则跳过1.2;如果没有这两个文件,甚至.ssh目录也没有则需要用ssh-keygen 来创建
2. ###### 生成密钥信息
`.ssh 目录`下右键打开[Git Bash](https://so.csdn.net/so/search?q=Git Bash&spm=1001.2101.3001.7020)(.ssh目录不存在则在任一目录下操作或者手动创建该目录)
3. ###### 生成密钥
> ssh-keygen -t rsa -C "注释信息一般为邮箱your_email@youremail.com"
4. 在~/.ssh/下会生成两个文件id_rsa和id_rsa.pub
> id_rsa是私钥
>
> id_rsa.pub是公钥
5. SourceTree配置
![image-20250416142637966](http://minio.wenyongdalucky.club:9000/hexo/image-20250416142637966.png)
启动 **PuTTY Key Generator**
6. 依次点击
![image-20250416151051085](http://minio.wenyongdalucky.club:9000/hexo/image-20250416151051085.png)
7. PPKfile version 选择 2
![image-20250416151128595](http://minio.wenyongdalucky.club:9000/hexo/image-20250416151128595.png)
8. 选择之前生成的id_rsa
![image-20250416151307312](http://minio.wenyongdalucky.club:9000/hexo/image-20250416151307312.png)
9. 出现如下,选择 **Save private key** 保存秘钥
![image-20250416151416275](http://minio.wenyongdalucky.club:9000/hexo/image-20250416151416275.png)
10. 保存到 ~/.ssh 目录即可
![image-20250416151503685](http://minio.wenyongdalucky.club:9000/hexo/image-20250416151503685.png)
11.**Sourcetree****工具** -> **选项** 中选择刚刚保存的 ppk文件即可
## 变更SSH pubKey comment
> [Change an SSH key comment](https://www.commands.dev/workflows/change_ssh_key_comment)
```
# new_comment 新的注释
# ssh_key_path ssh私钥路径 ~/.ssh/id_rsa
ssh-keygen -c -C "new_comment" -f ssh_key_path
```
## 还原变更
```shell
# 指定文件或目录
git checkout -- <filename or directory>
```
# github
## push/pull老是超时解决方法
**设置针对github.com本身(如果你需要代理的仓库都是github上面的只要设置这个)的代理:**
```shell
#只对github.com
# 找到自己的代理的port的4个数字的端口就行不一定是1080口的
git config --global http.https://github.com.proxy socks5://127.0.0.1:7890
#上面是别人的如果你的代理是http类型的如下设置
git config --global http.https://github.com.proxy 'http://127.0.0.1:代理的port'
#取消代理
git config --global --unset http.https://github.com.proxy
```
**针对所有仓库(包含github.com之外的仓库的代理)**
```shell
# 找到自己的代理的port的4个数字的端口就行不一定是1080口的
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
#上面是别人的如果你的代理是http类型的如下设置
# 找到自己的代理的port的4个数字的端口就行不一定是1080口的
git config --global http.proxy 'http://127.0.0.1:代理的port'
git config --global https.proxy 'http://127.0.0.1:代理的port'
```
## 解决remote: Support for password authentication was removed on August 13, 2021.
1. Github 头像处 **Settings**
2. 左侧最下边 **Developer settings**
3. 左侧找到 **Personal access tokens**
4. 点击展开,找到 **Tokens (classic)**
5. 右侧下拉框 **Generate new token (classic)**
6. 按以下配置
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2ceb11682cc7230cf1220ecb78e548b5.png)
7. 得到 token
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/76ad4bb4370c7ae798f7b92c25859901.png)
8. 修改现有项目的url
```shell
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
```