好用的git命令

115 阅读4分钟

注意:不能把git bash字体放太大,否则会格式错乱

查看配置

git init (初始化git仓库)

git config -l (查看git仓库所有配置)

git config --global --list (查看用户配置 )

git config --system --list (查看系统配置)

配置信息

git config --global user.name 'luo' (配置git的用户名为luo)

git config --global user. email 'luo@qq.com' (配置git的用户名为luo@qq.com)

生成密钥,连接远程仓库

ssh-keygen -t rsa   (生成密钥,有私钥和公钥)

将公钥复制到远程仓库

ssh -T git@github.com (测试是否与github远程仓库绑定密钥)

查看是否连接了远程仓库和添加远程仓库

git remote -v (查看远程仓库信息)

git remote add origin 仓库地址路径 (添加一个名中origin的仓库地址)

git clone 远程仓库地址路径 (克隆一个远程仓库)

提交代码基本操作

git  status   查看当前代码提交状态

git  add  文件名  将此文件提交到暂存区

git add .     将所有文件提交到暂存区

git commit -m '提交说明日志'  (将暂存区文件提交到本地资源区)

git commit  --amend (提交文件后,注释写错了,可以撤销上次提交)

git push -u origin master    (第一次提交需要加-u参数,将本地资源区提交到origin远程仓库的master分支上)

git pull  拉取代码到本地

分支操作

git branch (查看当前分支)

git branch -v  查看各个分支最后一个提交对象的信息(详细)

git branch 分支名    (创建一个分支)

git checkout  分支名  (切换到此分支)

git checkout  -b 分支名 (创建并切换到此分支)

git checkout -b 本地分支名 远程分支名

例如:git checkout -b sd_sprint83 origin/sd_sprint83 创建本地sd_sprint83分支,来源于远程origin/sd_sprint83分支

分支合并操作

git merge dev (将本地的 dev 合并到 master)

查看历史记录

git log 基础查看 (详细)

git log --oneline 基础查看(以行显示)

git log --pretty=oneline 基础查看(以行显示,更简洁)

git log --name-status   显示新增、修改、删除的文件清单

git log --stat  统计信息,添加或删除了多少行

git reflog (查看所有, 以索引显示)

git reflog show 分支名   (查看分支是基于哪个源分支创建的)

git reflog --date=local --all | grep 要查询的分支名称 (查看merge和checkout记录)

时光穿梭

git reset --hard [索引] (此索引根据git reflog 中的命令的开头hash值为索引)

git reset --hard HEAD^ (表示退回到上一级,^^表示上上级,以此类推)

git reset --hard HEAD~1(表示退回到上一级,~后面的数字表示退回多级)

​编辑

提交但还未push的,修改备注信息

git commit --amend

标签的操作

git  tag   查看本地分支标签

git ls-remote --tags   查看远程分支标签

git tag  标签名          添加标签

git tag v1.0.0  版本哈希码       给特定的版本添加tag

git  tag  v1.0.0  -m '备注信息'  版本哈希码        添加tag,顺便备注

git  tag  -d   v1.0.0    删除本地v1.0.0标签

git push origin  -d  v1.0.0    删除远程分支v1.0.0标签

git  push origin ---tags   提交所有标签到远程分支

git  push origin  v1.0.0   提交v1.0.0标签到远程分支

git  show v1.0.0    查看v1.0.0标签的提交信息

存储操作

git stash  将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录

git stash show   查看堆栈中最新保存的stash和当前目录的差异

git stash save 备注      将所有未提交的修改(工作区和暂存区)保存至堆栈中,并添加备注

git stash list  查看当前stash中的内容

git stash pop  将当前stash中的内容弹出,并应用到当前分支对应的工作目录上(要在对应的路径上),随后删除该记录

git stash apply 将当前stash中的内容弹出,删除当前的stash,并应用到当前分支对应的工作目录上(要在对应的路径上)

 git stash clear  清除堆栈中的所有内容

git stash push 文件名         stash指定的文件(得进入到相应的路径中)

git stash push 文件名1 文件名2    stash指定的多个文件(得进入到相应的路径中)

git stash drop stash@{num}  删除某个stash

取消暂存

git restore --staged 文件名    取消暂存某个文件

git reset HEAD   取消所有暂存文件

查看历史提交时所处的分支 

git branch --contains 89eb2ac2838dde77dab032a8e3b82ae087fc30b0 --all

(注:89eb2ac2838dde77dab032a8e3b82ae087fc30b0这个是提交的编码)