上篇文章介绍的了一下Git的基本概念内容,本篇文章继续Git相关的概念介绍及基础命令的演示。
获取Git仓库
获取Git仓库存在两种方法:
-
使用
git init
在本地初始化仓库$ git init Initialized empty Git repository in /Users/stanley/git_demo/.git/
-
使用
git clone
克隆远程服务器中仓库$ git clone https://github.com/libgit2/libgit2 Cloning into 'libgit2'... remote: Enumerating objects: 88874, done. remote: Counting objects: 100% (88874/88874), done. remote: Compressing objects: 100% (24728/24728), done. remote: Total 88874 (delta 62425), reused 88873 (delta 62424), pack-reused 0 Receiving objects: 100% (88874/88874), 40.79 MiB | 57.00 KiB/s, done. Resolving deltas: 100% (62425/62425), done. Checking out files: 100% (10168/10168), done.
查看文件状态
git中的文件存在四种状态, 我们可以使用git status
命令查看文件的状态:
Untracked UnModified Modified Staged
| | | |
|---Add the file -------------------------------------------->|
| | | |
| |---Edit the file--->| |
| | | |
| | |--Stage the file->|
| | | |
|<--Remove the file---| | |
| | | |
| |<-----------------------------Commit---|
| | | |
文件状态
-
Untracked:未跟踪的文件, 还未使用
git add
添加到暂存区的文件。 -
Unmodified: 已经
git commit
的文件 -
Modified:已经使用
git commit
提交, 之后又被修改了的文件。 -
Staged:使用
git add
提交到暂存区的文件。
状态转换:
-
Untracked -> Staged: 通过
git add
来完成 -
UnModified -> Modified: 修改文件内容来完成,比如
vi
命令 -
Modified -> Staged: 通过
git add
来完成 -
UnModified -> Untracked: 通过
git rm
来完成 -
Staged -> UnModified: 通过
git commit
来完成
如果认为查看文件状态的命令过于啰嗦,可以使用git status -s
以精简的形式展示文件状态, 如下:
$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
参考资料: