代码备份以及协同工具——git

2023-12-13 04:06:09

目录

是什么

二者不同

作用

特点

安装

命令安装

源码安装

配置

命令

三种配置级别

配置信息

基本操作

恢复操作

标签管理(版本管理)

临时工作区管理

远程仓库



用的最多的代码管理工具大概有两种:git和svn,本文主要介绍git工具

是什么

是一个代码协同管理、代码备份管理工具

二者不同

分布式和集中式
分布式:每一个结点都保存完整的代码,没有统一的中央服务器,节点之间相互推送下载代码完成代码共享,例如 git
集中式:代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器中下载代码使用,例如 svn

安全性:git < svn

效率:git > svn


作用

  • 防止代码丢失,可以做备份
  • 代码版本的管理,可以进行多个版本之间的跳跃
  • 可以方便的将代码在多人之间进行共享传输
  • 多人开发时,有各种模式可以方便代码管理

特点

  • git 可以管理各种文件,特别是代码项目,多在 linux 和 unix 系统中使用
  • 是分布式管理,不同于集中式,这是 git 和 svn 的核心区别
  • git 可以很好的支持分支,方便多人协作工作
  • git 分布式代码分家安全,有全球唯一的 commit 版本号
  • git 是开源的系统
  • 使用 git 可以脱网工作,且数据传输速度较快

安装

命令安装

sudo apt-get install git

源码安装

去官网找源码包

将源码包拷贝到虚拟机后解压

make? ?编译源码

make? ?install


配置

命令

git config

三种配置级别

(1)系统中所有的用户都可以使用该配置(加sudo)

????????????????git config --system 配置信息

(2)当前用户可使用该配置

????????????????git config -- global 配置信息

????????????????配置文件是:~/.gitconfig

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

????????????????git config

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

配置信息

(1)配置用户名

????????????????git config --system user.name you

(2)配置邮箱

????????????????git config --system user.email xxxxxxxxxxx

(3)配置编辑器

????????????????git config core.editor vim

(4)查看当前所有的配置信息

????????????????git config --list

(5)命令行是否有颜色

? ? ? ? ? ? ? ? color.ui true


基本操作

(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 <文件名>


恢复操作

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

(6)查看所有的历史版本

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


标签管理(版本管理)

(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


临时工作区管理

(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)什么是远程仓库

????????????????另一台主机上的仓库,可以被其他主机访问到

(2) 创建远程仓库

????????2.1)创建文件夹 mkdir

????????2.2)设置文件夹的属主 chown :

????????2.3)进入文件夹,将该文件夹设置为共享仓库 git init --bare (项目名称一般都是以.git 结尾)

????????2.4)设置本地仓库的属主 chown -R :

(3)添加远程仓库

????????????????git remote add @:

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

(4)删除远程仓库

????????????????git remote rm

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

????????????????git push -u

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

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

????????????????git clone @:

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

????????????????git pull 拉取远程仓库指定的分支并且与当前分支合并

????????????????git pull : 不合并

(8)代码推送和更新

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

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

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

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

????????????????git push --force 当本地比远程旧,用本地覆盖远程


文章来源:https://blog.csdn.net/Mr_Yang12306/article/details/132730454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。