git本地仓库
ubuntu安装git
sudo apt-get install git
全局配置
git config --global user.name "your name"
git config --global user.email "your email"
--global
参数表示在这台机器上的git
仓库都会使用该配置,也可对某个仓库单独指定用户名和邮箱
git config --global --list
查看全局配置
本地仓库
初始化仓库
mkdir gitrepo
cd gitrepo
git init
# initialized empty git repository in gitrepo/.git/
添加文件到仓库
git可以跟踪每次的改动,但是像图片、视频或word这样的二进制文件,只能知道文件大小的变化,跟踪不到变化内容
由于不同的文本可能有不同的编码,如gbk编码,建议将文本使用utf-8编码,以避免冲突,windows下建议使用notepad++代替记事本,默认编码设置为utf-8 without bom即可
touch readme.txt
git add readme.txt # git add . 表示将文件夹下所有内容添加到库
git commit -m "first commit" # -m参数用来指定提交说明
可以多次add
,然后一次commit
跟踪变动状态
git status
查看工作区或暂存区中被修改但未被提交到分支的文件
git diff
查看工作区相对于暂存区修改的内容,可指定具体文件,显示的格式是unix通用的diff格式
版本回退
通过指针查找版本
在git中,用head
表示当前版本,head^
指向上一版本,用head^^
指向上上版本,以此类推,往上n个版本可用head~n
指向
git reset --hard head^
回退到上一版本
通过版本号查找版本
使用git log
查看提交过的版本号,git的版本号是通过sha1
计算出来的数字
可用--pretty=oneline
控制显示一行
git reset --hard 3628164
回退到相应版本
版本号不用写全,git会自动查找对应的版本号,但也不能只写前一两位,因为可能会匹配到多个版本
版本恢复
版本回退之后,若想恢复到回退之前的版本,该怎么办?
git reflog
可以查看命令历史,以此查看每一次提交的版本号
工作区和版本库
工作区,即用户编辑的目录,如gitrepo/
版本库,gitrepo/.git/
目录存储版本库,包含stage
暂存区,自动创建的master
分支以及指向该分支的head
指针
git add
会将文件放入stage
暂存区
git commit
会将暂存区中文件合入分支
git diff head -- file
查看文件file在工作区和版本库里最新版本的区别
暂存区内容覆盖工作区
git checkout -- file
用暂存区内容覆盖工作区,撤销对工作区的修改
分支内容覆盖暂存区
git reset head file
用当前分支内容覆盖暂存区,撤销对暂存区的修改
删除文件
删除工作区文件时,若确实要从版本库中删除,应使git rm
命令删除,并同步到版本库
git rm filename
git commit -m "delete filename"
若是误删文件时,从版本库中恢复
git reset head filename
git checkout -- filename