添加文件管理(三步走):
创建文件可以使用touch的命令,例如创建一个python文件或者一个txt文件:
touch 1.py
touch 1.txt
但是需要注意的是在git里,创建的新文件并没有被真正添加到库里面,可使用git status查看所在文件夹的状态,发现此时的文件状态是untracked的状态。
下一步如果使用
git add 1.py
如果批量缓存可以使用命令: git add .(都记得有空格)
再使用git status查看所在文件夹的状态,发现此时的文件状态是 changes to be committed, 所以现在是一个staged(缓存区)的状态。
$ git status-s# "-s": status 的缩写模式,可以显示缩略状态。
最后,使用命令提交改变,即 commit。
git commit -m"xxx", 在引号中自定义本次改变的信息。
状态变化可以用以下图表显示:
版本修改的日志 log
对版本库中的文件进行修改,可以使用如下命令查看修改过程:
$ git log
使用简洁版查看当前状态:
$ git log --oneline
(此时所显示的每一行有三个参数,第一个参数代表了这个版本的象征,第二个参数代表了当前指针所在位置,如果有这个参数就表明当前版本是这个版本,如果没有就表明不是。第三个参数代表了你每一次更改给这个新版本进行的命名。)
这会输出作者,时间和修改内容。如果对文件进行修改后,再使用status查看状态,可以看到文件的状态:
modified: 1.py (此时是修改后未缓存的状态)
手动 add 后 再 commit, 再查询 git log 可以查看修改的具体细节。
版本对比的三种方法
对待不同状态的文件类型,需要使用不同的command进行比对。
1.刚刚修改未缓存的文件(unstaged) & 上个提交的文件(commited):
$ git diff
2.缓存的文件(staged) & 上个提交的文件(commited):
$ git diff --cached
3.缓存的文件(staged) & 刚刚修改未缓存的文件(unstaged)
$ git diff head
2019-1-2
一个版本库中不同版本间的切换
1.对已经commit的版本进行修改并且不重新命名新的版本。
copy paste 一个新的py副本,对这个副本进行修改;然后再重新add到缓存里;然后再进行commit,但是与之前有所不同,命令如下:
$ git commit --amend --no-edit (少个空格都不能对!)
2.对已经add的版本进行修改返回到add之前(unstaged的状态)
在已经commit的版本上进行修改后,再使用add的命令即可使unstaged(modified)的状态变为staged。
而staged的状态变为modified(unstaged)的状态,再使用以下命令即可;
$ git reset 1.py
3.对已经commit的版本返回之前commit了的版本
查看每个版本对应的id,可以使用如下命令;
$ git log --oneline
然后知道每个版本对应的id之后,就可以使用四种不同的方法返回想要的版本了:
# 方式1:"HEAD^"(^是返回上一个commit的意思)
$ git reset--hard HEAD^
# 方式2:"commit id"
$ git reset--hard c6762a1
#方式3:"HEAD~n"(~n是返回前几个版本的commit的意思,不包括创建的那一个版!!!)
$ git reset--hard HEAD~1
#方式4:"HEAD@{n}"(直接通过查看reflog里面的指针返回)
$ git reset--hard HEAD@{1}
状态变化解释,根据官网的图片:
而返回了之前的版本,还想查看之后的版本就要使用如下命令:(reference log)
$ git reflog --oneline
一个版本库中某一个文件的不同版本的修改
比如版本库中有两个文件1.py和2.py,那么只对1.py进行修改,就需要使用与上述方法不同的命令,就是checkout
$ git checkout xxxxx(版本id)--1.py(文件名字)
然后这个文件就回到了当是xxxx版本的内容,在此基础上进行修改后,再add并commit(记得加上remark),可以发现修改的新版本就跟在之前许多版本的后面,而没有覆盖之前的未来。
教学视频:
首先就遇到了难题,按照视频里的走,我根本无法打开想要打开的目录,于是各种搜索,搜索到了查看当前目录,更改目录的command,真的是算超级小白了,不过我相信后面会快起来的。