Git是一种分布式版本控制工具,关于Git基础知识不过多介绍,感兴趣的童鞋请戳它Git文档,本文主要给大家整理一下工作中常用到的Git操作命令。
配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --list # 显示当前git配置信息
创建ssh key密钥
ssh-keygen -t rsa -C "email.example.com"
cat ~/.ssh/id_rsa.pub
初始化
git clone -b production url # 克隆指定分支
git init # 创建Git仓库
暂存 git add
git add [file1] [file2] # 暂存文件
git add . # 暂存所有文件,或者-A,或者--all
git add dist # 暂存dist文件夹
git add ./*.js # 支持正则
取消暂存 git reset
git reset HEAD file1 # 撤销暂存,不覆盖工作区,将文件变为已修改状态
git reset [file] # 撤销暂存,不覆盖工作区,文件的修改还在工作区
git reset --hard # 撤销暂存,并丢弃修改,工作区和上次commit一致
git reset --hard 3628732 # 回退到指定版本,覆盖工作区和暂存区
丢弃修改 git checkout --
git checkout -- file # 丢弃未暂存文件的修改
git checkout . # 丢弃所有未暂存文件的修改
git checkout dist # 丢弃dist文件夹的修改
git clean -f [./dist] # 丢弃所有未跟踪的文件,-d表示也丢弃文件夹
提交 git commit
git commit -m "描述信息" # 将修改提交到本地仓库
提交到远程仓库 git push
git push origin master # 提交到远程仓库
拉取远程仓库 git pull
git pull # 拉取数据,并合并到当前分支,git pull实际上相当于执行了git fetch、git merge
git pull origin dev # 拉取远程dev分支的内容到当前分支,默认是origin master
git fetch [remote-name] # 从远程仓库拉取本地没有的数据
git rebase master # 在当前分支上获取master分支所有的修改,-i 参数表示将修改压缩为一个,只用解决一次冲突
分支 git branch
git branch # 查看本地所有分支
git branch -a # 查看本地所有分支和远程分支,红色表示远程分支
git branch dev # 创建dev分支
git checkout dev # 切换到dev分支
git checkout -b dev # 创建dev分支,并切换到dev分支,相当于执行了git branch 和 git checkout
git branch -d dev # 删除本地dev分支
git branch -dr dev # 删除远程dev分支
git co # git checkout的简写
git br # git branch的简写
合并分支 git merge
git merge dev # 将dev分支合并到当前分支,默认是 --ff 快进模式
git merge dev --no-ff # 关闭fast-forward,创建一个新的合并提交,而不是把dev的提交历史都合并过来。合并完,需要执行git push
git merge dev --squash # 将dev的提交进行压缩,然后整合到master上,master上只有这一次合并提交,合并后需要再进行一次提交
![](https://img.haomeiwen.com/i15160044/db4fcccc92ffb151.png)
查看改动 git diff
git diff # 查看所有文件的改动
git diff readme.txt # 查看某个文件的改动
git diff HEAD # 查看工作区相对于当前分支最近一次提交的修改
git diff --staged # 查看暂存区的改动
查看仓库状态 git status
git status # 查看git仓库当前状态
提交记录 git log
git log [--pretty=oneline] # 显示提交日志
git log --graph # 查看分支合并图
git reflog # 查看历史提交commit id
git reset --hard 3628732 # 回退到指定版本,3628732是commit id
git rm readme.txt # 暂存区删除文件,需要commit提交到版本库
git log 可选参数
-p # 按补丁格式显示每个更新之间的差异
--stat # 显示每次更新的文件修改统计信息
--shortstat # 只显示 --stat 中最后的行数修改添加移除统计
--name-only # 仅在提交信息后显示已修改的文件清单
--name-status # 显示新增、修改、删除的文件清单
--abbrev-commit # 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符
--relative-date # 使用较短的相对时间显示(比如,“2 weeks ago”)
--graph # 显示 ASCII 图形表示的分支合并历史
--pretty # 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)
-2 # 控制输出的条数
网友评论