1 git介绍

Git 是一种分布式版本控制系统,它可以不受网络连接的限制,配合github或者gitee,是做项目版本管理和文档版本管理的首选[1]。

图片

工作区:就是本地能看到的目录,本地项目文件夹就是一个工作区。

暂存区:本地版本库里存了很多东西,其中最重要的就是称为 stage(或者叫index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD

本地版本库:工作区下有一个隐藏目录 .git,这个属于工作区,是 Git 的版本库。

远程版本库:一般指的是 Git 服务器上所对应的仓库,由master用户创建。

2 创建远程仓库

创建远程仓库的方式有两种:

1.登录github网页版手动创建,github犯病容易断网

2.在github上申请Personal access tokens,使用git命令创建远程仓库

2.1 git命令创建远程创库

1.在github上申请自己的api token

image-20210404132933036

2.这个只需配置一次,点击Generate new token,进入权限管理页面,勾选repogistdelete_repo三项生成token密钥串

3.本地使用git命令创建远程仓库[3]

#创建新创库
$curl -u ’用户名:token密钥‘ https://api.github.com/user/repos -d '{ "name": "test","description":"This is a test repository","public":true }' 

#本地关联远程仓库
$git remote add origin git@github.com:hxf233333/test.git

#查看远程仓库
$git remote -v

4.本地使用git命令删除远程仓库[4]

curl -XDELETE -H 'Authorization: token token密钥串' "https://api.github.com/repos/用户名/仓库名 "

3 git入门使用

3.1 本地创建一个新仓库

#创建工作区目录
mkdir test

#新建文件
touch README.md

#在当前工作区初始化本地仓库
git init

#将README.md添加到暂存区,如果想添加所有文件可用git add . 命令,这时候可通过git status看到文件当前状态
git add README.md

#提交文件变动到版本库,通过 -m 参数可直接在命令行里输入提交描述文本,可追加多行
git commit -m "first commit"

#强制修改当前分支为master分支
git branch -M master

#本地关联远程仓库:
git remote add origin https://github.com/hxf233333/test.git

#将本地的仓库内容改动推送到服务器master分支
git push -u origin master

3.2 已有仓库进行修改

#将远程版本库拷贝到本地,同时也将分支都拷贝到本地
git clone https://github.com/hxf233333/test

#进入工作区目录
cd test

#使用vim修改文件
vim test.cpp

git add 文件名或目录 #添加到暂存区
git rm  文件名或目录 #从暂存区删除

#从暂存区提交文件变动到本地版本库,通过 -m 参数可直接在命令行里输入提交描述文本,可追加多行
git commit -m "描述信息"

#本地关联远程仓库:
git remote add origin https://github.com/hxf233333/test.git

#将本地的仓库内容改动推送到服务器master分支
git push -u origin master

4 分支基本操作

#将远程版本库拷贝到本地,同时也将分支都拷贝到本地
git clone https://github.com/hxf233333/test

#进入工作区目录
cd test

#commit之后才会真正建立master分支,此时才可以建立其它分支
git add . 
git commit
git branch develop

#查看所有分支
git branch

#切换到develop分支
git checkout develop

#使用vim修改文件
vim test.cpp

git add 文件名或目录 #添加到暂存区
git rm  文件名或目录 #从暂存区删除

#从暂存区提交文件变动到本地版本库,通过 -m 参数可直接在命令行里输入提交描述文本,可追加多行
git commit -m "描述信息"

#本地关联远程仓库:
git remote add origin https://github.com/hxf233333/test.git

#将本地的仓库内容改动推送到服务器develop分支
git push -u origin develop

5 管理分支

获取分支,某次提交等 git 信息[2]

# 显示暂存区和工作区的差异
$ git diff

# 比较暂存区和版本库差异
$ git diff --staged

# 显示多个分支之间的差异
$ git diff [first-branch]...[second-branch]

# 将其他分支合并到当前分支
$ git merge branchName

# 在合并时创建一个新的master分支提交,这样可以生成 merge 提交变化
$ git merge --no-ff branchName

图片

默认情况下,Git 执行”快进式合并“(fast-farward merge),会直接将 Master分支指向 Develop 分支,使用 --no-ff 参数后,会执行正常合并,在 Master分支上生成一个新节点,保证版本演进更清晰。

reference:

[1]https://mp.weixin.qq.com/s/Q_O0ey4C9tryPZaZeJocbA

[2]https://mp.weixin.qq.com/s/bZS5c2oKkUipqN2xV1EVVg

[3]https://www.cnblogs.com/zhoudayang/p/5510729.html

[4]https://www.cnblogs.com/yifeichongtian/p/12716767.html