目录
3. 实践操作:gitee网站相关操作(Gitee - 基于 Git 的代码托管和研发协作平台)
1. Git是什么
Git是一个开源的[分布式][版本控制系统],用于敏捷高效地处理任何或小或大的项目
版本控制器
CVS/SVN/Git
SVN
客户端/服务器 C/S B/S
GIT
客户端/代码托管网站(例如:github)
注1:类似的代码托管网站还有:github/码云gitee/阿里云Code源码管理
注2:类似的技术GitLab,但它与GitHub又有一定的区别
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。
2. Git与SVN区别
2.1 去中心化
GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
2.2 git仓库的任何一个拷贝都可以独立作为一个服务器来使用
2.3 在Git中文件有四种状态:
未跟踪(untrack):表示文件为新增加的
已修改(modified):表示修改了文件,但还没保存到git仓库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
3. 实践操作:gitee网站相关操作(Gitee - 基于 Git 的代码托管和研发协作平台)
shift+insert:复制
上下键:切换复制过的
ctrl+l:清空
ll:打印当前目录下的文件
1.创建仓库(私库和公库)
这样可以设置公开,私有就不用做以下操作
2.删除仓库
3.创建文件及文件夹
4. 实践操作
下载Git
0.“Git bash here”打开命令窗口
在桌面空白处左击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"
注1:全局变量
--global 表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件中,~表示当前用户的目录,
比如我的是:C:\Users\Administrator\.gitconfig,打开该文件你会发现如下图所示的内容:
[user]
name = xxx
email = xxx@qq.com
注3:删除某个全局配置项
git config --global --unset user.name
5. git文件状态与工作区域(重点)
git的文件状态是其git核心内容,了解后对
后续的操作有莫大的帮助,不同的文件状态又存储在不同的工作区域中。
1.文件状态
git中的文件有以下几种状态
未跟踪(untrack):表示文件为新增加的
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
已提交(committed):表示文件已保存在git仓库中。
已修改(modified):表示修改了文件,但还没保存到git仓库中。
2.工作区域
按照本地计算机与远程计算机划分,工作区域有以下几种
1)本地计算机
Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。
Repository(本地仓库):提交到本地仓库的文件。
2)远程计算机
Repository(远程仓库):已提交到远程计算机内的文件。
6. 常用命令(重点)
git clone :将远程仓库clone到本地计算机。
git status :展示工作区及暂存区域中不同状态的文件。
git add :将内容从工作目录添加到暂存区。
git commit :所有通过 git add 暂存的文件提交到本地仓库。
git push :将本地仓库的记录提交到远程仓库。
git reset HEAD <file> :从暂存区移除指定文件。
git checkout -- <file> :从本地仓库恢复指定文件。
git pull :拉取远程仓库的数据。
git init
7. 实践操作:使用git提交文件至远程仓库(重点)
1.取得项目的 Git 仓库(有两种方式,本章先介绍第一种)
第一种是从github现有仓库(远程)克隆出新的仓库(本地)
第二种是在工作目录中初始化新的仓库(本地),然后再与一个Github上的仓库(远程)关联
2.在本地的克隆库上进行你所需要的改动,修改文件内容,添加文件等;
注:克隆仓库的命令格式为 git clone [url],Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
git clone git@github.com:fsliurujie/test.git --SSH协议
git clone git://github.com/fsliurujie/test.git --GIT协议
git clone https://github.com/fsliurujie/test.git --HTTPS协议
这样就克隆出来了
缺少.git文件
点击查看,勾选隐藏项目就出来了.git文件
没有显示刚刚那个错,显示没有任何需要提交,工作树是干净的
创建一个文件
vim xxx.java
先按 i=插入 然后才可以输入
按Esc退出插入,然后shift+英文分号wq,退出并保存,创建文件成功
状态就有了
将新增文件(工作目录)传到暂存区(staged)----> git add xxx.java
提交-->查看状态-->
打印文件
进行修改
就出现已修改状态
git add xxx.java --> git status --> git commit -m "我提交了" --> git push
创建一个student
1.打开浏览器,登陆github后,新建一个仓库test3(目前在GitHub上的这个仓库还是空的),它的地址为:
https://github.com/yanppp999/test3.git
2 实现远程与本地代码的合并
git pull --rebase origin master
3.将本地代码库的某一分支(eg:master)推送到远程的代码库
git push -u origin master
更改order.java中的 本地也要更改
演示版本冲突
两个程序员
大C程序员修改order.java
小c程序员也修改了,所以报错了
先备份一份order.java,然后拉取远程仓库的数据,重新进入vim Order.java
删除冲突代码
重新提交就可以了