代码管理器学习练习

代码管理器顾名思义就是管理代码的工具。。帮助我们解决工作中的问题。
开发过程中常见问题:

  1. 代码回滚:返回到先前的某一特定的状态!
  2. 代码合并:多人开发中,将各自开发的功能模块进行合并。
  3. 版本备份:项目开发到某一可运行阶段后,进行备份。
  4. 权限控制:限制不同用户访问或操作不同的文件。(小白不能碰核心代码吗- -)
  5. 追究责任:项目出现了Bug后,可以快速定位到Bug是谁造成的。(防止甩锅。。)

源代码管理工具的作用?

  1. 能追踪一个项目从诞生一直到定案的过程
  2. 记录一个项目的所有内容变化,无限制返回
  3. 查看特定版本的修订情况

常见的代码管理工具有:

  1. CVS 老祖宗
  2. SVN - 全称是Subversion,集中式版本控制之王者
  3. git
  4. clearcase 收费的代码管理工具,价格贵速度慢但十分稳定。

git 简介:

git是一款开源的分布式版本控制工具
在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
作者是Linux之父:Linus Benedict Torvalds
当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)

git svn对比:
虽然没有用过svn 但是看到网上和老师说:

  1. 在很多情况下,git的速度远远比SVN快
  2. SVN是集中式管理,git是分布式管理
  3. SVN使用分支比较笨拙,git可以轻松拥有无限个分支
  4. SVN必须联网才能正常工作,git支持本地版本控制工作

集中式的特点:

所有的代码都集中在一块, 统一进行管理,效果如图:
在这里插入图片描述

分布式特点

在每个客户端都有一份完整的代码仓库, 可以在每个客户端自行管理,效果如图
在这里插入图片描述
图中应该有6个箭头将所有内容连接起来 …

简单来说集中式版本控制需要将代码统一在一起,分布式版本控制每个人在本地会有一片空间,可将写好的代码放在本地,需要统一时再进行上传

工作中的流程大概是:
git clone git 会连同代码仓库一起下载下来
git commit git commit 中是提交到本地仓库
git push git push才能提交到服务器
git pull 从服务器下载最新被修改的代码

图示:

入职后, 关于代码的第一件事就是要账号密码,登录服务器, 下载代码, 开始熟悉,每天走之前, 提交一份没有问题的代码到服务器,每天早上来之前, 从服务器拉一份最新的代码到本地再进行开发

git的使用分为:
命令行和图形化软件 , 命令行就是类似黑客一样咔咔咔写代码,图形化软件就是类似webstrom类的软件 鼠标点点点即可。

实战前的知识储备(重要):

软件安装地址:https://git-scm.com/download/win

Shell&bash :

Shell俗称壳,用来区别于Kernel(核),是指“提供使用者使用界面”的软件(命令解析器)
命令行进入shell,windows系统:cmd.exe 、 Linux系统 Bourne shell

我们安装的git软件, 内置了bash,但他是阉割版本有些命令并不支持。

我考这一段我自己也有点蒙蔽了。。。。。。。。

  1. 必学命令
    help [子命令] : 查看某一个具体的子命令的使用方法

  2. 常用命令

    • cd path : 将当前路径切换到path路径
    • pwd :查看当前所在路径
    • ls (-a / -l / -G) : 查看当前文件夹下所有文件及文件夹
    • touch filename1 filename2 : 创建一个或者多个文件
    • rm filename : 删除文件
    • cat filename :查看文件内容
    • less filename :分页查看文件内容
    • mkdir 文件夹名称 :创建一个文件夹
    • rmdir 文件夹名称 :删除一个文件夹
    • mv oldFilePath newFilePath :移动文件(可借助此命令给文件重命名)
  3. 了解命令
    wc
    字数信息统计
    换行个数 单词数 字节数 文件名
    0 3 7 a.txt
    history
    查看操作历史
    head
    查看文件前几行,如 head -5 index.html
    tail
    查看文件后几行
    ssh
    远程登录
    ssh [email protected]
    curl
    网络请求
    curl http://www.baidu.com
    whoami
    查看当前用户

  4. 补充
    . 代表当前文件路径
    … 代表上级目录
    以 .开头的文件,代表隐藏文件
    * 显示隐藏文件(Mac)
    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder
    * 不显示隐藏文件(Mac)
    defaults write com.apple.finder AppleShowAllFiles No && killall Finder

