995 字
5 分钟
git备忘
git代理
HTTP代理
#端口不定看你设置git config --global http.proxy "http://127.0.0.1:<7890>"git config --global https.proxy "http://127.0.0.1:<7890>"
git config --global http.proxy "socks5://127.0.0.1:<1080>"git config --global https.proxy "socks5://127.0.0.1:<1080>"#取消设置git config --global --unset http.proxygit config --global --unset https.proxySSH代理
改 ~/.ssh/config 文件(不存在则新建)
Host github.com HostName github.com User git # 走 HTTP 代理 # ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=8080 # 走 socks5 代理(如小飞机 or V2xxx) # ProxyCommand nc -v -x 127.0.0.1:1080 %h %pgit使用
git工作流程
工作区 (修改文件) → git add →暂存区 (准备提交) → git commit →版本库 (永久保存)gitCLI命令
#git初始化,在当前文件中添加一个.git目录,里面存着所有与git有关的东西#如果fork过来的项目不让你设置成私有仓库可以考虑把这个目录删了然后再重新git initgit init
#查看git的状态git status
#添加某个或者某个路径下的所有文件到暂存区git add <path>
#提交至版本库git commit [-m] ["description"]
#回退版本默认是mixed模式,工作区保留,暂存区不保留git reset HEAD^# 从暂存区移除filename.txt,工作区保留git reset filename.txt
#查看暂存区和工作区的不同git diff#比较工作区和版本库的区别git diff HEAD^#比较暂存区和版本库的区别git diff --cached#比较两个版本之间的区别git diff <版本1的id> <版本2的id>
# 查看提交历史git log# 查看简洁版的提交历史git log --oneline
#查看当前版本库中的所有文件git ls-files
#删除path对应的文件从工作区,并把这个改动添加至暂存区git rm <path>
#用http的方式的话要输用户名密码,但密码是GitHub的Personal access tokensgit push [origin] [分支名]
git pull.gitignore
直接就把路径一行行写进去就行#是注释比如:
# build outputdist/
# generated types.astro/
# dependenciesnode_modules/git的其他小知识
问AI的
HEAD
基本概念
HEAD
- 当前所在的分支的最新提交
- 是一个指针,指向你当前的工作位置
- 可以理解为”你正在哪里工作”
# 查看HEAD指向的提交git show HEADcat .git/HEAD区别对比
HEAD^ (插入符)
- 指向父提交
- 主要用于合并提交的场景
HEAD^ # 第一个父提交HEAD^2 # 第二个父提交(合并提交时)HEAD~ (波浪符)
- 向上回溯指定代数的提交
- 主要用于线性历史
HEAD~ # 向上回溯1代(等同于HEAD^)HEAD~2 # 向上回溯2代HEAD~3 # 向上回溯3代实际示例
假设提交历史如下:
A - B - C - D (HEAD)HEAD # 指向提交 DHEAD^ # 指向提交 C (D的父提交)HEAD~ # 指向提交 C (等同于HEAD^)HEAD~2 # 指向提交 BHEAD~3 # 指向提交 A合并提交的特殊情况
对于合并提交:
B - C (feature) / \A - D - E - M (HEAD, 合并提交)HEAD # 指向合并提交 MHEAD^ # 指向 E (第一个父提交)HEAD^2 # 指向 C (第二个父提交)HEAD~ # 指向 E (等同于HEAD^)HEAD~2 # 指向 D常用命令示例
# 查看上一个提交git show HEAD^git show HEAD~
# 查看上上个提交git show HEAD^^git show HEAD~2
# 重置到上一个提交(保留工作区)git reset HEAD^
# 重置到上上个提交(保留工作区)git reset HEAD~2
# 比较当前与上一个提交的差异git diff HEAD^ HEAD记忆技巧
^- 像分支一样”分叉”,用于处理多个父提交~- 像直线一样”回溯”,用于线性历史- 数字 -
^后面的数字表示第几个父提交,~后面的数字表示回溯几代
等价关系
HEAD = HEAD~0HEAD^ = HEAD~1HEAD^^ = HEAD~2HEAD^^^ = HEAD~3HEAD^2 # 没有等价的~表示法(特殊场景)