目录
一、前置准备
二、git简介
三、gitee.com的基本使用
1.创建仓库(私库和公库)
?2.创建文件及文件夹
?新建文件夹两种方式
①?
?②
?3.删除
删除文件
?删除仓库
四、组长组员的git使用?
git clone
?查看文件
?git status
??git add?
?git commit
??git push
? ?## 命令行配置
多个添加
?git reset HEAD
?git pull
?git init
?上传到码云(gitee.com)
五、git冲突
一、前置准备
1.申请并[激活]一个Gitee帐号 ? 2.在window中安装Git ? ? ?版本要求:Git-2.22.0-64-bit.exe或以上版本, ? ? ?安装路径:请不要安装在C盘(win10会有权限问题),建议选择“D:\tools\Git”
![](https://img-blog.csdnimg.cn/e2398cb3853d4755933cb7ddf8e5ae90.png)
![](https://img-blog.csdnimg.cn/093a3672a4944eefa7eb745acf622a6d.png)
二、git简介
Git是什么? ? ?Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
版本控制器 ? ?CVS/SVN/Git
Git与SVN区别 ? 2.1 去中心化 ? ? ? GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 ? ?? ? 2.2 git仓库的任何一个拷贝都可以独立作为一个服务器来使用 ? 2.3 在Git中文件有四种状态: ? ? ? 未跟踪(untrack):表示文件为新增加的 ? ? ? 已修改(modified):表示修改了文件,但还没保存到git仓库中。 ? ? ? 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中 ? ? ? 已提交(committed):表示文件已保存在git仓库中。 ? 2.4 其它 ? ? ? GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。 ? ? ? GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏 ? 2.5 直接记录快照,而非差异 ? ? ? GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。 ? ? ? 直接记录快照,而非差异 ? 2.6 直接记录快照,而非差异 ? ? ? GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。 ? 2.7 git存在分支
![](https://img-blog.csdnimg.cn/4f9fa466bd384aa8993c4d8df8261c1e.png)
三、gitee.com的基本使用
1.创建仓库(私库和公库)
![](https://img-blog.csdnimg.cn/0fa949fd682e4978bc9b6019fb60da6f.png)
?![](https://img-blog.csdnimg.cn/ea2972dce117463785bb6665045a5d2e.png)
![](https://img-blog.csdnimg.cn/fb72e890ee7e4f9390c7d3d320555c39.png)
?
?创建成功 此时是私库![](https://img-blog.csdnimg.cn/c442ab15395142d6a03b7e914640cd5a.png)
?改成开源即是公库 滑到管理的地方
![](https://img-blog.csdnimg.cn/faf1f56293794002996518f3b3f7ffc2.png)
?选择开源![](https://img-blog.csdnimg.cn/bd8f26c19dff49e48123f95a376f1f62.png)
?2.创建文件及文件夹
![](https://img-blog.csdnimg.cn/e6912fd7857f49d89ac2e058f55968c4.png)
![](https://img-blog.csdnimg.cn/a47ce9e6b49f4ba49b0433532dc48be5.png)
?![](https://img-blog.csdnimg.cn/01540d03154245508b1cc5c4a983cb43.png)
?新建文件夹两种方式
①![](https://img-blog.csdnimg.cn/2638af81daa1420486e98146b1464c42.png)
?![](https://img-blog.csdnimg.cn/07a6630385c3460ba221f24140ca2a7e.png)
?②
![](https://img-blog.csdnimg.cn/75deb126551f4b508f3c23caaca981e7.png)
?3.删除
删除文件
![](https://img-blog.csdnimg.cn/d2de28d442c74457a9e3a4cc5260a427.png)
?删除仓库
点击仓库名-->管理-->删除仓库-->输入要删除的仓库名-->输入密码确认删除
![](https://img-blog.csdnimg.cn/a960be59fe7043cdb0cbeb860b330a6b.png)
![](https://img-blog.csdnimg.cn/d2e746ea3ca745cba7a9214e60462bbb.png)
?![](https://img-blog.csdnimg.cn/7910d572b21e42ee9c11bfc0a69bf54a.png)
?![](https://img-blog.csdnimg.cn/9ee3f22da0cd471ab116711137637358.png)
?![](https://img-blog.csdnimg.cn/a1ce4296ad654ae1baa5758335017240.png)
四、组长组员的git使用?
准备工作:
新建一个仓库cdl-a
改成公有的
创建一个文件Goods
常用命令(重点) ? ?git clone :将远程仓库clone到本地计算机。 ? ?git status :展示工作区及暂存区域中不同状态的文件。 ? ?git add :将内容从工作目录添加到暂存区。 ? ?git commit :所有通过 git add 暂存的文件提交到本地仓库。 ? ?git push :将本地仓库的记录提交到远程仓库。 ? ?git reset HEAD <file> :从暂存区移除指定文件。 ? ?git pull :拉取远程仓库的数据。
git clone
在本地新建一个文件夹
![](https://img-blog.csdnimg.cn/84709a067d954cd6935884f5f7e67f96.png)
?右键
![](https://img-blog.csdnimg.cn/6e2b42d387c34f0cb6cc2a26531aa135.png)
?出现黑窗口
![](https://img-blog.csdnimg.cn/69ceb651b200487aa975d55ef0d15eca.png)
?![](https://img-blog.csdnimg.cn/882de91deac54ade94201faf6347ed5f.png)
完整命令
![](https://img-blog.csdnimg.cn/2c14ef747ece45adafefdbc30be0eb3f.png)
?回车 成功加载到本地
![](https://img-blog.csdnimg.cn/0418381851a44861bf246abb501ef231.png)
?查看文件
![](https://img-blog.csdnimg.cn/0b6aaa947141407fb71318abb640f267.png)
?![](https://img-blog.csdnimg.cn/e740ee2e203748a082e296fed03c2d76.png)
?git status
展示工作区及暂存区域中不同状态的文件
表示该文件为新添加的
![](https://img-blog.csdnimg.cn/20d828c704e44dae9e36691394c6e8ea.png)
??git add?
将内容从工作目录添加到暂存区。
![](https://img-blog.csdnimg.cn/8a8816ca4a37491b8a6f28413e23757e.png)
?git commit
所有通过 git add 暂存的文件提交到本地仓库
![](https://img-blog.csdnimg.cn/d80916e00ac74346b1e448d5a953838a.png)
?![](https://img-blog.csdnimg.cn/d34f4651ad3f4dea883d4b8b96a4c4a3.png)
??git push
将本地仓库的记录提交到远程仓库
![](https://img-blog.csdnimg.cn/89543844577c46c3927056cfac055972.png)
?![](https://img-blog.csdnimg.cn/d9c7dba1e6df4bad8ebad9af67d2dc93.png)
?![](https://img-blog.csdnimg.cn/cc0358a8f8984a70af253646b8cec96c.png)
?本地电脑:
? ?代码区:工作区间,放代码的地方
? ?暂存区:git所管理的暂存区域
? ?本地仓库:git在本地所管理的硬盘区
远程电脑:
? ?远程仓库:github,gitee
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?git add? ? ? ?git commit? ? git push
? ?代码提交过程:代码区-->暂存区-->本地仓库-->远程仓库
? ?代码区-->暂存区-->本地仓库 不需要联网
????本地仓库-->远程仓库 需要联网??
? ?## 命令行配置
? ?0.“Git bash here”打开命令窗口 ? ?1.查看git的配置列表 ? ? ?git config --list ? ? ?注1:如果没有配置东西,应该是空的。照着下面步骤配置完成后,你可以再试一下该命令,就会出现一系列配置信息 ? ?2.设置用户名/邮箱/密码 ? ? ?git config --global user.name "username" ? ? ?git config --global user.email "email" ? ? ?git config --global user.password "password"
多个添加
本地添加几个文件
![](https://img-blog.csdnimg.cn/6280a724229b4defa344fe9bc5e9cc30.png)
?![](https://img-blog.csdnimg.cn/1396df716dfa4dec98d74370b2cad319.png)
?![](https://img-blog.csdnimg.cn/3ec7445f8a284301b0fe43d02ced3e8d.png)
![](https://img-blog.csdnimg.cn/eef078d26c0c4e8dad254ff029429dd8.png)
安全性降低
?git reset HEAD <file>
从暂存区移除指定文件
![](https://img-blog.csdnimg.cn/19bc2e5fd4b94936bfbcab3cd5e96990.png)
?git pull
拉取远程仓库的数据。
此时假设组长对上传的文件进行改变
![](https://img-blog.csdnimg.cn/4a9b18ff350f491f863bd48c89ce449f.png)
?![](https://img-blog.csdnimg.cn/c52362c3ed3a4fef8acdcabe9c509daf.png)
?![](https://img-blog.csdnimg.cn/c70dcbc1739b424a9a3315db63d65f76.png)
?没有所删除的文件![](https://img-blog.csdnimg.cn/a299e57918f2403f8018cf0c4967436b.png)
?![](https://img-blog.csdnimg.cn/e9151bce79cb49628294b8a1ad0afe18.png)
?git init
新建一个项目(文件夹)
![](https://img-blog.csdnimg.cn/7309fa4324bc49d5a79aedfea59f81bd.png)
?上传到码云(gitee.com)
新建一个空的仓库,并且设置开源
将本地仓库和远程仓库进行关联
?初始化前有画黄线的命令
![](https://img-blog.csdnimg.cn/df9b1a42d8a84f1aab2220d070707fc9.png)
![](https://img-blog.csdnimg.cn/40ac073de41f497eb0d40b89ced20dad.png)
?失败的原因:github本身进行的改变
要在执行改命令前进行本地仓库与远程仓库的同步,实现远程与本地代码的合并git pull --rebase origin master
![](https://img-blog.csdnimg.cn/a5782be39a2f4e5a8830b77d1fbce810.png)
![](https://img-blog.csdnimg.cn/0796a67c726e461abbc06e7cc168f256.png)
注意:空的文件夹上传不了
组长:
? 1.在某一个工作区间搭建环境,ssm能跑起来
? 2.在该工作区间中执行git init 命令,标记该工作区间由git所管理
? 3.在gitee/github中新建仓库
? 4.通过git remote add origin url 将本地仓库与远程仓库关联
? 5.将本地仓库与远程仓库进行文件同步
? 6.执行git三部曲 add commit push 将搭建好的环境推送到远程仓库
组员:
?1:通过git clone将组长搭建好的环境克隆到本地,并且保证项目能运行
?2.测试组员修改/新增代码是能够推送到远程仓库的
? ? 测试git add/commit/push是否有用
五、git冲突
Git冲突与解决方法 ? ? ?1.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 ?>>>>>>>之间的即为冲突的代码,手动修改即可 ? ? ?? ? ?3.依次add/commit/push代码至远程仓库 ? ? ?commit执行完生,重新查看仓库状态git status,红色的错误提示消息“ both modified: ? a.txt” ? ? ?已经没有,表示冲突已解决 ?
?
|