【linux】git

一、git概述

git是一个代码协同管理工具,防止代码丢失,可以做备份代码版本的管理,可以进行多个版本之间的跳跃。用的最多的两种管理工具:snv、git

分布式 :每一个结点都保存完整的代码,没有统一的中央服务器,节点之间相互推送下 载代码完成代码共享,例如git

集中式 :代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器 中下载代码使用,例如svn

官网地址:https://git­scm.com/downloads

liunx下的安装:

sudo apt‐get install git

二、git的配置

(1)系统中所有的用户都可以使用该配置:git config --system 配置信息

配置文件是:/etc/gitconfig

(2)当前用户可使用该配置:git config --global 配置信息

配置文件是:~/.gitconfig

(3)当前项目可使用该配置 git config

配置文件是:当前项目下的 ./.git/config

三、git的操作

1、git的基本操作

(1)初始化仓库

git init

在某个目录下初始化仓库后会自动产生.git目录,改目录下工作的所有文档可使用git进行管理 。

(2)查看文件、分支状态

git status

(3)将指定的文件提交到暂存区

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

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

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

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

(4)将暂存区的文件提交到本地仓库

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

注意: 一般提示时需要附加一些同步信息,在-m后添加。

所有对工作区的修改,如果想同步到仓库,都需要执行当前命令(add --> commit)

(5)查看commit日志

git log 查看所有cimmit日志

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

(6)比较本地文件和本地仓库中文件的区别

git diff

2、恢复操作

(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的前七位即可

3、标签管理(版本管理)

(1)标签:在当前工作的位置添加快照,保存工作状态,一般用于版本的迭代

(2)创建标签

git tag <标签名称> //创建标签

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

git tag <commit id> //指定某一个commit id处创建标签

例如:git tag v1.0 默认是在最新的commit id处创建标签

(3)查看标签

git tag

(4)删除标签

git tag -d <标签名称>

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

git show <标签名称>

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

git reset --hard <标签名称>

4、建保存临时工作区

(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

四、分支命令操作

1)查看当前分支

git branch

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

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

git branch <分支名称>

3)切换工作分支

git checkout

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

git checkout ‐b <分支名称> //主要用于在创建的分支基础上在创建分支

5)将指定的分支合并到当前分支

git merge <分支名称>

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

6)删除指定的分支

git branch ‐d < 分支名称>

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

五、远程仓库

(1)远程仓库 本机或另一台主机上的仓库,可以被其他主机访问到

(2) 创建远程仓库

2.1)创建文件夹

mkdir <目录名>

2.2)设置文件夹的属主(可忽略)

chown <用户名>:<组名> <目录名>

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

git init ‐‐bare <项目名称> (项目名称一般都是以.git结尾)

2.4)设置本地仓库的属主(可忽略)

chown ‐R <用户名>:<组名> <目录名>

(3)将本地仓添加 到远程仓库(在本地仓)

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

注意: 默认使用ssg作为传输手段,仓库名称可以任意起名字。

必须在本地的某个git仓库下执行,才能是本地仓库和远程仓库关联

(4)删除远程仓库

git remote rm <仓库名称>

(5)将本地仓库的文件推送到远程仓库(第一次操作)

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

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

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

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

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

git pull <远程仓库名> <远程分支名> : <本地分支名> //不合并

(8)代码推送和更新 (第二次操作)

git push //将本地仓库的文件推送到远程仓库

git pull //从远程仓库中更新代码

git fetch //也用于更新,但是如果有新的分支不会合并

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

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

六、远程仓gitee

Gitee - 基于 Git 的代码托管和研发协作平台

1、windows下载

2、Linux下载

git clone https://gitee.com/jjxliu306/ng-form-element.git

3、创建远程仓库

若远程仓存在本地仓不存在的文件,需先执行git pull --rebase origin master 。

Git 全局设置:

复制代码
git config --global user.name "寒晓星xing"
git config --global user.email "13824347+han-xiaoxing-xing@user.noreply.gitee.com"

创建 git 仓库:

复制代码
mkdir myproject
cd myproject
git init 
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/han-xiaoxing-xing/myproject.git
git push -u origin "master"

已有仓库:

复制代码
cd existing_git_repo
git remote add origin https://gitee.com/han-xiaoxing-xing/myproject.git
git push -u origin "master"