您可以通过左右滑屏查看更多笔记内容。。
首先,选择一个合适的位置,创建一个空目录:
$ mkdir learngit 创建名为learngit的子目录
$ cd learngit cd:进入该用户的主目录
$ pwd pwd:显示工作路径(Print Working Directory 的缩写)
/home/lixuehe/learngit 结果为创建的learngit的工作路径
pwd
命令用于显示当前目录
需要在cd 进入这个主目录的情况下才可以将文件添加
第一步,用命令git add
告诉Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用命令git commit
告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
(-m后面输入的是本次提交的说明,可以输入任意内容,)
初始化一个Git仓库,使用git init
命令。
添加文件到Git仓库,分两步:
使用命令git add <file>
,注意,可反复多次使用,添加多个文件;
使用命令git commit -m <message>
,完成
##### 查看修改内容
当readme.txt
被修改过了,可以通过git diff查看修改内容;
**git log **
命令显示从最近到最远的提交日志 :可以查看对文件的修改
–pretty=oneline`参数: 可以简化输出的结果
启动时光穿梭机,准备把readme.txt
回退到上一个版本 git reset –hard HEAD^(用HEAD
表示当前版本);在重新回到刚才的状态:
只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个append GPL
的commit id
是1094adb...
,于是就可以指定回到未来的某个版本:
$ git reset --hard 1094a
git reflog 用来记录你的每一次命令:
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。git log
可以查看提交历史,以便确定要回退到哪个版本。git reflog
查看命令历史,以便确定要回到未来的哪个版本。就是在电脑里能看到的目录,
工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
。
git add
命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit
就可以一次性把暂存区的所有修改提交到分支。
Git是如何跟踪修改的:每次修改,如果不用git add
到暂存区,那就不会加入到commit
中。
1. git checkout – file可以丢弃工作区的修改:还未进行git add到暂存区
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
2.git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。
用命令git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区:此时暂存区是干净的,工作区有修改:
使用 git checkout -- readme.txt丢弃工作区的修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。