0%

Arch配置Git自动登录验证

本文主要实现了Archlinux环境下git push指令免密登录的配置
介绍了git相关操作

Arch配置Git自动登录验证

参考文档:

核心参考文档 本文思路基本和该文一致,相当于这篇文章的详细版

图解如何在Linux上配置git自动登录验证 (了解)

实际使用下来不如SSH免密登录,因为http免密登录需要储存凭证程序,而使用储存凭证程序需要与‘’Secret Service”建立联系,国内网络连接被拒……更推荐下面这片文章中的SSH免密登录

GitHub不再支持密码验证解决方案:SSH免密与Token登录配置 (推荐)

github配置SSH免密登录 (更针对目前的Github版本,在Github上导入密钥可以参考这篇)

github关于身份验证的官方文档

为什么要配置git自动登录验证?

官方已经停用了在终端中利用git通过账户名密码的方式登录github

因此配置SSH免密登录和Token登录是必要的

配置方式

生成ssh-key

1
ssh-keygen -t rsa -C 1501608414@qq.com  

ENTER后会回显密钥储存位置,进入该位置

1
cd /root/.ssh/
1
ls

可以看到有两个文件id_rsa(私钥)和id_rsa.pub(公钥)

把公钥导入Github中的Settings中的SSH and GPG keys即可。

git修改远程仓库地址

方法有三种:

  1. 修改命令

    1
    git remote set-url --push origin git@github.com:dingdingqiuqiu/Leetcode.git
  2. 先删后加

    1
    git remote rm origin
    1
    git remote add origin git@github.com:dingdingqiuqiu/Leetcode.git
  3. 直接修改config文件

    git文件夹,找到config,编辑,把就的项目地址替换成新的。

Git基本使用

该部分介绍基本够用,更详细的介绍在dingdingqiuqiu-git手册

首次使用

配置Git的全局账户名和电子邮箱

1
git config --global user.name "P4yl04d"
1
git config --global user.email "1501608414@qq.com"

使用以下命令检验配置结果

1
git config --global user.name
1
git config --global user.email

修改默认编辑器为nvim

1
git config --global core.editor nvim

merge时修改冲突文件工具mergetool

1
2
3
4
5
6
git config --global merge.tool vimdiff
git config --global merge.conflictstyle diff3
git config --global mergetool.prompt false

#让git mergetool不再生成备份文件(*.orig)
git config --global mergetool.keepBackup false

修改远程库

参考文档:

官方文档 (推荐)

linux下,git配置github (讲的很细,也推荐)

拉取库

1
git clone https://github.com/dingdingqiuqiu/OS_NJU_Jsut2try

修改库

1
cd OS_NJU_Jsut2try
1
mv /home/P4yl04d/Documents/OS_NJU_Jsut2try_my/* .
1
git add .
1
git commit -m "M32_C90_unsigned_BUG_try"
1
2
3
4
git remote -v
# 回显:
# origin https://github.com/dingdingqiuqiu/OS_NJU_Jsut2try (fetch)
# origin https://github.com/dingdingqiuqiu/OS_NJU_Jsut2try (push)
1
git push -u origin mian

git push -u origin main 命令会将本地分支 main 推送到远程仓库 origin 中的 main 分支。如果您想将本地分支推送到远程仓库的其他分支,可以使用以下命令:

1
git push -u <remote> <local_branch>:<remote_branch>

这个命令会将本地分支 <local_branch> 推送到远程仓库 <remote> 中的 <remote_branch> 分支。例如,如果您想将本地分支 dev 推送到远程仓库 origin 中的 develop 分支,可以使用以下命令:

1
git push -u origin dev:develop

本地文件上传库

参考文档:
How to use git

官方文档 (推荐)

首先在Github上创建新仓库(不添加READ.MD文件),官方这里也有介绍,我解释下每一句的意思。

首先在本地创建文件夹用于上传文件到Github中的仓库

1
cd /home/P4yl04d/Documents                    
1
mkdir Leetcode

进入文件夹,并对其初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 进入文件夹
cd Leetcode

# 创建README.md文件,并写入仓库名字
echo "# Leetcode" >> README.md

# 对文件夹进行初始化,主要是在该文件夹中创建.git文件,记录版本变化
# rm -rf .git可撤销初始化操作
git init

# 添加README.md文件到”预提交“处
git add README.md

# 进行实际提交命令,参数m用来标记提交信息
git commit -m "first commit"

# 把默认分支master**重命名**为main,让新版本被添加时处于main分支下
git branch -M main

# 添加一个名为origin的远程分支到git仓库
git remote add origin git@github.com:dingdingqiuqiu/Leetcode.git

# 把本地仓库的改变推送到远程仓库origin
# -u参数将当前分支的上游分支(upstream branch)设置成origin/main
#这允许您将来使用 git push 时无需指定远程名称和分支名称。
git push -u origin main

checkout代表切换到master分支,-b参数代表如果不存在master分支,那就创建一个master分支。

1
git checkout -b master

Debug

在某次git push

进入.ssh文件夹,新建config文件,输入以下内容即可

1
2
3
4
Host github.com
Hostname ssh.github.com
Port 443
User git

Arch也碰到了相同的问题,同样方法解决即可

参考文档:ssh -T git@github.com ssh: connect to host github.com port 22: Connection refused 会报错_this key is not known by any other names.-CSDN博客