文章目录
一,git与github介绍
1.Git是什么?
Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
版本控制器: CVS / SVN / Git
SVN 客户端/服务器
GIT 客户端/代码托管网站(例如:github)
注1:类似的代码托管网站还有:github/码云/阿里云Code源码管理
注2:类似的技术GitLab,但它与GitHub又有一定的区别
2.GitLab与GitHub的区别
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。
不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,
你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
3.Git与SVN区别 (重点记录1/2/3点)
1、去中心化
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
2、git仓库的任何一个拷贝都可以独立作为一个服务器来使用
3、在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
4、其它
GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏
5、直接记录快照,而非差异
GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
GIT分支和SVN的分支不同,分支在SVN中一点不特别,就是版本库中的另外的一个目录。
二,Github 的简单使用
首先先注册一个账号,注册好之后就可以创建仓库啦
你可以创建两种类型的仓库,一种公有的,一种私有的,根据个人所需
下面那个是公库
进入那个项目,然后点击settings
基本的新增仓库和删除仓库
然后在仓库创建一个文件
删除文件
git安装
git安装参考博客:https://blog.csdn.net/weixin_45111741/article/details/103432595
二,git常用命令
1.Git配置帐号和邮箱(本机)
一般刚安装Git都要配置用户名和密码,因为你提交代码到本地仓库(上传代码到远程仓库)时会用到,
如果没有没有配置,在你提交时它会提醒你的。但是,如果仅仅克隆(即下载)公有项目,你甚至不需要注册——刚刚我们创建的账户是为了以后
fork 其它项目,以及推送我们自己的修改。
首先,现在你的git仓库中,右键,点击“Git bash here”,打开命令窗口
1.查看git的配置列表
git config --list
还没配置账号和密码是这样的
2.配置帐号和邮箱(这里只需配置用户名和邮箱即可,密码可以不配置,到时候用SSH key)
2.设置用户名/邮箱/密码
git config --global user.name “username”
git config --global user.email “email”
git config --global user.password “password”
配置好之后,再查看git的配置列表时,就多了两行
也可以查看C:\Users\Administrator.gitconfig 文件,也有显示
2.文件克隆(从github克隆到本地中)
点击这个绿色的,克隆到本地,Use HTTPS,复制那个地址
然后在命令窗口运行
git clone https://github.com/ruirui123java/t237_pub.git
最后打开仓库就,文件就从github克隆到本地上来了
3.把在本地新创建的文件添加到远程仓库中
进入t237_pub 文件中 ,cd t237_pub/
然后在里面创建了一个a.txt文件
先查看一下初始状态:nothing to commit
①未跟踪状态
在本地创建了a.txt文件时的状态:红色
②已暂存状态
把a.txt添加到缓存区
git add a.txt
变成绿色了
③提交
然后提交
git commit
进去之后,按insert键,可以在里面写注释
按esc键,:wq 保存退出
退出之后,noting to commit,说明文件已经提交了,但是还没提交到远程仓库中
④已提交状态
把它提交到远程仓库
git push
然后会弹出一个框,需要输入用户名和密码
提交过去啦
省略“按insert 进去注释这一操作”,再创一个b.txt文件来操作一波
主要就是把git commit -am “注释” 代替 git commit
⑤修改状态
当修改a.txt文件时,操作流程还是不变的,先add,再commit ,再push
4.在本地创建的仓库如何与git远程仓库关联
①先初始化该仓库
进入该仓库路径下: git init
原本只是一个空的文件夹,初始化之后会变成这样,多了一个.git文件
②在GitHub上也创一个一样名字的仓库
注意不要添加README.md等任何文件
③ 创好之后,在命令窗口执行两句代码
将本地仓库的当前分支与远程仓库相关联
git remote add origin https://github.com/ruirui123java/t237_pub2.git
将本地代码库的某一分支(eg:master)推送到远程的代码库
git push -u origin master
然后可以在从本地上传一个文件到远程仓库中去测试一样,看看是否可行
5.Git冲突
当我们做项目时,如果组长和组员都同时上传代码时,可能就会发生冲突了
当组员把cc.txt文件上传到了远程仓库,但是组长去上传时却上传不上去了
左:组员
右:组长
那么该怎么办呢
先执行git pull
它会将GitHub远程仓库中cc.txt中的所有东西都拉入组长的这个cc.txt中,不过会有的小乱码,但只要把它删了就好了
最后组长再把它重新上传到远程仓库就好了,git冲突就解决啦