git常用命令
git初始化命令
初始化本地仓库
git
git init
初始化完毕后,目录中会生成一个.git目录
设置签名
签名分为项目级别和系统级别
形式
用户名:tom
Email:goodMorning@qq.com
作用: 区分不同开发人员的身份
这里的用户名和Email与github里面的无关
命令
git
git config user.name 用户名
git config user.email 邮箱
--or
git config --global user.name 用户名
git config --global user.email 邮箱
信息保存位置:
git
.git/config
~/.gitconfig
状态查看
查看工作区、暂存区状态
git
git status
添加操作
将工作区的的“新建/修改”添加到暂存区
git
git add [file name]
提交操作
将暂存区的内容提交到本地库
git
git commit -m 'commit message' [file name]
查看历史记录
git log
多屏显示控制方式:空格向下,b向上,q退出
git log --pretty=oneline
git log --oneline
git reflog
HEAD@{移动到当前版本需要多少步}
前进后退
本质是操作HEAD指针
基于索引值
git reset --hard [局部索引值]
使用^符号: 只能后退
一个^表示后退一步,N个表示后退N步
git
git reset --hard HEAD^
git reset --hard HEAD^^
git reset --hard HEAD^^^
使用~符号: 只能后退
后退3步
git
git reset --hard HEAD~3
后退50步
git
git reset --hard HEAD~50
reset命令的三个参数对比
- soft:仅仅在本地库移动HEAD指针
- mixed:在本地库移动HEAD指针并重置暂存区
- hard:在本地库移动HEAD指针并重置暂存区与工作区
删除文件并找回
前提是删除前,文件存在时的状态提交到了本地库
git
git reset --hard [指针位置]
删除操作已经提交到本地库:指针位置指向历史记录
删除操作尚未提交到本地库:指针位置使用HEAD
比较文件差异
将工作区中的文件和暂存区进行比较
git
git diff [文件名]
将工作区中的文件和本地库历史记录比较
git
git diff [本地库中历史版本] [文件名]
不带文件名比较多个文件
git
git diff
分支管理
什么是分支
在版本控制过程中,使用多条线同时推进多个任务
- hot_fix 热修复BUG分支
- master 主分支
- feature_xxx 功能分支
分支的好处
同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支操作
创建
git
git branch [分支名]
查看
git
git branch -v
切换
git
git checkout [分支名]
合并
切换到接受修改的分支上(增加新内容的分支)
git
git checkout [被合并的分支名]
git marge [有新内容的分支名]
git&github
创建远程地址别名
git
git remote add [别名] [远程地址]
git remote add origin https://github.com/humandetail/learngit.git
查看别名
plain-text
git remote -v
推送分支到远程仓库
plain-text
git push origin master
克隆
git
git clone 远程地址
邀请成员加入
远程库修改的拉取
pull = fetch + merge
git
git pull [远程库地址别名] [远程分支名]
or
git
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
示例:
git
git fetch origin master
git merge origin/master
跨团队协作
协作人先Fork
协作人clone到本地
协作人本地修改完毕后推送到github
协作人然后pull request
项目拥有者审核merge
项目拥有者拉取到本地
ssh免密登陆
linux
// 进入当前用户的家目录
cd~
// 删除.ssh目录
rm -rvf .ssh
// 运行命令生成.ssh密钥目录,注意是大写的-C
ssh-keygen -t rsa -C [邮箱]
// 进入.ssh目录查看文件列表
cd .ssh
ls -lF
// 查看id_rsa.pub文件内容
cat id_rsa.pub
// 复制id_rsa.pub文件内容,登录GitHub,点击用户头像->Settings->SSH and GPG keys
// -> New SSH Key
// -> 输入复制的密钥信息
// -> 回到Git bash 创建远程地址别名
// -> git remote add origin_shh [ssh地下]