当前位置:   article > 正文

Git使用步骤(一)_unstaged changes

unstaged changes

1.安装git

下载地址: https://git-scm.com/download

2. 初始化

命令:git init

$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/git/.git/
  • 1
  • 2

查看隐藏目录,多出 .git 目录

$ ls -a 
./  ../  .git/
  • 1
  • 2

3.git流程图

在这里插入图片描述

git工作环境有三个区域:工作区、暂存区、本地仓库(版本库)

  • 工作区:电脑看到的目录,不包括.git隐藏目录
  • 暂存区:工作区将代码保存到版本库,中间必须经过暂存区。
  • 本地仓库:存放不同版本的仓库,就是隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

git中文件的两种状态:未跟踪(untracked)、未暂存(unstaged)

  • untracked:工作区新创建的文件,在未提交到版本库时,处于unstracked的状态。
  • unstaged:工作区已经修改的文件,未提交到版本库时,处于unstaged的状态。

在这里插入图片描述

4.新建文件

命令:touch <文件名>

$ touch file01.txt
$ ls
file01.txt
  • 1
  • 2
  • 3

5.添加文件到暂存区

命令:git add <文件名>

$ git add file01.txt
  • 1

查看暂存区文件命令:git status

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

file01.txt 已经出现在了暂存区文件列表上。
接着使用提交命令:git commit -m "注释" ,将暂存区文件存档到版本库中。

$ git commit -m "add file01.txt"
[master (root-commit) 17fc348] add file01.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file01.txt
  • 1
  • 2
  • 3
  • 4

再次查看暂存区状态,已经被清空了。

$ git status
On branch master
nothing to commit, working tree clean
  • 1
  • 2
  • 3

6 修改文件

修改file01.txt

第一次修改文件

查看暂存区,显示not staged未暂存状态的文件列表

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

继续完成提交

$ git add .
$ git commit -m "第一次修改文件"
[master 5271d12] 第一次修改文件
 1 file changed, 1 insertion(+)
  • 1
  • 2
  • 3
  • 4

7.查看版本库提交记录

命令:git log

$ git log
commit 5271d12c285cd32af88fa29ce39773eb8779124b (HEAD -> master)
Author: zhenguo <2845612344@qq.com>
Date:   Tue Jan 3 13:20:44 2023 +0800

    第一次修改文件

commit 17fc348dad9fa0799002e2835dc880430979fcac
Author: zhenguo <2845612344@qq.com>
Date:   Tue Jan 3 13:13:56 2023 +0800

    add file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

8.查看工作区的文件和仓库中的文件的差别

命令:git diff
首先修改file01.txt文件内容为:

第一次修改文件
第二次修改文件

不提交,运行git diff命令查看和版本库差别

$ git diff
diff --git a/file01.txt b/file01.txt
index 3d9c6f2..5e9a754 100644
--- a/file01.txt
+++ b/file01.txt
@@ -1 +1,2 @@
-第一次修改文件
\ No newline at end of file
+第一次修改文件
+第二次修改文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

9.撤销暂存区的文件

命令:git reset HEAD
刚刚文件修改之后还没有提交,使用git add . 添加到暂存区

$ git add .
$ git  status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

modified: file01.txt 为绿色,表示已经添加到了暂存区
使用git reset HEAD 撤销暂存区的文件

$ git reset HEAD
Unstaged changes after reset:
M       file01.txt
  • 1
  • 2
  • 3

文件变成了了Unstaged 未暂存,再次查看暂存区文件

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

modified: file01.txt 变成了红色。将本次修改提交到版本库

$ git  add .
$ git commit -m "第二次修改文件"
[master 1f81f52] 第二次修改文件
 1 file changed, 2 insertions(+), 1 deletion(-
  • 1
  • 2
  • 3
  • 4

10. 查看历史提交版本

命令:git log -5 --pretty=oneline (一行一行的输出,一共输出五行)

$ git log -5 --pretty=oneline
1f81f52a867628ae34bac5331c87c7b71a636e65 (HEAD -> master) 第二次修改文件
5271d12c285cd32af88fa29ce39773eb8779124b 第一次修改文件
17fc348dad9fa0799002e2835dc880430979fcac add file01.txt
  • 1
  • 2
  • 3
  • 4

11.回退版本

命令:git reset --hard HEAD^ 回退到上一个版本(两个^可以回退到上上版本)

$ git reset --hard HEAD^
HEAD is now at 5271d12 第一次修改文件
$ git log --pretty=oneline
5271d12c285cd32af88fa29ce39773eb8779124b (HEAD -> master) 第一次修改文件
17fc348dad9fa0799002e2835dc880430979fcac add file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5

后退一个版本(后退30个版本,~后面改成30)
在这里插入图片描述
回退到指定版本:git reset --hard <commitID>
commitID可以只输前几位的标识符,就可退到对应的版本。

$ git reset --hard 17fc
HEAD is now at 17fc348 add file01.txt
$ git log --pretty=oneline
17fc348dad9fa0799002e2835dc880430979fcac (HEAD -> master) add file01.txt
  • 1
  • 2
  • 3
  • 4

现在已经后退到了创建文件的版本,使用git log已经完全看不到回退前的版本了,怎么在重新回到第二次修改的文件版本呢?
命令:git reflog
作用:查看git的操作日志

$ git reflog
17fc348 (HEAD -> master) HEAD@{0}: reset: moving to 17fc
5271d12 HEAD@{1}: reset: moving to HEAD^
1f81f52 HEAD@{2}: commit: 第二次修改文件
5271d12 HEAD@{3}: reset: moving to HEAD
5271d12 HEAD@{4}: commit: 第一次修改文件
17fc348 (HEAD -> master) HEAD@{5}: commit (initial): add file01.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

从日志中看到,第二次修改对应的版本是 1f81f52…
使用git reset 回退

$ git reset --hard 1f81f52
HEAD is now at 1f81f52 第二次修改文件
$ git log --pretty=oneline
1f81f52a867628ae34bac5331c87c7b71a636e65 (HEAD -> master) 第二次修改文件
5271d12c285cd32af88fa29ce39773eb8779124b 第一次修改文件
17fc348dad9fa0799002e2835dc880430979fcac add file01.txt

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

12.工作区误删文件,怎么恢复版本库中版本

命令:git checkout <文件名>
首先删掉工作区file01.txt文件,使用checkout

$ git checkout file01.txt
Updated 1 path from the index
$ ls
file01.txt
  • 1
  • 2
  • 3
  • 4

13.删除版本库中的文件

命令: git rm <文件名>

$ git rm file01.txt
rm 'file01.txt'
  • 1
  • 2

如果回退之前的版本,file01.txt又回来了

$ git reset --hard 5271
HEAD is now at 5271d12 第一次修改文件
$ ls
file01.txt
  • 1
  • 2
  • 3
  • 4

14. 查看本地库中的文件

命令:git ls-files

$ git ls-files
file01.txt
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/564187
推荐阅读
相关标签
  

闽ICP备14008679号