git 常用命令速查

git 常用命令速查

文本假设你已经懂得git的基本原理,但还不太熟悉命令行使用,提供常用git命令的快速查询

基本配置

  • 设置用户名:git config --global user.name [user]
  • 设置邮箱:git config --global user.email [email]
  • 永久保存帐号密码:git config --global credential.helper store
  • 临时保存帐号密码:git config --global credential.helper cache
  • 查看所有配置:git config --list
  • 删除配置:git config --global --unset [config]
  • 配置代理:git config [–global] http.proxy|https.proxy (不加–global时只对当前repo生效)

仓库操作

  • 检出仓库:git clone [url]
  • 同步远端仓库并merge:git pull [remote] [local]
  • 同步远端仓库并rebase:git pull -r [remote] [local]
  • 查看远端仓库:git remote -v
  • 添加远端仓库:git remote add [name] [url]
  • 删除远端仓库:git remote rm [name]
  • 修改远端仓库:git remote set-url --push [name] [newURL]

差异比较

  • 查看工作区状态:git status [-s] (-s使用精简方式显示)
  • 对比工作空间和暂存区:git diff
  • 对比工作空间和特定提交: git diff [commit]
  • 对比暂存区和特定提交:git diff --staged [commit]
  • 对比两次提交:git diff [commit1] [commit2]

查看日志

  • 显示完整日志:git log
  • 显示完整日志:git log --oneline
  • 显示完整日志:git log --oneline --graph
  • 查看分支拉出后的分支修改:git log [-p] master…[name]
  • 查看分支拉出后的所有修改:git log [-p] master…[name]
  • 每次修改的文件列表:git log --name-only
  • 每次修改的文件列表和状态:git log --name-status
  • 每次修改的文件列表和统计:git log --stat
  • 每次修改的文件列表:git whatchanged
  • 每次修改的文件列表和统计:git whatchanged --stat
  • 显示最后一次提交:git show
  • 显示最后n次提交:git show -n
  • 显示指定提交的具体内容:git show [commit]
  • 查看本地所有提交,包括已删除的:git reflog

文件操作

  • 新增文件:git add [file]
  • 删除文件:git rm [file]
  • 移动、重命名文件:git mv [from] [to]
  • 提交修改:git commit -m [log]
  • 提交所有已修改未暂存文件:git commit -a -m [log]

文件回滚

  • 回滚未提交暂存区的文件:

    1. 单个文件:git checkout – [filename]
    2. 所有文件:git checkout .
  • 回滚已提交暂存区文件

    1. 单个文件:git reset HEAD [filename]
    2. 所有文件:git reset HEAD .
  • 删除所有非版本库文件:git clean -dxf

  • 删除版本库文件:git rm [file]

  • 回滚暂存区文件:git reset HEAD [file]

  • 回滚本地提交记录并保留修改:git reset [commit]

  • 回滚本地提交记录,同时回滚本地文件:get reset --hard [commit]

分支操作

  • 查看本地分支:git branch
  • 查看远程分支:git branch -r
  • 查看所有分支:git branch -a
  • 创建本地分支:git branch [name]
  • 切换分支:git checkout [name]
  • 创建并切换到新分支:git checkout -b [name]
  • 删除已合并分支:git branch -d [name]
  • 强制删除分支:git branch -D [name]
  • 创建远程分支:git push origin [local]:[remote]
  • 删除远程分支:git push origin :[name]

代码合并

  • 合并分支:git merge [branch]
  • rebase分支:git rebase [branch]
  • 撤销合并:git merge --abort
  • 合并指定提交:git cherry-pick [commit]

特别说明:

  • rebase master后相当于从最新主干拉出分支并进行了修改
  • merge master后相当于把最新主干修改合并到分支并生成一个新的commit(和SVN的merge一样)

冲突处理

  • 使用远程分支:git checkout --theirs [file]
  • 使用当前分支:git checkout --ours [file]

子模块

  • 初始化子模块:git submodule init
  • 更新子模块:git submodule update

储藏操作(stashing)

  • 保存已修改和在暂存区的文件:git stash
  • 查看已储藏的信息:git stash list
  • 应用储藏:git stash apply [stash@{n}]
  • 应用并移除最近的储藏:git stash pop

LFS(Large File Storage)

  • 安装lfs:brew|yum|apt-get install git-lfs
  • 开启lfs功能:git lfs install
  • 查看现有的文件追踪模式:git lfs track
  • 开启大文件追踪:git lfs track [file],需要提交gitattributes文件
  • 显示已追踪的文件列表:git lfs ls-files

你可能感兴趣的:(git 常用命令速查)