目录
一、前置准备工作
申请并[激活]一个Gitee帐号
在window中安装Git
在Git官网下载,安装
安装版本根据自己电脑配置选择
创建开始菜单目录名称,默认git,不需要修改
选择git使用的编辑器
行末换行符转换,使用默认值
检测安装成功,任意窗口或桌面都可以右键,出现下面两个选项即可
二、git简介
Git是什么
Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
Git与SVN区别
去中心化
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别
git仓库的任何一个拷贝都可以独立作为一个服务器来使用
在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
其它
GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
直接记录快照,而非差异
GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里
直接记录快照,而非差异
GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。
git存在分支
git文件状态与工作区域
文件状态
git中的文件有以下几种状态
未跟踪(untrack):表示文件为新增加的
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
已修改(modified):表示修改了文件,但还没保存到git仓库中
工作区域
按照本地计算机与远程计算机划分,工作区域有以下几种
1)本地计算机
Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内
Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内
Repository(本地仓库):提交到本地仓库的文件
2)远程计算机
Repository(远程仓库):已提交到远程计算机内的文件
三、gitee.com的使用
创建仓库(私库和公库)
注1:仓库对应url支持多种协议,最常用的有两种:https/ssh
注2:github上repository分为public和private
顾名思义public可以被其他人看到并clone;而private是不能被别人看到的,但是可以被clone,由于是private的,要克隆当然是需要一些强前提条件的,
不然安全性无法保证,private也就失去了意义。这里把repository创建为private的场景为:自己创建一个私人项目,但是又需要和其他developer一起开发,
所以,需要developer都能克隆这个private repository,并且都能提交到这个private repository。
接下来就可以把私有仓库改成共有仓库
点击管理
填写相关信息
把状态改为开源
点击保存
新建文件
点击保存
这是第一种新建文件的方法,紧着看第二种
在新建文件的同时也可以添加文件夹,比如说项目会跟文档放在一起
先填doc/
也可以单独新建文件夹
删除文件
删除仓库
四、组长组员的git使用
常用命令
git clone :将远程仓库clone到本地计算机。
git status :展示工作区及暂存区域中不同状态的文件。
git add :将内容从工作目录添加到暂存区。
git commit :所有通过 git add 暂存的文件提交到本地仓库。
git push :将本地仓库的记录提交到远程仓库。
git reset HEAD <file> :从暂存区移除指定文件。
git pull :拉取远程仓库的数据。
使用git从远程仓库pull至本地仓库
先创建一个仓库
将私有仓库改为开源
新建了一个文件Goods
把项目拉取到本地中去:
先在E盘新建了一个temp文件夹,在其中又新建了0926git的文件夹,进入
去gitee复制仓库链接
右键选中past
回车
在里面去写代码,比如新建一个User类
ll :查看当前目录下的所有文件
git status
git add
User.java文件已变为暂存状态
git commit -m
项目文件已经从暂存区提交到了本地仓库
git push
需要输入git用户名和密码
提交成功之后,再去gitee刷新查看项目是否多了一个User.java的文件
git config --list
项目经理
1、在某一个工作区间搭建环境,ssm能跑起来
2、在该工作区间中执行git init 命令,标记该工作区间由git所管理
3、在gitee/github中新建仓库
4、通过 git remote add origin url 将本地仓库与远程仓库进行关联
5、将本地仓库与远程仓库 进行文件同步
git pull --rebase origin master
6、执行git三部曲 add、commit、push,将搭建好的环境推送到远程仓库
各成员
1、通过git clone将组长搭建好的环境克隆到本地;并且保障项目能正常运行
2、测试组员修改/新增代码是能够推送到远程仓库的
测试git add/commit/push是否有用
五、git冲突
git冲突的场景
情景一:多个分支代码合并到一个分支时;
情景二:多个分支向同一个远端分支推送代码时;
情景三:同一分支,同一文件修改后的提交(即为多个程序员修改了同一个文件)
实际上,push操作和pull操作其实就分别是用本地分支合并到远程分支 和 将远程分支合并到本地分支,所以这两个过程中也可能存在冲突
分别在同一项目的两个不同本地仓库修改a.txt并提交,则会报出以下错误:
! [rejected] master -> master (fetch first) error: failed to push some refs to ' 。。。'
拒绝
错误:无法推送某些引用
解决方案
1.将代码copy出来
2.先从远程仓库pull代码至本地,再修改冲突代码,
注1:git status查看仓库状态,会显示红色的错误提示消息“ both modified: a.txt”
3.打开a.txt,手动修改冲突部分的代码
<<<<<<< HEAD
ww add 18:42 from e:\temp\test1
=======ls add 123 at 18:17 from d:\temp\test1
>>>>>>> 63c73e5933bb7d3d2bed04b06c37a74602d65b2e
注1:<<<<<<< HEAD >>>>>>>之间的即为冲突的代码,手动修改即可
4.依次add/commit/push代码至远程仓库
commit执行完生,重新查看仓库状态git status,红色的错误提示消息“ both modified: a.txt”
已经没有,表示冲突已解决
按键须知:
vi在命令行编辑文件
按 i 键 黑窗口才允许输入编辑内容
按 ESC 键 退出编辑窗口
再按 : wq 保存编辑文件修改的内容,回到git命令窗口