简单的说,如果把做一个项目比作打一个游戏,Git就是一个用来存档的工具,它可以在需要的时候帮助我们存储当时的版本信息,在需要时在存储的各个版本之间进行切换版本,以此帮助我们更好的对项目进行开发。 此外,Git不单是单人的版本控制,还能进行多人的协同开发。
首先说一下单人的版本控制
1.初始化一个Git仓库
在选定的目录下,使用git init来进行初始化.这个工作通常是在项目开发之前来进行的。它会在当前目录下,创建一个.git的隐藏目录。
2.设置用户名和邮箱
只是在第一次使用git的时候,需要设置,以后就不需要设置了。
git config user.name 用户名
git config user.email 邮箱
其中,用户名和邮箱,可以随意写。但是在公司里,一般是有分配好的邮箱。
复制代码
3.添加文件到仓库
一旦初始化好版本仓库之后,就可以正式写代码,进行开发了。在开发的过程中,如果你完成了某一个功能,就可以将该功能的相关文件条件到仓库。
使用git add 文件名1 文件名2 文件名3 ...
(可同时提交多个,并且这个过程可以重复)
如果使用git add * 则表示把工作区所有文件都提交到暂存区
复制代码
4.提交
如果你任务某一个完整的模块/功能已经实现了,可以将其做出一个版本。
使用git commit -m 说明
(说明是必不可少的,内容自定)
复制代码
在开发过程中,大部分时间是在重复3-4这两个步骤。如果确定保存当次版本,3/44两个步骤缺一不可。
一些常用的命令
1.git config
用于对配置进行操作的命令
在使用的过程,需要对用户名和邮箱进行配置。
git config user.name 用户名
git config user.email 邮箱
可以使用git config --list 查看所有的git配置项
复制代码
2.git init
用于初始化版本仓库。
使用的时候,可以有如下两种用法:
(1)创建好目录,然后直接git init
(2)git init +项目名称
复制代码
一旦使用了git init命令,那么就会在项目目录下,创建一个.git的隐藏目录。
该目录是版本仓库,是git来维护的,用户不能在这个目录中做任何的操作。
3.git status
用于显示当前版本仓库的状态。不同的阶段,显示的信息是不一样的。
4.查看版本
可使用 git log 来查看版本的信息
(只包括当前及以前的版本,不包括对现在版本来说的未来的版本)
也可使用 git reflog 来调出所有的版本
复制代码
5.回退
有如下两种方式:
git reset--hard HEAD^
(HEAD^回到上一次的历史版本)
(HEAD^^回到上上一次的历史版本)
(HEAD^^^回到上上上一次的历史版本)
(HEAD~n回到当前版本的前第n个历史版本)
也可直接回到某个版本
git reset --hard commit_id
(commit_id指的是版本号,就是查看版本时commit后面的那一串字码)
复制代码
多人的协作开发
1.创建一个git服务器
通常是项目负责人来完成这项工作。有许多的代码托管平台,可在其中某个创建。
(使用git init --bare可在自己的电脑上创建一个裸服务器,可在练习可以这样做,以不同的分盘代表不同的人。注意,git裸服务器中,整个目录都是版本仓库,没有工作区。也就意味着不能在git裸服务器的项目目录中编写代码。)
2.从已创建好的服务器将版本克隆至本地
git clone 地址
复制代码
3.进行本地常规操作
一般是先设置一次邮箱,然后在需要的时候重复单人版本控制中的第三、四两个步骤。 至此,我们做好的项目还在我们自己的电脑上。
4.推送版本至服务器
git remote 用来获取git服务器的名称
git push 服务器名称 master 将本地文件推送到服务器中
使用这两个指令可以将当前项目推送到服务器,包括其中的每个版本信息。
复制代码
5.从远程服务器拉取版本 git pull
为了确保可以推送,每个开发人员在推送版本之前,必须要确保自己的版本是最新的版本。 此时,可以使用 git pull 命令从服务端拉取最新版本到本地,然后再推送。
在实际开发中,需要来回的进行pull和push。
需要注意一点:多个程序员不要同时去修改某一个文件,否则就会出现冲突。
emmmmmmmmmmmm
暂时只学了这么点,有错误欢迎指正