git优势
1大部分操作在本地完成,不需要联网
2完整性保证
3尽可能添加数据而不是删除修改数据
分支操作非常快捷流畅
与linux命令全面控制
git的安装
网站Git - Downloading Package (git-scm.com)
git的结构
本地库 --历史版
暂存区--临时文件
工作区 --写代码
代码托管中心
维护远程库
本地库和远程库互交方式
团队内部协作
跨团队协作
安装后可以在任意文件夹下右击鼠标
打开git Bash
可以右击鼠标点击options--->text 点击 Selet 修改字体点击 以及修改编码为utf-8
利用命令
git --version 查看当前版本信息
利用命令clear清屏
需要设置用户名以及邮箱
命令:git config --global user.name "名字"//name后面有空格 email同理
git config --global user.name.email "xxxxx.@126.com"
设置好后可以利用命令查看用户名
本地仓库初始化
在你创的文件夹下打开git 使用
git init 命令对本地库进行初始化,
这时文件夹内会生成一个隐藏的文件.git也可以调出来查看
本地库git不能删除修改
创建一个文件a将文件提交到暂存区 add命令
从暂存区提交到本地库
利用代码commit “”里面是添加注释提醒的内容
不放在本地仓库的文件git是不会进行管理的
即使放在本地仓库的文件,git 也不管理,只有用add 跟com咪咪头命令操作过的文件内容才会提交到本地库
git status (查看暂存区和仓库的状态)
on branch master 表示在主干上
再创建一个b
运行git status 将会报出file 没有被管理
通过add 提交后状态改变并提醒可以commit
再将缓存区的提交至本地仓库
修改文件再查看状态,会返回文件修改需要更新
再重新提交到本地库,并查看 状态
版本 的前进后退
展示日志方式一
命令log(日志)
会从近到远展示日志
黄色的数字相当于当前历史记录对应的索引 value 历史记录对应的具体内容
如果历史记录过多 有分页效果 往前是摁 b 往后摁 空格 到尾页显示end 退出用q
日志展示方式二
git log --pretty=oneline(漂亮的在一行展示出)
方式三
git log --oneline
展示方式四 git reflog
HEAD()
里面的数字代表回退到那个版本的步骤
命令 reset 前进或者后退历史版本
haed(参数)填上你想回退或前进的的索引
本地库回退 重置暂存区 重置工作区
git reset --mixed 本地库回退 重置暂存区 工作区不动
git reset --soft 本地库回退 暂存区不动 工作区不动
删除文件 以及找回git中删除的文件
创建一个d.txt
提交到本地库
1直接在文件中删除
2 利用命令rm
将删除操作同步
撤销删除只需要利用回退索引回退到提交的步骤
终端选中就是复制,右键paste就是黏贴
修改d.txt内容不提交到缓存区
命令diff
是将工作区跟缓存区进行对比
可以多个文件进行比较
git diff 比较的工作区 暂存区 所有文件的差异
将暂存区跟本地库进行比对
命令git diff HEAD d.txt (跟当前指针进行比较)
还可以用索引号与之前版本比较
什么是分支
在版本控制中使用多条线推进多个任务就叫做分支
通过一张图展示分支
多个分支并行开发互不影响,提高开发效率,如果有一个分支开发失败直接删除即可
查看分支
使用命令git branch -v
查看所有分支
创建分支
git branch bran1(你的分支名)
在哪个分支上后面就会显示哪个分支名
切换分支 $ git checkout bran1
在分支01中提交内容
切换到主分支
提交相同的文件不同的内容冲突如何解决?
进行分支合并 git merge bran1
处在和并状态中
在同一个文件同一个位置修改会出现冲突
留下想要的 删除不要的
注册github
顺便换个头像
初始化本地库
创建github远程库
new repository
仓库起名字,可以选择人私有的还是共有的
可以通过主页进入仓库git2
仓库的地址
远程库地址地址比较长github提供了便利在本地保存地址
通过别名
执行命令 git remote -v()查看别名
$ git remote add spring https://github.com/acsweets/git2.git(spring是起的别名,别名随便起)
通过这个命令修改添加别名添加后可以对这个仓库进行上传跟下载
利用push命令将文件推送远程库git push spring master分支
将本地master提交到远程库里
推送后查看远程库
克隆操作
git clone 你想要克隆的地址
要加入团队
邀请别人加入团队
点击仓库的settings
点击manage access 再点击invit a collaborators yet
录入邀请成员的名字
加入团队一起耍
队员提交到远程库后队长进行pull操作
pull操作相当于 fetch 跟merge
先抓取再合并
远程库拉取操作
2队长确认远程库更新,进行拉去
git fetch spring master(远程库别名)(对应的分支)
只是下载到本地并不同步到工作区
抓取后可以去远程库查看内容是否正确
利用了命令git checkout spring/master
发现正确就可以进行和并操作
git merge用这个命令进行合并
远程库也可以直接用pull
git pull spring master
为了保险
fetch 跟merge
分两步
为了简单就用pull
如果合作队员在相同的文件相同的地方有冲突 先拉取下来修改git pull spring master
修改后提交暂存区提交本地库,再提交到远程库,
利用push命令将文件推送远程库git push spring master
解决冲突时提交不能带文件名否则提交失败
git commit -m"解决了冲突"
多公司合作流程
可以利用ssh进行免密操作
cd ~命令进入主目录中,执行命令生成一个.ssh 的目录
使用$ ssh-key -t rsa -C 你的邮箱
三次回车使用默认值即可
找到.shh
打开后缀为pub的 复制
打开github
settings
ssh key new
起个别名再把复制过来的密匙黏贴
打开git 修改ssh别名
利用ssh推送文件到远程库
第一次推送填yes完事