git常用命令
1、Git的一些概念
工作区 (Workspace):写代码的地方,在编辑器(vscode)写的每一行代码都是在工作区进行的
暂存区 (Index/Stage):对工作区的代码进行暂存并等待提交,进入了暂存区才会真正进入版本控制阶段(.git/index 中保存了从工作区暂存的更改)
本地仓库 (Repository):提交后的代码在本地仓库中进行版本控制
远程仓库 (Remote):云端仓库,一般存在Github上
2、Git常见分支命名
| 分支 | 说明 |
| main/master | 主分支。正式版本,最稳定的 |
| dev | 开发分支。功能最新最全的分支,在此分支上修复 bug |
| feat-* | 新功能分支。某个功能正在开发阶段,在此分支上写 bug |
| release-* | 发布定期要上线的功能 |
| bug-*/issue-* | 修复线上代码的 bug |
3、Git常用命令总结
# 创建版本库 git clone <url> # 克隆远程版本库 git init # 初始化本地版本库 git config --global user.name "user" # 设置用户名 git config --global user.email "user@163.com" # 设置邮箱,邮箱地址必需为真实的邮箱地址 git config --list # 查看配置 # 修改和提交 git status [-s] # -s(可选)表示简短的输出结果 git diff # 查看变更内容 git add <file> # 跟踪指定的文件 git add . # 跟踪所有改动过的文件 git commit -m "message" # 提交所有更新过的文件 git commit -a -m "message" # 暂存所有文件并提交 git commit --amend # 修改最近一次提交(前提是还未推送) git mv <old> <new> # 文件改名 git rm <file> # 删除文件 git rm --cached <file> # 停止跟踪文件但不删除 # 查看提交历史 git log # 查看提交日志 git log --oneline # --online参数只输出提交id(哈希 SHA1值)和提交信息 git log --stat # 显示哪些文件进行了修改 git log --author="<username>" # 获取指定用户的提交日志 git log -p <file> # 查看指定文件的提交日志 git blame <file> # 以列表方式查看指定文件的提交日志 git rebase -i HEAD~[n] # n为要合并的记录条数,将要合并的最新一个Commit的操作保留为pick。将后续几个要合并的Commit的操作改为s。保存文件并退出 git reflog # 查看操作历史(找到丢失的commit) git reset --hard commit_hash # 回到任意时间点 # 撤消 git reset --hard HEAD # 撤消工作目录中所有未提交文件的修改内容 get checkout HEAD <file> # 撤消指定的未提交文件的修改内容 git revert <commit> # 撤消指定的提交 # 分支与标签 git branch # 显示所有本地分支 git checkout <branch/tag> # 切换到指定分支或标签 git checkout -b <branch_name> # 新建并切换至新分支 git branch <new-branch> # 创建新分支 git branch -d <branch> # 删除本地分支 git branch recovered-branch commit_hash # 找回被删除的分支 git branch -m old_branch new_branch # 重命名分支 git branch -M old_branch new_branch # 强制重命名一个分支,即使目标分支名称已经存在 git tag # 列出所有本地标签 git tag <tagname> # 基于最新提交创建标签 git tag -d <tagname> # 删除标签 # 合并与衍合 git merge <branch> # 合并指定分支到当前分支 git rebase <branch> # 衍合指定分支到当前分支 # 远程操作 git remote -v # 查看远程版本库信息 git remote show <remote> # 查看指定远程版本库信息 git remote add <remote_name> <url> # 添加远程版本库 git remote remove/rm <remote_name> # 删除一个远程引用(例如远程名为origin) git fetch <remote_name> # 从远程库获取代码 git pull <remote_name> <branch> # 下载代码及快速合并 git pull --rebase origin main # 从远程main分支获取更新并将当前工作分支的提交“变基”到远程提交之上。这样可以让本地提交记录线性,避免额外的合并提交 git push <remote_name> <branch> -f # 上传代码及快速合并,-f:强制推送,第一次提交需要加-u选项,git push -u origin feature git push <remote_name> --delete <branch> # 删除远程分支 git push origin :feature # 删除名为feature的远程分支(冒号前为空表示删除) git push --set-upstream origin new_branch # 推送新分支到远程仓库 git push --tags # 上传所有标签
3、git别名配置(~/.gitconfig)
[alias] co = checkout br = branch ci = commit st = status lol = log --oneline --graph --decorate fixup = commit --fixup ri = rebase -i
参考链接:
https://liaoxuefeng.com/books/git/branch/rebase/index.html # Git教程
https://developer.aliyun.com/article/1511081 # git rebase合并当前分支的多个commit记录
https://git-scm.com/book/zh/v2 # git官方文档
浙公网安备 33010602011771号