创建版本库
命令 | 说明 |
---|
git clone <url> | 克隆远程版本库 |
git init | 初始化本地版本库 |
git remote add <remote> <url> | 增加远程版本库 |
git config --global user.name “xxx” | 配置用户名 |
git config --global user.email “xxx@xxx.com” | 配置邮件 |
add
命令 | 说明 |
---|
git add . | 将当前目录下所有文件增加git版本控制,包括子目录 |
git add <dir> | 将指定目录下的文件增加git版本控制,包括子目录 |
git add <file> | 将指定文件增加git版本控制 |
commit
命令 | 说明 |
---|
git commit -m <message> | 提交暂存区到本地仓库,message代表说明信息 |
git commit <file> -m <message> | 提交暂存区的指定文件到本地仓库 |
git commit --amend -m <message> | 使用一次新的commit,替代上一次提交 |
git revert <commit> | 撤销指定的提交 |
git reset <–hard/soft> <commit> | 删除指定的提交 |
【例】:如果想彻底删除本地最近一次提交记录,并同步到代码仓库:
git reset --hard HEAD^
git push origin master -f
branch
命令 | 说明 |
---|
git branch | 列出所有本地分支 |
git branch -r | 列出所有远程分支 |
git branch -a | 列出所有本地分支和远程分支 |
git branch <branch-name> | 新建一个分支,但依然停留在当前分支 |
git checkout -b <branch-name> | 新建一个分支,并切换到该分支 |
git checkout <branch-name> | 切换到指定分支,并更新工作区 |
git branch -d <branch-name> | 删除本地分支 |
git push <remote> --delete <branch-name> | 删除远程分支 |
push
命令 | 说明 |
---|
git push <remote> <branch/tag> | 上传本地指定[分支/标签]到远程仓库 |
git push <remote> --force | 强行推送当前分支到远程仓库,即使有冲突 |
git push <remote> --all | 推送所有分支到远程仓库 |
git push <remote> --tags | 推送所有标签到远程仓库 |
【注】:<remote> 默认是origin
, <branch>默认是master
pull
命令 | 说明 |
---|
git fetch <remote> | 从远程仓库获取最新代码(不会自动merge) |
git merge <branch> | 合并指定分支 |
git pull <remote> <branch> | 从远程仓库下载最新代码并快速合并分支 |
tag
命令 | 说明 |
---|
git tag | 列出所有本地标签 |
git tag <tag-name> | 基于最新提交创建标签 |
git checkout <tag-name> | 切换到指定标签 |
git tag -d <tag-name> | 删除本地标签 |
git push <remote> :refs/tags/<tag-name> | 删除远程标签 |
远程仓库地址切换/修改
命令 | 说明 |
---|
git remote -v | 查看远程仓库的地址 |
git remote set-url origin <url> | 更换远程仓库地址,url为新地址 |
git remote rm origin | 删除现有远程仓库 |
git remote add origin <url> | 添加新远程仓库 |
其他命令
命令 | 说明 |
---|
git status | 显示有变更的文件 |
git log | 显示当前分支的版本历史 |
git diff | 显示暂存区和工作区的差异 |
git diff HEAD | 显示工作区与当前分支最新commit之间的差异 |
git cherry-pick <commit> | 选择一个commit,合并进当前分支 |
其他相关知识