git管理工具简单

来源:互联网 发布:淘宝刷收藏怎么算的 编辑:程序博客网 时间:2024/06/06 03:21
1.版本控制工具:

在实际情况中,多数情况是团队合作,各自的代码需要共享,要完成这一任务,靠手工是无法完成的,需要借助一系列的工具来完成,这样的工具就称作版本控制工具,常见的有(GIT,SVN)

Git诞生于Linux系统,Git的使用更多的是通过命令行进行的

注意:Git也有图形界面的软件。

第1章Shell和vi


1.1什么是shell

在计算机科学中,Shell俗称壳,用来区别于Kernel(核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。


1.2shell分类

1、图形界面shell:通过提供友好的可视化界面,调用相应应用程序,如windows系列操作系统,Linux系统上的图形化应用程序GNOME、KDE等。

2、命令行shell:通过键盘输入特定命令的方式,调用相应的应用程序,如windows系统的cmd.exe、Windows PowerShell,Linux系统的Bourne shell ( sh)、Bourne Again shell ( bash)等。(bush属于命令行shell的一种)


1.3认识bash这个shell

在window系统下使用bash,需要一个软件,这个软件模拟集成了bash大部分命令。

各个 shell 的功能都差不多, Linux 默认使用 bash ,所以我们主要学习bash的使用。gitbush集成了大多数bush的功能。


Git设置字体:

右键options--->text(带@符号的表示竖着的字体)

设置窗口options--->window


1、bash命令格式

命令 [-options][参数](中括号表示可写可不写),如:tar  zxvf  demo.tar.gz
查看帮助:命令 --help


2、bash常见命令
  1. pwd (Print Working Directory) 查看当前目录
  2. cd (Change Directory) 切换目录,如 cd /etc(点代表当前,点点代表上一级cd ..)
  3. ls (List) 查看当前目录下内容,如 ls -al(如果写ls -l还有文件创建的日期,-a把文件夹下面所有的东西都显示出来,包含点点,ls -a -l就等同于ls -al,后面如果写一个参数01day,会查看到01day下面的内容,不给参数的话指的就是当前)
  4. mkdir (Make Directory) 创建目录,如 mkdir blog(可以传多个参数,以空格分隔即可)
  5. touch 创建文件,如 touch index.html(touch css/index.css在css的文件夹下面创建一个index.css文件)
  6. cat 查看文件全部内容,如 cat index.html
  7. less 查看文件(分页查看,按空格的话查看下一页,到end时用Q键退出),如more /etc/passwd、less /etc/passwd
  8. rm (remove) 删除文件,如 rm index.html、rm -rf  blog
  9. rmdir (Remove Directory) 删除文件夹,只能删除空文件夹,不常用(rm -r可以删除一个不为空的文件夹,被删除的文件夹没有回收站,不能恢复)
  10. mv (move) 移动文件或重命名(两个参数:移动的文件名,需要移动进哪个文件夹mv css/index.html ./,如果想要在移动的同时改名字,可以这么写mv index.html images/abc.html),如 mv index.html ./demo/index.html
  11. cp (copy) 复制文件,cp index.html ./demo/index.html
  12. tab 自动补全,连按两次会将所有匹配内容显示出来
  13. > 和 >>重定向(echo hello > demo.txt  ls > demo.txt ,一个大于号是替代,两个大于号是追加),如echo hello world! > README.md,>覆盖 >>追加
  14. | 管道符可以将多个命令连接使用,上一次(命令)的执行结果当成下一次(命令)的参数。
  15. grep 匹配内容,一般结合管道符使用

1.4vi编辑器

如同Windows下的记事本,vi编辑器是Linux下的标配,通过它我们可以创建、编辑文件。它是一个随系统一起安装的文本编辑软件。


1、三种模式

vi编辑器提供了3种模式,分别是命令模式、插入模式、底行模式,每种模式下用户所能进行的操作是不一样的。

输入模式是不能直接切换到末行模式的,必须要先切回到命令模式(按ESC键)


2、使用vi/vim(vim比vi强大,vim可以配置element语法)编辑器
  1. a) 打开/创建文件, vi 文件路径
  2. b) 底行模式 :w保存,:w filename(例如:w index.html)另存为
  3. c) 底行模式 :q退出
  4. d) 底行模式 :wq保存并退出
  5. e) 底行模式 :e! 撤销更改,返回到上一次保存的状态
  6. f)  底行模式 :q! 不保存强制退出
  7. g) 底行模式 :set nu 设置行号
  8. h) 命令模式 ZZ(大写)保存并退出
  9. i)  命令模式 u辙销操作,可多次使用
  10. j)  命令模式 dd删除当前行
  11. k) 命令模式 yy复制当前行
  12. l)  命令模式 p 粘贴内容
  13. m)命令模式 ctrl+f向前翻页
  14. n) 命令模式 ctrl+b向后翻页
  15. o) 命令模式 i进入编辑模式,当前光标处插入
  16. p) 命令模式 a进入编辑模式,当前光标后插入
  17. q) 命令模式 A进入编辑模式,光标移动到行尾
  18. r)  命令模式 o进入编辑模式,当前行下面插入新行
  19. s) 命令模式 O进入编辑模式,当前行上面插入新行

