前言
我用过的git命令汇总,方便自己查看
命令
本地
-
初始化
git init git config user.name ## 查看当前git用户用户名 git config user.email ## 查看当前git用户邮箱 git config user.name KBellX git config user.email 1017990427@qq.com ## 注意,提交到远程的log中提交者能否正常显示,这个是关键 git config --global ## 全局配置
-
查看
git status ## 查看修改 git log ## 查看版本历史 git diff ## 查看工作区与stage区别
-
提交
git add <file> ## 提交到stage git commit -m "说明" ## 提交到本地仓库 git commit -am '说明' ## add并commit
-
撤销修改
git clean -f ## 删除untracked files git checkout -- <file> ## 根据 stage 撤销 工作区 修改 git reset HEAD <file> ## 根据 本地仓库 回退 stage 修改
-
回退
git reset HEAD^ ## 退回上一个版本 git reset HEAD~2 ## 退回到前2个版本,依次类推 git reset fc7098 ## 退回到版本号 fc7098 版本 git reset fc7098 --soft ## 版本库退回指定版本,stage与工作区不退 git reset fc7098 ## 默认参数为 mixed,版本库与stage退回,工作区不退 git reset fc7098 --hard ## 三区都退回指定版本
-
分支
git branch ## 查看分支 git branch <name> ## 创建分支不切换 git branch -d <name> ## 删除分支 git checkout <name> ## 切换分支 git checkout -b <name> ## 创建并切换分支
-
合并
git merge dev ## 合并本地dev分支到当前分支
远程
-
一个本地仓库可以关联多个远程仓库,远程主机名默认是
origin
-
一条分支只能与一条分支建立追踪关系
-
这里说的关联远程仓库,与远程分支建追踪关系都是单方向的,即本地与远程建关系,远程并不知道
-
看
项目目录/.git/config
,就清晰明了,remote
,branch
等指令就是对该文件编辑。 -
远程主机
git remote -v ## 查看远程主机 git remote add 远程主机 url ## 添加远程主机 git remote set-url 远程主机 url ## 改指定远程主机url,一般用于https与ssh转换 git remote rm 远程主机 ## 删除远程主机,与其分支有追踪关系的本地分支的追踪关系全清空
-
远程分支
git branch -vv ## 查看分支追踪关系 git branch -r ## 查看远程分支 git branch -a ## 查看所有分支 git branch --set-upstream-to=origin/master master ## 本地master分支与origin主机的master分支建追踪关系
-
认证
- https:要输一次账号密码
- ssh:
-
push
## 推送本地dev分支到origin主机dev分支(不存在则新建),并建立追踪关系 git push --set-upstream 远程主机名 要推送的本地分支 git push --set-upstream origin dev git push -u origin master ## 将本地master分支推送到远程origin主机的master分支,并指定origin为默认主机 git push origin master:master ## 将本地master分支(冒号前)推送到远程主机origin的master分支(冒号后) git push origin master ## 将本地master分支推送到远程主机origin中与之有“追踪关系”的分支,不存在则新建 git push origin :master ## 推送空分支到远程master分支,即删除远程master分支 git push origin ## 推送当前分支到远程主机origin与之有“追踪关系”的分支 git push ## 推送当前分支到(只存在一个或默认主机)的与之有"追踪关系"的分支
-
pull:
git pull = git fecth + git merge
git pull origin dev:master ## 取回远程主机origin的dev分支,与本地master分支合并 git pull origin dev ## 取回远程主机origin的dev分支,并与当前分支合并 git pull origin ## 取回与当前分支有追踪关系的远程分支并合并 git pull ## 取回默认主机的与本地当前分支有追踪关系的分支,并合并
使用场景
已存在远程仓库,如何弄到本地
-
方式一:
git remote add origin url git pull origin master git branch --set-upstream-to=origin/master master
-
方式二:相当于上面3条指令
- 给本地仓库添加远程主机origin,url为clone的url
- 本地master分支与远程origin分支建追踪关系,其它分支没有建
git clone url