1. Git 创建仓库
什么是版本库呢?版本库又名仓库,英文名 repository
,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git
管理起来,每个文件的修改、删除,Git
都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1.1 git init
1.1.1 指令说明
Git
使用git init
命令来初始化一个Git
仓库,Git
的很多命令都需要在Git
的仓库中运行,所以git init
是使用Git
的第一个命令。- 在执行完成
git init
命令后,Git
仓库会生成一个.git
目录,该目录包含了资源的所有元数据,其他的项目目录保持不变(不像SVN
会在每个子目录生成.svn
目录,Git
只在仓库的根目录生成.git
目录)。
1.1.2 使用方法
创建一个版本库非常简单,使用当前目录作为Git仓库,我们只需使它初始化:
miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $ pwd /e/9.MICO/2.project/learngit miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $ git init Initialized empty Git repository in E:/9.MICO/2.project/learngit/.git/ miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit (master) $
该命令执行完后会在当前目录生成一个 .git 目录。
注:- 其中:
pwd
命令用于显示当前目录。在我的window
上,这个仓库位于/e/9.MICO/2.project/learngit
。 window
目录最好不要含有中文,不然真的很坑。
- 其中:
使用我们指定目录作为Git仓库:
miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit (master) $ git init newrepor Initialized empty Git repository in E:/9.MICO/2.project/learngit/newrepor/.git/ miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit (master) $
初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
1.2 git clone
我们使用 git clone
从现有 Git
仓库中拷贝项目(类似 svn checkout
)。
克隆仓库的命令格式为:
git clone <repo>
如果需要克隆到指定的目录,可以使用以下命令格式:
git clone <repo> <directory>
参数说明:
repo
:Git
仓库。directory
:本地目录
示例:
从
Git
仓库https://code.aliyun.com/miaogs/miaogs_projects_test.git
拷贝:miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $ git clone https://code.aliyun.com/miaogs/miaogs_projects_test.git Cloning into 'miaogs_projects_test'... git: 'credential-Advanced' is not a git command. See 'git --help'. warning: You appear to have cloned an empty repository. miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $ ls miaogs_projects_test/ miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $
从
Git
仓库https://code.aliyun.com/miaogs/miaogs_projects_test.git
拷贝到指定目录new_name_test
:miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $ git clone https://code.aliyun.com/miaogs/miaogs_projects_test.git new_name_test Cloning into 'new_name_test'... git: 'credential-Advanced' is not a git command. See 'git --help'. warning: You appear to have cloned an empty repository. miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $ ls new_name_test/ miaogs@DESKTOP-E1D5SQI MINGW64 /e/9.MICO/2.project/learngit $