# 是什么

# 基本操作

命令解释
git commit进行快照保存
git branch <branch_name>创建一个分支,名称为 <branch_name>
git checkout <branch_name>切换到分支 <branch_name>
git remote -v查看远程仓库地址

# 命令行代理问题

之前 github 在命令行中的操作总是时断时续。最后发现是梯子不能代理命令行,因为端口不一样。在 Windows 中,更改设置其实很简单:

git config --global http.proxy 127.0.0.1:10809
git config --global https.proxy 127.0.0.1:10809

关于后面的端口,实际上是在 设置->网络和Internet->代理->手动设置代理 中的 端口 中查询到的。

在 Linux 命令行环境中,如果使用 clash-for-linux 进行系统代理,那么一个可能出现的问题是代理仅对 http/https 有效,对于 git 的 ssh 代理无效。因此,需要将远程连接方式从 ssh 更改为 https, 这里首先使用

git remote -v

查看远程仓库的连接方式,如果连接方式为 ssh,即输出类似:

origin git@github.com:username/repo.git (fetch)
origin git@github.com:username/repo.git (push)

那么需要使用

git remote set-url origin https://github.com/username/repo.git

将连接方式更改为 https。

这里似乎还需要将 ~/.ssh/config 文件中的 git 端口更改为 443,即:

Host github.com
  HostName github.com
  User username
  Port 443
  IdentityFile ~/.ssh/id_rsa_github

不过这里使用 https 连接 GitHub 似乎就没必要修改 ssh 连接的设置了诶。所以可能是多改的内容。

随后使用 git push 命令检测是否能连接上 GitHub.

# GitHub PAT

现在如果使用 https 连接 GitHub,那么还需要在 GitHub 中生成一个 Personal Access Token (PAT),而不是使用 GitHub 的登陆密码。PAT 是一个自动生成的不规则 token, 因此如果每次提交都需要输入 PAT, 会非常麻烦。因此需要将 PAT 记录下来。使用

git config --global credential.helper store

即可。

需要注意的是,这里将 PAT 存储到本地是明文存储的!因此如果需要考虑代码的安全性,那么还需要对 PAT 进行加密保护。(不过需要安全性的代码大概也不会放到 GitHub 上去罢

# gitignore 使用

使用 .gitignore 文件可以忽略一些不需要提交的文件,比如编译生成的文件、IDE 生成的配置文件等。

# 创建 gitignore 文件

.gitignore 文件需要创建于根目录下。创建文件后,可以在 .gitignore 文件中加入不需要提交到 git 的文件名或文件类型,每类文件占一行。

# 移除现有版本控制中的文件

如果(很不幸地)已经在远程仓库中提交了相应文件,那么可以使用下面的命令删去本地的 git 缓存中的相应文件,然后再提交到远程。

git rm --cached -r <your_files>

如果不加 --cached 那就把本地文件删掉啦!一定要慎重。

# Ref

  • gitignore
    • .gitignore 的用法 - CSDN