获取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


参考资料: