git命令小结
基本配置
ssh
生成ssh-key作为GitHub免密push的凭证
代码语言:javascript复制#1. 执行
ssh-keygen
#2. 连续回车,默认生成的路径在C:Users{用户名}.sshid_rsa.pub
#3. 将设置复制id_rsa.pub内容到github个人中心
#具体步骤,头像--setting--ssh and GPG keys--new ssh key--输入保存(add ssh key)即可
#4. 测试
ssh -T git@github.com
# Attempts to ssh to GitHub
config
代码语言:javascript复制# 配置文件的生效采用就近原则,仓库>用户>全局
# 不同配置项同时生效,相同配置项优先级高的覆盖优先级低的 文件分别位于
# /etc/gitconfig Win:C:Program FilesGitmingw64etcgitconfig
# ~/.gitconfig Win:C:Users{用户名}.gitconfig
# .git/config
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
#查看当前仓库配置信息
git config --local --list
#新配置,定义用户名和邮箱,用户名一定是GitHub名字
git config --global user.name "qaiu" #名称
git config --global user.email "736226400@qq.com" #邮箱
# 查看当前git版本
git --version
常用命令
代码语言:javascript复制#1.克隆
git clone https://github.com/xxx/xxx.git(项目地址)
#2.初始化项目为git仓库
git init 目录名
#3.添加文件到暂存区
git add 文件/目录名
git add . #添加全部
#4.提交暂存区文件到本地仓库
git commit -m '提交消息'
#5.添加远端地址
git remote add origin(远端的名字) https://github.com/xxx/xxx.git(项目地址)
git remote #列出所有远端仓库
#6.推送到远端仓库
git push origin master(分支名)
git push #第二次提交可以省略 远端名和分支名
#7.将远端和本地合并
git pull origin master
git pull
分支管理
- 创建和删除
# 列出所有分支
git branch -[r,a,d,m]
# 创建分支
git branch 分支名
# 删除本地分支
git branch -d 分支名
git branch -D 分支名 #强制删除
# 删除远端分支
git push origin :分支名称
- 切换分支
git checkout 分支名
# 或者不使用git branch新建,直接git checkout -b实现新建与切换
git checkout -b 分支名
- 拉取合并分支
# 取回远程主机某个分支的更新,再与本地的指定分支合并。
git pull <origin> <远程分支名>:<本地分支名>
git pull -p #在本地删除远程已经删除的分支
git push -u origin master #指定一个默认主机,这样后面就可以不加任何参数使用git push
git push --all origin #将本地的所有分支都推送到远程主机
# 在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:tmp
# 来比较本地代码与刚刚从远程下载下来的代码的区别
git diff tmp
# 合并temp分支到本地的master分支
git merge tmp
# 如果不想保留temp分支 可以用这步删除
git branch -d temp
版本管理
代码语言:javascript复制#直接从暂存区删除文件,工作区则不做出改变
git rm --cached <file>
#同时删除工作区和缓存区
git rm <file>
#移除所有未跟踪文件
#一般会加上参数-df,-d表示包含目录,-f表示强制清除。
git clean [options]
#版本树
git log
git log --pretty=oneline
#时光机
#保留源码,只回退回退commit和index信息
git reset {id}
#完全回退
git reset --hard HEAD^^^..
git reset --hard HEAD~n
git reset --head {id}