git学习
1、
在git bash 中进入下级文件-----$ cd 文件夹名 或者cd 路径(注意要是属于下级的路径)
返回上级---------$ cd ..
返回根目录------$ cd /
查看当前路径----$ pwd
2、
理解工作区和暂存区
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
Git跟踪并管理的是修改,而非文件:
每次修改之后,如果不用git add到暂存区,那就不会加入到commit中。
例如:第一次修改 -> git add -> 第二次修改 -> git commit 第一次的修改被提交了,第二次的修改不会被提交。
提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本文本的区别,通过git status也可以知道没有暂存add.
创建删除版本库
- 在git bash 中创建文件夹 ------ $ mkdir 文件夹名
- 将当前目录变成一个仓库 仓库初始化------ $ git init 当前目录下会多了一个.git的目录 ,会有一个master分支
- 查看当前目录下的子目录--------$ ls -ah
- 删除本地仓库--------就是删除仓库文件夹下隐藏的 .git 目录 步骤:$ ls -ah 显示子目录 然后 $ rm -rf .git 可以看到master分支已经删除 ,该文件已经不再作为仓库
添加文件到Git仓库,分两步:
- git add <file>
- git commit -m <message>
使用命令git add <file>,注意,可反复多次使用,添加多个文件; git add 后的文件为暂存状态实际上就是把文件修改添加到暂存区
使用命令git commit -m <message>,完成。 提交过得文件,保存在自己本地的仓库 实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改
例如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files.
版本回退
- $ git status命令可以让我们时刻掌握仓库当前的状态,红色是未add过的,绿色是add过没有提交的
- $ git diff 文件名 -------顾名思义就是查看difference作了什么修改 (好像只能看到未add的文件的修改???)
- $ git diff HEAD -- 文件名 ------查看工作区和版本库里面最新版本文本的区别
commit之后用$ git status 会显示nothing to commit, working tree clean当前没有需要提交的修改,而且,工作目录是干净
$ git log----可以查看提交历史版本,便确定要回退到哪个版本
$ git log --pretty=oneline ----查看提交历史版本简化显示
$ git reflog ------查看命令历史,以便确定要回到未来的哪个版本。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
git reset --hard HEAD^ 返回git log 中显示的上一个版本
撤销修改
- 情境1 $ git restore 文件名---------在工作区自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 情境2 $ git restore --staged 文件名-----------已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。回到上个情况然后再利用 $ git restore 文件名 撤销工作区的修改
总之,就是让这个文件回到最近一次git commit或git add时的状态。 - 情境3 如果不仅add了,还commit提交到版本库了就利用 $ git log 或者 $ git reflog 查看版本号来直接回退版本不过前提是没有推送到远程库。
删除文件
在Git中,删除也是一个修改操作
删除流程:方法一:文件管理器中删除-----git status 查看知道删除了但是没有暂存(情境1)---- $ git rm 文件名 删除文件并暂存(情境2)------$ git commit -m " " 提交版本库(情境3)
方法二: 直接$ git rm 文件名 删除文件并暂存(情境2)------$ git commit -m " " 提交版本库(情境3)
删除也是一种修改:若要撤销删除操作参考上面的撤销修改3种对应情境
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!
3、
git中 vi 操作
$ vi fileName // 进入编辑文件
$ cat fileName //可以查看文本内容
vi 操作 分命令模式+输入模式,按ESC切换模式。
:i 输入内容 :q 退出 :q!强制退出 :wq保存并退出 :数值—定位到某一行 /查找斜杠后面的内容 :wq 退出编辑状态, 回到命令窗口
注:
Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
cd / cd .. 中间有空格