写这篇博文的目的只是简单的给自己及团队的日常工作中需要用到的git命令作个汇总,这样平时只需要查阅这篇文章就够了,不用到处查找。如果能给有需要的朋友一点点的帮助,那也算是意外之喜吧。
一、基础配置
# 设置用户名和邮箱(首次使用必配)
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# 查看配置列表
git config --list
二、仓库操作
# 初始化新仓库
git init
# 克隆远程仓库
git clone <repo_url>
# 查看仓库状态
git status
三、代码提交
# 添加文件到暂存区
git add <file> # 单个文件
git add . # 所有修改
# 提交到本地仓库
git commit -m "commit message"
# 修改最后一次提交
git commit --amend
# 撤销未提交的修改(保留文件)
git restore --staged <file> # 从暂存区撤出
git restore <file> # 丢弃工作区修改
# 撤销最近一次提交(保留修改)
git reset --soft HEAD~1
# 撤销远程提交(强制推送覆盖)
git push -f origin <branch>
四、分支管理
# 查看分支
git branch # 本地分支
git branch -a # 所有分支
# 创建/切换分支
git checkout -b <new_branch>
# 合并分支
git merge <branch_name>
# 删除分支
git branch -d <branch_name>
# 对比两个分支差异
git diff branch1..branch2
# 对比本地与远程
git diff @{upstream}
# 图形化对比工具
git difftool -t vscode # 使用VSCode对比
五、远程协作
# 关联远程仓库
git remote add origin <url>
# 推送到远程
git push -u origin <branch>
# 拉取更新
git pull origin <branch>
# 查看远程库信息
git remote -v
六、版本控制
# 查看提交历史
git log --oneline --graph
git reflog show # 查看操作历史
# 回退版本
git reset --hard <commit_id>
# 暂存当前修改
git stash
git stash pop
七、实用技巧
# 查看文件修改差异
git diff
# 撤销工作区修改
git checkout -- <file>
# 重命名文件
git mv <old> <new>
八、协作场景解决方案
# 同步上游仓库更新
git remote add upstream <original-repo-url>
git fetch upstream
git merge upstream/main
# 解决冲突后继续变基
git rebase --continue
# 提交PR前清理历史
git rebase -i origin/main
九、建立远程仓库
以Gitee平台为例。
一)、前期准备
-
注册平台账号
- Gitee
- 完成邮箱验证(必需步骤)
-
配置本地Git身份
-
生成SSH密钥(免密推送必备)
二)、创建远程仓库(以Gitee为例)
-
网页端操作
- 点击「+」→「新建仓库」
- 填写仓库名(如
project-demo
) - 选择公开/私有 → 勾选「使用Readme初始化」→ 创建
-
获取仓库地址
- HTTPS:
https://gitee.com/yourname/project-demo.git
- SSH:
git@gitee.com:yourname/project-demo.git
(推荐)
- HTTPS:
三)、关联本地仓库
▶ 场景1:已有本地项目
# 进入项目目录
cd existing-project
# 初始化本地仓库
git init
# 关联远程仓库
git remote add origin git@gitee.com:yourname/project-demo.git
# 首次推送(-u 设置上游分支)
git push -u origin master # 或 main 分支
▶ 场景2:全新项目
# 克隆远程仓库到本地
git clone git@gitee.com:yourname/project-demo.git
# 进入目录添加文件
cd project-demo
touch new-file.txt
# 提交并推送
git add .
git commit -m "Add new file"
git push origin master
十、.gitignore文件配置
一)、.gitignore核心语法手册
1. 基础匹配规则
-
#
:注释行(例:# 忽略临时文件
) -
/
前缀:仅匹配根目录(例:/debug.log
不匹配src/debug.log
) -
*
通配符:跨文件名匹配(例:*.tmp
匹配所有.tmp后缀文件)
2. 高级路径控制
-
**/
:递归匹配任意子目录(例:**/cache/
忽略所有cache目录) -
!
取反:强制跟踪例外文件(例:!important.log
突破*.log
限制)
3. 字符集匹配
-
[abc]
:匹配指定字符(例:test[123].txt
匹配test1.txt但排除test4.txt) -
?
:匹配单个字符(例:file?.js
匹配fileA.js不匹配file10.js)
4. 删除已跟踪文件
git rm --cached <file>
# 从Git历史彻底删除误提交文件
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch sensitive.txt" \
--prune-empty --tag-name-filter cat -- --all
5.强制添加被忽略文件
git add -f secret.cfg
合理配置.gitignore可降低90%的仓库冗余,结合git sparse-checkout
还能实现部分克隆。建议定期审计忽略规则,将其纳入项目脚手架标准化管理。