GIT 基础 &本地服务器搭建
Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个较好的选择,本文将对此进行详细讲解。(推荐一家提供私有源代码免费托管的网站:Bitbucket,目前支持一个项目5个成员).
Git支持本地(local)、ssh、git和http(s)这四种协议进行传输. ssh协议不利于开源,适合公司团队使用。
有两种方式可以建立git版本控制,1)git init,在本地建立 2)git clone命令,克隆远程的目录。ref: 点击打开链接
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器.
《Gitblit》是一款应用软件,支持Linux系统. gitblit需要java运行环境(JRE)或java开发工具(JDK)7. Gitblit 是一个纯 Java 库, 用来管理、查看和处理 Git 资料库. 相当于 Git 的 Java 管理工具.git的管家.
http://www.jb51.net/os/windows/210388.html
https://www.cnblogs.com/linsanshu/p/5512038.html
https://blog.csdn.net/chenxiqilin/article/details/53676992
https://blog.csdn.net/qwer971211/article/details/71156055
参考手册:https://git-scm.com/book/en/v2
GIT下载:https://git-scm.com/download/win
TortoiseGit--小乌龟git项目
Frank 实践总结:
1 在自己电脑本地管理自己个人代码的版本:
gitbash切换目录至自己的工程文件夹下,运行git init,会在文件夹下生成一个.git文件。就这么简单。然后,运行git status会提示没有被追踪的文件和文件夹(如果文件夹是空的,则不会提示)。
然后,用git add 将希望追踪的文件和文件夹进行追踪。可以一个一个地追踪,例如git add file1 file2, 也可以直接使用git add .直接将所有的文件和文件夹进行添加。(另,可以用git reset --mixed将添加的所有文件退出暂存区,保留原修改。)。
如果修改了自己的某个已经被add的文件,再运行git status则会提示该文件被修改,可以用git add将修改更新至缓存区,然后再git status,这时就不会提示有文件被修改了,直接提示“changes to be committed”。
git status命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件。
然后用git commit -m "string",将add至缓存区的文件提交。commit之后,运行git log(或git reflog,简略信息)会显示出commit的记录。
版本回退:
可以选运行git reflog,然后git reset --hard xxxx(xxxx为commit id的前几位)。回退成功之后,自己本地的工程文件就会返回到之前的状态啦。
由于是在自己电脑本地进行管理版本,没有远程目录,因此git push没有必要使用,使用不了。
2 git diff指令
1)git diff比较的是文件与缓存区中的文件的区别;
git diff filename 比较指定文件
2)git diff --cached比较的是已经add但是还没有commit的区别。
git diff --cached filename比较制定文件的差异
3)查看任意两个版本之间的改动:
git diff 版本号码1 版本号码2 (版本号2是作为改动后文件 与 版本1的文件进行比较,显示出的+xx,表示版本2比版本1增加了xx)
版本号可以是commit id
git diff 版本号码1 版本号码2 filename 查看某个文件在两个版本中的差异
4)git diff的输出信息分析:
$ git diff
显示结果如下:
diff --git a/f1 b/f1
index 6f8a38c..449b072 100644
--- a/f1
+++ b/f1
@@ -1,7 +1,7 @@
a
a
a
-a
+b
a
a
a
第一行表示结果为git格式的diff。
diff --git a/f1 b/f1
进行比较的是,a版本的f1(即缓存区中存储的)和b版本的f1(即工作区中被我改变后的)。
第二行表示两个版本的git哈希值(index区域的6f8a38c对象,与工作目录区域的449b072对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)。
index 6f8a38c..449b072 100644
第三行表示进行比较的两个文件。
--- a/f1
+++ b/f1
"---"表示a版本,"+++"表示b版本。
后面的表示,在源文件第1行开始的7行和目标文件第1行开始的7行构成一个差异小结。b版本相对于a版本 删除了a,增加了b
@@ -1,7 +1,7 @@
a
a
a
-a
+b
a
a
a
3. git branch ,
git branch 用于常看本地的分支名; git branch -r 查看远程的分支名,
GIT 基础 &本地服务器搭建的更多相关文章
- Git本地服务器搭建及使用详解
Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...
- 本地windows下搭建git的本地服务器
本地windows下搭建git的本地服务器 准备工作: 本地安装java环境,配置环境变量(略) 下载gitblit文件,百度一大堆 开始第一步: 减压gitblit压缩包到某个目录下,比如我在:H: ...
- 【Git】从服务器搭建到提交分支使用——初学者轻松上手篇
GitHub就是一个免费托管开源代码的远程仓库,个人可以把代码寄存处上面,不过会被公开.对于商业公司来说在Linux上搭建一台Git服务器作为私有仓库使用.开发人员在本地下载仓库代码,协同开发.本篇介 ...
- Git 基本命令与服务器搭建
Git教程 一套视频 详细教程 完全命令手册 Git常用命令 git config:配置相关信息 git clone:复制仓库 git init:初始化仓库 git add:添加更新内容到索引中 gi ...
- Git本地服务器搭建
安装编译环境,执行以下命令 [root@centos6 ~]# yum -y install curl curl-devel zlib-devel openssl-devel perl cpio ex ...
- Git系列四之在本地服务器搭建gitlab仓库管理
1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...
- Git系列四之在本地服务器搭建gitlab仓库管理(centeros环境下)
1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...
- Git 基础教程 之 搭建Git服务器
截图自: 廖雪峰老师官方网站 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0 ...
- Solr本地服务器搭建及查询
0.安装solr之前,确保已安装好java8, java -version 查看是否安装 1.新建本地目录solr1 并 解压两个压缩包文件 .tar.gz .tgz tomcat7 2.将CATA ...
随机推荐
- A - Happy Birthday, Polycarp!
Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) A. Happy Birthday, Polyc ...
- GoCN每日新闻(2019-10-02)
GoCN每日新闻(2019-10-02) GoCN每日新闻(2019-10-02) 1. Golang中基于Gin和Casbin的web使用方式 https://dev.to/maxwellhertz ...
- Zuul超时配置
在实际运用过程中,发现有时候zuul的第一次请求经常会超时.不知道你们怎样,我经常在重启zuul后,第一次访问经常会出现超时现象,但是第二次访问就不会了. 第一次经常超时 这是因为zuul采用了懒加载 ...
- 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,名为buyer_favorite1。 buyer_favorite1包含:买家id,商品id,收藏日期这三个字段,数据以“\t”分割
实验内容(mapReduce安装请按照林子雨教程http://dblab.xmu.edu.cn/blog/631-2/) 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,名为 ...
- vue 移动端禁用安卓手机返回键
//禁止手机返回键 下面这段代码直接复制在index.html中,可以生效// $(document).ready(function() { if (window.history &&a ...
- 辨析Java方法参数中的值传递和引用传递
小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. publ ...
- layui如何隐藏弹出层关闭的按钮
layui默认弹出层是带有关闭按钮的,但是在某些场景我们不需要layui的关闭按钮,这时只需添加closeBtn :0即可 效果图如下: 示例代码如下: layui.use('layer', func ...
- 刷题记录:[0CTF 2016]piapiapia
目录 刷题记录:[0CTF 2016]piapiapia 一.涉及知识点 1.数组绕过正则及相关 2.改变序列化字符串长度导致反序列化漏洞 二.解题方法 刷题记录:[0CTF 2016]piapiap ...
- 压测引起的 nginx报错 502 no live upstreams while connecting to upstream解决
对系统的某个接口进行极限压测,随着并发量上升,nginx开始出现502 no live upstreams while connecting to upstream的报错,维持最大并发量一段时间,发现 ...
- [转]Oracle 查询表外键相关信息
原文地址:https://www.csdn.net/gather_27/MtTaUgxsNzYxMi1ibG9n.html 查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询): s ...