之前一直在用编辑器自带的Git相关功能,都是GUI操作,一键提交push那种,而且登陆只需要输入Token就能直接操作,终端Git接触的少之又少,其实说实话,离开GUI操作,终端上的Git是真的不太会用,最近打算重新学习一下终端Git的使用,顺手写了这篇笔记。

Git是什么

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

Github是GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub拥有1亿以上的开发人员,400万以上组织机构和3.3亿以上资料库。

Git安装教程

我的日用系统是Arch Linux,这里用Arch Linux做为示例
Arch Linux

1
pacman -S git

这样应该就安装好了

Git基础配置

装好Git后先别急着敲命令,配置好用户信息才能正确提交代码,不然你可能会变成「无名氏贡献者」

设置全局用户名和邮箱

1
2
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

建议和GitHub/Gitee等平台注册的邮箱保持一致,这样提交记录才能关联到你的账户

终端Git生存必备指令

你可能已经习惯了GUI的点点按钮,但命令行才是Git的完全体!(中二感拉满)

本地操作三连

1
2
3
4
5
6
7
8
9
10
11
# 初始化仓库(老司机请跳过)
git init

# 查看当前状态(堪比手机锁屏看时间的使用频率)
git status

# 添加文件到暂存区(注意那个点表示全部添加)
git add .

# 提交更改(-m后面跟提交信息,别学某些人写"又改了点bug"
git commit -m "清晰的提交说明"

分支管理魔法

1
2
3
4
5
6
7
8
9
10
11
# 查看当前分支(带*号的就是你现在的位置)
git branch

# 创建新分支(建议分支名用英文短横线分隔)
git branch new-feature

# 切换分支(丝滑程度堪比vim上下翻页)
git checkout main

# 合并分支(在main分支执行这个命令)
git merge new-feature

远程仓库

一直在本地提交也不是个办法,来提交到远程仓库

连接远程仓库

1
2
3
4
5
6
7
8
# 添加远程仓库(origin是默认称呼,想叫老婆也行)
git remote add origin git@github.com:用户名/仓库名.git

# 查看已配置的远程仓库
git remote -v

# 第一次推送记得加-u参数绑定上游分支
git push -u origin main

祖传Token登录

还在记密码?2024年了该用Token了!这才是现代人的优雅姿势,而且Github也不支持密码登陆了:

  1. 生成个人访问令牌(以GitHub为例)

    • 进入 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
    • 勾选repo权限(一般选前5个就够用)
    • 生成后会得到一串类似ghp_xxx的Token,它只会显示一次,建议当场复制保存
  2. 修改远程仓库地址
    把常规HTTPS地址:

    1
    https://github.com/用户名/仓库名.git

    改造为Token专属形态:

    1
    https://你的用户名:你的Token@github.com/用户名/仓库名.git

    示例:

    1
    git remote add origin https://octocat:ghp_abc123def456@github.com/octocat/Hello-World.git
  3. 日常操作丝滑三连

    1
    2
    3
    4
    5
    6
    7
    8
    # 克隆仓库时直接认证
    git clone https://用户名:Token@github.com/用户名/仓库.git

    # 推送代码时自动验证
    git push origin main

    # 拉取更新也不输密码
    git pull origin main

SSH密钥登陆

还在用Token登录?试试更优雅的SSH方式:

  1. 生成密钥对(把邮箱换成你的)
1
ssh-keygen -t ed25519 -C "your_email@example.com"
  1. 一路回车(除非你想设置密码)
  2. 读取公钥粘贴到GitHub
1
cat ~/.ssh/id_ed25519.pub

常见翻车现场急救

手滑commit了不该提交的内容

1
2
# 撤回最新commit(文件改动会保留)
git reset HEAD~1

代码冲突解决指南

当看到「CONFLICT」字样时:

  1. 打开冲突文件
  2. 找到<<<<<<<和>>>>>>>标记
  3. 手动选择要保留的代码
  4. 重新add+commit

双修党的灵魂拷问

Token vs SSH怎么选?

特性 Token登录 SSH密钥
适用协议 HTTPS SSH
认证方式 每次推送带Token 密钥对自动认证
安全性 需防Token泄露 私钥不泄露就稳如老狗
适用场景 临时操作/第三方客户端 长期开发主力机

防翻车秘籍

  • Token安全三原则
    1. 别把Token直接写进脚本(小心history命令出卖你)
    2. ~/.netrc文件藏Token(格式:machine github.com login 用户名 password Token
    3. 定期到GitHub后台回收过期Token
  • 紧急情况处理
    1
    2
    # 如果手抖暴露了Token,立即执行:
    git remote set-url origin 新仓库地址 # 火速更换远程地址

写在最后

其实终端Git就像Vim,刚开始可能觉得反人类,但熟练后行云流水的操作会带来奇妙的愉悦感。建议新手先从小仓库练起,把常用命令写在便签上,忘记的时候随时瞟一眼。下次可能会写一篇「Git后悔药大全」,教你怎么用 reflog穿越时空(笑)

梦泽Hexo文章模板