git的使用及流程(详细)

## git的使用及流程

知识点1【git的概述】

代码管理工具概念:多人协同开发时管理代码。
作用:
防止代码丢失,可以做备份
代码版本的管理,可以进行多个版本之间的跳跃
可以方便的将代码在多人之间进行共享传输
多人开发时,有各种模式可以方便代码管理
分布式和集中式
分布式:每一个结点都保存完整的代码,没有统一的中央服务器,节点之间相互推送下载代码完成代码共享,例如git
集中式:代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器中下载代码使用,例如svn
git的安装:
官网地址:https://git-scm.com/downloads

sudo apt-get install git

标题知识点2【git的配置】

(1)系统中所有的用户都可以使用该配置
git config --system 配置信息
配置文件是:/etc/gitconfig、

 sudo git config --system user.name xx

(2)当前用户可使用该配置
git config – global 配置信息
配置文件是:~/.gitconfig

git config --global user.email name@mail.com

(3)当前项目可使用该配置(事先创建git项目git init)
git config

git config core.editor vim

配置文件是:当前项目下的 ./.git/config
查看当前所有的配置信息

git config --list

知识点3【git的常见操作】
1、git操作框架图

在这里插入图片描述

2、git基本操作
2.1、初始化仓库

git init

在某个目录下初始化仓库后会自动产生.git目录,改目录下工作的所有文档可使用git进行管理
2.2、查看文件、分支状态

git status

2.3将指定的文件提交到暂存区
git add <文件名> 将指定文件(任意文件类型的文件)提交到暂存区

git add *               将当前目录下所有的文件提交到暂存区

注意:
提交到暂存区的文件没有存放在本地仓库中

git rm --cache <文件名>          删除暂存区的指定文件

2.4将暂存区的文件提交到本地仓库

git commit -m <提交说明>         将文件同步到本地仓库并且设置提示说明

注意:
一般提示时需要附加一些同步信息,在-m后添加
所有对工作区的修改,如果想同步到仓库,都需要执行当前命令(add --> commit)
2.5查看commit日志

git log                         查看所有cimmit日志
git log --pretty=oneline        查看单行日志 

比本地文件和本地仓库中文件的区别

git diff <文件名>  

总结:
初始化仓库:

git init

提交到本地仓:

git add *
git commit -m “提交的信息”

知识点3【恢复操作】

1、从本地仓库恢复本地文件

git checkout <文件名>

2、丢弃工作区的修改

git checkout -- <文件名>    丢弃本地指定文件中的已经修改的内容(--两边都有空格)

3、本地仓库文件的移动和删除

git mv <源文件> <目的目录>   在本地仓库中将源文件移动目的目录中(本地也会移动)
git rm <文件名>              在本地仓库中删除指定的文件(本地也会删除)

注意:
移动和删除后,需要再次执行git commit
4、回到上一个版本(重要)

git reset --hard HEAD^            HEAD后面的^数量决定了回到上几个版本

5、回到指定的版本

git reset --hard <commit_id>       只需要commit id的前七位即可

6、查看所有的历史版本

git reflog                       最新的操作始终在最上边

知识点4【标签管理(版本管理)】

(1)什么是标签
在当前工作的位置添加快照,保存工作状态,一般用于版本的迭代
(2)创建标签(保证工作取干净)

git tag <标签名称>                 创建标签
git tag <标签名称> -m <提示信息>    创建标签并设置提示信息

例如:git tag v1.0
默认是在最新的commit id处创建标签
git tag <标签名称> 指定某一个commit id处创建标签

(3)查看标签

git tag

(4)删除标签

git tag -d <标签名称>  

(5)查看指定标签的具体信息

git show <标签名称>  

(6)恢复到指定标签的位置(重要)

git reset --hard <标签名称>

知识点5【临时工作区管理】

(1)创建保存临时工作区

git stash

(2)查看临时工作区

git stash  list

(3)使用指定的工作区(重要)

git stash apply stash@{编号}  

(4)使用最新的临时工作区并删除

git stash pop

(5)删除指定的临时工作区

git stash drop stash@{编号}

(6)删除所有的临时工作区

git stash clear

知识点6【分支操作】多人协作

注意:一个项目库只能有一个master分支和一个develop分支
项目库创建后,由版本管理员从master分支创建develop分支,项目组所有成员需要克隆服务器上的项目库到本地,然后再从develop分支创建自己的feature分支进行工作
3.1)查看当前分支

git branch

注意:前面有*的分支表示当前正在工作的分支

3.2)创建一个分支(默认在主分支创建)

git branch <分支名称>

3.3)切换工作分支

git checkout <分支名称>

3.4)创建并切换到新的分支

git checkout -b <分支名称>

主要用于在创建的分支基础上在创建分支
3.5)将指定的分支合并到当前分支

