更新Git笔记和本地忽略文件
This commit is contained in:
+114
-22
@@ -1,29 +1,121 @@
|
||||
初始化:
|
||||
- git init
|
||||
# Git 命令速查
|
||||
|
||||
添加远程仓库:
|
||||
- git remote add 远端仓库名 地址
|
||||
## 初始化和远端
|
||||
|
||||
把修改加入暂存区:
|
||||
- git add .
|
||||
初始化本地仓库:
|
||||
|
||||
提交修改
|
||||
- git commit -m "备注信息"
|
||||
```powershell
|
||||
git init
|
||||
```
|
||||
|
||||
推送到远程仓库
|
||||
- git push
|
||||
- git push -u 远端仓库 本地分支
|
||||
强推修改
|
||||
- git push --force-with-lease 远端仓库 本地分支
|
||||
- --force-with-lease表示先检查有没有比目前分支更新的提交,如果有推送终止,更安全
|
||||
- --force表示强制修改分远端仓库支指针
|
||||
添加远端仓库:
|
||||
|
||||
移除cache中的某个文件更改:
|
||||
- git rm --cached -r -- "文件目录或文件名"
|
||||
```powershell
|
||||
git remote add origin https://github.com/Ki5ter/Obsidian.git
|
||||
```
|
||||
|
||||
移除整个树种的某个文件夹:
|
||||
- git filter-repo --path "文件名或文件目录" --invert-paths
|
||||
- git filter-repo --path "多个" --path "多个" --invert-paths
|
||||
查看远端仓库:
|
||||
|
||||
检查远端仓库信息
|
||||
- git remote -v
|
||||
```powershell
|
||||
git remote -v
|
||||
```
|
||||
|
||||
`origin` 是本地给远端仓库地址起的别名,也可以叫 `backup`、`gitee` 等。
|
||||
|
||||
## 日常提交
|
||||
|
||||
查看状态:
|
||||
|
||||
```powershell
|
||||
git status
|
||||
git status --short
|
||||
```
|
||||
|
||||
加入暂存区:
|
||||
|
||||
```powershell
|
||||
git add .
|
||||
```
|
||||
|
||||
提交到本地仓库:
|
||||
|
||||
```powershell
|
||||
git commit -m "提交说明"
|
||||
```
|
||||
|
||||
第一次推送并绑定上游:
|
||||
|
||||
```powershell
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
绑定后日常推送:
|
||||
|
||||
```powershell
|
||||
git push
|
||||
```
|
||||
|
||||
## 分支和上游
|
||||
|
||||
查看当前分支和上游关系:
|
||||
|
||||
```powershell
|
||||
git branch -vv
|
||||
```
|
||||
|
||||
`master` 或 `main` 是分支名。`git push origin master` 表示把本地 `master` 分支推送到 `origin` 这个远端。
|
||||
|
||||
`-u` 会把本地分支和远端分支绑定起来。绑定后,Git 知道当前分支默认推送到哪里。
|
||||
|
||||
## .gitignore 和取消跟踪
|
||||
|
||||
`.gitignore` 只会阻止未被跟踪的新文件进入 Git。已经被 Git 跟踪的文件,需要先从索引中移除。
|
||||
|
||||
只取消 Git 跟踪,保留本地文件:
|
||||
|
||||
```powershell
|
||||
git rm --cached -r -- "目录或文件名"
|
||||
git commit -m "Stop tracking local-only files"
|
||||
git push
|
||||
```
|
||||
|
||||
`--cached` 指 Git 索引/暂存区,不是普通缓存。它不会删除本地实际文件。
|
||||
|
||||
## 清理历史中的敏感文件
|
||||
|
||||
如果密码、密钥、Token 已经提交过,只从最新提交删除还不够,历史里仍然能看到。应先更换或吊销泄露过的密钥,再重写历史。
|
||||
|
||||
删除整个历史中的指定目录:
|
||||
|
||||
```powershell
|
||||
git filter-repo --path "密码本/" --path "服务器迁移/" --invert-paths
|
||||
```
|
||||
|
||||
如果不是 fresh clone,工具可能要求确认:
|
||||
|
||||
```powershell
|
||||
git filter-repo --force --path "密码本/" --path "服务器迁移/" --invert-paths
|
||||
```
|
||||
|
||||
`--path` 指定要匹配的路径;`--invert-paths` 表示反转选择,保留其他路径,删除这些指定路径。
|
||||
|
||||
`git filter-repo` 执行后可能会删除 `origin`,需要重新添加:
|
||||
|
||||
```powershell
|
||||
git remote add origin https://github.com/Ki5ter/Obsidian.git
|
||||
```
|
||||
|
||||
历史重写后强推远端:
|
||||
|
||||
```powershell
|
||||
git fetch origin
|
||||
git push --force-with-lease origin master
|
||||
```
|
||||
|
||||
`--force-with-lease` 会先确认远端分支还停在本地记录的位置,避免覆盖别人新推送的提交。
|
||||
|
||||
检查历史里是否还存在指定目录:
|
||||
|
||||
```powershell
|
||||
git log --all -- "密码本/" "服务器迁移/"
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user