当我们处在编辑模式的情况下,和我们在Windows编辑器的使用相似。


第2章版本控制


2.1关于版本控制

版本控制(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。这个系统可以自动帮我们备份文件的每一次更改,并且可以非常方便的恢复到任意的备份(版本)状态。

举例:我们通常都是手动的重命名一个文件进行备份的,index.html改成index1.html或者index.html.bak等形式,然后这种方式对于单个文件我们还能够管理,但是对于整个项目而言,就会成为噩梦了!!!我们不得不借助于软件来实现。

实现版本控制的软件有很多种类,大致可以分为本地版本控制系统、集中式版本控制系统、分布式版本控制系统(主要学习这个,前面的了解即可)


2.2本地版本控制系统

借助软件我们可以记录下文件的每一次修改,如下图所示,文件被修改后,记录下了3个版本,这样我们通过版本控制系统(软件)便可以非常方便的恢复到任意版本。

这种类型的版本控制系统,功能比较单一,比如很难实现多人协同开发,所以现在几乎很少使用了。


2.3集中式版本控制系统

实际开发环境,一个项目通常是由多人协作共同完成的,如何让在不同终端上的开发者协同工作成了亟待解决的问题,集中式版本控制系统便应运而生了。它通过单一的集中管理的服务器,保存所有文件的修订版本,协同工作的开发者都通过客户端连到这台服务器,取出最新的文件或者提交更新。其代表为SVN,如下图所示。


弊端:这种方式很好解决了多人协同开发的问题,但是也有一个弊端,如果集中管理的①服务器出现故障,将会导致数据(版本)丢失的风险,另外协同开发者从集中服务器中更新数据时,②严重依赖网络,如果网络不佳,也给开发带来诸多不便。


2.4分布式版本控制系统

分布式版本控制系统,则不需要中央服务器,每个协同开发者都拥有一个完整的版本库,这么一来,任何协同开发者用的服务器发生故障,事后都可以用其它协同开发者本地仓库恢复。

由于版本库在本地计算机,也便不再受网络影响了。如果要将本地的修改,推送给其它协同开发者,还需要一台共享服务器,所有开发者通过这台共享服务器同步和更新数据。如下图所示。


分布式版本控制系统弥补了前面两种版本控制系统的缺陷,成为了版本控制的首选方案。其代表就是Git。


第3章Git

3.1Git安装
Window安装:

下载Git客户端软件,和普通软件安装方式一样。

Linux安装:

CentOS发行版:sudo yum install git

Ubuntu发行版:sudo apt-get install git

Mac(类unix,是unix的基础上改的)安装:

打开Terminal直接输入git命令,会自动提示,按提示引导安装即可。

(Gite要工作需要bash命令,windows上想要使用git也要使用bash命令,gitBash就将常见的bash命令集成进来了。)


3.2Git工作原理

为了更好的学习Git,我们们必须了解Git管理我们文件的4种状态,分别为未追踪(untracked)、已提交(committed)、已修改(modified)和已暂存(staged),由此引入 Git 项目的3个工作区域的概念:Git 仓库、工作目录以及暂存区域。

Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。 这是Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

工作目录是对项目的某个版本独立提取出来的内容。这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改

暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作“索引”(Index),不过一般说法还是叫暂存区域。


基本的Git工作流程如下:

1、在工作目录中修改文件。

2、暂存文件,将文件的快照放入暂存区域。

3、提交文件,找到暂存区域的文件,将快照永久性存储到Git仓库目录。


3.3Git本地仓库

Git本地仓库指的是开发者计算机中的仓库。

3.3.1Git基础

命令行方式:任意目录(建议开发根目录)右键 > Git Bash Here

1、配置用户

配置用户的意义在于记录开发者信息,以便在版本控制记录开发者的操作行为,如lion于2016-08-24解决了一个bug。

git config --global user.name "自已的名字"

git config --global user.email "自已的邮箱地址"

--global 配置当前用户所有仓库

注:配置用户只需要执行1次,可以重复使用。
2、初始化仓库

我们如果想要利用git进行版本控制,需要将现有项目初始化为一个仓库,或者将一个已有的使用git进行版本控制的仓库克隆到本地。

git init(用来初始化仓库)

git init会在当前项目目录中创建一个名为.git的隐藏目录,这个目录包含了暂存区和仓库两个区域,有了这个隐藏目录就可以使用git来管理项目了,通过ls  -al 可以查看。

3、查看文件状态

初始化仓库后便可以进行开发了,进入到刚刚创建好并初始为仓库的目录,添加我们开发需要的文件。

通过git status可以检测当前仓库文件的状态(未追踪untracked)。

注:git会忽略空的目录
4、添加文件到暂存区

假设经过一段时间的开发后,需要把已开发的部分暂存起来等待提交,使用git add 添加到暂存区。

git add 文件名/ 文件路径 “*”或-A代表提交所有

通过git status再次查看文件状态,放到暂存区的文件被标记成了绿色,等待提交。

注:颜色是工具给添加的,目的是增加可读性并不是git统一的。
5、撤销更改

继续我们的开发,再次git status可以再次查看仓库状态

被标记了红色,说明index.html被再次修改了。又经过一段时间后发现新开发的部分有Bug,想要回到之前状态,可以使用git checkout 文件名,将上次暂存的文件还原到工作区。

6、提交文件

经过一个相对较长阶段开发或者一个功能开发完成了,就可以提交到本地仓库了,永久保存了。git commit -m '备注信息'

将暂存区被标记成绿色的文件,全部提交到本地仓库存储。
这时git status查看状态,没有什么可提交的,变的很干净。(git status在整个操作过程中可以反复使用,用于随时查看文件状态)

7、查看提交历史

反反复复开发了很多的功能了,通过git log查看一下提交的历史。我们可以查看到一次次的提交记录

8、再次检测仓库文件状态

隔了好些天后,继续开发,git status 查看状态,又提示有修改,等待重新添加到暂存区。

9、重新添加暂存区然后提交
10、再次查看历史

git log 可查到所有提交历史,这时可以查看到更多提交历史。

11、恢复上以前提交的版本

通过commit id值可以回到之前某一次的提交(时光倒流)git reset --hard c888a614e072e2这样便回到了支付功能的状态git log再次查看发现最后一次提交成了支付功能了


3.4命令汇总
  1. git config配置本地仓库(常用git config --global user.name、git config --global user.email,git config --list查看配置详情)
  2. git init 初始一个仓库,添加--bare可以初始化一个共享(裸)仓库
  3. git status 可以查看当前仓库的状态
  4. git add“文件” 将工作区中的文件添加到暂存区中,其中file可是一个单独的文件,也可以是一个目录、“*”、-A
  5. git commit -m '备注信息' 将暂存区的文件,提交到本地仓库
  6. git log 可以查看本地仓库的提交历史
  7. git branch查看分支
  8. git branch“分支名称” 创建一个新的分支
  9. git checkout“分支名称” 切换分支
  10. git checkout -b deeveloper 他健并切到developer分支
  11. git merge“分支名称” 合并分支
  12. git branch -d “分支名称” 删除分支
  13. git clone “仓库地址”获取已有仓库的副本
  14. git push origin “本地分支名称:远程分支名称”将本地分支推送至远程仓库,
  15. git push origin hotfix(通常的写法)相当于
  16. git push origin hotfix:hotfix
  17. git push origin hotfix:newfeature本地仓库分支名称和远程仓库分支名称一样的情况下可以简写成一个,即git push “仓库地址” “分支名称”,如果远程仓库没有对应分支,将会自动创建
  18. git remote add “主机名称” “远程仓库地址”添加远程主机,即给远程主机起个别名,方便使用
  19. git remote 可以查看已添加的远程主机
  20. git remote show “主机名称”可以查看远程主机的信息
0 0
原创粉丝点击