文章目录
一、Git是什么?
1.1 Git基本理论
工作区域
Git本地有三个工作区域:工作目录(Working Directory),暂存区(Stage/index)资源库(Repository或Git Directory)。如果在加上远程的git仓库(Rmote Directory)就可以分为四个工作区域,文件在这四个区域之间的转换关系如下:
- Workspace :工作区,就是平时存放项目代码的地方
- index/Stage:暂存区,用于临时存放你的改动,事实上只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里有提交到所有版本的数据,其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是项目中的一台电脑用于远程数据交换本地的三个区域,应该是git仓库中HEAD指向的版本
HEAD文件内容:
1.2 Git的工作流程
- 在工作目录中添加,修改文件;
- 将需要进行版本管理的文件放入暂存区;
git add .
- 将暂存区域的文件提交到git仓库;
git commit
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(commited)
二、Git安装及配置
2.1 Git下载及安装
镜像下载地址:`http://npm.taobao.org/mirrors/git-for-windows/v2.32.0.windows.2/`
镜像下载快一些,可以选择对应的版本,我这里下载的是windows版。
下载好后一路next安装即可。
安装好后,右击鼠标,会显示有Git的命令:
2.2 Git的配置
- 右击鼠标,点击Git Bash Here,打开Git命令行:
- 输入
git config -l
,查看当前项目配置,刚安装的是没有账户和email的,所以需要配置:
- 查看系统配置:
git config --system --list
,不会列出账号和邮箱 - 查看本地配置:
git config --global --list
,此时这里会报错,因为我还没配置。所以必须要配置账号和邮箱,其实Git的配置就是要让Git知道你是谁
- 其实所有的系统配置文件其实都保存在本地安装目录下的gitconfig文件,我的路径是:
E:\Git\etc\gitconfig
这个文件与上面命令行显示的配置一致
- 用户的配置文件在
C:\Users\chuang\.gitconfig
,没有的话可以在自己的windows用户名下创建一个.gitconfig文件。 - 然后在Bash界面输入:
git config --global user.name "chuang"
配置账号 - 输入
git config --global user.email "***@qq.com"
配置邮箱,这里的“***”可以替换成自己的邮箱名 - 配置完成后可以再次点击git config -l,查看配置,可以看到多了用户名和邮箱,配置成功
三、Git基本操作
3.1 Git项目创建及克隆
- 创建本地仓库:
git init
- 克隆远程仓库:
git clone [url]
3.2 Git文件操作
文件4种状态
版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不能提交的文件,或者要提交的文件没提交上。
- Untracked:为跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过
git add
状态变为stage
. - Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改,而变为
Modified
,如果使用git rm
移出版本库,则成为Untracked
文件。 - Modified:文件已修改,仅仅是修改,并没有进行其它的操作,这个文件也有两个去处,通过
git add
可进入暂存staged
状态,使用git checkout
则丢弃修改过,返回到unmodify
状态,这个git checkout
即从库中取出文件,覆盖当前修改! - Staged:暂存状态,执行
git commit
,则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodify
状态,执行git reset HEAD filename
取消暂存,文件状态为Modified
.
查看文件状态的命令:git status
,查看所有文件状态。git status [filename]
查看某一文件状态。
两个常用命令
git add . //添加所有文件到暂存区
git commit -m // 提交暂存区中的内容到本地仓库 ,-m 提交信息
3.3 忽略文件
有些时候不想将某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
在主目录下建立.gitignore
文件,此文件有如下规则:
- 忽略文件中的空行或以“#”开始的行将被忽略
- 可以使用Linux通配符,例如*。
- 如果名称的最前面有一个感叹号,表示例外规则,将不被忽略
- 如果名称的最前面是一个路径分隔符,表示要忽略的文件在此目录下,而子目录中的文件不忽略
- 如果名称的最后面是一个路径分隔符,表示要忽略的是此目录下该名称的子目录,而非文件。
- .gitignore文件示例:
#为注释
*.txt #忽略所有.txt为结尾的文件,上传的时候就不会被选中
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/dd.txt # 忽略某个文件夹下的文件
3.4 gitee的使用
gitee跟github一样,也是一个代码托管平台,只不过github是国外网站,需要翻墙,如果不想太慢,可以用用gitee,上面也有很多开源项目。
gitee链接
- 配置SSH公钥,免密码登录
在C:/Users/administrator
下新建一个.ssh
文件夹,然后在.ssh
文件夹下打开gti命令行界面,输入ssh-keygen -t rsa
,然后一路回车下去。
- 生成完后该文件夹下就会产生两个文件:
- 然后将id_rsa.pub文件里的内容拷贝到gitee个人主页上:
- 然后
git clone
一个仓库到本地,接着就可以按照git基本操作对代码进行管理了。