Git 命令大全

Git 命令大全

配置操作

全局配置

  • git config --global user.name "xxx" # 配置用户名称

  • git config --global user.email "xxx@xxx.com" # 配置用户邮箱

  • git config --global --unset user.name # 取消全局配置的用户名称

  • git config --global --unset user.email #取消全局配置的邮箱地址

  • git config --global color.ui true # 配置命令行着色

  • git config --global core.editor $(which vim) # 配置文本编辑器

  • git config --global merge.tool vimdiff # 配置差异分析工具

  • git config --global core.autocrlf true # 提交时转换为 LF,检出时转换为 CRLF

  • git config --global core.safecrlf true # 拒绝提交包含混合换行符的文件

  • git config --global core.whitespace trailing-space,space-before-tab # 修正空白符

  • git config --global alias. <* git-command> # 为 * git 命令创建一个快捷方式

  • git config --global core.quotepath off # 配置在 Windows 下 ASCII 字符的文件名正确显示

  • git config --global --list # 查看全局配置信息

局部配置

  • git config --local core.filemode false # 忽略文件权限

  • git config --local --list # 查看局部配置信息

基本操作

  • git init # 初始化一个仓库

  • git init --bare .* git # 创建一个祼仓库

  • git clone url # 从指定地址克隆一个仓库

  • git status # 查看当前工作区状态

  • git add . # 将当前目录下的所有文件添加到暂存区

  • git commit -m 'xxx' # 提交

  • git commit --amend -m 'xxx' # 合并上一次提交(反复修改)

  • git commit -am 'xxx' # 将 add 和 commit 合并为一步

    • git rm path/to/filename # 删除暂存中指定的文件

    • git remote add origin @:/path/to/repository/.* git # 将本地与远程分支关联起来

    • git push -u * github master # 初次提交

    • git branch --set-upstream-to=origin/ # 设置让本地某个分支跟踪远程的某个分支

    • git rm --cached filename # 从暂存区将文件移除

    • git checkout -- filename # 将文件彻底从暂存区放弃

    • git checkout --track hotfix/fix-menu # 检出远程分支 hotfix/fix-menu 并创建本地跟踪分支

    • git stash list # 显示进度列表

分支操作

  • git branch # 显示本地分支

  • git branch -a # 显示所有分支

  • git branch -D # 删除未曾合并过的分支

  • git branch -d # 删除已经合并过的分支

  • git branch -m oldName newName # 本地分支重命名

  • git push --delete origin # 删除远程分支

  • git branch --set-upstream-to origin/newName # 把本地分支与远程分支关联起来

  • git branch -v # 查看当前的本地分支与远程分支的关联关系

  • git diff origin/develop # 查看本地当前分支与远程某一分支的差异

  • git diff master origin/master # 查看本地 master 分支与远程 master 分支的差异

合并操作

  • git merge origin/master # 将远程 master 分支合并到本地 master

  • git merge --no-ff develop # 将 develop 分支合并到当前分支(不使用 Fast-forward)

  • git cherry-pick # 将其它分支上的合适提交挑选到当前分支

    • git rebase -i HEAD~~~ # 汇合提交:将之前的三次提交合并到一处(squash)
  • git rebase -i HEAD~3 # 修改提交(edit)

标签操作

  • git tag # 查看所有标签

  • git tag -l 'v2.6.*' # 搜索某个标签

  • git tag -a v1.0.2 -m ": ) Project v1.0.2 Released" # 新建某个标签

  • git push origin v1.0.1 # 推送某个标签到远程

  • git push origin --tags # 推送所有标签到远程

  • git show v1.0.2 # 查看某个标签的版本信息

  • git tag -d v1.0.1 # 删除本地标签

  • git push origin --delete tag # 删除远程标签

回滚操作

  • git reset --hard # 将本地版本退回到某次提交上

本地文件回滚

  • git log filename.* * git reset filename.*

  • git commit -m "Rollback filename.*"

  • git checkout filename.*

  • git reset HEAD < 文件名 > # 把暂存区的修改撤销掉,重新放回工作区

  • git revert HEAD # 撤销上一个提交

  • git reset --hard ORIG_HEAD # 回退到上一次 reset 之前

日志操作

  • git log # 显示简略的提交日志

  • git log -- filename # 查看某个文件变动的具体日志信息

  • git log -p -2 # 查看最近两次更新的内容差异

  • git log --stat # 显示简要的增改行数统计

  • git log -1 HEAD # 显示最后一次提交信息

  • git log --pretty=oneline # 单行显示日志信息

  • git log --pretty=oneline --graph --abbrev-commit # 查看图文格式日志

  • git log --graph --oneline --decorate --all # 通过 ASCII 艺术的树形结构来展示所有的分支,每个分支都标示了他的名字和标签

  • git log --name-status # 查看文件改变信息

  • git reflog # 显示所有提交,包括孤立节点

远程操作

  • git remote # 查看主要名

  • git remote -v # 查看主机名即网址

  • git remote show < 主机名 > # 查看主机的详细信息

  • git remote add < 主机名 > < 地址 > # 添加远程主机

  • git remote rename < 原主机名 > < 新主机名 > # 修改远程主机的别名

  • git remote rm < 主机名 > # 删除远程机器

  • git push * gitee master # 将当前 * gitee 分支推送到远程 master 分支

  • git checkout -b origin/ # 检出远程分支到本地分支

  • git remote rename master xiaohe # 重命名远程分支的名称

  • git push origin --delete # 删除远程某个分支

  • git remote update origin --prune # 更新远程分支列表

  • git push -f # 强制将本地推送到远程仓库