您现在的位置是:首页 >技术教程 >Git常用命令网站首页技术教程
Git常用命令
配置相关
-
查看配置
git config --system --list 查看系统配置列表
git config --global --list 查看全局配置列表
git config --local --list 查看本地配置列表
-
设置配置
git config --global user.name "用户名" 设置全局用户名
git config --global user.email "邮箱" 设置全局邮箱
同理,使用system 或者local 可以设置系统或者本地配置信息。
-
删除配置
git config --global --unset user.name 清除设置用户名
git config --global --unset user.email 清除设置邮箱
仓库相关
git init [仓库名称] 初始化一个本地仓库,默认分支master
git status 查看仓库状态
git clone [url] 克隆仓库
本地操作
git add <file> ... 添加文件
git checkout -- <file> ... 撤回添加
git rm <file> ... 删除文件
git mv file1 file2 移动(重命名)文件
git commit -m "备注信息" 提交文件
git reset HEAD^ 撤回提交
git commit -am "备注信息" 添加并提交文件.即,git add 和 git commit 命令的组合形式,
标签操作
git tag 查看所有标签
git tag -d 标签名 删除标签(只是删除了本地的)
git push origin :refs/tags/远程标签名 删除远程仓库的标签 可以在删除本地标签后 执行这个操作 同步远程
git tag 标签名字 在当前仓库打个标签
git tag 标签名 commitid 给已知提交id的版本打标签
给历史提交打V1.1.1的tag标签 这里的commitid可以缩写 缩写成前6位就可以
例如 git tag V1.1.1 6f8f25 一样可以给这个提交id打上tag
git tag -l 过滤tag 例如 git tag -l "V1.1*" // V1.1 V1.11 可以过滤前面是V1.1开头的内容
git show 标签名称 查看tag的详细信息 包括commitid 作者信息 日期 内容
git push origin 标签名称 同步这个tag到远程服务器(默认tag是打在本地的 这个命令可以把它推到远程)
git push origin --tags 将本地所有tag推送到远程服务器
git pull --tags 把远程仓库的标签也拉取下来
git tag 标签名 -m "message" 在当前提交上,打标签,并给message信息注释
git tag 标签名 哈希值 -m "message" 在某个哈希值上打标签并且写上标签的信息
git tag 标签名 HEAD~4 在当前提交之前的第4个版本上 打标签
分支操作
git branch -av 查看分支,其中 -av 参数表示全部(包括远端分支)
git branch -r 查看远程所有分支
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
git checkout -b 分支名称 创建并切换分支
git branch -d 分支名称 删除分支(自己不能删除自己哈)
git branch -D 分支名称 强制删除分支
git merge 分支名 把该分支的内容合并到当前分支
git branch -m 旧分支 新分支 修改分支名称
git branch -M 旧分支 新分支 强制修改分支名称
git fetch 更新remote索引
git push -u origin 分支名 将本地分支推送到远端origin主机,同时指定origin为默认主机,之后使用就不需要加任何参数了,直接使用 git push
git push origin --delete 分支名 同步本地删除的分支到远端(删除本地之后删除远端分支)
变基操作
改写历史提交,把多次提交合并起来
git rebase -i HEAD~3
变基之后的哈希值与之前的不同 证明变基是重新做的提交 把多次提交合并成了几次提交
远程同步
git fetch [remote] 下载远程仓库的所有变动
git remote -v 显示所有远程仓库
git remote show [remote] 显示某个远程仓库的信息
git remote add [shortname] [url] 增加一个新的远程仓库,并命名
git pull [remote] [branch] 取回远程仓库的变化,并与本地分支合并
git push [remote] [branch] 上传本指定分支到远程仓库
git push [remote] --force 强行推送当前分支到远程仓库,即使有冲突(慎用)
git push [remote] --all 推送所有分支到远程仓库
查看操作
git status 显示有变更的文件
git log 显示当前分支的版本历史
git log --stat 显示commit历史,以及每次commit发生变更的文件
git log -S [keyword] 搜索提交历史,根据关键词
git log [tag] HEAD --pretty=format:%s 显示某个commit之后的所有变动,每个commit占据一行
git log [tag] HEAD --grep feature 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件
git log --follow [file] 显示某个文件的版本历史,包括文件改名
git whatchanged [file]
git log -p [file] 显示指定文件相关的每一次diff
git log -5 --pretty --oneline 显示过去5次提交
git shortlog -sn 显示所有提交过的用户,按提交次数排序
git blame [file] 显示指定文件是什么人在什么时间修改过
git diff 显示暂存区和工作区的差异
git diff --cached [file] 显示暂存区和上一个commit的差异
git diff HEAD 显示工作区与当前分支最新commit之间的差异
git diff [first-branch]...[second-branch] 显示两次提交之间的差异
git diff --shortstat "@{0 day ago}" 显示今天你写了多少行代码
git show [commit] 显示某次提交的元数据和内容变化
git show --name-only [commit] 显示某次提交发生变化的文件
git show [commit]:[filename] 显示某次提交时,某个文件的内容
git reflog 显示当前分支的最近几次提交
仓库迁移
首先在当前项目主分支先执行git pull 把代码更新为最新然后去拉取新的仓库代码就可以了,如果新仓库之前拉取过了,重新仓库迁移;里面分支没同步的话,执行 git fetch试一下,同步过来
git remote set-url origin <新的仓库名>
git push -u -f origin
git push -u -f origin --all 把所有分支迁移过去
git push -u -f origin --tags 把所有tag迁移过去
重要命令
git cherry-pick commitId 把其他分支的某一次提交内容(commitId)合并到当前分支(常用)
git commit --amend -m "备注信息" 回撤上一次提交并与本次工作区一起提交(追加)
git diff <file> ... 查看变更,工作区与暂存区的差异比对
git blame 文件名 查看该文件的修改历史(责任人)
git blame -L 100,10 文件名 从100行开始,到110行 逐行查看文件的修改历史
git reflog 日志显示(比较全面的日志信息,包括删除的内容)