GIT命令大全

Wesley13
• 阅读 844

Git命令大全

Git最小配置
  • 某账号下所有的Git仓库都有效

    git config --global user.name '您的名称'git config --global user.email '您的Email'
    
  • 只对当前Git仓库有效

    git config --local user.name '您的名称'git config --local user.email '您的Email'
    
查看Git的配置
  • 查看global类型配置项

    git config --global --list
    
  • 查看只作用于当前仓库的配置项

    git config --local --list
    
清除Git的配置
  • 清除global类型的配置项

    git config --unset --global 某个配置项
    
  • 清除某个仓库的配置项

    git config --unset --local
    
本地基本操作
  • 查看变更情况

    git status
    
  • 查看当前工作在哪个分支上

    git branch -v
    
  • 切换到指定分支

    git checkout 指定分支
    
  • 把当前目录及其子目录下所有变更都加入到暂存区

    git add .
    
  • 把仓库内所有变更都加入到暂存区

    git add -A
    
  • 把指定文件添加到暂存区

    git add 文件1 文件2 文件3
    
  • 创建正式的commit

    git commit
    
  • 比较某文件工作区和暂存区的差异

    git diff 某文件
    
  • 比较某文件暂存区和HEAD的差异

    git diff --cached 某文件
    
  • 比较某文件工作区和HEAD的差异

    git diff HEAD 某文件
    
  • 比较工作区和暂存区的所有差异

    git diff
    
  • 比较暂存区和HEAD的所有差异

    git diff --cached
    
  • 把工作区指定文件恢复成和暂存区一样

    git checkout 文件1 文件2 文件3
    
  • 把暂存区指定文件恢复成和HEAD一样

    git reset 文件1 文件2 文件3
    
  • 把暂存区和工作区所有文件恢复成和HEAD一样

    git reset --hard
    
  • 用difftool比较任意两个commit的差异

    git difftool 提交A 提交B
    
  • 查看哪些文件没被Git管控

    git ls-files --others
    
加塞临时任务的处理
  • 把未处理的变更先保存到stash中

    git stash
    
  • 临时任务处理完后继续之前未完的工作

    git stash pop或者git stash apply# pop 不保留stash,apply 保留stash
    
  • 查看所有stash

    git stash list
    
  • 取回某次stash的变更

    git stash pop stash@{数字n}
    
修改个人分支的历史
  • 修改最后一次commit

    1) 在工作区修改文件2) git add .3) git commit --amend
    
  • 修改中间的commit(代号X)

    1) git rebase -i X前面一个commit的id2) 在工作区修改文件3) git add .4) git rebase --continue后续可能需要处理冲突,直到rebase结束
    
查看变更历史
  • 当前分支各个commit用一行显示

    git log --oneline
    
  • 显示就近的n个commit

    git log -n
    
  • 用图示显示所有分支的历史

    git log --oneline --graph --all
    
  • 查看涉及到某文件变更的所有commit

    git log 某文件
    
  • 某文件各行最后修改对应的commit以及作者

    git blame 某文件
    
分支与标签
  • 基于当前分支创建新分支

    git branch 新分支
    
  • 基于指定分支创建新分支

    git branch 新分支 已有分支
    
  • 基于某个commit创建分支

    git branch 新分支 某个commit的id
    
  • 创建分支并切换到该分支

    git checkout -b 新分支
    
  • 列出本地分支

    git branch -v
    
  • 列出本地和远端分支

    git branch -av
    
  • 列出远端所有分支

    git branch -rv
    
  • 列出名称符合某样式的远端分支

    git branch -rv -l '某样式'
    
  • 安全删除本地某分支

    git branch -d 拟删除分支
    
  • 强行删除本地某分支

    git branch -D 你删除分支
    
  • 删除已合并到master分支的所有本地分支

    git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d
    
  • 删除远端origin已不存在的所有本地分支

    git remote prune origin
    
  • 给commit打上标签

    git tag 标签名 commid的id
    
两分支之间的集成
  • 把A分支合入到当前分支,且为merge创建commit

    git merge A分支
    
  • 把A分支合入到B分支,且为merge创建commit

    git merge A分支 B分支
    
  • 把当前分支基于B分支做rebase,以便把B分支合入到当前分支

    git rebase B分支
    
  • 把A分支基于B分支做rebase,以便把B分支合入到A分支

    git rebase B分支 A分支
    
  • 用mergetool解决冲突

    git mergetool
    
和远端交互
  • 列出所有remote

    git remote -v
    
  • 增加remote

    git remote add url地址
    
  • 删除remote

    git remote remove remote名称
    
  • 改变remote的name

    git remote rename 旧名称 新名称
    
  • 把远端所有分支和标签的变更都拉到本地

    git fetch remote
    
  • 把远端分支的变更拉到本地,且merge到本地分支

    git pull remote名称 分支名
    
  • 把本地分支push到远端

    git push remote名称 分支名
    
  • 删除远端分支

    git push remote --delete 远端分支名或git push remote :远端分支名
    
  • 向远端提交指定标签

    git push remote 标签名
    
  • 向远端提交所有标签

    git push remote --tags
    

本文分享自微信公众号 - 飞桨PPDB(Tsing_Liu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
2年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Git设置
全局设置gitconfigglobaluser.name"用户名"gitconfigglobaluser.email"xxx@126.com"创建git仓库:mkdirdsa\_zhedacddsa\_zhedagitinittouchREADME.mdgita
Stella981 Stella981
3年前
Git 一般性操作
git全局设定gitconfigglobaluser.name“码云账号”gitconfigglobaluser.email“码云注册邮箱”git定位文件夹cd进入到需要同步的文件夹线面gitinit上传到gitgitadd.gitcommitm'
Stella981 Stella981
3年前
Git 实战教程
1.Git配置使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用gitconfig命令进行配置:​$gitconfigglobaluser.name"ilimhumar"$gitconfigglobal
Stella981 Stella981
3年前
Git基本用法(上)
1.Git配置gitconfigglobaluser.name"qwop"gitconfigglobaluser.email"qwop@live.cn"cat~/.gitconfig2\.获得一个仓库gitclonehttp://git.shiyanlou.com/shiyanlou/gitproject
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这