参考文档
Git环境部署
基本概念:工作区/暂存区/本地库
每个 Git 项目的根目录下有一个 .git 目录,它是 Git 默默进行版本控制时读写的“数据库”。下面有几个概念:
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
一个典型的工作流程如下图,绿色部分为工作区(Working Directory),对它进行任何修改(包括:新建文件、删除文件、文件重命名等)都和单纯的修改文件一样,不会涉及到版本控制。
通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤git add 和 git commit 命令才能将⽂件添加到仓库中进⾏管理!!!
Git配置
当安装Git后⾸先要做的事情是设置你的用户名称和e-mail地址,这是⾮常重要的。配置命令为:
设置配置
git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
删除配置
git config [--global] --unset user.name
git config [--global] --unset user.email
# 把Your Name 改成你的昵称
# 把email@example.com 改成邮箱的格式,只要格式正确即可。
其中--global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的Git仓库都会使⽤这个配置。如果你希望在不同仓库中使⽤不同的 name 或 e-mail 可以不要--global 选项,注意,执⾏命令时必须要在仓库⾥。
我们可以用git config -l来查看配置:
搭建git远程仓库
$adduser git
$ su git
$ cd /home/git
$ mkdir .ssh
$cd /home/git/.ssh
$ touch authorized_keys #如果添加多个账户,需要还行
创建客户端的ssh私钥和公钥
检查是否已经拥有ssh公钥和私钥:进入用户的主目录。
用户主目录:
Windows系统:C:\Users\用户名
Linux系统:/home/用户名
Mac系统:/Users/用户名
然后查看是否有.ssh文件夹,此文件夹下是否有如下几个文件。
# 用户主目录的.ssh文件夹下.ssh
├── id_rsa
└── id_rsa.pub # 我们要用的公钥
如果没有,那么用ssh-keygen创建ssh的私钥。
$ ssh-keygen -t rsa
# 接下来,三个回车默认即可。
创建私钥成功后,在查看用户目录是否有意加有了公钥文件id_rsa.pub
常用命令
版本回退
执⾏git reset 命令⽤于回退版本,可以指定退回某⼀次提交的版本。要解释⼀下“回退”本质是要将版本库中的内容进⾏回退,⼯作区或暂存区是否回退由命令参数决定:
命令语法格式为:git reset [-soft|-mixed|-hard] [HEAD]
--soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。
--mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变。
--hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命令,因为⼯作区会回滚,
你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。
HEAD 可直接写成commit id,表⽰指定退回的版本
HEAD 表⽰当前版本 HEAD~0 表⽰当前版本
HEAD^ 上⼀个版本 HEAD~1 上⼀个版本
HEAD^^ 上上⼀个版本 HEAD~2 上上⼀个版本
git init与git init --bare
git init demo1 # 表示创建一个叫demo1的私人仓库 # git init目录下只有一个.git隐藏文件夹,里面包含各种信息
git init --bare deme2 # 表示创建一个裸库,主要应用场景是作为公共仓库 # 裸库的目录下没有隐藏.git目录,全都是显示的,没有.git这个目录,进入文件直接是文件内容
# 一般来讲,作为远端备份或公共版本库时,应该使用git init --bare。