这下终于弄懂git的基础使用了!(bushi)
常见说明
Git与SVN
- SVN是集中式管理系统,而Git是分布式版本控制系统。
- SVN的版本库是集中放在中央服务器的,而Git每个人的电脑都是一个完整的版本库。
- SVN需要联网才能工作,对网络带宽要求较高,而Git工作时不需要联网。
Windows的一些说明
- Git Bash是Unix与Linux风格的命令行。
- Git CMD是Windows风格的命令行。
- Git GUI是图形界面的Git,不建议初学者使用,尽量先熟悉常用命令。
Git配置
所有的配置文件保存在本地的.gitconfig文件下。
查看配置 :
|
|
查看系统配置 :
|
|
查看当前用户配置 :
|
|
设置邮箱 :
|
|
设置用户名 :
|
|
Mac下配置文件在User目录下,为隐藏文件,需要按下 command + shift + . 才能查看隐藏文件。
Git基本理论
Git本地有四个工作区域 :
-
工作目录(Working Directory) : 就是你平时存放代码的地方。
-
暂存区(Stage/Index) : 用于临时存放你的改动,保存即将提交到文件列表信息。
-
仓库区(Repository或Git Directory) : 就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
-
远程仓库(Remote Directory) : 托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。
Git项目创建
本地仓库搭建 :
|
|
克隆远程仓库 :
|
|
克隆远程仓库后,默认就与之产生了联系,也就是本地有.git的信息以及连接信息,后面可以直接push上传代码!如果使用的是ssh协议还需本地的SSH密钥在远程库有效。 需要注意的是,如果通过下载zip文件解压到本地是没有.git这个文件的,也就是没有关联远程库。
Git文件操作
文件四种状态 :
-
Untracked : 未跟踪,此文件在文件夹中,但没有加入到Git库,不参与版本控制。通过git add .命令可将其状态变为staged。
-
Unmodify : 文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,如果它被修改,而变为Modified;如果使用git rm,则成为Untracked文件。
-
Modified : 文件已修改,没有进行其他操作。这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout filename则丢弃修改过,返回到unmodify状态。
-
Staged : 暂存状态,执行git commit将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodify状态。执行git reset HEAD filename取消暂存,文件状态为modified。
查看文件状态 :
查看指定文件状态 :
|
|
查看所有文件状态 : (untracked文件显示为红色)
|
|
查看commit日志 :
|
|
在untracked状态下查看修改的文件与原文件的不同 :
|
|
重要指令 :
添加所有文件到暂存区 :
|
|
提交暂存区中的内容到本地(-m表示提交信息) :
|
|
远程提交 :
|
|
忽略文件 :
可以在项目根目录下创建.gitignore文件,并在其中添加要忽略的文件/文件夹名称。
如果是mac用户,建议第一次上传远程仓库之前都在.gitignore中加入.DS_store(系统自带的存储路径的文件)
配置SSH公钥及连接远程仓库
1.创建本地SSH密钥
|
|
2.打开本地.ssh文件下的.pub文件,复制密钥信息粘贴在远程仓库。
3.以GitHub为例,通过帮助代码链接仓库
注意新创建一个文件夹和上传本地文件连接到远程库的区别
Git分支
|
|