GIT
git原理:
当用户将文件交给git管理时,git将所管理的文件分为三个状态:工作区 缓存区 版本库
工作区为用户当前对文件所作的任何修改,当用户编辑完成时可将修改放入缓存区中,当用户完成一个阶段的修改工作时,可将所有修改生成一个版本,即将缓存区里的内容放入版本库中。
安装与配置
安装命令:
sudo apt-get install git
基本使用
1.git init 将当前目录交给git管理
2. 创建一个版本
1.git add code.txt 将工作区的内容放入缓存区中
2.git commit -m"版本介绍":指挥提交暂存区中的内容,不会提交工作区的内容
3.查看日志
1.git log 查看日志
2.git log --pretty=oneline 简短的显示日志
4.设置当前访问版本
1.git reset --hard HEAD^(^有几个尖括号代表前几个版本,也可以用~n ,回到前n个版本)
2.git reset --hard 版本编号
5.git status 查看工作区状态:工作区更改但未缓存内容及缓存区未提交内容
6.撤销修改
git checkout -- 文件名 撤销工作区的缓存
git reset HEAD file 撤销暂存区的修改,重新回到暂存区
对比文件不同
git diff HEAD -- 文件名 对比修改文件和存储文件的不同
git diff HEAD HEAD^ -- 文件名 对比同一文件的不同版本
git rm 文件名 : 将文件删除
分支操作
git branch 查看分支
git branch 分支名 创建分支
git checkout 分支名 切换到指定分支
git checkout -b 分支名 创建并切换到指定分支
git merge 分支名称 合并分支到master:
1.默认使用Fast-forward(快速合并),若要禁用: git merge --no-off -m版本说明 分支名 (原理同第三点)
2.当出现冲突时(两个分支同时修改了同一个文件时)需要手动解决--手动修改冲突文件(git会将修改全部加入到冲突文件中)并再次用add - commit 提交
3.快速合并无法成功,无冲突时(第一个分支创建文件,第二个分支添加内容),会自动 执行 add-commit ,此时需要输入说明信息。
git branch -d 分支名 删除分支
git log --graph --pretty=oneline 查看分支图
git stash 保存工作区内容
git stash list 列出保存的工作现场
git stash pop
修复bug过程
git stash 保存当前工作现场
git checkout -b 临时分支名称
修复完成后 使用 no-ff 模式保存(若使用ff m模式保存,当删除临时分支后,将无记录)
删除临时分支
git stash pop 返回工作现场
GItHUb
1.创建仓库: create a new repository -- git init
2. 添加ssh公钥(头像 - ->setting --> 添加ssh)
1.编辑家目录下的。gitconfig文件
2. ssh-keygen -t rsa -C 邮箱
3. .ssh 目录下的 xx.pub 内容复制到 页面key中
3.获得项目地址:
1. clone or download 选择 ssh 复制项目地址
2.git clone 项目地址
4.创建自己的分支:git checkout -b 自己的分支名
在本地提交 add - commit
将本地项目推送到GitHub上:
git push origin 分支名称
5.将本地分支跟踪远程服务器分支:(当本地分支与远程分支不同时,做出提示)
git branch --set -upstream -to=origin/分支名称: 一旦跟踪后 git status 中会有提示,git push 可直接推送
6.拉取远程代码 git pull origin 分支名称