Git 常用命令
这份笔记记录了我在日常使用 Git 的过程中最常用的几组命令,按操作频率整理成初始化、远程、忽略、提交、推送以及别名设置几个部分。所有命令都保持原样,配图也没有改动。
初始化仓库
在一个新目录下运行以下命令即可初始化本地仓库:
git init
初始化后可以观察 .git 目录下的 config 文件,里面记录了仓库的基本配置和远程信息。

克隆远程仓库
把远程项目拉下来,最常用的就是:
git clone https://adfsasdf.git
克隆完成后就会在本地生成与远程仓库对应的目录结构和 .git 配置。
远程仓库管理
查看远程
查看当前目录下已配置的远程仓库及其地址:
git remote -v
添加远程
为当前仓库注册远程地址,rep1 是起的别名,方便在后续命令里引用完整地址:
git remote add rep1 git@github.com:Hanzlgit/obsidian.git
建议将主要远程命名为 origin,对图示添加远程后 config 文件会同步记录:

删除远程
如果不需要某个远程,可以用别名删除它:
git remote rm rep1
修改远程地址
保持远程别名不变但切换到另一个仓库:
git remote set-url obsidian git@github.com:Hanzlgit/obsidian.git
重命名远程
如果只是想换一个更容易记的名字,地址保持原样:
git remote rename obsidian bieming1
忽略文件
在仓库根目录创建 .gitignore,列出不想提交的文件夹或文件类型,示例内容如下:
# 忽略特定文件夹
folder_name/
build/
node_modules/
dist/
# 忽略特定文件
*.log
*.tmp
暂存与提交
所有改动先添加到暂存区,再提交到本地仓库,最后再推送到远程。
git add .
添加完成后可以用 git status 看到工作区与暂存区的差异:
git status

本地提交命令如下:
git commit -m "first commit"

推送到远程
把本地分支推送到远程(建议统一使用 origin):
git push obsidian master
git push origin master
配置别名
在 .git/config 或全局 C:\Program Files\Git\etc\gitconfig 里新增 [alias],把常用命令绑定给简短名字,例如:
[alias]
go = !git add . && git commit -m 'Auto commit' && git push obsidian master
当命令需要接收参数时,可以使用 shell 函数的形式,注意符号 \ 表示续行:
[alias]
go = "!f() { \
if [ -z \"$1\" ]; then \
git add . && git commit -m \"Auto commit\" && git push obsidian master; \
else \
git add . && git commit -m \"$1\" && git push obsidian master; \
fi \
}; f"
也可以写成一行,省略换行符后的续行符:
[alias]
go = "!f() { if [ -z \"$1\" ]; then git add . && git commit -m \"Auto commit\" && git push obsidian master; else git add . && git commit -m \"$1\" && git push obsidian master; fi }; f"
永久设置别名
如果需要在所有仓库共用别名,请在管理员模式下编辑 C:\Program Files\Git\etc\gitconfig,确保 [alias] 区域里统一使用 origin 作为默认远程:
[diff "astextplain"]
textconv = astextplain
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[http]
sslBackend = openssl
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
[core]
autocrlf = true
fscache = true
symlinks = false
[pull]
rebase = false
[credential]
helper = manager-core
[credential "https://dev.azure.com"]
useHttpPath = true
[init]
defaultBranch = master
[alias]
go = "!f() { \
if [ -z \"$1\" ]; then \
git add . && git commit -m \"Auto commit\" && git push origin master; \
else \
git add . && git commit -m \"$1\" && git push origin master; \
fi \
}; f"