此时Git仓库就创建完成了,此时为一个空仓库(empty Git repository),可以发现当前目录下有一个隐藏的目录.git,此目录为Git来跟踪管理版本库,建议不要修改内部文件,以免Git仓库遭到破坏。
使用git clone拷贝一个Git仓库到本地,可以进行项目查看与修改
3.2 版本回退
连续添加多个文件后,执行commit提交后,使用git log查看不同版本
可以使用--oneline选项查看历史记录简洁版本,也可用--graph选项,查看历史中什么时候出现了分支、合并,
也可用--reverse参数逆向显示所有日志。
添加文件第一步使用git add是将文件添加进暂存区,第二部git commit提交更改,实际上为讲暂存区的所有内容提交到当前分支。
git reset HEAD 命令用于取消缓存的内容。
HEAD指向的版本,因此,Git允许回退版本,使用命令git reset --hard commit_id
回退前,可使用git log查看历史提交记录,以便确回退到那个版本
重新返回回退前的,使用git reflog查看历史命令,回到到未来的某个版本。
Git 跟踪并管理的是修改,而非文件,当使用git add命令后,在工作区的第一次修改给放如暂存区,但是 ,在工作区的第二次修改没放入暂存区,用git commit只负责把暂存区的修改提交,也就是第一次的修改被提交了,第二次的修改未被提交。
3.3 删除文件
直接在工作区删除,对暂存区和版本库没有任何影响。本地删除如果要反映在暂存区中应该用git rm命令,对不想删除的文件执行git checkout -- <file>,可以让文件在工作区重现。用git rm命令执行删除后,删除动作加入了暂存区,这时执行提交动作就从真正意义上执行了文件删除,不过文件只是在版本库的最新提交中被删除了,在历史提交中尚在。
3.4 移动文件(改名操作)
改名操作相当于对旧文件执行删除,对新文件执行添加
git mv可以由git rm和git add两条命令取代 $ git mv oldname newname 完成改名操作3.5 恢复删除文件
git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:
1.一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit
2.一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
git checkout -- test.txt
几乎所有的版本控制系统都存在某种意义上的分支支持,使用分支意味这可以从开放主线来分离出来,可以在不影响主线的情况下继续工作
创建分支:
git branch (branchname)
git checkout -b (branchname) #创建并切换到该分支下
查看分支
git branch
切换分支
git checkout (branchname)
当切换分支时,Git会用该分支的最后提交快照替换工作目录的内容,所以分支不需要多个目录
合并分支
git merge
当执行git init时,缺省情况下Git会创建master分支
删除分支
git branch -d (branchname) -D #强制删除
五、搭建GIT服务器