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
posted @ 2024-11-01 13:14  sgqmax  阅读(1)  评论(0编辑  收藏  举报