git merge <分支名称>

合并过程中如果没有冲突,直接合并后当前分支即为干净的状态,直接保存在本地仓库中
如果产生冲突,需要人为的选择,然后在进行add和commit的操作
在创建分支前,尽量保证当前分支是干净的,以减少冲突的发生
3.6)删除指定的分支

git branch -d < 分支名称>

注意:
如果删除的分支没有合并,是不能用当前命令删除的
使用-D删除,表示强制删除指定分支

知识点7【远程仓库】

1.(1)什么是远程仓库
另一台主机上的仓库,可以被其他主机访问到
(2) 创建远程仓库
2.1)创建文件夹
mkdir <目录名>

mkdir share.git

2.2)设置文件夹的属主(可以省略)
chown <用户名>:<组名> <目录名>

2.3)进入文件夹,将该文件夹设置为共享仓库

git init --bare <项目名称>
edu@edu:~/work/git/share.git$ git git init --bare
            (项目名称一般都是以.git结尾)

2.4)设置本地仓库的属主(可以省略)
chown -R <用户名>:<组名> <项目名称>

(3)添加远程仓库

git remote add <仓库名称> <用户名>@<ip地址>:<共享仓库的绝对路径>
edu@edu:~/work/git/est$ git remote add myshare edu@10.30.155.99:/home/edu/git/share.git

注意:
默认使用ssg作为传输手段,仓库名称可以任意起名字
必须在本地的某个git仓库下执行,才能是本地仓库和远程仓库关联

(4)删除远程仓库

git remote rm <仓库名称>

(5)将本地仓库的文件推送到远程仓库

git push -u <远程仓库名> <要推送的分支>

注意:第一次推送需要加-u,以后不需要

(6)从远程仓库获取项目

git clone <用户名>@<ip地址>:<共享仓库的绝对路径>

(7)从远程仓库拉取分支或者代码,可以更新代码

git pull <远程仓库名> <远程分支名>  拉取远程仓库指定的分支并且与当前分支合并
git pull <远程仓库名> <远程分支名>:<本地分支名>  不合并

(8)代码推送和更新
git push 将本地仓库的文件推送到远程仓库
git pull 从远程仓库中更新代码
git fetch 也用于更新,但是如果有新的分支不会合并

(9)本地旧覆盖版远程新

git push --force <远程仓库名>  当本地比远程旧,用本地覆盖远程

知识点8【github】(重要)

什么是github

是一个网站github.com,本质就是一个远程仓库,全球最大的开源社区网站

开发者可以注册账号建立自己的github仓库,就可以在本地通过git操作远程github仓库
git是github唯一的代码管理工具
1.5.2主机访问github账号
(1)在本地主机生成ssh密钥
ssh-keygen

注意:
必须获取当前主机的秘钥并设置到gihub,否则无法与github进行连接和操作
默认的秘钥存放在 ~/.ssh目录下
生成过程提示设置密码,如果不设置可以直接回车
(2)复制秘钥
进入~/.ssh目录,复制id_rsa.pub公钥的内容
(3)设置秘钥
登录github账号,选择右上角图片中的settings,然后点击SSH and GPG key,点击new ssh key,title随便设置,将刚才复制的秘钥粘贴到key中,然后点击add ssh key,设置成功

1.5.3 创建新的仓库

(1)点击右上角加号,选择New repository
(2)设置仓库名和说明信息,设置为公有的仓库,
设置readme(可以不设置),下面两个都默认就行,
点击Creating repository创建新的仓库

1.5.4操作github仓库
(1)连接远程github仓库,如果输入密码,输入github密码即可

git remote

(2)操作远程仓库

git push

注意如果:远程仓库 提前创建好了readme 请作如下修改:

git pull --rebase origin master
git push -u origin master

其他命令:

git checkout .                //回滚,放弃本次修改,回滚至上一次提交版本
git branch -a                //查看所有分支
git branch aaa                //创建分支名为aaa的本地分支
git branch -d aaa            //删除本地分支——>aaa
git branch -r -D origin/aaa            //删除本地远程分支——>aaa
git push origin --delete aaa          //删除git服务器上的aaa分支
git checkout aaa                //切换到aaa分支
git merge aaa                  //合并aaa分支中的代码到当前分支 (合并前拉一下aaa分支代码,防止冲突)
git stash                           //暂存区,修改的代码不想提交,可以先放到暂存区
git stash pop                  //回滚暂存区存储的代码
git log -x                          //查看最新的x个版本信息
git reset --hard xxx          //(xxx为版本号)回滚到指定版本号
git cherry-pick   commit号        添加别人的修改到本地  有冲突解决冲突
对上次的commit 添加 或者  修改
git commit --amend -m “T任务号 自己的描述”   
git reset --hard origin/$branch //放弃修改,回归修改前版本
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值