一、版本创建
(1)、创建版本
cd ~Desktop/ 选择一个创建空目录的地方
mkdir LearnGit 创建空目录
cd LearnGit
pwd 用于显示当前目录
git init 把目录变更git仓库
ls -ah 显示隐藏的.git文件(成功创建Git仓库后会有)
(2)、把文件添加到版本库
说明:版本控制器系统,只能跟踪个文本文件的改动,比如txt、网页、程序代码等。图片、视频这些
二进制文件虽然也能有版本控制系统管理,但是没办法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是说只知道图片冲100k改成了200kb,但是到底改了什么,版本控制系统并不知道。
git add readme.txt 告诉Git把文件添加到仓库
git commit -m "xxxxx" 告诉Git把文件提交给仓库,其中-m后引号内为本次提交内容说明
(3)、文件修改提交
git status 查看当前仓库状态
no changes added to commit (use "git add" and/or
"git commit -a") 表示文件被
修改,但是还没有准备提交
git diff 查看具体被修改的内容
git add readme.txt 添加修改
git status Changes to be committed: 将要提交要修改的内容
git commit -m 修改说明 提交修改
git status nothing to commit (working directory clean) 没有
需要提交的修改
(4)、版本回退
git log 查看版本记录
git log --pretty=oneline 显示简单的记录
git reset --hard HEAD^ 返回上一版本
git reset --hard HEAD^^ 返回上上一版本
git reset --hard HEAD~100 返回上100个版本
git reset --hard HEAD 3628125 返回某一版本3628125
git reflog 查看操作的所有命令
git push -f 版本回退后强制提交
(5)、工作区和暂存区
工作区:电脑里能看到的目录
版本库:工作区有一个隐藏目录.git,这个不算工作区而是Git的版本库。版本库(暂存区(stage),
分支(master))
![屏幕快照 2017-08-11 上午11.42.03.png](https://img.haomeiwen.com/i4189530/feff8bdb3541bdeb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
前面把文件添加到Git版本库的时候,分两步:
第一步:git add 把文件(或者说修改的内容)添加进去,实际就是把文件添加到暂存区。
第二步:git commit 提交文件,实际上就是把暂存区的所有内容提交到当前分支。
(6)、管理修改
说明:Git跟踪并管理的是修改,而非文件。我们可以把多次修改分别add到暂存区,然后一起commit。每次修改如果不add到暂存区,就不会加入commit
中,这时候git status会提示有文件但是还没准备提交。
(7)、撤销修改
修改后没有add操作的撤销
git checkout --<file> 把文件在工作区的修改全部撤销
第一种:自动修改后还没有放到暂存区,现在,撤销修改就回到和版本库一模一样的状态。
第二种:已经添加到暂存区后,又做了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一个git commit 或者git add的状态
·修改后 有add操作撤销
git reset HEAD <file> 把暂存区的修改去掉(git reset 命令既可以退回版本也可以退回到工
作区,HEAD 表示最新版本)
git checkout . 或者 git checkout --<file> 会用暂存区全部或指定的文件替换工作区的文件。危险操作,会清除工作区中未添加到暂存区的改动
(8)、删除文件
rm --test.txt 用于删除一个文件的命令
git checkout --test.txt 错误删除,一键还原
(9)、删除未被跟踪的文件
git clean 用来从你的工作目录中删除所有untrack的文件
git clean | 含义 |
---|---|
git clean -n | 显示将要删除的文件目录 |
git clean -f | 删除当前目录下所有没有track过的文件,但不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过 |
git clean -f <path> | 删除指定路径下的没有被track过的文件 |
git clean -df | 删除当前目录下没有被track过的文件和目录 |
git clean -xf | 删除当前目录下所有没有track过的文件,不管它是否是.gitignore文件里面指定的文件夹和文件 |
参考内容
廖雪峰官网
Git教程|菜鸟教程
Git clean
网友评论