Git 常用命令集
git init
git init 初始化Git仓库
git init newrepo 指定目录作为Git仓库
git clone <repo>
git clone ssh://git@test.szwn.io:8080/test-szwn.git 从Git仓库中拷贝项目
git remote
git remote -v 查看信息
git remote add [shortname] [url] 添加远程版本库
git remote rm [shortname] 删除远程版本库
git remote rename [old_name] [new_name] 修改远程版本库名
git config
配置文件的权重是仓库>全局>系统
git config --list --local 显示仓库级别git配置信息
git config --list --global 显示用户级别git配置信息
git config --list --system 显示系统级别git配置信息
git config -e --local 编辑当前仓库下的.git/config
git config -e --global 编辑用户级别下的~/.gitconfig
git config -e --system 编辑系统级别git安装目录下的 /etc/gitconfig
git config --global user.name "zhangsan" 设置用户名称
git config --global user.email "zhangsan@szwn.com" 设置用户邮箱
git config --global --add user.phone 12345 添加配置
git config --global --get user.phone 获取配置
git config --global --unset user.phone 删除配置
git branch
git branch 列出本地已经存在的分支,当前分支*标记
git branch -r 查看远程分支
git branch -a 查看所有分支,包括本地和远程
git branch zs-szwn-testGit 创建名为zs-szwn-testGit分支
git branch -d zs-szwn-testGit 删除分支(分支中有未merge的提交,会删除失败)
git branch -D zs-szwn-testGit 强制删除分支
git branch -m oldName newName 给分支重命名
git status
git status 查看上次提交后是否文件再次修改
git status -s 简短输出结果
git checkout
git checkout filename 放弃单个文件的修改
git checkout . 放弃当前目录下的修改
git checkout zs-szwn-testGit 切换分支
git checkout -b zs-szwn-testGit 切换分支(没有则创建)
git checkout -b newbranchname origin/oldbranchname 根据已有分支创建新分支
git checkout --help 查看命令
git checkout -f zs-szwn-testGit 强制切换(有冲突时会丢弃,慎用)
git diff
git diff 显示工作区与暂存区文件的差异
git diff [file] 显示工作区与暂存区某文件的差异
git diff --cached [file] 显示暂存区与最新本地版本库的差异
git diff --staged [file] 显示暂存区与最新本地版本库的差异
git diff [commit-id1] [commit-id2] 显示暂存区与上一次提交某文件的差异
git add
git add . 添加所有文件到暂存区
git add [file1] [file2] ... 添加多个文件到暂存区
git add src/* Ant通用匹配符添加
git commit
git commit -m ‘message’ 提交文件
git commit -a 修改文件后不需要执行 git add 命令,直接来提交
git push
git push <远程主机名> <本地分支名>:<远程分支名> 上传远程合并
git push <远程主机名> <本地分支名> 本地远程分支名相同
git push origin zs-szwn-testGit 上传zs-szwn-testGit分支到origin主机
git push --force origin zs-szwn-testGit 强制推送分支
git fetch
git fetch <远程主机名> 将某个远程主机更新取回本地
git fetch <远程主机名> <分支名> 取回特定分支的更新
git fetch orign master 取回orign的master分支
git merge
git merge 合并远程对应的分支到本地当前分支
git merge <远程主机名>/<分支名> 合并远程特定分支到本地当前分支
git merge <远程主机名>/<分支名> --no-commit 不提交当前合并结果
git rebase
git rebase -i HEAD~2 将本地最近两次提交合并为一个
git rebase <分支名> 将基准分支更新到当前分支
git rebase <远程主机名>/<分支名> 将远程基准分支更新到当前分支
git pull
git pull <远程主机名> <远程分支名>:<本地分支名> 将某个远程分支拉取并合并到本地分支
git pull origin master:master 将远程master分支拉取并合并到本地master
git pull origin master 将远程master分支拉取并合并到当前分支
git reset
git reset HEAD [file1] [file2] ... 撤销已经add或者修改到暂存区的文件
git reset src/* Ant通用匹配符撤销
git reset HEAD 回退暂存区文件与上一次提交一致
git reset [--soft | --mixed | --hard] [HEAD] 回退到某次提交的版本
git reset HEAD^ 回退到上一个版本
git reset HEAD^^ 回退到上上个版本
git reset HEAD^^^ 回退到上上上个版本
git reset HEAD~1 回退到上一个版本
git reset HEAD~2 回退到上上个版本
git reset HEAD~3 回退到上上上个版本
git log
git log 查看提交历史
git log --oneline 简洁模式
git log --oneline --reverse -5 反转5行
git log --oneline --author=chentang -5 查找指定用户提交
git log --graph -5 开启拓扑图选项
git log -p FETCH_HEAD 查看fetch后的更新信息
git stash
git stash save 'message' stash文件
git stash list 查看stash list
git stash show 查看有哪些改动默认第一个
git stash show stash@{1} 查看第一个存储改动
git stash drop stash@{$num} 丢弃stash@{$num}存储
git stash apply 应用当前stash中的内容
git stash pop 当前stash中的内容弹出并删除
git stash clear 删除所以缓存的stash
git tag
git tag 查看标签
git tag -l 查看标签
git tag --list 查看标签
git tag -l "v1.4.*" 按照特定模式查看标签
git tag -a v1.4.0 -m "version 1.4" 创建标签
git show v1.4.0 看到标签信息和与之对应的提交信息
git push origin v1.4.0 push到远端
git tag -d v1.4.0 删除tag
git checkout v1.4.0 签出标签
git cherry-pick
git cherry-pick <commitHash> 应用某一个提交到工作区