首页
统计
友链
壁纸
收藏
Search
1
如何使用Git在本地搭建代码仓库及使用
790 阅读
2
抖音可爱少女DuangDuangDuang
645 阅读
3
宝塔面板开启SSL后无法访问登陆解决方案
430 阅读
4
Sublime Text 升级后报错“kill_previous”问题解决
188 阅读
5
PHP 实现识别二维码
83 阅读
默认分类
前端
Js
Css
Jquery
Vue
运维
Git
Linux
Nginx
Apache
MySql
宝塔面板
后端
Python
PHP
登录
/
注册
Search
标签搜索
Git
php
宝塔面板常用命令
github
运维
宝塔开启SSL后无法登录
自动识别
PHPzxing
Element UI
黄小嘻
累计撰写
6
篇文章
累计收到
7
条评论
首页
栏目
默认分类
前端
Js
Css
Jquery
Vue
运维
Git
Linux
Nginx
Apache
MySql
宝塔面板
后端
Python
PHP
页面
统计
友链
壁纸
收藏
搜索到
1
篇与
运维
的结果
2020-12-31
如何使用Git在本地搭建代码仓库及使用
一、前言1.什么是git?开源的最先进的分布式版本控制系统,没有之一用以高效、高速的处理从很小到非常大的项目版本管理。2.什么是版本控制系统?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统3.什么是分布式版本控制系统?分布式版本控制系统(Distributed Version Control System,简称 DVCS), 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。4.Git的功能特性从服务器上克隆数据库(包括代码和版本信息)到单机上在自己的机器上创建分支,修改代码在单机上自己创建的分支上提交代码在单机上合并分支新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并生成补丁(patch),把自己的补丁发送给主开发者看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交补丁二、Git本地仓库的搭建与使用1.安装git[root@server1 ~]# yum install -y git2.创建我们的本地仓库,并且初始化[root@server1 ~]# mkdir demo #这里创建的版本库的名字为demo [root@server1 ~]# cd demo/ [root@server1 demo]# ls -a . .. [root@server1 demo]# git init #进行初始化,需要在版本库目录中(这里的版本库目录为demo Initialized empty Git repository in /root/demo/.git/ [root@server1 demo]# l. . .. .git [root@server1 demo]# ls .git/ branches config description HEAD hooks info objects refs执行以下操作后,可以发现当前目录下多了一个.git的目录,这个目录是Git来管理版本库的,一般不要手动修改这个.git目录里面的文件。3.添加用户信息初始化完后,接下来就要设置用户名和邮件地址,每次Git提交都会附带上这些信息,其实这些信息可以说时仓库所有者的标签,也可以说是联系人信息[root@server1 demo]# git config --global user.name peng [root@server1 demo]# git config --global user.email peng.redhat.com [root@server1 demo]# [root@server1 demo]# cat ~/.gitconfig [user] name = peng email = peng.redhat.com4.创建文件,查看仓库文件状态[root@server1 demo]# touch file1 [root@server1 demo]# echo redhat > file1 [root@server1 demo]# git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # file1 nothing added to commit but untracked files present (use "git add" to track) [root@server1 demo]# git status -s ?? file1 ##新添加的未跟踪的文件前面有??标志5.添加文件,也就是把文件放到暂存区[root@server1 demo]# git add file1 [root@server1 demo]# git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: file1 # [root@server1 demo]# git status -s A file1 ##A表示已经添加到暂存区了6.提交更改,实际上就是把暂存区的所有内容提交到当前分支root@server1 demo]# git commit -m "add file1" [master (root-commit) 59ef986] add file1 1 file changed, 1 insertion(+) create mode 100644 file1 [root@server1 demo]# [root@server1 demo]# git status -s ##提交完后我们就会发现状态栏就没有文件了 [root@server1 demo]# 7.git status的状态显示分类新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。MM表示工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录8.忽略文件一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。9.版本回退像这样,不断对文件进行修改,然后不断提交修改到版本库里,Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。git checkout – file以丢弃工作区的修改,就是让这个文件回到最近一次git commit或git add时的状态[root@server1 demo]# echo pengpeng >> file1 [root@server1 demo]# cat file1 redhat snow hello pengpeng [root@server1 demo]# git checkout -- file1 [root@server1 demo]# cat file1 redhat snow hello [root@server1 demo]# git status # On branch master nothing to commit, working directory cleangit log命令显示从最近到最远的提交日志git log --pretty=oneline查看简略日志信息git reflog查看历史记录git reset --hard HEAD^上一个提交状态就是HEAD,上上一个提交状态就是HEAD^git reset --hard … 回退到指定状态10.删除后恢复删除后没有提交,直接:git checkout – file即可删除且提交后: git reset --hard 指定状态
2020年12月31日
790 阅读
1 评论
10 点赞