Git是一个开源的 分布式 版本控制系统,用于敏捷高效的处理任何项目的版本问题。
Git 是Linus Torvalds 为了帮助管理Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git 提供了项目上传合并以及下载的管理方法。
一个很不错的学习网站:Git教程 廖雪峰的官方网站 、Git 工作区、暂存区和版本库
git 官网:git–distributed-is-the-new-centralized 中文版工具书
项目在开发的过程中,经常会出现多人分工协作进行项目分发及开发整合的过程,所以项目在刚开始流行的时候经常会出现一些协作开发的同步的问题,同时存在项目整体进度的控制和管理的问题,所以在程序开发行业衍生出来了版本管理工具。
版本管理工具,首先是一个内容管理工具,可以将项目的内容信息存放在版本管理服务器上方便项目组人员进行访问和查询修改。
版本管理具有里程碑意义的主要有三个阶段:CVS阶段 —> SVN阶段 —> Git
CVS阶段: 项目搭建开发过程中,每次提交项目都会将整个项目提交到服务器进行保存,服务器存储着项目的N个备份,开发过程中的协作效率较低,同时也出现了各种传输的问题,所以慢慢淡出了行业。SVN阶段: SVN是集中式 版本控制系统考虑到CVS的缺陷,开发人员根据项目的实际情况,研发出专门针对项目版本控制的软件Subversion(简称SVN),SVN同样也是搭建服务器,让项目组成员将数据存储在服务器上,但是每次改动并提交的时候,SVN服务器并不重新保存整个项目的完整信息,而是和原来的项目进行对比,只保存改动的信息。这样就在很大的程度上对于项目版本服务器、项目协作效率有了显著的提升。所以至今为止,有很多公司依然选用SVN作为公司内部项目协作的版本控制软件。Git阶段: 前面的CVS和SVN都是基于一个服务器的,如果脱离服务器,项目的版本保存就没有了任何意义,Git恰恰处理了这样的问题,Git是一个分布式的版本控制系统,在Git中即使用户离线,也能进行项目的提交和更新操作,等到下次连线服务器时进行整体的同步操作。下载安装包进行安装。
a. 进入到 git bash(命令行工具。右击桌面,也可以看见) b. 初始化 user.name,user.email git config --global user.name "Your Name" git config --global user.email "email@example.com"
c.利用get bash 进入到我们的项目(比如项目命名为 f:\project,确保目录不要出现中文):cd f:\project
d. 初始化仓库:git init ,表示 f:\project里的项目代码(即所有的文件)会使用git进行版本管理。
会在你当前的文件夹中新建一个.git的文件夹,该文件夹默认是隐藏文件。 也可以用命令查看.git文件夹。命令ls -a 可以查看当前路径下的所有文件。
查看当前工作区的文件状态:$ git status 。
如果没有被git管理,则当前项目中文件状态是还在工作区,显示为红色; 如果已经把文件从工作区添加到暂存区,则,文件状态显示为绿色。
比如: git 可以查看的四种状态,第二个Modified稍微注意一下。
文件提交:先从工作区提交到暂存区,然后再从暂存区提交到版本库。
e. 将某文件从工作区—>暂存区:git add 文件名 ; 将文件一次性从工作区—>暂存区:git add .
· git add -A 提交所有变化 · git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) · git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件在项目中新建一个index.html,然后代开 git bash,执行命令:git add index.html 就可以将文件放在暂存区。
f. 将文件从暂存区一次性提交到主分支:git commit -m "解释说明"
理解add和commit:
add,添加。相当于打了标记(实际上是存储在了暂存区stage里),告诉git,下次提交时把该文件进行提交。commit,提交。把打过标记的(即用add进行添加的文件),一次性进行提交。即一次性把暂存区里的文件全部提交到了master分支(主分支)。提交完成后,暂存区里就没有文件了。 Git commit 常见用法 git 的三层结构:工作区、暂存区、版本库。(此处以gitHub为例)
1、进入github官网(https://github.com/) 2、注册账号 3、登录 4、创建本地与远程的连接(公钥ssh)
在本地创建公钥 SSH key:ssh-keygen -t rsa -C 邮件地址,如果要使用默认值,则一路回车; 在⽤户主目录下"c/Users/Administrator/.ssh/id_rsa",查看 id_rsa 和 id_rsa.pub 这两个⽂件是否存在。 在远程创建公钥 SSH key: 登录GitHub,打开“Settings”,点击“SSH and GPG keys”,新建“New SSH key”,填上任意Title,在Key⽂本框⾥粘贴 id_rsa.pub 的内容,然后“add SSH Key”就能成功添加。5、创建远程仓库,然后按照指示填写。 6、把本地库的内容推送到远程库: git push -u origin master
origin是远程库名,根据实际情况进行更改(或者写远程库的地址);确保本地执行过git add和git commit,即,本地版本库要有的版本。1、使用 git status 查看状态和是否存在.git文件; 或者使用 git status -sb 显示当前所有文件的状态。 2、git commit -m用于提交暂存区的文件;git commit -am可以用于直接从工作区提交到版本库,提交跟踪过的文件(即已经提交过的文件,相当于git add 和 gti connit -m,一般别用)
3、创建合并分支: 4、git diff 命令的差异:
git diff 比较的是工作区和暂存区的差别 git diff --cached 比较的是暂存区和版本库的差别 git diff HEAD 可以查看工作区和版本库的差别参考文档:git工作区、暂存区、版本库之间的关系
5、git config --list 查看配置文件,能查看自己的用户名和email。 蚂蚁部落:git config配置文件详解