Git简介
Git是一个开源的分布式版本控制系统,是Linus Torvalds为帮助管理Linux内核而开发的一个开放源码的版本控制软件。
Git的工作原理
Git的工作是创建和保存项目的快照以及多个快照间的对比。
工作原理示意图如上图所示。
Git常用的6个命令:
git add
git commit
git push
git pull
git clone
git checkout
- workspace:工作区。在本地电脑里能看到的目录。
- staging area:暂存区 或 缓存区。英文为stage或index一般存放在
.git
目录下的index文件(.git/index)中,也称暂存区为索引区(index)。 - local repository:本地仓库 或 版本库
- remote repository:远程仓库
创建本地仓库(local repository)
git 命令 | 功能 |
---|---|
git init | 初始化本地仓库 |
git clone | 拷贝一份远程仓库 到本地仓库 |
提交与修改文件
git 命令 | 功能 |
---|---|
git add | 添加文件到暂存区 |
git status | 查看仓库的当前状态,显示有变更的文件 |
git diff | 比较工作区与暂存区中文件的差异 |
git commit | 从暂存区提交到本地仓库 |
git reset | 回退版本 |
git rm | 删除工作区文件 |
git mv | 移动或重命名工作区文件 |
提交日志
git 命令 | 功能 |
---|---|
git log | 查看历史提交记录 |
git blame | 以列表形式查看制定文件的历史修改记录 |
远程操作
git 命令 | 功能 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程仓库获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
详细指导
创建仓库
git init
Git使用git init
命令来初始化一个Git仓库,然后在该仓库中运行各种命令。执行完git init
命令后,Git仓库会生成一个.git
目录,该目录包含了资源的所有元数据,其他项目的目录会保持不变。
- 将当前目录作为Git仓库时,直接初始化即可:
$ git init
在执行完该命令后,会在当前目录生成一个.git
目录。
- 将指定目录作为Git仓库时,需给出指定目录参数:
$ git init myGitRepo
同理,在执行完该命令后,会在指定目录myGitRepo
生成一个.git
目录。
若当前目录中有文件需要纳入版本控制,需使用git add
对这些文件进行跟踪,然后进行提交:
$ git add *.java
$ git add README
$ git commit -m "初始化版本"
然后,这些文件会将上述的*.java
和README
文件提交到本地仓库中。
git clone
git clone是从现有Git仓库中拷贝项目。
克隆仓库的命令为:
$ git clone repo_address
若需克隆到指定目录位置,需使用如下的命令:
$ git clone repo_address myGitDirectory