@websec007
2020-08-11T16:55:40.000000Z
字数 3022
阅读 950
Git
(1)git 是一个分布式版本控制系统软件
(2)什么是版本控制
(3)什么是分布式
Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。
git 的安装可直接参考 “git - 简明指南”进行不同平台的安装部署。
git --version
现在请注意,如果你希望后面的学习更顺利,请记住下面这些关于 Git 的概念。 Git 有三种状态,你的文件可能处于其中之一:已修改(modified)
、已暂存(staged)
和 已提交(committed)
。
(1)已修改(modified)
(2)已暂存(staged)
(3)已提交(committed):
通过上面三个状态就会让我们的 Git 项目拥有三个区域:
$ cd git_demo
$ git init
$ git status
\$ git add index.html
\$ git status
\$ git add readme.txt
\$ git status
红色:未被管理状态,表示还未准备做版本生成提交;
绿色:已被管理状态,表示以及准备做辨别生成提交;
小结:无论是“红色”还是“绿色”都是表示文件内容已被修改或新增,但是还未做版本提交状态;
$ git commit index.html -m "V1: the 1th init."
git 版本提交,可以先提交暂存区,然后再做版本生成提交。
git 版本提交也可忽略“staging area”,只需要在commit 命令添加“-a"参考一次完成版本变更提交;
> git reset --hard HEAD^
> git reset --hard HEAD^^
> git reset --hard 82a9cbe1
> git log
> git reflog
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD
指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL
:
┌────┐
│HEAD│
└────┘
│
└──$ ○ append GPL
│
○ add distributed
│
○ wrote a readme file
如版本需要回滚到add distributed
,就将指针的指向修改为为add distributed
即刻,随后顺便把工作区的文件更新了。所以你让HEAD
指向哪个版本号,你就把当前版本定位在哪个位置。:
┌────┐
│HEAD│
└────┘
│
│ ○ append GPL
│ │
└──$ ○ add distributed
│
○ wrote a readme file
# (1)初始化git仓库目录
$ git init
# (2)working dir 目录状态查询
$ git status
# (3)staged area 添加
$ git add
# (4).git dir 提交新版本
$ git commit index.html -m "V1: init"
# (5)版本信息查询
$ git log 或
$ git reflog
# (6)回滚上一版本
$ git reset --hard HEAD^
# (7)回滚上一个的上一版本
$ git reset --hard HEAD ^^
# (8)回滚指定的commit id 版本
$ git reset --hard 72a8c1ad
第1步:创建一个空的远程仓库
(1)登录github;
(2)创建一个可供远程托管的仓库(repo)
第2步:提交本地代码到远程仓库进行托管
(1)add 添加远程仓库源
$ git remote origin https://github.com/myles-hub/remote_repo.git
(2)push 本地代码到远程仓库
$ git push -u origin master
注意:push 远程提交过命令
,其需要指定分支
进行提交,其实做不到整个仓库一次性提交的。
$ git clone https://github.com/myles-hub/xxx.git
$ git branch
$ git log
注意:远程仓库克隆,其实会将整个仓库克隆下来,即所有分支克隆下来,虽然
git branch
查看不到master以为的分支,但其实际上已经全部拉取来下了,我们可以直接切换过去。
$ git pull origin dev
注意:pull 拉取命令,其是用来 “指定分支” 进行远程仓库数据拉取的。
# (1)添加远程仓库,并设置别名origin
$ git remote add origin https://github.com/myles-hub/xxx.git
# (2)提交本地代码到远程仓库(origin)的master分支
$ git push -u origin master
注意:远程仓库同步提交前,需要先有一个空的远程仓库可以被提交才行。
# (1)克隆远程仓库到本地
$ git clone https://github.com/myles-hub/xxx.git
# (2)切换下分支
$ git branch
$ git checkout dev/bug