Git-CZZ

一:基本的linux命令

cd 改变目录
cd .. 返回上一个目录
pwd 显示当前所在目录的路径

ls 列出当前目录的所有文件
touch 新建一个文件 touch index.js 就会在当前目录下新建一个index.js文件
rm 删除一个文件 rm index.js 就会把index.js文件删除
mkdir 新建一个目录,就是新建一个文件夹
rm -r 删除一个文件夹 rm -r src 就是删除src目录

clear 清屏
reset 重新加载终端
history 查看一些历史命令
exit 退出
help 帮助

二:git基本原理

QQ截图20210117215127.png

三:git工作区域

工作目录:working directory 工作区,就是你平时放代码的地方

暂存区:Stage(index) 用于临时存放你的改动,事实上他只是一个文件,保存即将提交到列表信息

Repository:本地仓库,就是安全存放数据的地方,这里面有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本

Remote:远程仓库,托管代码的服务器,可以简单的认为是你 项目组中的一台电脑用于远程数据交换!

四:Git的基本操作命令

版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件处于什么状态,不然可能提交了现在还不想提交的文件,或者想提交的文件没有提交上。

文件的四种状态
Untracked:未跟踪,此文件在文件夹中,但没有加入到git库,不参与版本控制,通过git add ,状态变为Stage
UnModify:文件已入库,未修改;即版本库中 的文件快照内容与文件夹中的一致,这种文件的类型有两种去处;如果它被修改,而变为modified;如果使用 git rm移除版本库,则变为untracted文件
Modified:文件已修改,仅仅是修改,并没有进行其他操作,这个文件也有两个去处:通过git add 可进行暂存Stage状态;使用git checkout 则丢弃修改过,返回到unModify状态;这个git checkout 即从库中取出文件,覆盖当前修改!
Stage:暂存状态;执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,变成unModify状态,执行git reset HEAD filename 取消暂存,文件状态变为modified;

五:基本命令

git init 当前文件夹设置成git目录

git status查看一些信息
git status filename:查看指定文件信息
1:没有任何可添加的文件
git status no commit.png
2:有文件未被跟踪 untracted
untracted.png
3:文件已被跟踪(已 add未commit)
add.png
git add .添加所有文件到暂存区
git add filename:添加指定文件到暂存区
test add.png
git commit -m:提交暂存区的内容到本地仓库;-m :添加注释信息
commit.png
git diff 比较文件的不同,即工作区和暂存区的不同
git diff.png
分支
git branch dev 新建一个分支dev
git branch 查看有哪些分支
git checkout 切换分支
branch.png
git log查看提交日志
GIT_LOG.png
git reset HEAD~1 表示把本地仓库的版本回退到上一个,
reset1.png
如果是2,就是在当前版本往前回退两个版本
reset2.png
git reset HEAD filename 回退暂存区内容
reset 暂存区.png
git reset 回退版本
git log 查看日志
git pull 拉取远程代码并合并
git push上传代码到远程仓库并合并

Git切换到历史版本

使用git bash进入git命令行,查看commit记录。操作如下:
git log查看commit记录,
git log.png
找到你想提取的目标版本,复制对应的SHA值
新建一个分支,操作如下
git branch 新分支名 SHA值   

切换到新的分支,操作如下:


git branch.png

接下来,IDE(AndroidStudio)中的代码会自动切换成新分支中的代码,也就是历史版本的代码


git log branch.png

在上述的操作中,我们新建了一个分支用来拉取历史版本并进行操作(修改代码)。而我们当前的代码,也就是主分支中的代码不受任何影响。

你可能感兴趣的:(Git-CZZ)