一、什么是git
git是一个开源的分布式版本控制软件,能够有效并高效的处理很小到非常大的项目。
版本控制:类似于毕业论文、剪辑视频等,需要反复修改和保留原历史数据,在开发中可以解决多人同时开发的代码问题,有效既高效
二、Git 工作区、暂存区和版本库
1、基本概念
A、工作区(Working Directory)
程序员进行开发变更的地方是你现在看到的,是最新的。
通常,我们的开发是复制远程仓库中的分支,并根据该分支进行开发。 开发中是工作区的操作。
B、暂存区(Stage/Index)
. git目录下的索引文件。 暂存区记录git add添加文件的相关信息(文件名、大小、时间),不保存文件实体,而是用id指示每个文件实体。 可以使用git status显示暂存区的状态。 暂存区标记了当前工作区中哪些内容由git管理。
程序员在完成某个需求或功能后,如果需要提交到远程仓库,第一步是通过git add提交到临时存储区,然后通过git进行管理。
C、本地仓库(local repository)
对象已保存提交的每个版本。 它比工作区和暂存区的内容更旧。
在git commit之后,将索引目录树同步到本地仓库,以便于从下一步开始通过git push同步本地仓库和远程仓库。
D、远程仓库(remote repository)
远程仓库的内容可能与本地仓库同步,也可能不同步,因为本地仓库与多个站点之间存在分布式协作关系,但这是最旧的内容。
2、总结
任何对象都将在工作区中诞生和修改。
所有修改均在进入索引区域后进行版本控制;
只有把修改提交给当地仓库,该修改才能在仓库留下痕迹;
可以与合作者共享本地修改,并将其推送至远程仓库进行共享。
三、服务器
可以使用gitee、github、或者自己安装git服务器,这里使用gitee,https://gitee.com/
注册账号
四、git客户端
https://git-scm.com/download/win,下载并安装
五、使用git
1、添加SSH公钥
(1)查看配置
git config --list
(2)配置全局的name和email
git config --global user.name "chengfurong-china"
git config --global user.email "cfr_95@tom.com"
(3)输入 ssh-keygen -t rsa -C “cfr_95@tom.com”,连续按回车键到提示的路径找到文件
(4)找到此文件后,点击进入,复制文件中的内容(如果出现双击进不去该文件:在当前目录输入cmd,定位到当前文件夹,输入 type id_rsa.pub 命令回车,复制内容即可)
(5)打开gitee,进入设置---->SSH公钥
2、gitee创建仓库
3、创建本地仓库
使用 init 命令可以初始化一个仓库(repository),同时在当前目录下会生成一个用来跟踪管理版本库的 .git 文件夹
git init
4、添加文件
在此目录下添加项目,
添加完成之后,使用 git status 命令查看当前仓库工作区的状态
git status
使用 git add 命令将所有新文件添加到暂存区
git add .
使用 git commit 命令将新文件提交到仓库
git commit -m "first commit"
5、推送到远程仓库
(1)关联到远程库(设置了ssh公钥后,需要使用ssh地址)
添加关联
git remote add origin git@gitee.com:chengfurong-china/git06.git
删除关联
git remote rm origin
查看关联
git config --list
(2)获取远程库代码与本地代码同步并合并
– 通过命令 git pull 同步并合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
git pull --rebase origin master
(3)本地库内容推送到远程
– 使用 git push 命令,实际上是把当前分支master推送到远程。
执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
git push origin master
6、常用命令
(1)创建仓库命令
下表列出了 git 创建仓库的命令:
(2)提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下表列出了有关创建与提交你的项目的快照的命令:
(3)提交日志
(4)远程操作
六、分支管理
几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
Git 分支实际上是指向更改快照的指针。
有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。
查看当前分支:
git branch
创建分支命令:
git branch dev
切换分支:
git checkout master
合并某分支到当前分支:
git merge dev
删除分支:
git branch -d dev
七、冲突管理
远程仓库两人同时拉取
git pull --rebase origin master
两人同时修改同一个文件
git add .
git commit -m "xx"
其中一人 推送给 远程服务器 成功
git push origin master
另外一人 推送给 远程服务器 失败
git push origin master
解决
重新拉取
git pull --rebase origin master
编辑冲突的文件
git add .
git commit -m ""
git rebase --continue
--continue 继续
--abort 取消
git push origin master
第一人再拉取获取最新的版本
git pull --rebase origin master
评论区