Git 是一个版本控制系统,可以帮助开发人员管理和跟踪项目代码的变更。Git 的基本概念包括:
Git 的使用方式包括:
以上都是一些基础概念的知识,不需要死记硬背过一遍脑子有概念就可以,接下来我会系统地讲述一下git运用的基本流程与心得。
一、首先在创建git仓库前,你需要先重点了解几个概念或者流程。
1、工作区:就是你所选中的项目文件,也可作为git初始化文件,在此区域(文件)进行项目代码的修改,增加或者缩减。
2、暂存区:所有在git仓库中的文件(临时创建的)其实并不知真正处在git仓库当中,你需要手动把它们add到暂存区才算是完成保存到git仓库的第一步(否则,那就像是在本地保存,这怎么能够叫做保存到git当中呢?对不对。),而暂存区就如字面意思一样,是暂时用于储存的区域,是临时的并不是永久的,因此你还需要commit到仓库区完成修改,使得文件成功保存到本地git仓库(这里又有几个概念需要了解,不过我认为这些概念其实也不需要过度去解释,如:跟踪状态,未跟踪等,简单来说就是在add到暂存区中后,你所add的文件便会从未跟踪状态转换为跟踪状态,就是git注意到了你这个文件,开始对你所输入的文件进行记忆,应该可以这么理解吧)。
# 添加指定文件到暂存区
$ git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
$ git add [dir]
# 添加当前目录的所有文件到暂存区
$ git add .
# 添加每个变化前,都会要求确认
# 对于同一个文件的多处变化,可以实现分次提交
$ git add -p
3、仓库区(本地):在add完成后,你便可以将文件进一步地commit到仓库区来完成修改,具体就是将暂存区中的文件(也就是你所add的文件)成功保存到本地git仓库当中。
# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a
# 提交时显示所有diff信息
$ git commit -v
# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
# 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...
4、仓库区(远程):顾名思义,就是网络上的远程仓库,用于与其他成员协作共同开发代码,或者企业公司大型项目,如果你需要将你的代码上传到远程仓库当中去,那么你需要再将仓库区(本地)的文件再push到远程仓库当中去。
# 提交指定tag
$ git push [remote] [tag]
# 提交所有tag
$ git push [remote] --tags
# 新建一个分支,指向某个tag
$ git checkout -b [branch] [tag]
总得来说,整体的一个仓库上传过程可以分为add——commit——push。
二、系统了解创建git仓库。
1、在安装完git之后,你就可以使用git来创建和初始化本地仓库了,选择一个文件夹打开(或自己创建一个文件)作为自己的仓库,右键点击空白处打开Open Git Bash here,点击后便会打开在本文件的git终端,你可以在此终端中输入git命令。(小提示:git命令与Linux有很多相似之处,可以作为学习参考。)
2、在成功打开git终端后输入git init初始化本地仓库,将本文件夹转换为“仓库”,如何查看是否创建仓库成功可以点击文件管理器上面的查看——显示——勾选“隐藏的项目”,如果出现“.git"文件夹则说明创建成功。
3、在创建好仓库后你便可以开始在git本地仓库中的一系列操作,如以下命令。
# 下载一个项目和它的整个代码历史
$ git clone [url]
# 显示当前的Git配置
$ git config --list
# 添加指定目录到暂存区,包括子目录
$ git add [dir]
# 添加当前目录的所有文件到暂存区
$ git add .
# 删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...
# 改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]
# 提交暂存区到仓库区
$ git commit -m [message]
# 列出所有本地分支
$ git branch
# 提交指定tag
$ git push [remote] [tag]
......
4、心得(仓库概念):在创建好仓库后,其实基本的内容就已经讲完全了,无非就是把作为git”工作区“中的文件首先add到”暂存区“中,再commit到本地的”仓库区“中,然后如果你想要与他人协作创建代码或者开源自己的代码就push到远程仓库当中而已,其实git很简单,你不必想得太过麻烦Linux之父才用两周时间创作的东西,何必去绞尽脑汁了解它的原理呢?将问题抽象化,与现实中的事物建立起联系无非就是东西递过来递过去没必要想太麻烦。
我认为的几个关键理解代码:
# 添加当前目录的所有文件到暂存区
$ git add .
# 提交暂存区到仓库区(message是作为提示性文字出现的,用双引号你可以写任何东西用于标注此次上传内容)
$ git commit -m [message]
# 一键提交到远程仓库(如果你已经设置了SSH密钥)
$ git push
大致的内容似乎就这些,如果需要补充的话,我再去想想。
(关于建立本地仓库与远程仓库之间的联系,如:github、gitee等,我会放到下章去讲。)