一、常见的版本控制系统

(一)svn 集中式版本管理系统;

(二)git分布式版本管理:工作区、暂存区、历史区

SVN和Git的区别?

(一)SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器,集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

(二)Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网,因为版本都在自己电脑上,协同的方法是这样的:

比如自己在电脑上改了A文件,其他人也在电脑上改了A文件,这时候,你们两之间只需要吧各自的修改推送给对方,就可以互相看到对方的修改,Git可以直接看到更新了哪些代码和文件

Git环境配置

打开​​官网下载​​​、但是下载慢的话,我们可以去使用淘​​宝镜像下载​

卸载与安装

卸载:​ 直接反安装即可,然后清理环境变量;​安装:​ 无脑下一步即可!安装完毕就可以使用了

二、常见命令

查看配置 git config -l

#查看系统config

git config --system --list


#查看当前用户(global)配置

git config --global --list

Git相关的配置文件:

1)、Git\etc\gitconfig :Git 安装目录下的 gitconfig --system 系统级

2)、C:\Users\Administrator\ .gitconfig 只适用于当前登录用户的配置 --global 全局

1、初始化一个仓库—进入到你要进行版本管理的文件夹里面

git init

2、配置个人信息

#个人名称

git config --global user.name 'xxx'

#个人邮箱

git config --global user.email 'xxx@xxx.com'

3、从工作区提交到暂存区

git add .    #提交全部文件
git add -A #提交全部文件
git add <files> #指定提交的文件

4、从暂存区提交到历史区​ ------注意:如果没有​​-m​​​的选项,就会进入 ​​vim​​ 编辑器进行相关信息编写

git  commit -m '提交的相关信息'

注:​ 红色代表在工作区 绿色代表在暂存区

5、查看提交的历史版本

git log         #查看详细的提交信息
git log --oneline #查看精简的历史信息

6、切换历史版本

git  reset --hard 版本标识符

其他命令

①查看文件内容:cat 1.txt

②新建:touch 1.txt

③查看当前状态:git status

④给文件添加内容vim 1.txt

⑤回滚:git restore --staged x

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_git

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_暂存区_02

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_远程仓库_03

三、Git工作流程

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_暂存区_04

日常使用流程:

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_暂存区_05

文件的四种状态:

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

​Untracked​: ​未跟踪​, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

​Staged​: ​暂存状态​. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

​Modified​: ​文件已修改​, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !

​Unmodify​: ​文件已经入库​, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

# git add . 添加所有文件到暂存区
# git commit -m "消息内容" 提交暂存区中的内容到本地仓库 -m 提交信息

设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)

ssh-keygen -t rsa

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_git_06

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_暂存区_07

思维导图

注意:添加本地项目与远程项目关联使用git remote add “origin” (远程库的ssh协议)

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_暂存区_08

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_远程仓库_09

免密操作没起效

若没有成功=>解决:

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_git_10

IDEA集成Git

忽略文件

有些时候我们不想把某些文件纳入到版本控制中,比如数据库文件,临时文件、设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_暂存区_11

四、GitHub使用

1、创建仓库

2、提交远程仓库【第一次提交需认证】

一定要记得从历史区提交

git push 远程仓库的地址 master

注意:​ 提交到远程的时候,先将本地的代码提交到本地地历史区

3、从远程拉取【远程同步代码】

git pull 远程仓库的地址 master

​问题:在第二次提交的时候,可能出现下图问题:​

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_远程仓库_12

​原因分析:​

通过查看提示信息,我发现,是因为本地仓库和远程仓库的文件不一致所致,也就是GitHub允许本地有的东西,远程仓库里没有

​解决方案:​

在push提交之前先同步一下本地仓库与远程仓库的文件,使用以下命令:

git pull --rebase 远程仓库地址 master

成功后提示如下图:

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_git_13

设置秘钥:

ssh-keygen -t rsa -b 2048 -C “地址”

接下来就可以继续push自己的代码,进行提交了

4、条件东西到别人仓库(提交作业)

①首先打开别人的仓库找到对应的—点击右边的Fork拉取–然后跳转到自己仓库–

②随便找个文件夹打开git–输入 git clone 远程地址 master—克隆完成后进去创建自己的文件–依次开始提交暂存区-历史区-git pull 远程仓库的地址 master–自己仓库有了

③提交到老师那:打开自己的GitHub—按下Pull requests–点击右边的新建–点击右边的create pull request—进去继续点create pull request

fork --> Pull requests


  1. fork 某个项目
  2. 回到我的 github 就可以看到 fork 过来的项目
  3. 把这个项目 clone 下来 ​​git clone https://github.com/"you"/"you repositries"​
  4. 接下来就可以进行相应的操作了
  5. 把修改的文件再提交到 github (注:提交之前先提交到本地历史区)
  6. 回到 github 发起 Pull requests

五、码云使用

(一)先git clone 项目地址【把项目拉到本地】

(二)git add .

(三)git commit -m ‘本次提交的注释’

(四)git push【项目内容被成功推到码云上】

六、Linux和Windows常见命令

Git版本控制器、GitHub/码云使用、以及Linux/windows常见命令_git_14