Git之本地仓库(一)

Git之本地仓库(一)

初始化Git仓库

切换到需要创建仓库的项目中使用初始化仓库命令

git init

会在项目目录中创建一个名为.git的子目录,目录结构如下

本地仓库的三个主要部分

  • working tree
  • staging area
  • Git directory(Repository)

Git流程:

  • 修改working tree中的文件
  • 使用git add * 有选择地暂存作为下一次commit的更改
  • 执行commit将暂存区中的文件以快照的形式存储到Git directory里

文件状态的生命周期

git文件有四种状态:

  • Untracked
  • Modified
  • Staged
  • Unmodified

1.Untacked状态

添加到working tree中的新文件,没有被git进行跟踪管理,处于untracked状态

2.Modified状态

2.1对处于Unmodified状态的文件进行修改(及已经commit到repository中),该文件状态变为Modified

2.2对位于staging area中的文件进行修改,该文件状态也会变成modified

3.Staged状态

Untracked状态的文件被git add 放入staging area后,位于暂存区的文件处于staged状态

4.Unmodified状态

使用commit命令提交到repository中的文件状态处于Unmodified状态

文件操作

移除操作

将staging area中的文件移除
git restore --staged fileName 

git rm --cached fileName   

git rm --cached和git restore --staged都可以将staging area中的文件移除,移除后的文件状态都为Untracked,暂未发现两者之间的区别(待后续发现区别后更新,或者本来就没区别)

修改操作

修改Unmodified状态的文件名

git mv oldFile newFile

删除操作

1.从working tree中撤销rm操作

如果不小心使用rm删除working tree中 的文件

可以使用 git restore file来在working tree中撤销该操作

2.从staging area中撤销操作到working area,然后重复上一步

rm操作了working directory中的文件,并git add到暂存区中,可以先使用git restore --staged 撤销暂存区中的改变,然后再撤销working tree中的操作

使用git rm file会直接将删除操作的改变提交到暂存区,可以通过上述步骤撤销

3.从staging area中删除,但是保留在working tree中
git rm --cached 4.txt

其他操作

查看commit记录

  • git log 查看现有的commit历史记录

  • git log -n 显示最后n个条目

  • git log -a 显示每次commit中引入的差异

  • git log --pretty=oneline 比较适合查看大量提交

  • git log --pretty=format:"%h %s" --graph 显示分支和合并记录

  • git diff 查看已经处于modified状态的文件

  • git commit -a -m "提交信息"

添加-a选项会提交自动暂存modified状态的文件,从而可以跳过git add状态

rm *

rm操作后也要git add然后commit或者使用git commit -a -m

碰到的问题

git add * 时出现的warning

warning: LF will be replaced by CRLF in README.
The file will have its original line endings in your working directory

解决办法

git config --global core.autocrlf false

分析原因

路径中存在/的符号转义问题,false表示不转换符号


未完待续

posted on 2020-09-07 01:02  ANNOMING  阅读(380)  评论(0编辑  收藏  举报

导航