vi编辑器
三种模式
1.命令模式
输入的内容, 会被当做命令来处理
2.插入模式
想要给文件添加内容, 必须是这个模式
3.底行模式
想要保存文件, 或退出编辑器, 必须在这个模式输入指令
wq
保存并退出
q!
强制退出
模式切换图解

进阶补充(了解)
	命令行模式命令
		ZZ(大写)保存并退出
		 u辙销操作,可多次使用
		 dd删除当前行
		 yy复制当前行
		 p 粘贴内容
		 ctrl+f向前翻页
		 ctrl+b向后翻页
		 i进入编辑模式,当前光标处插入
		 a进入编辑模式,当前光标后插入
		 A进入编辑模式,光标移动到行尾
		 o进入编辑模式,当前行下面插入新行
		 O进入编辑模式,当前行上面插入新行
	底行模式命令
		:w保存,:w filenme另存为
		:q退出
		:wq保存并退出
		:e! 撤销更改,返回到上一次保存的状态
		:q! 不保存强制退出
		:set nu 设置行号

未完待续。。。

04-(掌握) Git 的使用
1. git工作原理
1. 概念理解
- 工作区
> 与.git文件夹同级的其他文件夹或者子文件夹
- 版本控制库
> 暂缓区
> 分支
(Git不像SVN那样有主干和分支的概念. 仅仅存在分支,其中master分支为默认被创建的分支,类似于SVN中的主干)
切换分支:
通过控制HEAD指针指向不同的分支,就可以切换*
2. 操作原则:
所有新添加/删除/修改的文件 必须先添加到暂缓区,然后才能提交到HEAD指向的当前分支中
图解

2. git使用环境
	1. 单人开发只需要一个本地库
		原因:不需要与他人共享代码,只负责管理自己代码即可;例如提交代码,删除代码,版本控制等等
	2. 多人开发时需要一个共享版本库
		共享版本库的形式:
		本地共享库:文件夹/U盘/硬盘
		远程共享库:自己搭建git服务器/ 托管到第三方平台(例如github, oschina)
	3. 客户端使用环境
		** 无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用git**
		> SourceTree
			- 下载地址:http://www.sourcetreeapp.com/download/
		PHPStorm/WebStorm
			内置有git相关操作
3. 学习网站
	http://backlogtool.com/git-guide/cn/intro/intro1_1.html
操作步骤
	新建code文件夹
	git init
		初始化git仓库
	画图
05-(掌握)Git命令行演练-个人开发
	05-01 (掌握)Git命令行演练-个人开发-搭建本地仓库
		0. 如何学习git指令
			> git help [子命令]
		1. 初始化一个本地仓库
			> 原因: 管理本地代码,修改上传,版本回退
			> 命令: git init
		2. 配置仓库
			> 告诉git你是谁?
				原因: 追踪修改记录
				命令: git config user.name “11”
			> 告诉git怎样联系你?
				原因: 多人合作开发时, 沟通交流
				命令: git config user.email "[email protected]"
			> 查看配置信息(.git -> config打开)
				命令:  git config -l
	05-02 (掌握)Git命令行演练-个人开发-基本使用
		> 创建文件并提交
			命令: 
				touch index.html
				git add . 
				git commit -m “注释”
		> 修改文件并提交 
			命令: 
				git add .
				git commit -m “注释”
		> 删除文件并提交
			命令: 
				git rm index.html
				git commit -m “注释”
		> 日志查看
			命令: 
				git log 
				git reflog
		理论支持
			1. 文件状态(git status)
				> 颜色含义
				红色: 代表被添加或者修改的文件没有被添加到暂缓区
				绿色: 代表文件在暂缓区,等待提交
				nothing to commit, working directory clean
					表示没有东西需要提交
			2. 版本号的含义
				版本号是一个由SHA1生成的40位哈希值
				这样做的目的是保证版本号的唯一
	05-03 (掌握)Git命令行演练-个人开发-版本回退
		修改了没有提交-版本回退
			命令: 
				git reset --hard HEAD 重置到当前版本
		修改了,已经提交-版本回退
			命令: 
				git reset --hard HEAD^^ 重置到上上个版本
				git reset --hard HEAD~2 重置到往上2个版本
				git reset --hard 七位版本号 重置到指定版本::
			然后再使用git push --force将本次变更强行推送至服务器。这样在服务器上的对应版本的错误提交也彻底消失了。
			慎用: 会把别人提交的代码也撤销
	05-04 (掌握)Git命令行演练-个人开发-备注补充
		1. 配置别名
			git config alias.st “status”
			git config alias.ci “commit -m”
		2. --global的作用
			可以进行全局配置,所有的版本库共享此配置
			查看全局配置(个人文件夹->.gitconfig
			** 个人电脑上建议使用全局配置**
		3. 日志查看配置
			命令如下: 
				git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)\<%an\>%Creset' --abbrev-commit"
			使用方式:
				git lg
	操作步骤1
		git help init
			C:\Program Files\Git\mingw64\share\doc\git-doc
		git config user.name 'yejianhua'
			git config user.email '[email protected]'
		删除.git
			git init
				touch  a.txt
					git status
						查看当前状态
						红色的在工作区
		git add .
			. 当前目录下所有文件
			* 通配符
		git status
			存入暂缓区
			变成绿色
		git commit
			提交到master分支
		进入vi编辑器
			esc
				ZZ
	操作步骤2
		修改a.txt文件
		git status
			git add .
				git commit -m '往a.txt文件中加入内容'
		git status
	操作3-删除
		手动删除a.txt
			git status
				git add .
					git commit -m '手动删除'
						git status
		touch b.txt
			ls
				git status
					git add.
						git commit -m '添加b.txt'
		git rm b.txt
			git status
				git commit -m  '删除b.txt'
					git status
	操作4-查看日志
		git log
		git reflog
			用于版本回退
	操作5-版本唯一
		画图演示
	操作6-版本回退
		创建
			touch index.js
				git status
					git add .
						 git commit -m '创建了index.js文件'
							git status
		用vi进入index.js
			修改好后保存退出
				git status
					git add .
						 git commit -m '修改1'
							git status
		用vi进入index.js
			修改好后保存退出
				git status
					git add .
						 git commit -m '修改2'
							git status
		用vi进入index.js
			修改好后保存退出
				git status
					git add .
						 git commit -m '修改3'
							git status
		用vi进入index.js
			修改好后保存退出
				git status
					git add .
						 git commit -m '修改4'
							git status
		用vi进入index.js
			修改好后, 保存退出
				不提交进行版本回退
					 git reset --hard HEAD
					git status
		index.js文件中添加文件
			修改好后, 保存退出
				提交到版本库
					 git reset --hard HEAD
					git status
					不行
				回退到上一个版本
					 git reset --hard HEAD^
				回退两个版本
					 git reset --hard HEAD^^
				回退多个版本
					 git reset --hard HEAD~版本号
				想回去
					git reflog
					git reset --hard  对应版本号
	操作7-别名
		演示
			git st
				报错
			git config alias.st 'status'
				git st
			本地config文件中查看
			不建议使用别名
	操作8-全局配置
		git config --global user.name 'yjh'
		C:\Users\yejianhua
		命令如下: 
			git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)\<%an\>%Creset' --abbrev-commit"
		使用方式:
			git lg

https://www.cnblogs.com/yiduobaozhiblog1/p/9125465.html
https://www.jianshu.com/p/5ae8d1f1170e

猜你喜欢

转载自blog.csdn.net/weixin_44089544/article/details/89038661