方君の小窝 方君の小窝
首页
  • 原生js总结
  • 样式相关
  • vue
  • 其他必备知识
  • php
其他
GitHub

方君

迷糊小前端
首页
  • 原生js总结
  • 样式相关
  • vue
  • 其他必备知识
  • php
其他
GitHub
  • 原生js总结

  • 样式相关

  • vue

  • 其他必备知识

    • gulp
    • git
  • 前端
  • 其他必备知识
方君
2020-08-24

git

# git

版本控制工具

word1

我们想要一个工具帮我们管理版本

word2


Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

svn是集中式版本管理系统

区别:
1.svn是集中式(只有一个集中管理的服务器),git是分布式(每一个终端都是一个仓库)
2.svn必须要联网,git无需联网
1
2
3

git优点:适合分布式开发,离线工作,速度快、灵活

svn

git


git诞生小故事

Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过***手工方式***合并代码!

你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。


使用git

  1. 安装git
  2. 注册github

1

1

2

2

3

3

4

4

5

5

  1. 远程仓库
//1. 配置远程仓库
git config --global user.name "你给你git起的名字"
git config --global user.email "你git验证的邮箱"
//****************************************************
//2. 创建远程仓库目录

cd 路径          //进入相应路径99
mkdir 文件夹名    //创建文件夹
pwd              //显示当前路径
//****************************************************
//3. 将目录编程git仓库  **
git init         //输出这个就对了--》Initialized empty Git repository in 

//****************************************************
//4. 提交文件到git服务器
 
git add 文件名(带后缀)           //将文件推送到暂存区  
git add .                       //将全部文件添加到暂存区
git commit -m "这里写你干嘛了"    //将文件提交到本地仓库中 -m "相当于注释"
git status                      //查看commit状态    (添加到暂存区的文件)

git diff                        //查看修改内容
/*****************
	这里注意,如果commit后又修改了文件,需要使用diff查看修改内容,确认什么文件被修改了
	然后add修改的文件,最后再commit到本地仓库
*/

git log                         //查看提交日志   如果条数太多,可以用q退出 
git reset --hard HEAD^          //回退版本,HEAD表示当前版本,HEAD^表示上个版本,HEAD^^表示上两个版本     上N个版本    HEAD~N    HEAD~100

/******************
	后悔药!是有的
	后悔回退了怎么办,首先,稳住,窗口别关!!!!!!!!
*/

git reflog                       //查看命令历史   黄色的前缀是提交操作的id号!!!!
git reset --hard  id号

rm 文件名                 //删除文件
git checkout             //查看删除文件   检出
git checkout -- 文件名    //把本地库中的内容读取到工作区(只能回退到最后一次提交commit到版本库的版本)
                            
git remote add origin 你项目的地址   //添加远程仓库    origin是默认名字  你可以更改为其他的
                                   //这步操作 ,是给项目地址起一个名字 ,名字代表远程仓库地址
                                   //方便以后提交或更新内容
                                   //在pull  push的时候,可以写地址名但是因为太长了所以给个别名
                                                                
git remote -v                       //查看当前绑定的git地址
git remote remove 要移除的地址昵称     //移除添加的远程仓库地址 

git push -u origin master          //提交文件,第一次使用需要加-u  设置默认远程仓库
git push         //设置默认主机后,直接git  push就是提交到默认远程仓库




git clone 远程仓库地址             //克隆远程仓库代码


git pull origin master           //同步远程仓库项目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

版本号

git本地库操作

//不想被提交的文件
//创建一个.gitignore文件
touch .gitignore     //将需要忽略提交的文件全称写入其中
                     //它本身也要写在里面  .gitignore
1
2
3
4

  1. 分支操作

主分支 master

//1.查看分支             //*代表当前分支!!!!!!
                        //变绿色的  是你当前使用的分支
git branch
//2.创建分支
git branch 分支名
//3.切换分支
git checkout 分支名

/*
	创建并切换新分支
	git checkout -b 分支名称
*/


//4.合并分支!!!!!!!!!*************
/*
	切换到master分支上!!!
*/
git merge 分支名
git log --graph            //可以查看合并分支图

//5.删除分支          需要你先切换到master上!!!!!
git branch -d 分支名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

git分支

*************************解决冲突!!!!!!!!

当两个分支都提交同一块代码,合并分支的时候就会产生冲突!!!!!!

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

需要手动修改 并重新提交!

今天干完活
//先保自己代码!!!!!!!!!!!!!!!!!!!
//1.保存在缓存区当中
git add . 

//2.将你的代码 提交到 你本地的仓库中 !!!!!
git commit -m "注释"

//3.将代码同步  (同步远程仓库代码 master) !@!!!!!!!!!!!!
git pull o master        //master一般来说是用户正在使用的分支
                         //生产分支dev   测试分支
                         
//4.如果冲突了,解决冲突  (冲突是在同一个文件,同一个地方多人更改)       

//4.1将解决冲突后的代码  重新提交到缓存区当中
git add .
//4.2重提提交到本地仓库
git commit -m "我刚才解决了XX冲突"

//5 最后将代码提交到远程仓库
git push o master    //!!!!!!!!!你这个不一定是master  别给人家线上东西改了
                         

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//第一天工作,或者接新的项目
git clone 远程仓库地址             //克隆远程仓库代码
1
2
git merge        --------相当于    git pull
1
编辑
#基础
gulp

← gulp

最近更新
01
vue自定义指令&生命周期
08-24
02
ajax
08-24
03
promise
08-24
更多文章>
Theme by Vdoing | Copyright © 2019-2020
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式