git基操②
工作区(Working Directory):就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,
以及指向master的一个指针叫HEAD。
1、对工作区,就是自己的电脑文件夹,可视化操作,增加文件写入文件,删除文件等等。
编写好文件以后就可以打开Git Bash对文件进行add
2、暂存区就是当git add 之后 我们的文件存在的区域
添加文件到缓存区:$git add file ||$git add filepath/file ||$git add .(添加全部文件)
万一执行了add . 但是有个文件你不想添加,可以撤销缓存区的文件夹:$git reset head file ||$git reset head filepath/file ||git reset head .(撤销add的全部文件)
或者用文件写入新的东西替换上去再$git add . (查看没有add的文件和已经add文件的修改的地方 $git diff finename)
或者在工作区删除后再$git add .
操作完成以后就可以将缓存区的文件commit到本地库中
3、将文件commit到本地库:$git commit -m “message”
退回版本(会将当前工作区的文件一并切换)
如果commit之后想回到之前已经commit的版本的本地库,比如回到上个版本使用命令:$git reset --hard head^ (双短横)
如果想回到上上个版本$git reset --hard head^^ (双短横)
如果想回到前100个版本$git reset --hard head~100 (双短横)
退后前一个版本后又想回到当前commit的版本
先用$git reflog 查出你想回到的那个版本的head(查看commit历史记录$git log 查看操作历史记录包括退回版本$git reflog)
然后退回选择的版本$git reset --hard 51f8961(双短横)
查看文件数据$git cat readme.txt
查看当前工作区的文件和本地库的文件内容区别 $git diff head – filename(双短横且–和filename中间有一个空格)
撤销工作区已经修改的内容,撤销成commit时候的文件内容$git checkout – filename(双短横且–和filename中间有一个空格)
如果在工作区删除了一个文件,而本地库存在这个文件,可以拉取本地库的文件到工作区$git checkout filename
4、远程库
推送新的东西上远程库,首先需要commit到本地库,再将本地库的master分支推送到远程库的master分支$git push origin master(origin为远程连接名字,master需要推送的分支)
拉取远程库到工作区并且和工作区的文件合并$git pull origin master
拉取远程库到工作区并且和工作区的文件不合并$git fetch origin master
克隆一个远程库的master分支到本地$git clone -b master git@github.com:Niushuaik/learngit.git