Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
流程
一、初始化git仓库
右键项目git bash
git init 生成一个隐藏的git目录 用来帮助备份的目录
二、设置git当前使用的用户
配置用户名:
git config --global user.name “xxx”
设置邮箱:
git config --global user.name “xxxx@qq.com”
每一次备份时,还会存储这些用户信息
三、把代码存储到git仓库
(1)git add ./readme.md 从工作区先放到门口(暂存区) 暂存区的目录树被更新 git add ./会把目录所有
(2)git commit -m “一些说明” 暂存区的目录树写到版本库(对象库)中
-m表示要添加一条消息,说明一下
git commit --all -m “一些说明” 可以一次性直接所有文件直接写到版本库
(3)查看状态
git status 查看仓库当前的状态,显示有变更的文件
git rm ‘文件’ 将指定文件删除暂存区
(4)查看日志
git log git log --oneline 更精简
git reflog 可以查看每一次切换版本的记录
git blame 查看指定文件的修改记录
四、版本退回
git reset [–soft | --mixed | --hard] [HEAD]
-mixed 为默认,可以不用带该参数,清除暂存区,工作区文件内容保持不变
–soft 参数用于回退到某个版本:
–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
git reset –-hard HEAD~3 # 回退上上上一个版本
git reset –-hard 版本号 回退到指定的版本
git reset --mixed :此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本, 只保留源码,回退commit和add信息
git reset --soft:回退到某个版本, 只回退了commit的信息 。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,慎用!
五、分支管理
不影响主线的运行
(1)git branch 分支名 创建分支
没有参数时,git branch 会列出你在本地的分支。
(2)git checkout 分支 切换分支
git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下
(3)git merge dev 合并分支命令
(4)git branch -d 分支名 删除指定节点
(5)合并冲突
master 和dev 都做了操作,这种情况需要手动去处理
处理后还需要再提交一次
六、GitHub
提供了允许别人通过git上传代码的功能
提交代码到github上,作为一个服务器
(1)https
git push [地址] master 会把当前分支上传到远程master分支上
git pull [地址] master 从远程下载,不会直接覆盖,会做些合并的处理
git pull=git fetch + git merge
git fetch git merge origin/master 也可以从服务器下载更新数据
git pull origin master
git clone [地址] 得到远程仓库相同的数据,如果多次执行,会覆盖本地内容
(1.1)关联远程库
git remote add origin [ssh地址] 添加
git remote rm origin 删除
git push -u origin master 注意:这里-u与远程库相关联,以后上传就直接 git push
git pull origin master
(2)ssh
- 公钥 私钥 两者之间是有关联的
-生成公钥和私钥
ssh-keygen -t rsa -C “xxx@qq.com”
(3)冲突
两边都在修改的情况,先pull再push,人工修改解决冲突,再上传