目录
Git把数据看作是小型文件系统的一组快照。每次提交更新时Git都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以Git的工作方式可以称之为快照流。
git中的一些指令
clone 指令是在共享版本库中【克隆】内容到本地(第一次操作:将远程仓库代码复制克隆到本地)
pull 指令是在共享版本库中【更新】内容到本地
push 指令是在从本地【提交】新的内容到【已有的共享版本库】中
commit 指令是将修改的内容【提交】到【本地】中
仓库初始化
git init --bare shared.git
仓库文件目录
HEAD:指向当前分支的一个提交
description:项目的描述信息
config:项目的配置信息
info/:里面有一个exclude文件,指定本项目要忽略的文件
objects/:Git对象库(commit,tree,blob,tag)
refs/:标识着你的每个分支指向哪个提交
hooks/:默认的hook脚本
==============开发人员操作=============================
第二步:复制仓库到本地
git clone /f/software/repository/git/shared.git/. (注意有个点,表明当前目录)
第三步:设置个人信息(签名) 这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关
git config user.name "user1"
git config user.email "user1@163.com"
第四步:忽略无需版本控制的文档
echo "*.txt" > .gitignore
第五步:新建一个文件
echo "User1 add content" > index.jsp
第六步:提交文件
状态查看操作
git status
git add index.jsp (添加到缓存区)
git commit -m "User1 add the file" index.jsp (提交到本地仓库)
第七步:把自己的仓库提交到公共服务器
git push origin master
单个【团队】合作模式
多个【团队】协同 合作模式
查看提交日志
git log
git reflog
多屏显示控制方式:
空格向下翻页
b向上翻页
q退出
git log--pretty=oneline (简洁的显示日志)
根据 【键值】 退回到指定的版本 git reset --hard 【局部索引值】 相当于改变了 HEAD(指针) 的指向
reset命令的三个参数对比
--soft参数 (相当于移动了 本地库)
■仅仅在本地库移动HEAD指针
--mixed参数 (相当于移动了 本地库和暂存区)
■在本地库移动HEAD指针
■重置暂存区
--hard参数
■在本地库移动HEAD指针 (相当于移动了 本地库 暂存区 工作区)
■重置暂存区
■重置工作区
通过退回到指定版本,也可以将文件找回
1.删除操作尚未提交到 本地库,用以下命令git reset --hard HEAD找回。
2.删除操作已经提交到本地库,用以下命令git reset --hard 【局部索引值】 找回。
比较文件差异
git diff [文件名]
■将工作区中的文件和暂存区进行比较
git dif [本地库中历史版本例(HEAD 局部索引值)] [文件名]
■将工作区中的文件和本地库历史记录比较
不带文件名比较多个文件件
分支
同时并行推进多个功能开发,提高开发效率各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支操作
>创建分支
git branch [分支名]
>查看分支
git branch -v
>切换分支
git checkout [分支名]
>合并分支
■第一步:切换到接受修改的分支(被合并,增加新内容)上 git checkout [被合并分支名]
■第二步:执行merge命令 git merge [有新内容分支名]
解决合并冲突:
■冲突的解决
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
· 第三步:git add[文件名T
第四步:git commit-m”日志信息"
· 注意:此时commit一定不能带具体文件名
修改文件后将多于的行 <<<<<<<<<< HEAD ========== >>>>>>>>>>>>>> master 这些内容删除。同时与另外一名修改过这个文件的人员,商量,最终确定需要的内容。
修改后:① git add 【文件名】 ② git commit -m "备注" 就解决冲突,并且完成合并了
在本地创建Git共享仓库创建的方法:
在idea中集成git操作
在idea中的操作
远程库交互
创建远程仓库:创建远程仓库
推送到 远程仓库
拉取
pull=fetch+merge
git fetch [远程库地址别名] [远程分支名] 抓取
git merge [远程库地址别名/远程分支名] 合并
多团队协作: