Git学习——Git操作

创建一个版本库:

mkdir learngit

cd learngit

pwd   //显示当前目录,目录名不要包含中文

/users/windows/learngit

 

git init 把这个目录变为git可以管理的仓库

Initialized empty Git repository in /Users/windows/learngit/.git/

learngit是工作区,.git是Git的版本库

若没看见.git目录,可以用ls -ah命令

 

将文件添加到git仓库:git add <file>:git add readme.txt

提交到仓库:git commit -m "message":git commit -m "a txt file"

 

修改了文件内容:

查看修改结果:git status:可以提示文件被修改过,但是还没提交

查看修改的内容:git diff

添加:git add readme.txt

查看仓库的状态:git status:可以知道将要被提交的修改包括该文件

提交:git commit -m "update txt file"

提交后,可以再用git status查看当前仓库的状态

 

                                                      版本回退                    

提交几次修改后的文件:(第一个版本:a txt file;第二个版本:update txt file)

查看提交的历史记录:git log:若嫌输出的内容太多,则可以添加:--pretty=oneline

即git log --pretty=oneline

把第二个版本回退到第一个版本:git reset:git reset --hard HEAD

(HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id)

查看内容是不是第一个版本:cat <file>

看看现在版本库的状态:git log:此时已经看不见第二个版本

如果想要回到第二个版本:

若之前的命令行窗口没关闭,则可以通过git log的日志信息进行查找 commit id:git reset --hard <commit id>;

若之前的命令行关闭,则可以通过git reflog进行查找,git reflog用来记录每一次的命令

 

                                                   工作区和暂存区

stage暂存区

git add实质是将文件添加到暂存区里

Git commit实质是把暂存区的所有内容提交到当前分支

                                                  管理修改

add一个文件到暂存区,修改了这个文件,并commit,查看status,发现文件没有被修改且提交;

若要将第二次修改的提交,则:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

 

                                                   撤销修改

将文件已修改,在工作区发现有错误,可以用git status进行查看,Git提示:git checkout --<file>可以丢弃工作区的修改,即:把该文件在工作区的修改全部撤销,这里分两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

(让这个文件回到最近一次git commit或git add时的状态)

 

将文件已经add到暂存区,在commit之前发现问题,通过git status进行查看,Git提示:git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区

(git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,用HEAD时,表示是最新的版本

 

                                                    删除文件

若在工作区删除了文件(rm命令)

工作区和版本库就不一样,运行git status命令会提示,就会存在两种选择:

一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

另一种情况是删错了,因为版本库存在,所以可以把误删的文件恢复到最新版本:git checkout --<file>

(从来没有被添加到版本库就被删除的文件,是无法恢复的!)

 

posted @ 2022-03-07 15:59  亭子^_^  阅读(25)  评论(0)    收藏  举报