Git学习笔记 (3)- Git本地库常用操作

发表于 2020-06-07  23 次阅读


文件状态变化周期图

image.png
  • Untracked:未跟踪状态
  • Unmodified:未修改
  • Modified:已修改
  • Staged:已暂存

检查当前文件状态

git status

77627555f784075aeca285b56385b72d.png

简要显示文件状态

git status -s

b3a276cbd09d5bc4f5fb3f90fca58243.png

?? 新增的未跟踪文件
A 新增的已暂存(已跟踪)文件
M (靠左M)已修改的已暂存文件
M (靠右)已修改的未暂存文件
MM 既有已暂存的修改,也有为暂存的修改

跟踪新文件

git add [untracked_file_name]

暂存已修改的文件

git add [modified_file_name]

查看已修改但是未暂存的修改点

git diff

bdd77bfe56fd39ea903e5634c0223bea.png

查看已暂存但是未提交的修改点

git diff --cached
git diff --staged (git version >=1.6.1)

上图显示已暂存未提交的修改点有两处:
1.新增了一个classA文件
2.修改了一个classB文件

提交更新(提交暂存文件)

git commit
启动默认文本编辑器以便输入本次提交的说明。设置默认的commit文本编辑器

跳过暂存,直接提交文件

git commit -a
Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

移除文件

  • 先在磁盘目录删除文件,然后在git中删除

rm [file]
git rm [file]

磁盘删除文件
查看git状态
提交对文件进行的删除操作
  • 在git中移除文件,同时在磁盘中删除文件

git rm [file]

8ded53579be4c84a48541aaeaad59d1d.png
  • 从git中移除,但是在磁盘中保留文件

git rm --cached [file]

9077eb903b3dff6fd13834db95a3f3bd.png
  • 删除已修改的已暂存文件(强制删除)

git rm -f

27b62dfb44ee8d2c30616ef68e8fb601.png

移动文件/修改名称

使用git mv命令直接改名 等价于 先重命名原文件 + 从git中删除原文件 + 把改名后的文件add到git的暂存区

git mv file_from file_to

mv file_from file_to

git rm file_from

git add file_to

a295d2a743535b0d6455bcef433381fd.png
重命名原文件
从git中删除原文件
1cdd196ac6e58085a46bcbfea286949e.png
把改名后的文件add到git的暂存区

储藏修改

现在想要切换分支,但是还不想要提交之前的工作,所以储藏修改.

git stash (save)

查询当前的文件状态
git stash 进行储藏

查看储藏的内容

git stash list

git stash list 查看储藏清单

应用储藏 (不指定默认恢复最后一次的储藏内容)

git stash apply

应用指定储藏

git stash apply stash@{2}

移除储藏

git stash drop stash@{2}

默认情况下 git stash apply 命令只会恢复储藏的内容,并不会在储藏清单中删除,需要手动执行 git stash drop 命令进行删除。

引用并移除储藏 git stash pop = git stash apply + git stash drop

git stash pop stash@{2}

默认情况下git stash只会储藏git跟踪的文件,要储藏未跟踪文件请使用git stash -u

git stash -u

本站文章基于国际协议BY-NA-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0

从业时长3年半的佛系码农,并不会唱跳、rap和篮球