建立或初始化仓库
进入一个目录下,执行命令
git init #创建一个空仓库
在执行完该命令后,该文件夹会出现一个叫.git
的目录。该目录为隐藏目录,用来记录仓库数据,不要随意删除
向仓库添加文件,然后提交
向仓库中提交文件需要分两步进行:
add —> commit
git add file1.txt file2.txt #一次可以添加多个文件
git commit -m 'add two files'
若需要添加该目录下的所有文件可执行
git add .
-m
后需要填写提交文件的说明,该项为必须填写的一项
查看仓库文件的改动
若仓库中文件修改后,可以使用git status
命令查看文件是否被修改

上图可以看出有一个文件
index.html
被修改了,但是还没提交修改。
如果需要具体查看该文件那些修改了那些内容,可使用命令git diff templates/index.html

这是就可以清楚看到文件中那些地方被修改了。
接下来就可以提交该文件,现在执行
git add templates/index.html
命令。在执行git commit
命令前,我们再看一下它的状态。现在执行git status

意思是该文件正准备提交。接下来就可以放心提交了git commit -m '删除了荐'

此时在查看一下创库状态
git status

版本回滚
版本在经过多次修改,commit后会出现多个版本。当我们需要回滚到之前某个版本时,需查看下该版本修改了那些内容需要执行git log
命令,查看版本迭代的记录。

从上图可以看出,我们有两个版本,一个是第一次提交的版本,另一个是删掉一个字后的版本。若以上输出信息太多,不容易查看,可以使用
git log --pretty=oneline
使输出更加简洁。

29233...
)是commit id
(版本号),是一个十六进制字。
看到日志后,现在就知道要回滚到哪一个版本了。在Git
中,使用HHAD
表示当前版本,上一个版本就是HEAD^
,上上个版本是HEAD^^
,上100个版本可以写作HEAD~100
。假设我们准备回滚到删除了荐
这个版本。使用命令git reset --hard HEAD^

^
会被当做换行符,导致报错。可以写成HEAD~1
如果又想回到原来的版本,此时可以使用git reset --hard f3c092a
,也就是使用commit id回滚到原来,commit id可以在历史命令行中查看。commit id不用写全,系统会自动补全查找。若历史命令丢失,可以使用git reflog
查看历史命令

工作区、暂存区和master分支

工作区就相当于当前目录,暂存区就相当于是
.git
文件下的记录。当执行git commit
后,才将暂存区的文件合并到master分支上。如果对工作区的文件进行修改后,想要放弃这些修改(仅仅放弃工作区文件的修改),可以自行以下命令
git checkout -- readme.txt
表示放弃工作区的修改,还原到最后一次add或commit的状态。实际上该命令是使用版本库中的文件覆盖工作区的文件。
如果修改的文件已经add进了暂存区,这是需要现将暂存区的文件还原(清除)。使用命令
git reset HEAD readme.txt
然后再对工作区进行修改。
删除文件
当我们将工作区的文件删掉后,版本中的文件并没有删掉。需要我们执行删除命令后,才会和工作区同步将文件删除。
git rm test.txt #执行删除命令
git commit -m '删除test' #提交到版本库
如果仅仅是误把工作区的文件删除了,只需要用版本库中的文件覆盖到工作区即好。
git checkout -- test.txt #将文件从版本库中还原到工作区
网友评论