前言
这份指南专注于日常开发中最实用的Git命令,掌握它们可以帮你节省时间并减少困扰。
1. git init
在当前目录创建一个新的Git仓库。
git init
这会为项目启用Git版本控制,创建一个包含仓库元数据的.git目录,其中包括提交历史、分支和远程设置。
ps:如果你需要新建一个仓库,经常需要使用npm init -y
2. git clone
创建远程仓库的本地副本。
git clone #仓库URL
示例:
git clone https://github.com/test/hello-world.git
这会复制远程仓库的所有文件、历史记录和分支。
3. git status
显示工作目录和暂存区的当前状态。
git status
你会看到:
- 已修改但未暂存的文件
- 已暂存待提交的文件
- 未跟踪的文件
这是最常用的Git命令之一。
4. git add
将文件添加到暂存区,准备提交。
git add #文件
git add .
git add #文件添加指定文件git add .添加当前目录及子目录的所有更改
提示:执行前用git status查看要暂存的文件。
5. git commit
将暂存的更改保存为一个提交快照,并添加说明信息。
git commit -m "功能:添加认证模块"
每个提交信息应描述为什么进行更改,而不只是更改了什么。 使用清晰简洁的描述,帮助团队成员(和未来的自己)理解提交历史。
6. git diff
显示工作目录与暂存区或提交之间的差异。
git diff # 未暂存的更改
git diff --staged # 已暂存但未提交的更改
这有助于预览即将提交的内容,或查看提交之间的差异。
7. git log
显示提交历史记录。
git log
你会看到:
- 提交哈希值
- 作者姓名
- 日期
- 提交信息
简化显示:
git log --oneline --graph --decorate
这会以紧凑的可视化方式展示带分支和标签的提交历史。
8. git reset
重置暂存区或移动HEAD到不同的提交。
撤销暂存的更改:
git reset #文件
撤销提交(保留更改):
git reset --soft HEAD~1
撤销提交并删除更改:
git reset --hard HEAD~1
⚠️ 慎用--hard,这会永久删除更改。
9. git checkout
切换分支或恢复文件。
切换到分支:
git checkout main
将文件恢复到最后一次提交的版本:
git checkout -- index.html
自Git 2.23版本起,更安全的替代命令是:
git restore #文件
git switch #分支
10. git branch
列出、创建或删除分支。
列出分支:
git branch
创建新分支:
git branch @feature/login-form
删除分支:
git branch -d old-feature
11. git merge
将一个分支的更改合并到另一个分支。
git checkout main
git merge @feature/login-form
这会将功能分支合并到主分支。 如果同一文件存在冲突更改,Git会提示你手动解决。
12. git pull
从远程仓库下载更改并合并到本地分支。
git pull origin main
等同于:
git fetch
git merge
使用git pull --rebase避免产生不必要的合并提交。
git config pull.rebase true
13. git push
将本地提交上传到远程仓库。
git push origin main
用于与他人共享你的工作成果。
14. git stash
临时保存还不想提交的更改。
git stash
这会清理工作目录,让你可以干净地切换分支。
恢复暂存的更改:
git stash pop
查看所有暂存记录:
git stash list
15. git remote
管理远程仓库。
列出远程仓库:
git remote -v
添加新远程仓库:
git remote add origin https://github.com/user/repo.git
重命名远程仓库:
git remote rename origin upstream
16. git config
配置Git用户信息和行为。
设置全局用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
查看配置信息:
git config --list
设置默认文本编辑器:
git config --global core.editor "code --wait" # 使用VS Code
设置 VS Code 为可视化差异工具 (会新开一个窗口)
git config --global diff.tool vscode
git config --global difftool.vscode.cmd 'code --wait --reuse-window --diff $LOCAL $REMOTE'
配置别名简化命令:
git config --global alias.st status
git config --global alias.co checkout
最终提示
- 经常使用
git status和git log,它们让你知道,你在做什么。 - 不要害怕使用分支和暂存,它们能帮助你安全地进行实验。
- 始终编写有意义的提交信息。
- 掌握这16个命令,你就能应对大多数实际开发场景。