Git基本概念
1. 本地仓库:本地仓库上存放所有相关的文件,具体可分为工作区、暂存区和仓库区,工作区即项目文件夹下不包含.git文件夹的所有文件,暂存区和仓库区则在.git文件夹下
2. 工作区:即我们工作的文件夹,在里面进行文件的增删改操作
3. 暂存区:临时保存工作区上的改动,通过git add操作将工作区的修改同步到暂存区
4. 仓库区:当执行git commit操作时,将暂存区上的所有变动同步到本地仓库
5. 远程仓库:GitHub/GitLab上保存的仓库,通过git push将本地仓库同步到远程仓库,也可以通过git fetch/pull将远程仓库同步到本地仓库
Git基本操作
创建版本库
创建版本库有两种方式,一种是将本地的文件夹直接变成一个git仓库,另一种是直接将远程的仓库克隆到本地
git init # 将本地文件夹变为一个git仓库 git clone <url> #将远程仓库克隆到本地
修改与提交操作
git add <file> # 将单个文件从工作区添加到暂存区 git add . # 将所有文件添加到暂存区 git commit -m "messenge" # 将暂存区文件提交到本地仓库 git status # 查看工作区状态,显示有变更的文件。 git diff # 比较文件的不同,即暂存区和工作区的差异。
远程操作
git push origin master # 将本地的master分支推送到远程对应的分支 git pull # 下载远程代码并合并,相当于git fetch + git pull git fetch # 从远程获取代码库,但不进行合并操作 git remote add origin <url> # 将远程仓库与本地仓库关联起来 git remote -v # 查看远程库信息
撤销与回退操作
撤销操作:当修改了工作区/暂存区的文件,但是还没有commit时,想要撤销之前的操作:
# 场景1:当你改乱了工作区某个文件的内容,但还没有add到暂存区 git checkout <file> # 撤销工作区的某个文件到和暂存区一样的状态 # 场景2:当乱改了工作区某个文件的内容,并且git add到了暂存区 git reset HEAD <file> # 第1步,将暂存区的文件修改撤销掉 git checkout <file> # 第2步,将工作区的文件修改撤销掉 # 场景3:乱改了很多文件,想回到最新一次提交时的状态 git reset --hard HEAD # 撤销工作区中所有未提交文件的修改内容
回退操作:当已经进行了commit操作,需要回退到之前的版本:
git reset --hard HEAD^ # 回退到上次提交的状态 git reset --hard HEAD~n # 回退到n个版本前的状态 git reset --hard HEAD commitid # 回退到某一个commitid的状态 git reset --soft HEAD commitid # 回退到某一个commitid的状态,并且保留暂存区的内容 git reset --mixed(默认) HEAD commitid # 回退到某一个commitid的状态,并且保留工作区的内容